Skip to content

Commit 86e155a

Browse files
authored
Merge branch 'main' into pagefind-search
2 parents e85cdac + 166e82e commit 86e155a

File tree

8 files changed

+1235
-8
lines changed

8 files changed

+1235
-8
lines changed

.github/CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -692,6 +692,9 @@ peps/pep-0814.rst @vstinner @corona10
692692
peps/pep-0815.rst @emmatyping
693693
peps/pep-0816.rst @brettcannon
694694
# ...
695+
peps/pep-0819.rst @emmatyping
696+
peps/pep-0820.rst @encukou
697+
# ...
695698
peps/pep-2026.rst @hugovk
696699
# ...
697700
peps/pep-3000.rst @gvanrossum

peps/pep-0101.rst

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,6 @@ release. The roles and their current experts are:
134134

135135
* WE = Windows - Steve Dower <steve.dower@python.org>
136136
* ME = Mac - Ned Deily <nad@python.org> (US)
137-
* DE = Docs - Julien Palard <julien@python.org> (Central Europe)
138137

139138
.. note:: It is highly recommended that the RM contact the Experts the day
140139
before the release. Because the world is round and everyone lives
@@ -388,8 +387,6 @@ and guides you to perform some manual steps.
388387
``docs.nyc1.psf.io``. Make sure the files are in group ``docs`` and are
389388
group-writeable.
390389

391-
- Let the DE check if the docs are built and work all right.
392-
393390
- Note both the documentation and downloads are behind a caching CDN. If
394391
you change archives after downloading them through the website, you'll
395392
need to purge the stale data in the CDN like this::
@@ -422,8 +419,6 @@ and guides you to perform some manual steps.
422419

423420
- Have you gotten the green light from the ME?
424421

425-
- Have you gotten the green light from the DE?
426-
427422
If green, it's time to merge the release engineering branch back into
428423
the main repo.
429424

peps/pep-0387.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -146,9 +146,9 @@ Making Incompatible Changes
146146
Making an incompatible change is a gradual process performed over
147147
several releases:
148148

149-
1. Discuss the change. Depending on the degree of incompatibility,
150-
this could be on the bug tracker, python-dev, python-list, or the
151-
appropriate SIG. A PEP or similar document may be written.
149+
1. :pep:`PEP 1: Start with an idea <1#start-with-an-idea-for-python>` discussion.
150+
If the discussion reaches consensus that acceptance is possible a PEP or
151+
similar document may be written.
152152
Hopefully users of the affected API will pipe up to comment.
153153

154154
2. Add a warning to the current ``main`` branch.

peps/pep-0819.rst

Lines changed: 354 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
:orphan:
2+
3+
.. _0819-core-metadata-json-schema:
4+
5+
Appendix: JSON Schema for Core Metadata
6+
=======================================
7+
8+
.. literalinclude:: core-metadata.schema.json
9+
:language: json
10+
:linenos:
11+
:name: core-metadata-schema
12+
13+
.. _0819-wheel-json-schema:
14+
15+
Appendix: JSON Schema for Wheel Metadata
16+
========================================
17+
18+
.. literalinclude:: wheel.schema.json
19+
:language: json
20+
:linenos:
21+
:name: wheel-schema
Lines changed: 240 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,240 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://peps.python.org/pep-0819/core-metadata.schema.json",
4+
"title": "Python Packaging Core Metadata",
5+
"description": "Core metadata for Python packages",
6+
"type": "object",
7+
"properties": {
8+
"metadata_version": {
9+
"type": "string",
10+
"pattern": "^(\\d+(\\.\\d+)*)$",
11+
"description": "The version of the file format."
12+
},
13+
"name": {
14+
"type": "string",
15+
"pattern": "^([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9._-]*[A-Za-z0-9])$",
16+
"description": "The name of the distribution."
17+
},
18+
"version": {
19+
"type": "string",
20+
"pattern": "^v?([0-9]+!)?[0-9]+(\\.[0-9]+)*([-_\\.]?(alpha|a|beta|b|preview|pre|c|rc)[-_\\.]?[0-9]+)?((-[0-9]+)|([-_\\.]?(post|rev|r)[-_\\.]?[0-9]+))?([-_\\.]?dev[-_\\.]?[0-9]+)?$",
21+
"description": "The distribution's version number."
22+
},
23+
"dynamic": {
24+
"type": "array",
25+
"items": {
26+
"type": "string",
27+
"enum": [
28+
"platform",
29+
"supported_platform",
30+
"summary",
31+
"description",
32+
"description_content_type",
33+
"keywords",
34+
"author",
35+
"author_email",
36+
"maintainer",
37+
"maintainer_email",
38+
"license",
39+
"license_expression",
40+
"license_file",
41+
"classifier",
42+
"requires_dist",
43+
"requires_python",
44+
"requires_external",
45+
"project_url",
46+
"provides_extra",
47+
"import_name",
48+
"import_namespace",
49+
"provides_dist",
50+
"obsoletes_dist",
51+
"home_page",
52+
"download_url",
53+
"requires",
54+
"provides",
55+
"obsoletes"
56+
]
57+
},
58+
"description": "A list of core metadata fields that are dynamicly calculated."
59+
},
60+
"platform": {
61+
"type": "array",
62+
"items": {
63+
"type": "string"
64+
},
65+
"description": "The platforms supported by the distribution."
66+
},
67+
"supported_platform": {
68+
"type": "array",
69+
"items": {
70+
"type": "string"
71+
},
72+
"description": "The platforms for which a binary distribution was compiled."
73+
},
74+
"summary": {
75+
"type": "string",
76+
"description": "A one-line summary of about the distribution."
77+
},
78+
"description": {
79+
"type": "string",
80+
"description": "A longer description of the distribution that can run to several paragraphs."
81+
},
82+
"description_content_type": {
83+
"type": "string",
84+
"description": "The content type of the description. In the same format as the HTTP Content-Type header field."
85+
},
86+
"keywords": {
87+
"type": "array",
88+
"items": {
89+
"type": "string"
90+
},
91+
"description": "Keywords describing the distribution."
92+
},
93+
"author": {
94+
"type": "string",
95+
"description": "The name of the author of the distribution. Additional contact information may be provided."
96+
},
97+
"author_email": {
98+
"type": "string",
99+
"description": "The email address of the author or maintainer. It can contain a name and email address in the legal forms for a RFC 822 ``From:`` header."
100+
},
101+
"maintainer": {
102+
"type": "string",
103+
"description": "The name of the maintainer. Additional contact information may be provided."
104+
},
105+
"maintainer_email": {
106+
"type": "string",
107+
"description": "The email address of the maintainer. It can contain a name and email address in the legal forms for a RFC 822 ``From:`` header."
108+
},
109+
"license": {
110+
"type": "string",
111+
"description": "Text indicating the license covering the distribution where the license is not a selection from the “License” Trove classifiers.",
112+
"deprecated": true
113+
},
114+
"license_expression": {
115+
"type": "string",
116+
"description": "A valid SPDX license expression indicating the license covering the distribution."
117+
},
118+
"license_file": {
119+
"type": "array",
120+
"items": {
121+
"type": "string"
122+
},
123+
"description": "Paths to license files relative to the project root directory."
124+
},
125+
"classifier": {
126+
"type": "array",
127+
"items": {
128+
"type": "string"
129+
},
130+
"description": "A list of Trove classifiers that describe the nature of the distribution."
131+
},
132+
"requires_dist": {
133+
"type": "array",
134+
"items": {
135+
"type": "string"
136+
},
137+
"description": "A list of projects required by the distribution."
138+
},
139+
"requires_python": {
140+
"type": "string",
141+
"description": "The Python version for which the distribution is intended."
142+
},
143+
"requires_external": {
144+
"type": "array",
145+
"items": {
146+
"type": "string"
147+
},
148+
"description": "A list of external dependencies required by the distribution."
149+
},
150+
"project_url": {
151+
"type": "array",
152+
"items": {
153+
"type": "object",
154+
"properties": {
155+
"label": {
156+
"type": "string",
157+
"description": "The label for the project URL.",
158+
"pattern": "^.{1,32}$"
159+
},
160+
"url": {
161+
"type": "string",
162+
"description": "The URL for the project URL."
163+
}
164+
},
165+
"additionalProperties": false
166+
},
167+
"description": "A mapping of arbitrary text labels to additional URLs relevant to the project."
168+
},
169+
"provides_extra": {
170+
"type": "array",
171+
"items": {
172+
"type": "string",
173+
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
174+
},
175+
"description": "A list of optional features provided by the distribution."
176+
},
177+
"import_name": {
178+
"type": "array",
179+
"items": {
180+
"type": "string"
181+
},
182+
"description": "A list of exclusive import names provided by the distribution."
183+
},
184+
"import_namespace": {
185+
"type": "array",
186+
"items": {
187+
"type": "string"
188+
},
189+
"description": "A list of exclusive import namespaces provided by the distribution."
190+
},
191+
"provides_dist": {
192+
"type": "array",
193+
"items": {
194+
"type": "string"
195+
},
196+
"description": "A list of project names provided by the distribution."
197+
},
198+
"obsoletes_dist": {
199+
"type": "array",
200+
"items": {
201+
"type": "string"
202+
},
203+
"description": "A list of project names that are obsoleted by the distribution."
204+
},
205+
"home_page": {
206+
"type": "string",
207+
"description": "The home page of the project.",
208+
"deprecated": true
209+
},
210+
"download_url": {
211+
"type": "string",
212+
"description": "The URL for the distribution's download page.",
213+
"deprecated": true
214+
},
215+
"requires": {
216+
"type": "array",
217+
"items": {
218+
"type": "string"
219+
},
220+
"description": "A list of projects required by the distribution.",
221+
"deprecated": true
222+
},
223+
"provides": {
224+
"type": "array",
225+
"items": {
226+
"type": "string"
227+
},
228+
"description": "A list of projects provided by the distribution.",
229+
"deprecated": true
230+
},
231+
"obsoletes": {
232+
"type": "array",
233+
"items": {
234+
"type": "string"
235+
},
236+
"description": "A list of projects that are obsoleted by the distribution.",
237+
"deprecated": true
238+
}
239+
}
240+
}

peps/pep-0819/wheel.schema.json

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"$schema": "https://json-schema.org/draft/2020-12/schema",
3+
"$id": "https://peps.python.org/pep-0819/wheel.schema.json",
4+
"title": "Wheel Metadata",
5+
"description": "Metadata for the wheel file format.",
6+
"type": "object",
7+
"properties": {
8+
"wheel_version": {
9+
"type": "string",
10+
"pattern": "^(\\d+(\\.\\d+)*)$",
11+
"description": "The version of the wheel file format."
12+
},
13+
"generator": {
14+
"type": "string",
15+
"description": "The name and version of the tool that generated the wheel."
16+
},
17+
"root_is_purelib": {
18+
"type": "boolean",
19+
"description": "Whether the root of the archive should be installed into purelib."
20+
},
21+
"tag": {
22+
"type": "array",
23+
"items": {
24+
"type": "string",
25+
"description": "The wheel's expanded compatibility tags."
26+
}
27+
},
28+
"build": {
29+
"type": "string",
30+
"description": "The build tag of the wheel."
31+
}
32+
},
33+
"required": [
34+
"wheel_version",
35+
"generator",
36+
"root_is_purelib",
37+
"tag"
38+
]
39+
}

0 commit comments

Comments
 (0)