diff options
Diffstat (limited to '.gitlab/issue_templates')
-rw-r--r-- | .gitlab/issue_templates/Feature Flag Roll Out.md | 8 | ||||
-rw-r--r-- | .gitlab/issue_templates/Feature proposal.md | 18 | ||||
-rw-r--r-- | .gitlab/issue_templates/Implementation.md | 62 | ||||
-rw-r--r-- | .gitlab/issue_templates/Security Release Tracking Issue.md | 2 | ||||
-rw-r--r-- | .gitlab/issue_templates/Snowplow event tracking.md | 42 | ||||
-rw-r--r-- | .gitlab/issue_templates/actionable_insight.md | 6 |
6 files changed, 125 insertions, 13 deletions
diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md index 69053b396a4..788b610a982 100644 --- a/.gitlab/issue_templates/Feature Flag Roll Out.md +++ b/.gitlab/issue_templates/Feature Flag Roll Out.md @@ -30,14 +30,14 @@ If applicable, any groups/projects that are happy to have this feature turned on ## Roll Out Steps -- [ ] Enable on staging +- [ ] Enable on staging (`/chatops run feature set feature_name true --staging`) - [ ] Test on staging - [ ] Ensure that documentation has been updated -- [ ] Enable on GitLab.com for individual groups/projects listed above and verify behaviour +- [ ] Enable on GitLab.com for individual groups/projects listed above and verify behaviour (`/chatops run feature set --project=gitlab-org/gitlab feature_name true`) - [ ] Coordinate a time to enable the flag with `#production` and `#g_delivery` on slack. - [ ] Announce on the issue an estimated time this will be enabled on GitLab.com -- [ ] Enable on GitLab.com by running chatops command in `#production` -- [ ] Cross post chatops slack command to `#support_gitlab-com` ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#where-to-run-commands)) and in your team channel +- [ ] Enable on GitLab.com by running chatops command in `#production` (`/chatops run feature set feature_name true`) +- [ ] Cross post chatops Slack command to `#support_gitlab-com` ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#where-to-run-commands)) and in your team channel - [ ] Announce on the issue that the flag has been enabled - [ ] Remove feature flag and add changelog entry - [ ] After the flag removal is deployed, [clean up the feature flag](https://docs.gitlab.com/ee/development/feature_flags/controls.html#cleaning-up) by running chatops command in `#production` channel diff --git a/.gitlab/issue_templates/Feature proposal.md b/.gitlab/issue_templates/Feature proposal.md index 0f19b7c75f5..c80305312c3 100644 --- a/.gitlab/issue_templates/Feature proposal.md +++ b/.gitlab/issue_templates/Feature proposal.md @@ -1,6 +1,6 @@ <!-- The first section "Release notes" is required if you want to have your release post blog MR auto generated. Currently in BETA, details on the **release post item generator** can be found in the handbook: https://about.gitlab.com/handbook/marketing/blog/release-posts/#release-post-item-generator and this video: https://www.youtube.com/watch?v=rfn9ebgTwKg. The next four sections: "Problem to solve", "Intended users", "User experience goal", and "Proposal", are strongly recommended in your first draft, while the rest of the sections can be filled out during the problem validation or breakdown phase. However, keep in mind that providing complete and relevant information early helps our product team validate the problem and start working on a solution. --> -### Release notes +### Release notes <!-- What is the problem and solution you're proposing? This content sets the overall vision for the feature and serves as the release notes that will populate in various places, including the [release post blog](https://about.gitlab.com/releases/categories/releases/) and [Gitlab project releases](https://gitlab.com/gitlab-org/gitlab/-/releases). " --> @@ -22,19 +22,19 @@ Personas are described at https://about.gitlab.com/handbook/marketing/product-ma * [Devon (DevOps Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#devon-devops-engineer) * [Sidney (Systems Administrator)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sidney-systems-administrator) * [Sam (Security Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sam-security-analyst) -* [Rachel (Release Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#rachel-release-manager) +* [Rachel (Release Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#rachel-release-manager) * [Alex (Security Operations Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#alex-security-operations-engineer) * [Simone (Software Engineer in Test)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#simone-software-engineer-in-test) -* [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops) +* [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops) * [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer) * [Dana (Data Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#dana-data-analyst) --> ### User experience goal -<!-- What is the single user experience workflow this problem addresses? +<!-- What is the single user experience workflow this problem addresses? For example, "The user should be able to use the UI/API/.gitlab-ci.yml with GitLab to <perform a specific task>" -https://about.gitlab.com/handbook/engineering/ux/ux-research-training/user-story-mapping/ --> +https://about.gitlab.com/handbook/engineering/ux/ux-research-training/user-story-mapping/ --> ### Proposal @@ -52,7 +52,7 @@ Consider adding checkboxes and expectations of users with certain levels of memb * [ ] Add expected impact to members with no access (0) * [ ] Add expected impact to Guest (10) members * [ ] Add expected impact to Reporter (20) members -* [ ] Add expected impact to Developer (30) members +* [ ] Add expected impact to Developer (30) members * [ ] Add expected impact to Maintainer (40) members * [ ] Add expected impact to Owner (50) members --> @@ -78,7 +78,11 @@ See the test engineering planning process and reach out to your counterpart Soft ### What does success look like, and how can we measure that? -<!-- Define both the success metrics and acceptance criteria. Note that success metrics indicate the desired business outcomes, while acceptance criteria indicate when the solution is working correctly. If there is no way to measure success, link to an issue that will implement a way to measure this. --> +<!-- +Define both the success metrics and acceptance criteria. Note that success metrics indicate the desired business outcomes, while acceptance criteria indicate when the solution is working correctly. If there is no way to measure success, link to an issue that will implement a way to measure this. + +Create tracking issue using the the Snowplow event tracking template. See https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Snowplow%20event%20tracking.md +--> ### What is the type of buyer? diff --git a/.gitlab/issue_templates/Implementation.md b/.gitlab/issue_templates/Implementation.md new file mode 100644 index 00000000000..dc5eb18a25e --- /dev/null +++ b/.gitlab/issue_templates/Implementation.md @@ -0,0 +1,62 @@ +<!-- +Implementation issues are used break-up a large piece of work into small, discrete tasks that can +move independently through the build workflow steps. They're typically used to populate a Feature +Epic. Once created, an implementation issue is usually refined in order to populate and review the +implementation plan and weight. +Example workflow: https://about.gitlab.com/handbook/engineering/development/threat-management/planning/diagram.html#plan +--> + +## Why are we doing this work +<!-- +A brief explanation of the why, not the what or how. Assume the reader doesn't know the +background and won't have time to dig-up information from comment threads. +--> + + +## Relevant links +<!-- +Information that the developer might need to refer to when implementing the issue. + +- [Design Issue](https://gitlab.com/gitlab-org/gitlab/-/issues/<id>) + - [Design 1](https://gitlab.com/gitlab-org/gitlab/-/issues/<id>/designs/<image>.png) + - [Design 2](https://gitlab.com/gitlab-org/gitlab/-/issues/<id>/designs/<image>.png) +- [Similar implementation](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/<id>) +--> + + +## Non-functional requirements +<!-- +Add details for required items and delete others. +--> + +- [ ] Documentation: +- [ ] Feature flag: +- [ ] Performance: +- [ ] Testing: + + +## Implementation plan +<!-- +Steps and the parts of the code that will need to get updated. The plan can also +call-out responsibilities for other team members or teams. +--> + +- [ ] ~frontend Step 1 + - [ ] @person Step 1a +- [ ] ~frontend Step 2 + + +<!-- +Workflow and other relevant labels + +~"group::" ~"Category:" ~"GitLab Ultimate" +--> +/label ~"workflow::refinement" + +<!-- +Other settings you might want to include when creating the issue. + +/milestone %"Next 1-3 releases" +/assign @ +/epic & +--> diff --git a/.gitlab/issue_templates/Security Release Tracking Issue.md b/.gitlab/issue_templates/Security Release Tracking Issue.md index d2de7462ecb..fce68d61204 100644 --- a/.gitlab/issue_templates/Security Release Tracking Issue.md +++ b/.gitlab/issue_templates/Security Release Tracking Issue.md @@ -31,7 +31,7 @@ Your Security Implementation Issue should have `4` merge requests associated: ## Blog post -Dev: {https://dev.gitlab.org/gitlab/www-gitlab-com/merge_requests/ link}<br/> +Security: {https://gitlab.com/gitlab-org/security/www-gitlab-com/merge_requests/ link}<br/> GitLab.com: {https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/ link} ## Email notification diff --git a/.gitlab/issue_templates/Snowplow event tracking.md b/.gitlab/issue_templates/Snowplow event tracking.md new file mode 100644 index 00000000000..71fa880e087 --- /dev/null +++ b/.gitlab/issue_templates/Snowplow event tracking.md @@ -0,0 +1,42 @@ +<!-- +* Use this issue template for creating requests to track snowplow events +* Snowplow events can be both Frontend (javascript) or Backend (Ruby) +* Snowplow is currently not used for self-hosted instances of GitLab - Self-hosted still rely on usage ping for product analytics - Snowplow is used for GitLab SaaS +* You do not need to create an issue to track generic front-end events, such as All page views, sessions, link clicks, some button clicks, etc. +* What you should capture are specific events with defined business logic. For example, when a user creates an incident by escalating an existing alert, or when a user creates and pushes up a new Node package to the NPM registry. +* For more details read https://about.gitlab.com/handbook/business-ops/data-team/programs/data-for-product-managers/ + --> + +<!-- +We generally recommend events be tracked using a [structured event](https://docs.snowplowanalytics.com/docs/understanding-tracking-design/out-of-the-box-vs-custom-events-and-entities/#structured-events) which has 5 properties you can use. There may be instances where structured events are not sufficient. You may want to track an event where the property changes frequently or is general something very unique. In those cases, use a [self-decribing event](https://docs.snowplowanalytics.com/docs/understanding-tracking-design/out-of-the-box-vs-custom-events-and-entities/#self-describing-events) + +--> + +## Structured Snowplow events to track + +* Category: The page or backend area of the application. Unless infeasible, please use the Rails page attribute by default in the frontend, and namespace + classname on the backend. If you're not sure what it is, work with your engineering manager to figure it out. +* Action: A string that is used to define the user action. The first word should always describe the action or aspect: clicks should be `click`, activations should be `activate`, creations should be `create`, etc. Use underscores to describe what was acted on; for example, activating a form field would be `activate_form_input`. An interface action like clicking on a dropdown would be `click_dropdown`, while a behavior like creating a project record from the backend would be `create_project` +* Label: Optional. The specific element, or object that's being acted on. This is either the label of the element (e.g. a tab labeled 'Create from template' may be `create_from_template`) or a unique identifier if no text is available (e.g. closing the Groups dropdown in the top navbar might be `groups_dropdown_close`), or it could be the name or title attribute of a record being created. +* Property: Optional. Any additional property of the element, or object being acted on. +* Value: Optional, numeric. Describes a numeric value or something directly related to the event. This could be the value of an input (e.g. `10` when clicking `internal` visibility) + +| Category | Action | Label | Property | Feature Issue | Additional Information | +| ------ | ------ | ------ | ------ | ------ | ------ | +| cell | cell | cell | cell | cell | cell | +| cell | cell | cell | cell | cell | cell | + +<!-- + Snowplow event tracking starts with instrumentation and completed after a chart is created in Sisense. + + Use this checklist to ensure all steps are completed +--> + +## Snowplow event tracking checklist +* [ ] Engineering complete work and deploy changes to GitLab SaaS +* [ ] Verify the new Snowplow events are listed in the [Snowplow Event Exploration](https://app.periscopedata.com/app/gitlab/539181/Snowplow-Event-Exploration---last-30-days) dashboard +* [ ] Create chart(s) to track your event(s) in the relevant dashboard + * [ ] Use the [Chart Snowplow Actions](https://app.periscopedata.com/app/gitlab/snippet/Chart-Snowplow-Actions/5546da87ae2c4a3fbc98415c88b3eedd/edit) SQL snippet to quickly visualize usage. See [example](https://app.periscopedata.com/app/gitlab/737489/Health-Group-Dashboard?widget=9797112&udv=0) + +<!-- Label reminders - you should have one of each of the following labels if you can figure out the correct ones --> +/label ~devops:: ~group: ~Category: +/label ~"snowplow tracking events" diff --git a/.gitlab/issue_templates/actionable_insight.md b/.gitlab/issue_templates/actionable_insight.md index 7c65388eff4..68b2b153831 100644 --- a/.gitlab/issue_templates/actionable_insight.md +++ b/.gitlab/issue_templates/actionable_insight.md @@ -1,5 +1,5 @@ ## Actionable Insights -Actionable insights always have a follow-up action that needs to take place as a result of the research observation or data, and a clear recommendation or action associated with it. An actionable insight both defines the insight and clearly calls out the next step. These insights are tracked over time. +Actionable insights always have a follow-up action that needs to take place as a result of the research observation or data, and a clear recommendation or action associated with it. An actionable insight both defines the insight and clearly calls out the next step. These insights are tracked over time and at the group level. #### Link @@ -10,6 +10,10 @@ Actionable insights always have a follow-up action that needs to take place as a - [ ] Assign this issue to the appropriate Product Manager, Product Designer, or UX Researcher +#### Group label + +- [ ] Add the appropriate `Group` (such as `~"group::source code"`) label to the issue. This is done to identify and track actionable insights at the group level. + #### Description - [ ] Provide some brief details on the actionable insight and the action to take |