Monthly Release Kickoff alternatives
Monthly release kickoff videos/stream has been deprecated. What are the alternatives, their current state, and what would we need to do to meet the needs of the readers?
Reader personas
There are various audiences that may want to know what is coming up in the next release, including:
- Executive (e-group) members: want an overview of progress for planned Tier 1/2 features.
- Note: Likely out of scope of this issue.
- Sales team members: can report to their customers or prospects if there's an upcoming feature that's related to what they're looking for.
- Product & Engineering division team members: to see what other product groups may be working on that ties in with their own groups.
- Users: to see what is upcoming.
Option 1: Planning issues
One option is to use planning issues. 17.10 example: https://gitlab.com/groups/gitlab-org/-/issues/?sort=closed_at_desc&state=opened&or%5Blabel_name%5D%5B%5D=Planning%20Issue&or%5Blabel_name%5D%5B%5D=Milestone%20Planning&milestone_title=17.10&first_page_size=100
Challenges in using this option:
- Lengthy, unorganized list (not group by section/stage)
- Issue formats are inconsistent
- Lists inside of issues are often for planning purposes, but don't necessarily reflect what is planned for the milestone.
Advantages:
- Complete. Not manually created, so should be a full list.
Option 2: Upcoming releases page
Use https://about.gitlab.com/upcoming-releases/
From 2024-08 to 2025-01, the page was viewed 1300-1750 times per month. For details see https://gitlab.com/gitlab-com/marketing/marketing-strategy-performance/-/issues/2147#note_2354520115
Relevant code
The page is generated using: https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/generators/direction.rb
The list of stages are defined within the direction file: https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/generators/direction.rb#L249
The generator is "called" in the config: https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/sites/uncategorized/config.rb#L222
How the page is populated
The direction generator pulls a list of issues and epics using the GitLab API.
Criteria:
- Is either an Epic or an Issue (other item types not included)
- Has direction label.
- Is open.
- Issues: Has a future milestone.
- Epics: Has a due date within the milestone.
Challenges and Advantages
Challenges:
- Requires consistent usage of specified labels.
- Requires manual updates:
2.
stages.ymlstage names. 3. List of stages and labels in direction. 4. Labels ingitlab-orgproject to match. - Currently, not documented.
- May be difficult to update stages (such as renaming a stage). For example, expects
/directionpage.
Advantages:
- Automatically generated from issues/epics that meet the criteria.
- Already configured.
Possible improvements
If we go with this option, some possible improvements.
-
Update the upcoming releases page to use display names instead of key values: www-gitlab-com!138248 (merged) -
Make headings linkable. www-gitlab-com!139121 (merged) -
Have stages automatically pulled from stages.ymlinstead of a manual list. www-gitlab-com!139261 (merged) -
Filter milestones further to only display releases (example: remove Git x.x.xmilestones) www-gitlab-com!139121 (merged)
Option 3: GLQL generated issue description
Investigate using GLQL to create tables of issues/epics.
Challenges:
- Requires consistent usage of specified labels.
- Feature in Experiment status. And does not support epics at this time.
- Requires work to "design" what it would look like, and code to automate the process.
- Needs further coding to pull list of stages/groups from YAML files, or manually keep a separate list.
Advantages:
- Dogfooding Plan feature.
- Easier to create and modify tables.
Example 1
A table for each quarter and organized by interlock priority.
FY26-Q1 P1
display: table
fields: title, assignee, due, closed, label
query: group = "gitlab-org" AND type = Epic AND label = (~"FY26::Q1", ~"Interlock Priority::P1")
FY26-Q1 E1
display: table
fields: title, assignee, due, closed, label
query: group = "gitlab-org" AND type = Epic AND label = (~"FY26::Q1") AND label in (~"Interlock Priority::E1")
FY26-Q1 P2
display: table
fields: title, assignee, due, closed, label
query: group = "gitlab-org" AND type = Epic AND label = (~"FY26::Q1", ~"Interlock Priority::P2")
FY26-Q1 E2
display: table
fields: title, assignee, due, closed, label
query: group = "gitlab-org" AND type = Epic AND label = (~"FY26::Q1") AND label in (~"Interlock Priority::E2")
FY26-Q1 P3
display: table
fields: title, assignee, due, closed, label
query: group = "gitlab-org" AND type = Epic AND label = (~"FY26::Q1", ~"Interlock Priority::P3")
FY26-Q1 E3
display: table
fields: title, assignee, due, closed, label
query: group = "gitlab-org" AND type = Epic AND label = (~"FY26::Q1") AND label in (~"Interlock Priority::E3")
Example 2
The idea is to have a table for each group in the current milestone, grouped by section and stage.
All Deliverable issues for %17.10
Example
Section sectionsec
Stage devopsapplication security testing
[groups go here]
Stage devopssoftware supply chain security
Group groupauthentication
display: table
fields: title, state, health, epic, weight, updated
query: project = "gitlab-org/gitlab" AND milestone = %17.10 AND label = (~Deliverable, ~"group::authentication")
Group groupauthorization
display: table
fields: title, state, health, epic, weight, updated
query: project = "gitlab-org/gitlab" AND milestone = %17.10 AND label = (~Deliverable, ~"group::authorization")
Recommendation
- Short term: Use upcoming release page.
- Long term: Work with the GLQL group to understand how best to implement what's needed.