Skip to content

Release Process

Tony Craig edited this page Jul 24, 2025 · 56 revisions

Overview of Release Process

  • Determine type of release, minor or major
  • Create release project at https://github.com/CICE-Consortium/CICE/projects and create list of potential release issues/tasks/PRs
    • Get work done
    • Update documentation including doc/source/intro/major_updates.rst (??)
  • When release is ready
    • Update/Verify version, copyright, documentation
    • Create pre-release candidate on Consortium Main and test
    • Copy release to branch and tag
    • Update version index table
      • Update release page based on tag
      • Verify documentation is created
      • Create zenodo page and link
      • Update test results for release tag
      • Verify science results (output) as needed
  • Update News
  • Send out release email


Detailed Template for CICE release (Icepack uses the same process)

  • Verify submodules are up to date, create a PR if not
  • Run Icepack interface documentation update, ./icepack.setup --docintfc
  • Remove extra spaces and tabs
  • Update version/release number/release date
    • run "cice.setup --version", then "cice.setup --setvers 6.0.2", then confirm with "cice.setup --version"
    • check release date in zenodo template
    • commit and create a PR
  • Review the zenodo.json template, test in sandbox.zenodo.org if it has changed since last release (see Testing zenodo)
  • Review Copyright and PR updates if needed (https://docs.google.com/document/d/1S6bdbJg4VpqkoO12p2Zap3JbLNnPHbSJhHWF4jwzwtQ) and check copyrights in code.
  • Verify that html and pdf documentation is generated fine on current main, commit/PR any fixes
  • Test release candidate on multiple platforms (after all PRs are complete)
  • Review and Update release notes,
  • In github, copy the release candidate to release branch and tag the release. Naming convention is CICEm.n.p. (This is done directly in the Consortium repo so be a little careful)
    • git clone https://github.com/cice-consortium/cice cice.602
    • cd cice.602
    • git tag CICE6.0.2 (or git tag CICE6.1.0) (tag before pulling onto the release branch)
    • git branch --list --all
    • checkout old branch and update OR create new branch
      • git checkout CICE6.0; git log (make sure you're pointing at the prior release); git pull origin main; git log OR
      • git branch CICE6.1; git checkout CICE6.1; git log
    • git status (should show nothing)
    • git push origin $branchname (CICE6.0 or CICE6.1 in this example)
    • git push origin $tagname (CICE6.0.2 or CICE6.1.0 in this example)
  • Update release table
    • edit Release Table
    • add new line for new tag, update all links, set zenodo to TBD
  • Update release notes.
    • Pushing the tag should create a draft release, click on the release link in the Release Table
    • Edit the release information
    • Copy the text from Recent Changes and publish
    • Update Recent Changes page, clear out all changes and reset the last release information
  • Verify the repo link in the Release Table
  • Verify the html and pdf links in the Release Table
    • If they don't exist, trigger readthedocs manually
      • login to readthedocs.org
      • click on "cice-consortium cice"
      • click on "Add Version"
      • search for version, click "Activate"
    • Wait a few minutes and verify the html and pdf links in Release Table
  • Update the tests link in the Release Table
    • Go to Test Results wiki page
    • Edit the main page and add a link to the new tag and save
    • Edit the sidebar and add a link to the new tag and save
    • Copy the current results
      • Click on "Main by hash", all of the test results for the release candidate should be there
      • Click on edit and copy the appropriate text, but don't edit the page
    • Go back to the Test Results page
    • Click on the new tag link to create a new page
    • Paste the results into this page and save
    • Continue to update the tag page as new test results for the release tag are produced
  • Verify the output link in the Release Table is working and pointing to reasonable data
  • Add the zenodo link
    • Create the zenodo page at zenodo
    • Edit the Release Table
    • Update the zenodo link
  • Update the News and Highlights page
  • Send out release email
s if needed

Template for zenodo software record

When a release is tagged, GitHub sends the information to zenodo, which assigns a DOI and creates a draft page for the release. The draft must be edited for correctness. The record will not appear on the CICE-Consortium community page until it has been edited. To find it, log in to zenodo.org and click on 'Upload'.

Another method is to Edit the previous release on Zenodo, deleting the previous file and uploading a new one (which creates a new DOI), and then update the entries as needed.

Template:

  • Filename(s) should already be populated
  • Communities: Add CICE-Consortium
  • Upload type should already be Software
  • DOI number should already be assigned
  • Publication date listed will be the date of the GitHub tag
  • Title will be the title assigned to the tag
  • Authors: 1st author Consortium Lead, remaining authors in alphabetical order. All people assigned to work on Consortium issues and code since the last release are Authors. Look at prior release for a starting list, and check PRs or Contributors under the Settings tab to find new additions.
  • Affiliations (cut and paste):
  • Los Alamos National Laboratory
  • Naval Research Laboratory Stennis Space Center
  • National Center for Atmospheric Research
  • Environment and Climate Change Canada
  • Danish Meteorological Institute
  • National Oceanographic and Atmospheric Administration
  • Geophysical Fluid Dynamics Laboratory
  • Institute of Oceanology, Polish Academy of Sciences
  • Edit description as needed
  • Edit version number
  • Language: English
  • Keywords: sea ice model, Icepack, CICE (as appropriate)
  • Access right: Open Access
  • License: Other (Open)
  • Save and Publish

Template for zenodo dataset record

When a new forcing dataset is created, we need to upload it manually to zenodo, which assigns a DOI. To upload a dataset, log in to zenodo.org and click on 'Upload'.

If a dataset is being modified, you can Edit the previous version on Zenodo or create a new version if an entirely new file needs to be uploaded.

Template:

  • Files: Need to drag and drop the file here and then click "Start upload" green button in the upper right corner. Maximum size is 50GB.

  • Communities: Add CICE-Consortium

  • Upload type should be Dataset

  • DOI number will be assigned

  • Publication date should match the date string on the file being uploaded.

  • Title will be descriptive followed by - YYYY.MM.DD that matches the date string on the file being uploaded (e.g. "Icepack Forcing Data - 2020.03.26").

  • Authors: CICE-Consortium

  • Affiliation: CICE-Consortium

  • Edit description with the following text block (change data name as appropriate)

    This file contains the DATA NAME forcing data for CICE. 

    The latest information about CICE forcing data and files can be found at the Resource Index under the "Input Data" link.

    These data are provided by the CICE Consortium (https://github.com/CICE-Consortium).

  • Edit version number: YYYY.MM.DD to match the date string on the file being uploaded.

  • Language: English

  • Keywords: sea ice model, Icepack, CICE (as appropriate)

  • Access right: Open Access

  • License: "Creative Commons Attribution 4.0 International"

  • Save and Publish


Testing zenodo.json Updates Prior to Release*

Zenodo information is saved in the .zenodo.json file that's in the main directory of Icepack and CICE. If these files have changed since the last release, they should be tested prior to the official release. This can be done by creating a fake tag and release in a fork and then the .zenodo.json file can be verified using sandbox.zenodo.org. This testing should NOT be done from the CICE-Consortium Repositories, use a private fork. We do not want to populate the CICE-Consortium repositories with fake releases. To test zenodo, do the following,

  • Logon to sandbox.zenodo.org with your github login
  • Click on My Account -> Github
  • Enable your repository, this is probably your personal fork of Icepack and/or CICE (ie. github_username/Icepack). We do NOT want to use the CICE-Consortium repositories for this testing
  • Got to github, create a release tag in the repository
    • Go to your fork/repository (ie. https://github.com/github_username/Icepack)
    • Click on "Create a new release" under Releases on the right hand side
    • In "Select tag", create a new tag like "zenodotest01" and hit "create new tag" in that box.
    • In the "Target" window, point to the branch of interest
    • Add a title and some cursory release notes
    • Click the "Set as a pre-release" box. This is not important but just marks the release in your github fork at pre-release.
    • Click "Publish Release"
  • Go back to sandbox.zenodo.org. The fake DOIs should be visible in your "dashboard". If the DOIs were not generated, there should be some error messages somewhere. Fix the .zenodo.json file and test again with a new fake release.
  • Notes
    • Make sure you are testing a branch with the latest .zenodo.json file
    • After everything is reviewed and working, you can delete the tag/release in your fork
Clone this wiki locally