When releasing a new version of pycalphad:
All pull requests / issues tagged with the upcoming version milestone should be resolved or deferred.
Check Travis-CI and ensure that all tests pass on master. 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 master branch of the repository.
Generate a list of commits since the last version with
git log --oneline --decorate --color 0.1^..origin/master
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.
If you have Sphinx installed in a virtualenv with pycalphad, change to the docs directory. Run
sphinx-build -b html . _build/html
to do a spot check on the docs before pushing.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.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 0161A98D. 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 signedgit tag -v 0.2
to verify the GPG signaturegit push origin master --tags
git stash pop
10.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 bdist_wheel
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 --sign -u rotis -i 0161A98D dist/*
Start with the commit checked out which was tagged with the new version.
rm /home/rotis/anaconda/conda-bld/linux-64/pycalphad-*.tar.bz2
on Linux/OSX (usedel
and correct path on Windows)rm -R dist/*
on Linux/OSX ordel dist/*
on Windowsconda build --python 2.7 conda_recipe/
conda build --python 3.3 conda_recipe/
conda build --python 3.4 conda_recipe/
conda build --python 3.5 conda_recipe/
conda convert --platform all /home/rotis/anaconda/conda-bld/linux-64/pycalphad-*.tar.bz2 -o ./dist
anaconda upload -u richardotis dist/*/*