RSMTool Release Process¶
This process is only meant for the project administrators, not users and developers.
Run the
tests/update_files.py
script with the appropriate arguments to make sure that all test data in the new release have correct experiment ids and filenames. If any (non-model) files need to be changed this should be investigated before the branch is released.Create a release branch
release/XX
on GitHub.In the release branch:
update the version numbers in
version.py
.update the conda recipe.
update the documentation with any new features or details about changes.
run
make linkcheck
on the documentation and fix any redirected/broken links.update the README and this release documentation, if necessary.
Build the PyPI source and wheel distributions using
python setup.py sdist build
andpython setup.py bdist_wheel build
respectively.Upload the source and wheel distributions to TestPyPI using
twine upload --repository testpypi dist/*
. You will need to have thetwine
package installed and set up your$HOME/.pypirc
correctly. See details here.Install the TestPyPI package as follows:
pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple rsmtool
Then run some tests from a RSMTool working copy. If the TestPyPI package works, then move on to the next step. If it doesn’t, figure out why and rebuild and re-upload the package.
Build the new generic conda package by running the following command in the
conda-recipe
directory (note that this assumes that you have cloned RSMTool in a directory namedrsmtool
and that the latest version ofnumpy
is1.18
):conda build -c conda-forge -c ets --numpy=1.18 .
Upload the package to anaconda.org using
anaconda upload --user ets <package tarball>
. You will need to have the appropriate permissions for theets
organization.Create pull requests on the rsmtool-conda-tester and rsmtool-pip-tester repositories to test the conda and TestPyPI packages on Linux and Windows.
Draft a release on GitHub while the Linux and Windows package tester builds are running.
Once both builds have passed, make a pull request with the release branch to be merged into
master
and request code review.Once the build for the PR passes and the reviewers approve, merge the release branch into
master
.Upload source and wheel packages to PyPI using
python setup.py sdist upload
andpython setup.py bdist_wheel upload
Make sure that the ReadTheDocs build for
master
passes by examining the badge at this URL - this should say “passing” in green.Tag the latest commit in
master
with the appropriate release tag and publish the release on GitHub.Make another PR to merge
master
branch intostable
so that the the default ReadTheDocs build (which isstable
) always points to the latest release.Update the CI plan for RSMExtra (only needed for ETS users) to use this newly built RSMTool conda package. Do any other requisite changes for RSMExtra. Once everything is done, do a release of RSMExtra.
Update the RSMTool conda environment on the ETS linux servers with the latest packages for both RSMTool and RSMExtra.
Send an email around at ETS announcing the release and the changes.
Create a Dash docset from the documentation by following the instructions here.