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 -f -H 'API Documentation' -o docs/api/ pycalphad/ pycalphad/tests 'pycalphad/core/*.pxd' 'pycalphad/core/*.so'
- 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 0.2 master -m "Version 0.2"
Replace0.2
with the new version.
git show 0.2
to ensure the correct commit was tagged.
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:
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 pycalphad version and sha256 strings in the
recipe/meta.yaml
file. - If any of the dependencies changed since the last release, make sure to update the
recipe/meta.yaml
file. - Submit a pull request to the main pycalphad feedstock repo.
- Once the tests pass, merge the pull request.