Making a Mathics3 Release¶
This information is for Project administrators. It is likely to be of little interest for most.
To perform these steps, this you’ll need a project administrator accounts and access on github, PyPI and dockerhub.
Beforehand¶
Let folks know in advance about the release. During the release of course, ensure no one is changing master (except the person doing the release).
mathics-scanner may need to be released on PyPI first.
Get latest sources:¶
$ git pull
Change version in mathics/version.py¶
On Mathics3/mathics-core master branch. For each release candidate:
update __version__
in mathics/version.py
$ source mathics/version.py # to set in POSIX shell
$ echo $__version__
$ git commit -m"Get ready for release $__version__" .
Create a new branch¶
- ::
git checkout -b release-$__version__
Update Changes¶
$ make ChangeLog
Update CHANGES.rst
from ChangeLog
$ make check
$ git commit --amend .
$ git push # get CI testing going early
Build Docs¶
$ make doc
See also [[Documentation and tests]].
Check package from github¶
TODO: turn this into a script in admin-tools
$ [[ ! -d /tmp/gittest ]] && mkdir /tmp/gittest; pushd /tmp/gittest
$ pyenv local pyston-2.3.4 # Use a version that is not the most recent
$ pip install -e git+https://github.com/Mathics3/mathics-core.git#egg=Mathics3
$ (cd src/mathics3 && make)
$ mathics --version # see that new version appears
$ mathics -e "1+2"
$ python -m pip uninstall Mathics3
$ popd
Make packages and check¶
$ ./admin-tools/make-dist.sh
$ twine check dist/Mathics3-$__version__*
Release on Github¶
Go to https://github.com/Mathics3/Mathics-core/releases/new
https://cloudconvert.com/rst-to-md can be used to change the CHANGES.rst section to markdown.
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-core.git@${__version__}#egg=Mathics3
$ mathics --version
$ mathics -e "1+2"
$ pip uninstall Mathics3
$ popd
Upload the release to PyPI¶
Upload it to PyPI with twine
:
$ twine upload --verbose dist/Mathics3-${__version__}*
Post-Release¶
Update mathicsscript
Update Matthics-Django
Update mathics-omnibus
Update magic.github.io PDF¶
$ cp mathics/doc/tex/mathics.pdf ../mathics.github.io/docs/mathics-${__version__}.pdf
$ cd ../mathics.github.io/docs
$ git add mathics-${__version__}.pdf
$ rm mathics-latest.pdf
$ ln -vs mathics-${__version__}.pdf mathics-latest.pdf
$ git commit .
$ git push
Announce release on Google-Groups pages
Update
__version__
toNEXT_VERSION.dev0