- 
                Notifications
    
You must be signed in to change notification settings  - Fork 0
 
Releasing
        R. Bernstein edited this page Sep 3, 2025 
        ·
        7 revisions
      
    Table of Contents
- Get latest sources:
 - Change version in version.py
 - Update ChangeLog:
 - Update 
NEWS.mdfromChangeLog. - Check package from GitHub.
 - Make packages, check, and tag
 - Release on GitHub
 - Get on PyPI
 - Push and Pull tags:
 - Move dist files to uploaded
 - Bump version
 
git pull
If we are tracking an API change, check .github/workflows to see if we can use PyPI packages instead of GitHub repositories.
$ emacs pymathics/language/version.py
$ source pymathics/language/version.py
$ echo $__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 NEWS.md from ChangeLog. Then:
       $ emacs CHANGES.rst
       $ git commit --amend .
       $ git push   # get CI testing going early
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-PyICU.git#egg=mathics3_module_pyicu
        $ pip show mathics3_module_pyicu
        $ mathics
        In[1]:= LoadModule["pymathics.language"]
        Out[1]= "pymathics.language"
        In[2]:= Alphabet["es"]
        In[3]:= Alphabet["Ukrainian"]
        $ pip uninstall mathics3_module_pyicu
        $ popd
        $ make dist
        $ twine check dist/mathics3_module_pyicu-$__version__*
Goto https://github.com/Mathics3/Mathics3-Module-PyICU/releases/new
Set version, copy in NEWS.md 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
        $ pip install -e git+https://github.com/Mathics3/Mathics3-Module-PyICU.git@$__version__#egg=mathics3_module_pyicu
        $ pip uninstall mathics3_module_pyicu
        $ popd
        $ twine upload --verbose dist/mathics3_module_pyicu-${__version__}*
Check on https://pypi.org/project/Mathics3-Module-PyICU/
    $ git pull --tags
    $ mv -v dist/mathics3_module/pyicu-${__version__}* dist/uploaded
- Update 
__version__toNEXT_VERSION.dev0