Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gitlab-ce
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
gitlab-ce
Commits
e368331a
Commit
e368331a
authored
Dec 19, 2019
by
Jan Provaznik
Committed by
Russell Dickenson
Dec 19, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add Issue Type documentation
* basic draft about usage of issue types
parent
00d379cd
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
46 additions
and
0 deletions
+46
-0
doc/development/README.md
doc/development/README.md
+1
-0
doc/development/issue_types.md
doc/development/issue_types.md
+45
-0
No files found.
doc/development/README.md
View file @
e368331a
...
...
@@ -71,6 +71,7 @@ description: 'Learn how to contribute to GitLab.'
-
[
Auto DevOps development guide
](
auto_devops.md
)
-
[
Mass Inserting Models
](
mass_insert.md
)
-
[
Cycle Analytics development guide
](
cycle_analytics.md
)
-
[
Issue types vs first-class types
](
issue_types.md
)
## Performance guides
...
...
doc/development/issue_types.md
0 → 100644
View file @
e368331a
# Issue Types
Sometimes when a new resource type is added it's not clear if it should be only an
"extension" of Issue (Issue Type) or if it should be a new first-class resource type
(similar to Issue, Epic, Merge Request, Snippet).
The idea of Issue Types was first proposed in
[
this
issue
](
https://gitlab.com/gitlab-org/gitlab/issues/8767
)
and its usage was
discussed few times since then, for example in
[
incident
management
](
https://gitlab.com/gitlab-org/gitlab-foss/issues/55532
)
.
## What is an Issue Type
Issue Type is a resource type which extends the existing Issue type and can be
used anywhere where Issue is used - for example when listing or searching
issues or when linking objects of the type from Epics. It should use the same
`issues`
table, additional fields can be stored in a separate table.
## When an Issue Type should be used
-
When the new type only adds new fields to the basic Issue type without
removing existing fields (but it's OK if some fields from the basic Issue
type are hidden in user interface/API).
-
When the new type can be used anywhere where the basic Issue type is used.
## When a first-class resource type should be used
-
When a separate model and table is used for the new resource.
-
When some fields of the basic Issue type need to be removed - hiding in the UI
is OK, but not complete removal.
-
When the new resource cannot be used instead of the basic Issue type,
for example:
-
You can't add it to an epic.
-
You can't close it from a commit or a merge request.
-
You can't mark it as related to another issue.
If an Issue type can not be used you can still define a first-class type and
then include concerns such as
`Issuable`
or
`Noteable`
to reuse functionality
which is common for all our issue-related resources. But you still need to
define the interface for working with the new resource and update some other
components to make them work with the new type.
Usage of the Issue type limits what fields, functionality, or both is available
for the type. However, this functionality is provided by default.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment