dcmqi
is using pre-built binaries of ITK and DCMTK for Appveyor to reduce the overall build time of the library.
Every time the release of DCMTK/ITK needs to be updated, it is important to re-generate these binaries, otherwise Appveyor build will fail when there are API changes.
The modified version of DCMTK is located in the dcmqi branch of the dcmtk-dcmqi repository. The only difference from the stock DCMTK source code is the appveyor.yml
file. Thus, the steps are the following:
Check out the version of DCMTK that needs to be used
Rebase the dcmqi branch of dcmtk-dcmqi to the new version.
Update the name of the package to reflect the version and date of the DCMTK package to be created (deploy/release
section of the appveyor.yml
)
Push the updated dcmqi branch to QIICR/dcmtk-dcmqi
Appveyor build will be triggered automatically, and barring any build issues a new release will be uploaded to https://github.com/QIICR/dcmtk-dcmqi/releases.
The URL corresponding to DCMTK-dcmqi.zip in the release should then be used to first update https://github.com/QIICR/ITK-dcmqi/blob/dcmqi/appveyor.yml, which should result in re-generated ITK-dcmqi package under ITK-dcmqi releases in https://github.com/QIICR/ITK-dcmqi/releases. At that time, URLs for both ITK-dcmqi and DCMTK-dcmqi packages should be updated in the dcmqi
appveyor script file: https://github.com/QIICR/dcmqi/blob/master/appveyor.yml.
With the current architecture, it is not straightforward to add a new attribute to the schema, since numerous locations need to be updated. It might be most efficient to use past pull requests adding specific attributes as a guide. The following examples might be useful:
add SegmentLabel
to DICOM SEG: https://github.com/QIICR/dcmqi/pull/376
To generate a release, you will need to set up GPG keys on your platform to sign the commits. You can follow these GitHub instructions to complete that step.
Check that tests pass on all platforms
Edit CMakeLists.txt
and update DCMQI_VERSION_*
variables, update README.md
file to point to the updated version number for the Docker image.
Commit changes using message like cmake: Set DCMQI version to 1.0.7
Create corresponding tag:
Push tag and master (in that order) to trigger the release build and upload
Once new packages are generated, update documentation Quick Start section to point to the new package.
dcmqi
is using publish_github_release
from scikit-ci-addons to upload and manage releases from CI to GitHub.
This section of the scikit-ci-addons
documentation describes how to troubleshoot issues related to this mechanism.
The following section provides information to developers that want to contribute to the DCMQI development.