debian-mirror-gitlab/doc/development/contributing/issue_workflow.md

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

147 lines
7.8 KiB
Markdown
Raw Normal View History

2021-01-03 14:25:43 +05:30
---
type: reference, dev
stage: none
group: Development
2022-11-25 23:54:43 +05:30
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
2021-01-03 14:25:43 +05:30
---
2019-12-04 20:38:33 +05:30
# Issues workflow
2018-11-20 20:47:30 +05:30
2023-04-23 21:23:45 +05:30
**Before you submit an issue, [search the issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues)**
for similar entries. Someone else might have already had the same bug or feature proposal.
2023-07-09 08:55:56 +05:30
If you find an existing issue, show your support with an emoji reaction and add your notes to the discussion.
2019-12-04 20:38:33 +05:30
2023-04-23 21:23:45 +05:30
To submit a bug:
2019-12-04 20:38:33 +05:30
2023-04-23 21:23:45 +05:30
- Use the ['Bug' issue template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Bug.md).
The text in the comments (`<!-- ... -->`) should help you with which information to include.
- To report a suspected security vulnerability, follow the
[disclosure process on the GitLab.com website](https://about.gitlab.com/security/disclosure/).
WARNING:
Do **not** create publicly viewable issues for suspected security vulnerabilities.
2019-12-04 20:38:33 +05:30
## Issue triaging
2020-04-22 19:07:51 +05:30
Our issue triage policies are [described in our handbook](https://about.gitlab.com/handbook/engineering/quality/issue-triage/).
2019-12-04 20:38:33 +05:30
You are very welcome to help the GitLab team triage issues.
2020-06-23 00:09:42 +05:30
We also organize [issue bash events](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/17815)
2019-12-04 20:38:33 +05:30
once every quarter.
The most important thing is making sure valid issues receive feedback from the
development team. Therefore the priority is mentioning developers that can help
on those issues. Please select someone with relevant experience from the
2019-12-21 20:55:43 +05:30
[GitLab team](https://about.gitlab.com/company/team/).
2021-11-11 11:23:49 +05:30
If there is nobody mentioned with that expertise, look in the commit history for
2019-12-04 20:38:33 +05:30
the affected files to find someone.
2022-06-21 17:19:12 +05:30
We also have triage automation in place, described [in our handbook](https://about.gitlab.com/handbook/engineering/quality/triage-operations/).
2019-12-04 20:38:33 +05:30
2023-05-27 22:25:52 +05:30
For information about which labels to apply to issues, see [Labels](../labels/index.md).
2018-11-20 20:47:30 +05:30
2018-12-05 23:21:45 +05:30
## Feature proposals
2018-11-20 20:47:30 +05:30
2020-04-08 14:13:33 +05:30
To create a feature proposal, open an issue on the
2020-06-23 00:09:42 +05:30
[issue tracker](https://gitlab.com/gitlab-org/gitlab/-/issues).
2018-11-20 20:47:30 +05:30
In order to help track the feature proposals, we have created a
2021-12-11 22:18:48 +05:30
[`~"type::feature"`](https://gitlab.com/gitlab-org/gitlab/-/issues?label_name=type::feature) label.
2021-11-18 22:05:49 +05:30
For the time being, users that are not members of the project cannot add labels.
You can instead ask one of the [core team](https://about.gitlab.com/community/core-team/)
2021-12-11 22:18:48 +05:30
members to add the label `~"type::feature"` to the issue or add the following
code snippet right after your description in a new line: `~"type::feature"`.
2018-11-20 20:47:30 +05:30
Please keep feature proposals as small and simple as possible, complex ones
might be edited to make them small and simple.
2021-11-18 22:05:49 +05:30
Please submit feature proposals using the ['Feature Proposal' issue template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md) provided on the issue tracker.
2018-11-20 20:47:30 +05:30
2021-11-18 22:05:49 +05:30
For changes to the user interface (UI), follow our [design and UI guidelines](design.md),
and include a visual example (screenshot, wireframe, or mockup). Such issues should
be given the `~UX"` label for the Product Design team to provide input and guidance.
You may need to ask one of the [core team](https://about.gitlab.com/community/core-team/)
members to add the label, if you do not have permissions to do it by yourself.
2018-11-20 20:47:30 +05:30
If you want to create something yourself, consider opening an issue first to
discuss whether it is interesting to include this in GitLab.
2018-12-05 23:21:45 +05:30
## Issue weight
2018-11-20 20:47:30 +05:30
Issue weight allows us to get an idea of the amount of work required to solve
one or multiple issues. This makes it possible to schedule work more accurately.
You are encouraged to set the weight of any issue. Following the guidelines
below will make it easy to manage this, without unnecessary overhead.
1. Set weight for any issue at the earliest possible convenience
1. If you don't agree with a set weight, discuss with other developers until
2019-07-07 11:18:12 +05:30
consensus is reached about the weight
2018-11-20 20:47:30 +05:30
1. Issue weights are an abstract measurement of complexity of the issue. Do not
2021-11-11 11:23:49 +05:30
relate issue weight directly to time. This is called [anchoring](https://en.wikipedia.org/wiki/Anchoring_(cognitive_bias))
2019-07-07 11:18:12 +05:30
and something you want to avoid.
2018-11-20 20:47:30 +05:30
1. Something that has a weight of 1 (or no weight) is really small and simple.
2019-07-07 11:18:12 +05:30
Something that is 9 is rewriting a large fundamental part of GitLab,
which might lead to many hard problems to solve. Changing some text in GitLab
is probably 1, adding a new Git Hook maybe 4 or 5, big features 7-9.
2018-11-20 20:47:30 +05:30
1. If something is very large, it should probably be split up in multiple
2022-11-25 23:54:43 +05:30
issues or chunks. You can not set the weight of a parent issue and set
2019-07-07 11:18:12 +05:30
weights to children issues.
2018-11-20 20:47:30 +05:30
2018-12-05 23:21:45 +05:30
## Regression issues
2018-11-20 20:47:30 +05:30
Every monthly release has a corresponding issue on the CE issue tracker to keep
track of functionality broken by that release and any fixes that need to be
2020-04-22 19:07:51 +05:30
included in a patch release (see
2020-06-23 00:09:42 +05:30
[8.3 Regressions](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/4127) as an example).
2018-11-20 20:47:30 +05:30
As outlined in the issue description, the intended workflow is to post one note
with a reference to an issue describing the regression, and then to update that
note with a reference to the merge request that fixes it as it becomes available.
If you're a contributor who doesn't have the required permissions to update
other users' notes, please post a new note with a reference to both the issue
and the merge request.
2020-04-22 19:07:51 +05:30
The release manager will
[update the notes](https://gitlab.com/gitlab-org/release-tools/blob/master/doc/pro-tips.md#update-the-regression-issue)
in the regression issue as fixes are addressed.
2018-11-20 20:47:30 +05:30
2018-12-13 13:39:08 +05:30
## Technical debt in follow-up issues
It's common to discover technical debt during development of a new feature. In
the spirit of "minimum viable change", resolution is often deferred to a
follow-up issue. However, this cannot be used as an excuse to merge poor-quality
code that would otherwise not pass review, or to overlook trivial matters that
2020-04-22 19:07:51 +05:30
don't deserve to be scheduled independently, and would be best resolved in the
2018-12-13 13:39:08 +05:30
original merge request - or not tracked at all!
The overheads of scheduling, and rate of change in the GitLab codebase, mean
that the cost of a trivial technical debt issue can quickly exceed the value of
tracking it. This generally means we should resolve these in the original merge
2022-11-25 23:54:43 +05:30
request - or not create a follow-up issue at all.
2018-12-13 13:39:08 +05:30
For example, a typo in a comment that is being copied between files is worth
fixing in the same MR, but not worth creating a follow-up issue for. Renaming a
method that is used in many places to make its intent slightly clearer may be
worth fixing, but it should not happen in the same MR, and is generally not
worth the overhead of having an issue of its own. These issues would invariably
2020-05-24 23:13:21 +05:30
be labeled `~P4 ~S4` if we were to create them.
2018-12-13 13:39:08 +05:30
More severe technical debt can have implications for development velocity. If
it isn't addressed in a timely manner, the codebase becomes needlessly difficult
to change, new features become difficult to add, and regressions abound.
Discoveries of this kind of technical debt should be treated seriously, and
while resolution in a follow-up issue may be appropriate, maintainers should
generally obtain a scheduling commitment from the author of the original MR, or
the engineering or product manager for the relevant area. This may take the form
of appropriate Priority / Severity labels on the issue, or an explicit milestone
and assignee.
The maintainer must always agree before an outstanding discussion is resolved in
this manner, and will be the one to create the issue. The title and description
should be of the same quality as those created
2023-05-27 22:25:52 +05:30
[in the usual manner](../labels/index.md#technical-and-ux-debt) - in particular, the issue title
2018-12-13 13:39:08 +05:30
**must not** begin with `Follow-up`! The creating maintainer should also expect
to be involved in some capacity when work begins on the follow-up issue.