Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ADR to formally deprecate Spock versioning, formalize Semantic Versioning Use #866

Merged
6 changes: 4 additions & 2 deletions documents/adr/0002-git-release-version-strategy.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,12 @@
# 2. Release and Version Strategy Used for Github Tagging

Date: 2021-06-03
Date: 2021-10-07

## Status

Accepted
Deprecated

(**NOTE:** FedRAMP deprecated this ADR retroactively in favor of [ADR #10](./0010-semantic-versions-only.md). See ADR #10 for further details on the current version methodology as part of the FedRAMP Automation Team's release strategy.)

## Context

Expand Down
46 changes: 46 additions & 0 deletions documents/adr/0010-semantic-versions-only.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# 10. Replace Spock Versions with Semantic Versions in Release Strategy

Date: 2021-10-07

## Status

Accepted

## Context

In the past, the FedRAMP Automation Team implemented [the versioning methodology of the Spock Framework](https://spockframework.org/spock/docs/2.0/known_issues.html#_groovy_version_compatibility). Staff documented this versioning methodology in [ADR #2](https://github.com/GSA/fedramp-automation/blob/247f99a0e3a2cfa6b9e78dd7c18836cf008115b2/documents/adr/0002-git-release-version-strategy.md). In 2024, the FedRAMP Automation Team received significant positive feedback from the community to transition from this methodology to [Semantic Versioning](https://semver.org/) as part of its release strategy and updated [the automate.fedramp.gov website](https://automate.fedramp.gov/about/release/) accordingly. They also socialized with the community that the update page on the website, not the previous ADR and outdated developer documentation, is the canonical source for the release strategy and other documents.

This decision record is to document the following possible solutions and implications.

### Possible Solutions

Below is a list of possible versioning solutions that will or will not support this strategy.

1. Do nothing
1. Continue Spock Versioning and revert Semantic Versioning change
1. Continue Semantic Versioning change and completely deprecate Spock versioning

#### Do Nothing

If FedRAMP does nothing, the strategy and processes will stay as-is. The documentation about the release strategy and versioning methodology and the practice of using them in releases will contradict one another. Internal staff and external stakeholders will continue to receive conflicted guidance and releases. The misalignment may cause confusion about future releases. Despite less effort, it has significant downsides in risk when compared to Options 2 and 3.

#### Continue Spock Versioning and Revert Semantic Versioning Change

FedRAMP can change the developer documentation, standard operating procedures in the wiki, and the website to continue to use Spock versioning and revert the decision to use Semantic Versioning. This option would require similar effort to Option 3. However, this option will likely alienate community stakeholders receptive to the change.

#### Continue Semantic Versioning Change and Completely Deprecate Spock Versioning

FedRAMP can change the developer documentation, standard operating procedures in the wiki, and the website to finalize the removal of Spock versioning and fully commit to the decision to use Semantic Versioning. This option would require similar effort to Option 2 but with better community support for a popular transition that is not yet complete.

## Decision

FedRAMP has decided to move forward completely with the Semantic Versioning transition and completely deprecate the Spock versioning approach.

1. FedRAMP will use Semantic Versioning, as is the preference of the community.
2. The official, normative release guidance for FedRAMP Automation data, documentation, and tools is the [release guidance on automate.fedramp.gov](https://automate.fedramp.gov/about/release/), not developer documentation in this repository.

## Consequences

What becomes easier or more difficult to do because of this change?
aj-stein-gsa marked this conversation as resolved.
Show resolved Hide resolved
It will be easier for developers to automate handling version updates based on SemVer rules.
It will be easier for developers to automate handling version updates based on SemVer rules.