Perform an editable install with all requirements
pip install -r requirements.txt -e .Start the main application
pymcaor using the module directly
python -m PyMca5.PyMcaGui.pymca.PyMcaMain- Update version in
src/PyMca5/__init__.py - Wait until release action is finished
- Download and test Windows and macOS frozen binaries
- Update
changelog.txt
Start the release procedure by pushing a commit to the master branch with modified version in src/PyMca5/__init__.py. The release pipeline is not triggered by PRs. If the release pipeline fails during the wheels step before creating tag (and so before upload to PyPI), changes can be committed and the release pipeline can be triggered manually suing the 'force' option. The release includes uploading wheels to PyPI, as well as creating executable files (installer for Windows and universal DMG for macOS).
The entire release pipeline can take about an hour.
If you need to make complicated modifications to the CI workflow, please create a fork and run all your CI in the fork. Release procedure can be tested in the fork using 'dry-run' option which do not require any secrets - the DMG will not be signed, tag will not be created, no upload to PyPI will happen.
The CI runs tests on wheels and tries to run tests in the GUI. To be sure that there are no bugs, the tests should be run directly in frozen binaries manually using the following procedure:
call/load 1D plugins → interactive console
from PyMca5.tests import TestAll
TestAll.main()Few tests will be skipped, and none should fail.
Please note that tests should be performed on Windows, macOS-arm64 and macOS-x86.
A list of pull requests will be generated in the release comments but not in changelog.txt, which should be updated manually, since not all pull requests are described clearly when created.
New versions of PyMca5 will be distributed via GitHub releases at https://github.com/silx-kit/pymca/releases.
Older versions (pre 5.9.5) are available at https://sourceforge.net/projects/pymca/files/pymca.
