Skip to content

Commit 52b11bf

Browse files
authored
PEP 101: Add Android (#4541)
1 parent 369e2fc commit 52b11bf

File tree

1 file changed

+27
-49
lines changed

1 file changed

+27
-49
lines changed

peps/pep-0101.rst

Lines changed: 27 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -146,19 +146,17 @@ release. The roles and their current experts are:
146146
In rare cases where the expert for Windows or Mac is MIA, you may add
147147
a message "(Platform) binaries will be provided shortly" and proceed.
148148

149-
As much as possible, the release steps are automated and guided by the
150-
release script, which is available in a separate repository:
151-
`python/release-tools`_.
152-
153149
We use the following conventions in the examples below. Where a release
154150
number is given, it is of the form ``3.X.YaN``, e.g. 3.13.0a3 for Python 3.13.0
155151
alpha 3, where "a" == alpha, "b" == beta, "rc" == release candidate.
156152

157153
Release tags are named ``v3.X.YaN``. The branch name for minor release
158154
maintenance branches is ``3.X``.
159155

160-
This helps by performing several automatic editing steps, and guides you
161-
to perform some manual editing steps.
156+
As much as possible, the release is automated and guided by the
157+
``run_release.py`` script, which is available in a separate repository:
158+
`python/release-tools`_. This helps by automating many of the following steps,
159+
and guides you to perform some manual steps.
162160

163161
- Log into Discord and join the Python Core Devs server. Ask Thomas
164162
or Łukasz for an invite.
@@ -287,55 +285,34 @@ to perform some manual editing steps.
287285
- For **begin security-only mode** and **end-of-life** releases, review the
288286
two files and update the versions accordingly in all active branches.
289287

290-
- Time to build the source tarball. Use the release script to create
291-
the source gzip and xz tarballs,
292-
documentation tar and zip files, and GPG signature files::
293-
294-
.../release-tools/release.py --export 3.X.YaN
295-
296-
This can take a while for **final** releases, and it will leave all the
297-
tarballs and signatures in a subdirectory called ``3.X.YaN/src``, and the
298-
built docs in ``3.X.YaN/docs`` (for **final** releases).
299-
300-
Note that the script will sign your release with Sigstore. Use
301-
your **@python.org** email address for this. See here for more information:
302-
https://www.python.org/download/sigstore/.
288+
- Push your commits to the remote release branch in your GitHub fork::
303289

304-
- Now you want to perform the very important step of checking the
305-
tarball you just created, to make sure a completely clean,
306-
virgin build passes the regression test. Here are the best
307-
steps to take::
290+
# Do a dry run first.
291+
git push --dry-run --tags origin
292+
# Make sure you are pushing to your GitHub fork,
293+
# *not* to the main python/cpython repo!
294+
git push --tags origin
308295

309-
cd /tmp
310-
tar xvf /path/to/your/release/clone/<version>//Python-3.2rc2.tgz
311-
cd Python-3.2rc2
312-
ls
313-
# (Do things look reasonable?)
314-
ls Lib
315-
# (Are there stray .pyc files?)
316-
./configure
317-
# (Loads of configure output)
318-
make test
319-
# (Do all the expected tests pass?)
296+
- In `python/release-tools`_, go to the `build-release
297+
<https://github.com/python/release-tools/actions/workflows/build-release.yml>`__
298+
workflow, select "Run workflow", and enter the details of the tag you just
299+
created. This will perform the following steps:
320300

321-
If you're feeling lucky and have some time to kill, or if you are making
322-
a release candidate or **final** release, run the full test suite::
301+
- Create the source gzip and xz tarballs.
302+
- Create the documentation tar and zip files.
303+
- Check the source tarball to make sure a completely clean, virgin build
304+
passes the regression test.
305+
- Build and test the Android binaries (if Python 3.14 or later).
323306

324-
make buildbottest
307+
The resulting artifacts will be attached to the summary page of the GitHub
308+
workflow. Once the source tarball is available, download and unpack it to make
309+
sure things look reasonable, there are no stray .pyc files, etc.
325310

326311
If the tests pass, then you can feel good that the tarball is
327312
fine. If some of the tests fail, or anything else about the
328313
freshly unpacked directory looks weird, you better stop now and
329314
figure out what the problem is.
330315

331-
- Push your commits to the remote release branch in your GitHub fork::
332-
333-
# Do a dry run first.
334-
git push --dry-run --tags origin
335-
# Make sure you are pushing to your GitHub fork,
336-
# *not* to the main python/cpython repo!
337-
git push --tags origin
338-
339316
- Notify the experts that they can start building binaries.
340317

341318
.. warning::
@@ -374,8 +351,9 @@ to perform some manual editing steps.
374351
- The ME builds Mac installer packages and uploads them to
375352
downloads.nyc1.psf.io together with GPG signature files.
376353

377-
- ``scp`` or ``rsync`` all the files built by ``release.py --export``
378-
to your home directory on ``downloads.nyc1.psf.io``.
354+
- ``scp`` or ``rsync`` all the files built by the build-release workflow
355+
to your home directory on ``downloads.nyc1.psf.io``, along with any
356+
signatures, SBOMs, etc.
379357

380358
While you're waiting for the files to finish uploading, you can continue
381359
on with the remaining tasks. You can also ask folks on Discord
@@ -390,8 +368,8 @@ to perform some manual editing steps.
390368
creating it if necessary. Make sure it is owned by group ``downloads``
391369
and group-writable.
392370

393-
- Move the release ``.tgz``, and ``.tar.xz`` files into place, as well as the
394-
``.asc`` GPG signature files. The Win/Mac binaries are usually put there
371+
- Take the files you uploaded to your home directory above, and move them
372+
into the release directory. The Win/Mac binaries are usually put there
395373
by the experts themselves.
396374

397375
Make sure they are world readable. They should also be group

0 commit comments

Comments
 (0)