For preparing a new release:
On "main":
- Update the whatsnew with the target release date.
- Add a new entry to the switcher.json in main:docs/source/static, pushing stable to next version.
- Change the badges.json file is there is anything to add, e.g. versions.
- Bump the "version" in pyproject.toml, and init version and check the dependencies.
- Checks should be OK in github actions but perform a local double check.
Checks: $ coverage run -m pytest Perform this on development environment as well as specified minimum. $ pytest -W error Checking for uncaptured warnings.
- Add to the MANIFEST.in file if anything needs including
- Commit and push any changes - this will temporarily break readthedocs which will build from push.
- Create a new release branch, e.g. '0.3.x' and checkout
On "release branch":
-
Update the "release" field in docs/source/conf.py, e.g. to '0.3.x'
-
Delete the switcher in the releases branch since this is taken from main branch
-
Build the INSTRUMENT_SPEC from the loader file and print the dict. Paste to file and set DEVELOPMENT to False.
-
Commit and Push the branch.
-
Run
cargo test --lib --no-default-features
-
Change the Cargo.toml file for abi3-py39 features.
Build: $ pip install build twine $ python -m build $ twine check dist/* $ twine upload -r testpypi dist/* $ twine upload dist/* [use token as username and token is in env file]
check: $ pip install -i https://test.pypi.org/simple rateslib
In Read-the-Docs admin console:
- Add a new branch for auto built docs.
- Checkout the "stable" tagging branch and update to the new version and force push.
In GITHUB:
- Add a new release.
- Update the Repo PNG with the new badges.