A core developer should use the following steps to create a release X.Y.Z of CastXML-python-distributions on PyPI.
This is usually done after :ref:`updating_castxml_version`.
- All CI tests are passing on AppVeyor, CircleCI and Travis CI.
- You have a GPG signing key.
The commands reported below should be evaluated in the same terminal session.
Commands to evaluate starts with a dollar sign. For example:
$ echo "Hello" Hello
means that echo "Hello" should be copied and evaluated in the terminal.
PyPI: Step-by-step
- Make sure that all CI tests are passing on AppVeyor, CircleCI and Travis CI.
- Download the latest sources
$ cd /tmp && \ git clone git@github.com:CastXML/CastXML-python-distributions CastXML-python-distributions-release && \ cd CastXML-python-distributions-release
- List all tags sorted by version
$ git fetch --tags && \ git tag -l | sort -V
- Choose the next release version number
$ release=X.Y.ZWarning
To ensure the packages are uploaded on PyPI, tags must match this regular expression:
^[0-9]+(\.[0-9]+)*(\.post[0-9]+)?$.
- In README.md, update PyPI download count after running
pypistats overall CastXMLand commit the changes.
$ git add README.rst && \ git commit -m "README: Update download stats"Note
To learn more about pypistats, see https://pypi.org/project/pypistats/
- Tag the release
$ git tag --sign -m "CastXML-python-distributions ${release}" ${release} masterWarning
We recommend using a GPG signing key to sign the tag.
- Publish the release tag
$ git push origin ${release}Note
This will trigger builds on each CI services and automatically upload the wheels and source distribution on PyPI.
- Check the status of the builds on AppVeyor, CircleCI and Travis CI.
- Once the builds are completed, check that the distributions are available on PyPI.
- Create a clean testing environment to test the installation
$ pushd $(mktemp -d) && \ mkvirtualenv CastXML-${release}-install-test && \ pip install CastXML && \ castxml --versionNote
If the
mkvirtualenvcommand is not available, this means you do not have virtualenvwrapper installed, in that case, you could either install it or directly use virtualenv or venv.
- Cleanup
$ popd && \
deactivate && \
rm -rf dist/* && \
rmvirtualenv CastXML-${release}-install-test
- Publish master branch
$ git push origin master