Skip to content

Releasing

R. Bernstein edited this page Aug 29, 2025 · 16 revisions

Table of Contents

Get the latest sources:

git pull

Change version in version.py

$ emacs pymathics/version.py
$ source pymathics/version.py
$ echo $__version__
$ git commit -m"Get ready for release $__version__" .

Update ChangeLog:

$ make ChangeLog
$ codespell ChangeLog

If ChangeLog has spelling typos, make the corrections and:

$ cp ChangeLog ChangeLog-spell-corrected
$ mv ChangeLog.orig 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. Then:

$ emacs CHANGES.rst
$ git commit --amend .
$ git push   # get CI testing going early

Check the package from GitHub

Todo: turn this into a script in admin-tools

$ [[ ! -d /tmp/gittest ]] && mkdir /tmp/gittest; pushd /tmp/gittest
$ pyenv local 3.12.6  # or some other non-current version
$ pip install -e git+https://github.com/Mathics3/Mathics3-Module-Base.git#egg=mathics3-module-base
$ pip show mathics3-module-base
$ pip uninstall mathics3-module-base
$ popd

Make packages, check, and tag

$ twine check dist/pymathics-$__version__*

Release on Github

Goto https://github.com/Mathics3/Mathics3-Module-Base/releases/new

Set version, copy in CHANGES.rst item, upload binaries.

Now check the tagged release. (Checking the untagged release was previously done).

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-Module-Base.git@$__version__#egg=mathics3-module-base
$ pip uninstall pymathics
$ popd

Get on PyPI

$ twine upload --verbose dist/mathics3_module_base-${__version__}*

Check on https://pypi.org/project/pymathics/

Push and Pull tags:

$ git pull --tags

Move dist files to uploaded

$ mv -v dist/mathics3_module_base-${__version__}* dist/uploaded

Clone this wiki locally