Skip to content

Latest commit

 

History

History
102 lines (71 loc) · 2.63 KB

RELEASE.md

File metadata and controls

102 lines (71 loc) · 2.63 KB

Making a Adaptive release

This document guides a contributor through creating a release of Adaptive.

Preflight checks

The following checks should be made before tagging the release.

Check that all issues are resolved

Check that all the issues and merge requests for the appropriate milestone have been resolved. Any unresolved issues should have their milestone bumped.

Ensure that all tests pass

For major and minor releases we will be tagging the main branch. This should be as simple as verifying that the latest CI pipeline succeeded.

Verify that AUTHORS.md is up-to-date

The following command shows the number of commits per author since the last annotated tag:

t=$(git describe --abbrev=0); echo Commits since $t; git shortlog -s $t..

Make a release, but do not publish it yet

Tag the release

Make an annotated, signed tag for the release. The tag must have the name:

git tag -s v<version> -m "version <version>"

Update the changelog

Use

docker run -it --rm -v "$(pwd)":/usr/local/src/your-app ferrarimarco/github-changelog-generator -u python-adaptive -p adaptive -t API_TOKEN_HERE

and commit the relevant parts using

git commit -p CHANGELOG.md

Build a source tarball and wheels and test it

rm -fr build dist
python setup.py sdist bdist_wheel

This creates the file dist/adaptive-<version>.tar.gz. It is a good idea to unpack it and check that the tests run:

tar xzf dist/adaptive*.tar.gz
cd adaptive-*
py.test .

Create an empty commit for new development and tag it

git commit --allow-empty -m 'start development towards v<version+1>'
git tag -am 'Start development towards v<version+1>' v<version+1>-dev

Where <version+1> is <version> with the minor version incremented (or major version incremented and minor and patch versions then reset to 0). This is necessary so that the reported version for any further commits is <version+1>-devX and not <version>-devX.

Publish the release

Push the tags

git push origin v<version> v<version+1>-dev

Upload to PyPI

twine upload dist/*
  • Fork the feedstock repo
  • Change the version number and sha256 in recipe/meta.yaml and commit to your fork
  • Open a Pull Request
  • Type @conda-forge-admin, please rerender as a comment
  • When the tests succeed, merge