Skip to content

Commit 1f61d53

Browse files
Robert Marshallbalasankarc
andcommitted
Merge branch 'docs-scoped-maintainership-build' into 'master'
Add doc about scoped maintainership for Build See merge request https://gitlab.com/gitlab-org/omnibus-gitlab/-/merge_requests/7246 Merged-by: Robert Marshall <[email protected]> Approved-by: Robert Marshall <[email protected]> Reviewed-by: Balasankar 'Balu' C <[email protected]> Reviewed-by: Robert Marshall <[email protected]> Co-authored-by: Balasankar "Balu" C <[email protected]>
2 parents 904a550 + 51dc295 commit 1f61d53

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

doc/development/maintainership.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
---
2+
stage: Systems
3+
group: Distribution
4+
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
5+
---
6+
7+
# Maintainership
8+
9+
## Scoped Maintainership
10+
11+
`omnibus-gitlab` is a comparatively complex project that handles both software
12+
builds and deployment.
13+
14+
The build aspect covers the build toolchain, CI infrastructure, and dependency
15+
management. The deployment aspect covers the installation and configuration of
16+
GitLab at the user site along with upgrade tasks.
17+
18+
Because the two aspects are very different both in nature and the technical
19+
stack involved, trainee-maintainers must spend a large amount of time to gain
20+
both sets of competencies. Scoped maintainership decreases the time required
21+
to onboard a new maintainer through separation of these core responsibilities.
22+
23+
### Build scope
24+
25+
The build scope covers all the parts of the codebase that build the artifacts
26+
used to ship Omnibus GitLab.
27+
28+
This includes:
29+
30+
1. Omnibus project configurations and component software definitions.
31+
1. Patches used in software definitions.
32+
1. Libraries and Rake tasks used for build, release, and other maintenance
33+
activities.
34+
1. CI configuration used for build, release, and other maintenance activities.
35+
1. Infrastructure management required for the above.
36+
37+
Ideally, a build-scoped maintainer of `omnibus-gitlab` should be
38+
well versed in all the above-mentioned topics. Several of these areas
39+
get infrequent updates, therefore it is not fair to expect trainee-maintainers
40+
to work on all of them. The following checklist provides a guideline to evaluate
41+
the progress of a trainee-maintainer in the build scope.
42+
43+
NOTE:
44+
We do not differentiate between the trainee-maintainer as the author
45+
or reviewer in this list because `omnibus-gitlab` is a relatively stable
46+
and mature project. The majority of merge requests follow established
47+
patterns and only need to pass a set of well known tests that prove
48+
the changes work as expected.
49+
50+
1. Author or review merge requests which update any 3 components from the list below that
51+
support high availability. The trainee-maintainer should gain familiarity with complex
52+
deployment scenarios and how to test them.
53+
54+
1. PostgreSQL
55+
1. Patroni
56+
1. PgBouncer
57+
1. Consul
58+
1. Redis
59+
1. Sentinel
60+
61+
1. Author or review a merge request which updates any of our "runtime" environments, preferably
62+
Ruby/Go. This ensures familiarity with the
63+
[Omnibus Builder](https://gitlab.com/gitlab-org/gitlab-omnibus-builder)
64+
project and how it relates to `omnibus-gitlab`.
65+
66+
1. Ruby
67+
1. Go
68+
1. Python
69+
70+
1. Author or review a Mattermost version update merge request. Ensures familiarity with its update
71+
process and Distribution team's communication process with the Mattermost team.
72+
73+
1. Author or review merge requests which update 5 other components.
74+
75+
1. Author or review 3 merge requests which modify CI configuration.
76+
77+
1. Author or review 3 merge requests which refactor build related code.
78+
79+
1. **OPTIONAL**: Author or review 1 merge request which modifies the `omnibus` project. This
80+
is an optional requirement , because updates to `omnibus` itself are
81+
comparatively rare. It is highly recommended that the Maintainers look through
82+
the commits we have [added on top of the upstream tag](https://gitlab.com/gitlab-org/omnibus/-/compare/9.0.19...9.0.19-stable).
83+
84+
### Deploy scope
85+
86+
TBA
87+
88+
### Architectural changes
89+
90+
Architectural changes to `omnibus-gitlab` project, as well as the `omnibus`
91+
project require sign-off from current full maintainers of the project.

0 commit comments

Comments
 (0)