Pydicom Release Checklist
Darcy Mason edited this page Jun 15, 2023
·
25 revisions
- review issues and PRs for what should be included
- ensure deprecated classes, functions, etc. scheduled for removal have been removed
- update to newest DICOM standard, and the
__dicom_version__
inpydicom/_version.py
- create an issue for the release and copy the check list there
- 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 that the release workflow has completed
- if release workflow did not work, relaunch if possible, or see publish on PyPi to do it 'manually'
- check for 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
- 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.
- 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 - announce on pydicom google group
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
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
python setup.py sdist bdist_wheel
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.
twine upload dist/*
Check again on PyPi.
- 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"
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)
- on github, edit _version.py to version new major.minor.0.dev0
- create pull request to update master