Maintainer information¶
Making a release¶
For branch organization we use a variation of the Github
Flow with
the latest release branch named stable
(due to ReadTheDocs constraints).
Making a major release¶
Make a new PR and for all occurrences of
https://cdn.jsdelivr.net/pyodide/dev/full/
in./docs/
replacedev
with the release versionvX.Y.Z
(note the presence of the leadingv
). This also applies todocs/conf.py
Set version in
src/py/pyodide/__init__.py
Make sure the change log is up to date.
Indicate the release date in the change log.
Generate the list of contributors for the release at the end of the changelog entry with,
git shortlog -s LAST_TAG.. | cut -f2- | sort --ignore-case | tr '\n' ';' | sed 's/;/, /g;s/, $//' | fold -s
where
LAST_TAG
is the tag for the last release. Merge the PR.
Assuming the upstream
stable
branch exists, rename it to a release branch for the previous major version. For instance if last release was,0.20.0
, the corresponding release branch would be0.20.X
,git fetch upstream git checkout stable git checkout -b 0.20.X git push upstream 0.20.X git branch -D stable # delete locally
Create a tag
X.Y.Z
(without leadingv
) and push it to upstream,git tag X.Y.Z git push upstream X.Y.Z
Create a new
stable
branch from this tag,git checkout -b stable git push upstream stable --force
Wait for the CI to pass and create the release on GitHub.
Build the pre-built Docker image locally and push,
docker build -t pyodide/pyodide:X.Y.Z -f Dockerfile-prebuilt --build-arg VERSION=BB . docker push
where
BB
is the last version of thepyodide-env
Docker image.Revert Step 1. and increment the version in
src/py/pyodide/__init__.py
to the next version specified by Semantic Versioning.
Making a minor release¶
For a minor release, commits need to be added to the stable
branch, ideally via a PR.
This can be done with either,
git cherry picking individual commits,
git checkout stable git pull git checkout -b backport-branch git cherry-pick <commit-hash>
or with interactive rebase,
git fetch upstream git checkout stable git pull git checkout -b backport-branch git rebase -i upstream/main
and indicate which commits to take from
main
in the UI.
Then follow steps 2, 3, and 6 from Making a major release.
Fixing documentation for a released version¶
Cherry pick the corresponding documentation commits to the stable
branch. Use
[skip ci]
in the commit message.