|
| 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