Skip to content

Releasing

rocky edited this page Apr 19, 2026 · 9 revisions

Get latest sources:

$ git pull

Change version in mathics/version.py

Update __version__ in mathics_pygments/version.py.

$ source mathics_pygments/version.py # to set in POSIX shell
$ echo $__version__

Make release branch:

$ git checkout -b release-$__version__
$ git commit -m"Get ready for release $__version__" .

Update Changes

$ make ChangeLog
$ head -n 2200 ChangeLog | codespell -

If ChangeLog has spelling typos, make the corrections and:

$ mv -v ChangeLog ChangeLog-spell-corrected
$ cp -vp ChangeLog.orig ChangeLog
$ diff -u ChangeLog ChangeLog-spell-corrected > ChangeLog-spell-corrected.diff

If the diff looks like it captures the corrections::

$ diff -u ChangeLog ChangeLog.spell-corrected > ChangeLog-spell-corrected.diff
$ 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
$ make ChangeLog

And see that everything patches fine.

Update CHANGES.rst from ChangeLog.

$ make check
$ git commit --amend .

http://rst.ninjs.org/ can be used for checking the RsT.

Create GitHub PR and check CI on github.

Create a GitHub pull request. After CI finishes, and PR merged:

$ git checkout master
$ git pull origin HEAD

Check package from GitHub

Todo: turn this into a script in admin-tools

$ [[ ! -d /tmp/gittest ]] && mkdir /tmp/gittest; pushd /tmp/gittest
$ pyenv local 3.13.5
$ pip install -e git+https://github.com/Mathics3/Mathics3-pygments.git#egg=Mathics3_pygments
$ cd src/mathics3-pygments
$ make test
$ pip uninstall Mathics3-pygments
$ popd

Make packages and check

$ ./admin-tools/check-versions.sh
$ ./admin-tools/make-dist.sh
$ tar -tf dist/mathics3_pygments-$__version__tar.gz
$ twine check dist/mathics3_pygments-$__version__*

Try out the tar or the wheel in a separate Python version

$ cd dist
$ pyenv local *not_currenv_python*
$ pip install dist/mathics3_pygments-${__version__}-py3-none-any.whl
$ cd ..

Release on GitHub

Goto https://github.com/Mathics3/Mathics3-pygments/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 new tag
$ pushd /tmp/gittest
$ pip install -e git+https://github.com/Mathics3/Mathics-pygments.git@${__version__}#egg=mathics3-pygments
$ cd src/mathics3-pygments
$ make test
$ pip uninstall mathics3-pygments
$ popd

Upload the release to PyPI

Upload it to PyPI with twine

$ twine upload dist/mathics3_pygments-${__version__}*

Move uploaded versions to dist/uploaded.

Post-Release

  • Update docker setup
  • Update __version__ to NEXT_VERSION.dev0