All pages
Powered by GitBook
1 of 4

Loading...

Loading...

Loading...

Loading...

Developer guide

The following section provides information to developers that want to contribute to the DCMQI development.

Add new attribute to the schema

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

Update Appveyor build dependencies

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.

Updating DCMTK and ITK packages

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:

  1. Check out the version of DCMTK that needs to be used

  2. Rebase the dcmqi branch of dcmtk-dcmqi to the new version.

  3. 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)

Appveyor build will be triggered automatically, and barring any build issues a new release will be uploaded to .

The URL corresponding to DCMTK-dcmqi.zip in the release should then be used to first update , which should result in re-generated ITK-dcmqi package under ITK-dcmqi releases in . At that time, URLs for both ITK-dcmqi and DCMTK-dcmqi packages should be updated in the dcmqi appveyor script file: .

Push the updated dcmqi branch to QIICR/dcmtk-dcmqi

https://github.com/QIICR/dcmtk-dcmqi/releases
https://github.com/QIICR/ITK-dcmqi/blob/dcmqi/appveyor.yml
https://github.com/QIICR/ITK-dcmqi/releases
https://github.com/QIICR/dcmqi/blob/master/appveyor.yml

Github release generation

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.

  1. Check that tests pass on all platforms

  2. Edit CMakeLists.txt and update DCMQI_VERSION_* variables, update README.md file to point to the updated version number for the Docker image.

  3. Commit changes using message like cmake: Set DCMQI version to 1.0.7

  4. Create corresponding tag:

  5. Push tag and master (in that order) to trigger the release build and upload

  6. Once new packages are generated, update documentation section to point to the new package.

Under the hood ...

dcmqi is using publish_github_release from to upload and manage releases from CI to GitHub.

of the scikit-ci-addons documentation describes how to troubleshoot issues related to this mechanism.

Quick Start
scikit-ci-addons
This section
git tag -s -m "vX.Y.Z" vX.Y.Z master
git push origin vX.Y.Z
git push origin master