When releasing a new version of pycalphad:
All pull requests / issues tagged with the upcoming version milestone should be resolved or deferred.
git pull
to make sure you haven't missed any last-minute commits. After this point, nothing else is making it into this version. A minor release can be done later if something important is missed.Ensure that all tests pass locally on develop. Feature tests which are deferred to a future milestone should be marked with the
SkipTest
decorator.Regenerate the API documentation with
sphinx-apidoc -o docs/api/ pycalphad/
Resolve differences and commit the updated API documentation to the develop branch of the repository.
git push
and verify all tests pass on all CI services.Generate a list of commits since the last version with
git log --oneline --decorate --color 0.1^..origin/develop
Replace0.1
with the tag of the last public version.Condense the change list into something user-readable. Update and commit CHANGES.rst with the release date.
git checkout master
git merge develop
(merge commits unnecessary for now)git stash
git tag -s 0.2 master -m "Version 0.2"
Replace0.2
with the new version. pycalphad should be signed with GPG key 3E69 6F32 5089 C0B3 3332 7A2D 52E6 1AB5 47C3 FD9B. If you are using a hardware token on Linux, you may need tokillall -1 gpg-agent
for it to be detected.
git show 0.2
to ensure the correct commit was tagged and signed
git tag -v 0.2
to verify the GPG signature
git push origin master --tags
git stash pop
- The new version is tagged in the repository. Now the public package must be built and distributed.
rm -R dist/*
on Linux/OSX ordel dist/*
on WindowsWith the commit checked out which was tagged with the new version:
python setup.py sdist
Make sure that the script correctly detected the new version exactly and not a dirty / revised state of the repo.
Assuming a correctly configured .pypirc:
gpg --output dist/pycalphad-0.2.tar.gz.asc --armor --detach-sig dist/pycalphad-0.2.tar.gz
twine upload -r pypi -u rotis dist/*
Start with the commit checked out which was tagged with the new version.
- Generate the SHA256 hash of the build artifact (tarball) submitted to PyPI.
- Fork the conda-forge/pycalphad-feedstock repo.
- Update the version and sha256 strings in the recipe/meta.yaml file.
- Submit a pull request to the main pycalphad feedstock repo.
- Once the tests pass, merge the pull request.