-
Notifications
You must be signed in to change notification settings - Fork 27
Release workflow
jnsbck edited this page Feb 21, 2025
·
9 revisions
TLDR; We have an automatic release pipeline, so the only thing you need to do is bump the version in jaxley/__version__.py, make a PR and merge it, once all tests passed.
-
Jaxleycurrently uses the Semver 2.0.0 convention. - Edit the version number in the tuple at
jaxley/jaxley/__version__.pyand in thepyproject.toml
-
If
CHANGELOG.mddoes not already list all relevant changes, add a new version number header and report changes below it. -
Use one line per change, include links to the pull requests that implemented each of the changes.
-
Credit contributors!
-
If there are new package dependencies or updated version constraints for the existing dependencies, add/modify the corresponding entries in
pyproject.toml.
- Run the full test suite:
pytest tests- Run tests that are marked as
additional_neuron_tests(these are not run by default). To run these tests:
nrnivmodl tests/nrn_mechanisms
pytest tests -m "additional_neuron_tests"- A PR that introduces changes to
__version__.pyautomatically gets flagged as a release PR and triggers additional tests. Make sure all tests pass before merging. - Merging the PR will:
- tag the commit with the version found in
pyproject.toml - build the binaries
- publish to PyPI
- Make a release and add the list of changes from
CHANGELOG.mdto the release description.
- tag the commit with the version found in
- Please check if the release was created successfully and is listed on PyPI.
- In case for whatever reason, the automatic release fails, open an issue and make the release manually (see below).
You need access to the Jaxley PyPi account for doing this (talk to the maintainers).
- Install
buildandtwine:pip install build twine - Use the build module to create the source distribution (.tar.gz) and the wheel (.whl) files:
python -m build- This will generate distribution archives (usually located in the dist/ directory).
- Once the package is built, you can upload it to PyPI using twine:
twine upload dist/*
- on https://github.com/jaxleyverse/jaxley/releases click
editon the newly-created tag and copy the relevant contents fromchangelog.mdin there.
- The mkdocs docs available at jaxleyverse.github.io/jaxley/ are built automatically. You do not have to do anything. We will remove those docs in the future (they are only there because they are linked in the paper).
- Similarly, readthedocs docs should build automatically. Ideally double-check though.