-
-
Notifications
You must be signed in to change notification settings - Fork 11
Releasing
rocky edited this page Aug 30, 2025
·
22 revisions
Table of Contents
- Get latest sources:
- Change version in mathics_django/version.py
- Make release branch:
- Update Changes
- Check package from github, then...
- Make packages and check
- Release on GitHub
- Upload the release to PyPI
- Post-Release
$ git pull
If we are tracking an API change, check .github/workflows
to see if we can use PyPI packages instead of GitHub repositories.
Update __version__
in mathics_django/version.py
.
$ source mathics_django/version.py # to set in POSIX shell
$ echo $__version__
$ git checkout -b release-$__version__
$ git commit -m"Get ready for release $__version__" .
$ make ChangeLog
$ codespell ChangeLog
If ChangeLog has spelling typos, make the corrections and:
$ cp ChangeLog ChangeLog-spell-corrected
$ mv -v ChangeLog.orig ChangeLog
$ diff -u ChangeLog ChangeLog.spell-corrected > ChangeLog-spell-corrected.diff
$ codespell ChangeLog
$ make ChangeLog
$ diff -u ChangeLog ChangeLog-spell-corrected
If the diff looks like it captures the corrections:
$ diff -u ChangeLog ChangeLog-spell-corrected > ChangeLog-spell-corrected.diff
Update CHANGES.rst
from ChangeLog
.
$ make check
$ git commit --amend .
$ git push # get CI testing going early
https://livesphinx.herokuapp.com/ can be used for checking the RsT.
$ get checkout master
$ git pull origin HEAD
Todo: turn this into a script in admin-tools
$ [[ ! -d /tmp/gittest ]] && mkdir /tmp/gittest; pushd /tmp/gittest
$ pyenv local 3.13.5 # Not the most recent Python version in a release
$ pip install -e git+https://github.com/Mathics3/mathics-django.git#egg=Mathics_Django
$ cd src/mathics-django
$ make
$ mathicsserver --version # see that new version appears
$ mathicsserver
$ pip uninstall Mathics_Django
$ popd
$ make dist
$ twine check dist/Mathics_Django-$__version__*
Goto https://github.com/Mathics3/mathics-django/releases/new
Now check the tagged release. (Checking the untagged release was previously done).
Todo: turn this into a script in admin-tools
$ git pull # to pull down the new tag
$ pushd /tmp/gittest
$ pip install -e git+https://github.com/Mathics3/Mathics-django.git@${__version__}#egg=Mathics_Django
$ cd src/mathics-django
$ make
$ mathicsserver --version # see that new version appears
$ mathicsserver
# Run "gallery" and "about", and check documentation.
$ pip uninstall Mathics-Django
$ popd
Upload it to PyPI with twine
$ twine upload dist/Mathics_Django-${__version__}*
Move uploaded versions to dist/uploaded
.
- Update docker setup
- Announce release on Google-Groups pages
- Update
__version__
toNEXT_VERSION.dev0