Analysis: Increase transparency on the monthly release preparation
Context
gitlab-com/gl-infra/software-delivery&1 (closed) proposes to move the active stable branch generation one week earlier in the release schedule to allow for thorough testing and timely backports. This will increase the quality, safety, and reliability of the monthly release while enabling a better developer experience and confidence.
Problem
Currently, it is hard for engineers to figure out if a code change was included in the monthly release:
- There is no single source of truth process to check if a merge request makes it into the cut
- In the current monthly setup, multiple Slack announcements are made throughout the monthly run-up to highlight the 'minimum commit' and the 'candidate commit'; however, the meaning of those concepts is hard to grasp for folks outside Delivery.
- During the run-up for the release, engineers make a last-minute request to release managers to include a change.
- Release managers often get the question of when the 'cut-off' date is.
Changing the monthly release process will likely increase the confusion engineers have around monthly release dates.
Discussion: How to increase transparency about the changes included in a monthly release?
Engineers require transparency on the monthly release preparation, particularly a date for each monthly release that guarantees inclusion. There are several angles to transparency: tooling, documentation, and awareness.
Tooling
Multiple tools are available to verify if a merge request will be included in the monthly release:
- Labels on the merge request indicating inclusion
- Merge request widget:
-
ChatOps command
/chatops run release check <mr_link> <release_version>
The above tooling is documented in different places (handbook, release/docs repo). This is a suboptimal experience; it makes it difficult for engineers to find the documentation. Likely, this tooling should be listed and explained in a single section in the Release handbook.
On the other side, the Release dashboard reflects monthly and patch release due dates. However, it states a Release date, not a due date for changes to be included in the monthly or patch.
Documentation
The handbook offers a quick summary
- Monthly release timelines
- How can I determine if my merge request will make it into the monthly release
The documentation could use a revamp to link all the available tooling and explain the timelines
Awareness
Once the tooling has been updated and the documentation has been revamped, engineers need to be aware of these changes. This will be part of the rollout of the early branch and the maintenance policy. A LevelUp training will increase and measure engagement.
Exit criteria
Documentation
-
Have a section in the handbook that details all the ways to check if a merge request made it into the monthly #21315 (closed) -
Update monthly release documentation on the handbook #21122 -
Add documentation on how to backport bug fixes to the ongoing stable branch #21121
Tooling
-
Ensure the release checkcommand is reliable #21314 (closed) -
Improve the understandability of the release dashboard #21096 (closed) -
Automatic Slack response https://gitlab.com/gitlab-com/gl-infra/delivery/-/issues/21316 -
Follow-up: Create a release calendar #21317
Awareness
-
Prepare a LevelUp training to broadcast and guarantee that engineers have taken. #21252

