Skip to content

Pydicom Release Checklist

Darcy Mason edited this page Jun 15, 2023 · 25 revisions

Release Checklist

Checklist template

Copy the following block into your release issue to get a clickable check list:

### Release check list ([more information](https://github.com/pydicom/pydicom/wiki/Pydicom-Release-Checklist))
- [ ] go through issues and close, assign to this version, or assign to future versions
- [ ] ensure deprecated classes, functions, etc. scheduled for removal have been removed
- [ ] update to newest DICOM standard, and update `__dicom_version__` in `pydicom/_version.py`
- [ ] go through PRs to see which can be pulled in before release
- [ ] update the version in `pydicom/_version.py` to release
- [ ] check in the changes and create a branch and a GitHub release
- [ ] Check in [Github Actions](https://github.com/pydicom/pydicom/actions) that the release workflow has completed
- [ ] get the new DOI at https://zenodo.org/account/settings/github/repository/pydicom/pydicom),
      and update the README.md in the release branch
- [ ] update documentation version on GitHub Pages
- [ ] update the version in `pydicom/_version.py` in master to next development version (major.minor.0.dev0),
      and update the DOI in the README.md
- [ ] merge auto-generated PR in conda-forge pydicom-feedstock.  You may have to clone the autotick-bot fork and update recipes/meta.yml, as per the message in the PR.
- [ ] announce on pydicom google group

Publish on Pypi (only use this if github actions workflow did not complete)

Preconditions

Make sure your ~/.pypirc file looks like this:

[distutils]
index-servers =
    pypi
    pypitest

[pypi]
username:<your username>
password:<your password>

[pypitest]
repository: https://test.pypi.org/legacy/
username:<your username>
password:<your password>

Make sure twine (at least version 1.11.0), setuptools (>= 38.6.0) and wheel (>= 0.31.0) are installed:

pip install -U twine
pip install -U setuptools
pip install -U wheel

Create a universal wheel package and a source package

python setup.py sdist bdist_wheel

Release on TestPypi

twine upload -r pypitest dist/*

Check that pydicom is now live on Test PyPi. In particular, try downloading the wheel package and install it in a new virtual environment via pip:

pip install --index-url https://test.pypi.org/simple/ pydicom

If the version is a pre-release version, also add --pre in the line above.

Check that all needed files are installed.

Release on PyPI

twine upload dist/*

Check again on PyPi.

Create a branch and a GitHub release

  • on the GitHub project page, create a release branch by clicking on the branch dropdown and typing the release version number (in the format #.#.#) into the text field
  • go to Draft a New Release
  • enter the tag version in the format v#.#.#, e.g. the version number with a prepended "v"
  • enter "pydicom vX.X.X" as the release title
  • add a short description for the release (you may edit this later!)
  • click "Publish release"

Update documentation version

The documentation version is updated by updating the link to the documentation:

git checkout gh-pages
cp -r dev major.minor  # major.minor represent a version of the release (1.0)
unlink stable          (Note: this doesn't work on Windows, use linux)
ln -s major.minor stable   (...including patch versions, to force rebuild with new index and to update online)
git add major.minor
git commit -am 'DOC new release major.minor [skip ci]'
git push origin gh-pages  (commits directly, no PR needed)

Update master version

  • on github, edit _version.py to version new major.minor.0.dev0
  • create pull request to update master