[Feature Flag]: Enable Needs/DAG/Job dependencies view in Pipeline Graph
Feature
This feature uses the :pipeline_graph_layers_view
feature flag. It makes it possible to view jobs ordered by needs relationships and to see those links represented in the main pipeline graph.
See:
- Show DAG relationships in the pipeline graph
- Stage view in the pipeline graph
- Add drop-down between stage view and job dependencies view
- Job dependencies view in the pipeline graph
- When the new pipeline graph view rolls out, show a banner to notify users and gather feedback on the feature
- Toggle job dependency links on and off in Job Dependencies pipeline graph view
Owners
- Team: Verify:Pipeline Authoring
- Most appropriate slack channel to reach out to:
#g_ci-pa-engineering
- Best individual to reach out to: @sarahghp, @samdbeckham
The Rollout Plan
- Rollout to Gitlab and Gitlab UI projects (1 day, 4/22 or 4/23)
- Percentage Rollout on GitLab.com (over the course of 1-2 days if no issues, 4/23–4/27)
- Default on for all users (4/27 or 4/28, leave for 1 milestone)
- Remove flag entirely
Expectations
What are we expecting to happen?
We are expecting the segmented display and toggle to appear.
What might happen if this goes wrong?
The flag can be turned off. Since it's all frontend, it should not lose data. It's encapsulated such that the graph works with or without the controller.
What can we monitor to detect problems with this?
Sentry can be monitored (gitlab-clientside, then search for has:component
to get graph errors) as well as the pipeline_graph_link_calculation_duration_seconds
, pipeline_graph_links_total
, and pipeline_graph_links_per_job_ratio
performance metrics in Thanos.
Rollout Timeline
Initial Rollout
Preparation Phase
-
Enable on staging ( /chatops run feature set feature_name true --staging
) -
Test on staging
Partial Rollout Phase
-
Enable on GitLab.com for individual groups/projects listed above and verify behavior ( /chatops run feature set --project=gitlab-org/gitlab feature_name true
) -
If it is possible to perform an incremental rollout, this should be preferred. Proposed increments are: 10%
,50%
,100%
. Proposed minimum time between increments is 15 minutes.- When setting percentages, make sure that the feature works correctly between feature checks. See #327117 (closed) for more information
- For actor-based rollout:
/chatops run feature set feature_name 10 --actors
- For time-based rollout:
/chatops run feature set feature_name 10
-
Ensure that documentation has been updated (More info) -
Make the feature flag enabled by default i.e. Change default_enabled
totrue
-
Cross post chatops slack command to #support_gitlab-com
(more guidance when this is necessary in the dev docs) and in your team channel
Cleanup
This is an important phase, that should be either done in the next Milestone or as soon as possible. For the cleanup phase, please follow our documentation on how to clean up the feature flag.
-
Announce on the issue that the flag has been enabled -
Remove :feature_name
feature flag-
Remove all references to the feature flag from the codebase -
Remove the YAML definitions for the feature from the repository -
Create a Changelog Entry
-
-
Clean up the feature flag from all environments by running this chatops command in #production
channel/chatops run feature delete some_feature
.
Final Step
-
Close this rollout issue for the feature flag after the feature flag is removed from the codebase.
Rollback Steps
-
This feature can be disabled by running the following Chatops command:
/chatops run feature set --project=gitlab-org/gitlab feature_name false