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

Version and release strategy #180

Closed
thekaveman opened this issue Nov 11, 2021 · 4 comments
Closed

Version and release strategy #180

thekaveman opened this issue Nov 11, 2021 · 4 comments
Labels
epic Issues that document a large set of features and/or decisions
Milestone

Comments

@thekaveman
Copy link
Member

thekaveman commented Nov 11, 2021

Since we're getting close to being live, now is a good time to implement a versioning and release strategy. This will help us talk about development and the application itself in more real terms like "These features are part of version XYZ".

Related Background

Proposal

A very rough outline of a process could look like:

  1. Merge to prod to kick off a deploy to AWS, like now
  2. After ^ deploy succeeds, increment the version number/tag using reecetech/version-increment
  3. Push the new version number/tag
  4. Make a new Release with the version number using softprops/action-gh-release (separate workflow runs when new tag shows up in GitHub)

Questions

  1. Should we include a v prefix in the version numbers? Our consensus was no, and reecetech/version-increment doesn't support this anyway. See Support "v" prefix in incremented version reecetech/version-increment#8 for more.
  2. Traditional semver scheme MAJOR.MINOR.PATCH, or alternatively, "calver" scheme YEAR.MONTH.RELEASE where RELEASE is the Nth release that month. Both are supported by reecetech/version-increment.

For versioning scheme, I kind of like calver for this application, given the other reporting requirements etc. that are monthly or month-based.

@thekaveman
Copy link
Member Author

thekaveman commented Dec 7, 2021

We've decided on using the calver scheme for all the Benefits related repositories.

  • Our version numbers will look like YYYY.MM.RR, where YYYY is the year of the release, MM is the month and RR is the release number for that month
  • We'll start our release numbers at 0 1 for each month
  • We'll tag the prod branch for all releases

So the first tagged version will be 2021.12.0

@thekaveman
Copy link
Member Author

In the proposal above, we'll keep 1-3 manual steps for now.

Step 4 could be interesting if we can integrate with a Conventional Commits based release notes generator.

@angela-tran
Copy link
Member

If we were to use version-increment, we would want to be able to configure the branch to use as the "normal release" branch. We'd also want to be able to have the leading zero for the MONTH part.

@machikoyasuda machikoyasuda added the epic Issues that document a large set of features and/or decisions label Dec 7, 2021
@thekaveman thekaveman modified the milestones: December 2021, January 2022 Jan 4, 2022
@thekaveman
Copy link
Member Author

We're going to start the version counter at 1 instead of 0 as this is a little more human-readable and non-technical.

@thekaveman thekaveman moved this from Backlog to Done in Benefits 2021 Jan 4, 2022
@thekaveman thekaveman modified the milestones: January 2022, December 2021 Jan 4, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic Issues that document a large set of features and/or decisions
Projects
No open projects
Benefits 2021
  
Done
Development

No branches or pull requests

3 participants