Skip to content

Release Prep

A.J. Stein edited this page Nov 15, 2024 · 12 revisions

Summary

This page is to instruct developers on how to use Github to build a release of FedRAMP artifacts for publication. This page documents standard operating procedures that conform with ADR 10 on the release strategy and versioning procedures, which obsoletes ADR 2. This wiki guide and checklist have been updated accordingly.

Common Scenarios

Publish a Release

  • Create a new milestone with Github by accessing github.com/GSA/fedramp-automation/milestones/new.
  • Review the relevant issues associated with the release and confirm work is complete and associated pull requests have been successfully merged. Link additional issues with work completed, but were not properly tracked against this milestone.
  • Determine the updated version number to create a release branch.
    • For significant changes ony applicable to GSA/fedramp-automation, and not sub-modules or transitive dependencies, that introduce major breaking changes, increment the major version number (i.e. x in x.y.z).
    • For changes only applicable to GSA/fedramp-automation, and not sub-modules or transitive dependencies, that introduce feature enhancements without major breaking changes, increment the minor version number (i.e. y in x.y.z).
    • For bug fixes to GSA/fedramp-automation, and not sub-modules or transitive dependencies, that fix bugs without any feature enhancement or breaking change, increment the patch version number (i.e. z in x.y.z).
  • Create a release branch from the code in the master branch on your developer workstation.
    • git clone [email protected]:GSA/fedramp-automation.git
    • git checkout -b release/v4.0.0 # follow the guidance above, this is a notional example
  • Review the code and CI/CD builds for accuracy and integrity.
  • Use Github to create a tag associated with this branch by accessing github.com/GSA/fedramp-automation/releases/new.
    • Set the target to the relevant branch.
    • Write a release summary.
    • Publish the release when it is ready for publication.
Clone this wiki locally