This is the procedure we use for create a new release of Firecrown.
-
Create a local branch in your clone of the repo to be used for the PR that will be started later. Name it for the new release, e.g.: new_release_v1_6_0
-
Update your local conda environment using
mamba update --all
andpip install -U --no-deps autoclasstoc cobaya pygobject-stubs
-
Make sure you have updated the
environment.yml
file to release, or force, any versioning required. -
Update your local conda environment to match the possibly-modified
environment.yml
. -
Make sure any new directories are being processed by black, flake8, mypy, and pylint.
-
Make sure all tests pass, all code checking is passed, all examples are working.
-
Make sure that any new features introduced are described, and any features removed from the code have been removed, in the tutorial.
-
Update the version in
firecrown/version.py
-
Update the test
tests/test_version.py
-
Re-run the version test:
pytest -v tests/test_version.py
-
Update the tutorial files with the new release number.
- development_example.qmd
- intro_article.qmd
- introduction_to_firecrown.qmd
docs/conf.py
- You can find all the files to change with:
rg -g '!*.ipynb' -g '!*.ini' -g '!*.yaml' -g '!*.yml' -l -F x.y
where "x.y" should be replaced with the old release number.
-
Commit and push all the changes to the new branch for the PR.
- can be done either through the web interface, or through the
gh
command line utility.
- can be done either through the web interface, or through the
-
Create a PR for the generation of the new release. The CI system will automatically run on the PR.
-
If the CI system complains, fix things and iterate as needed.
-
When the CI system passes, merge the PR.
-
Use the GitHub web interface to tag the commit. Allow the automated system to genreate the release notes.
-
Create the new
conda
release. You do this in your local clone of the feedstock repository.git pull
to make sure you have the latest version of everything.- Edit
recipe/meta.yaml
to update the version, and to reset the build number to 0. Make sure any version pinning inmeta.yml
(which will be used by the conda solver) is consistent with Firecrown'senvironment.yml
. Add any new dependencies, if appropriate. Download the new.tar.gz
file from the Firecrown repo, find thesha256sum
of the file. Update that in themeta.yml
file. - Commit and push changes.
- If you make an error, make sure you update the build number.
-
Immediately change the version (in all the places listed above) the next number. If the release just made is x.y.z, the new one should be x.y.(z+1)a0