Making a release¶
For branch organization we use a variation of the Github
the latest release branch named
stable (due to ReadTheDocs constraints).
Making a major release¶
Make a new PR and for all occurrences of
devwith the release version
vX.Y.Z(note the presence of the leading
v). This also applies to
Set version in
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
LAST_TAGis the tag for the last release. Merge the PR.
Assuming the upstream
stablebranch 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 be
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
v) and push it to upstream,
git tag X.Y.Z git push upstream X.Y.Z
Create a new
stablebranch from this tag,
git checkout -b stable git push upstream stable --force
Wait for the CI to pass and create the release on GitHub.
Release the pyodide-build package,
pip install twine build cd pyodide-build/ python -m build . ls dist/ # check the produced files twine check dist/*X.Y.Z* twine upload dist/*X.Y.Z*
cd src/js npm publish
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
BBis the last version of the
Revert Step 1. and increment the version in
src/py/pyodide/__init__.pyto 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
mainin 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.