Release Workflow#

This page describes how to make releases of the software within the imap_processing and sds-data-manager repositories, and the steps needed to push said software to the production environment and update the data products.

Software Releases#

Any changes merged or pushed to the main branch should follow a specific release workflow which follows the diagram shown in the git & GitHub Workflow page. This includes both ‘nominal releases’ (i.e. new features being merged into main) and ‘hotfixes’ (i.e. bug fixes made directly to main). These workflows are described below. It is assumed that steps (1) through (4) in the git & GitHub Workflow are already completed.

Note: We use the ‘imap_processing’ repository as an example here, but this can be applied to ‘sds-data-manager’ as well.

Nominal releases#

  1. Make sure the dev branch is up-to-date with any changes you want included in the release (i.e. merge in any feature branches using the nominal git & GitHub Workflow).

  2. Create a new ‘release’ branch off of dev. The name of the branch should match the version number to be used for the release, which should follow the software versioning conventions.

  3. Make any release-specific commits to the new release branch using the nominal git add/git commit cycle. This may include commits that add release notes, or update version numbers in various configurations.

  4. Push the release branch to the main IMAP-Science-Operations-Center imap_processing repo (i.e. upstream).

  5. In GitHub, create two pull requests: one that merges the release branch into main, and one that merges the release branch into dev. Proceed with the nominal review & merge process described in steps (10) and (11) in the git & GitHub Workflow section.

  6. Once the changes are merged into the main branch, create a new release for the merge commit and assign the appropriate version number.

Making hotfixes#

Note: A hotfix should generally be avoided unless there is some specific reason to bypass the nominal ``dev`` branch workflow; for example, if a bug fix is very time critical.

  1. Create a new branch named hotfix-<description> off of the main branch, and commit any necessary changes following the nominal git add/git commit cycle.

  2. Push the hotfix branch to the main IMAP-Science-Operations-Center imap_processing repo (i.e. upstream), and open two separate pull requests: one that merges the hotfix branch into the main branch, and one that merges the hotfix branch into the dev branch.

  3. For each of these pull requests, proceed with the nominal review & merge process described in steps (10) and (11) in the git & GitHub Workflow.

  4. Once the changes are merged into the main branch, create a new release or a new tag for the merge commit and assign the appropriate version number.

Deployment#

Once a release is created in GitHub, a SDC dev team member can follow the CDK deployment steps to deploy the software to AWS. Once the software is deployed, a user should be able to call the APIs.