Skip to content

Developer Wiki

Sarthak Pati edited this page Nov 21, 2024 · 1 revision

Welcome to the GaNDLF Developer wiki!

Start

  • Full documentation: https://gandlf.org/
  • If you are moving from the older CBICA repository, please follow this guide to rebase your current fork.

New releases and making version updates

  1. The version file should have the latest development version information. As far as possible, GaNDLF follows Semantic Versioning.
  2. Update the version file to remove "-dev" from the __version__ variable, and change to whatever number the version needs to be tagged to.
  3. Create a new release of the main development branch using the new number referred to in the __version__ variable.
  • Choose a tag, which should be the same as the value of __version__ in the version.py file.
    • NOTE: Do NOT tag using git, and use this mechanism to ensure the CD scripts run properly for PyPi.
  • Give a meaningful title.
  • Use the option "Generate release notes" on GitHub.
  • Select appropriate options (usually, just Set as the latest release is fine).
  • Publish the release.
  1. Update the version.py file to add "-dev" in the __version__ variable, and increase the version number as appropriate. This will be used for nightly publishing of development builds. Ensure that the new version is also updated in all sample configurations and in the testing configurations so that unit tests will pass.
  • For simplicity, one can use the gandlf_updateVersion script.
  • Note that you should try to do the release and -dev version update on the same day, otherwise multiple versions with the "tag" with datestamp will get pushed to PyPi.
  1. The CD scripts for nightly and published should take care of pushing to PyPi.

Updating CI/CD tests

  1. All common installations are handled by a composite action in this file.
  2. For any changes to dependencies, please update the section "Install dependencies and package" in the above file.
  3. Depending on where new CI/CD tests need to be updated/added, please take a look at the other workflows.