Trainee FE maintainer (gitlab-ui) - Florie Guibert
Intro
I know there currently isn't a separate process to become a gitlab-ui maintainer, but I'd like to consider this a stepping stone into becoming a maintainer for GitLab project. GitLab UI is a project I care a lot about, and I'd like to get more involved with it. The first time I took a look at it, during my first week at GitLab, I could see how much potential this project has. I knew it could make a big difference for engineer's quality and comfort of contributing to GitLab and I immediately wanted to get involved. Becoming a maintainer of a smaller project like gitlab-ui makes sense to me right now. I've also been involved quite early on in integrating gitlab-ui component into GitLab (more details below).
As a contributor
I've been helping with bug fixes and introducing small changes that would be useful in GitLab (mostly labels related - more details just below)
Description | Link |
---|---|
Add gl-sticky utility class | gitlab-org/gitlab-ui!1558 (merged) |
Clean up scopedLabelsDocumentationLink | gitlab-org/gitlab-ui!1615 (merged) |
Expand values for z-index utility classes | gitlab-org/gitlab-ui!1586 (merged) |
Fix dark theme scoped labels | gitlab-org/gitlab-ui!1639 (merged) |
Double .gl-button class to avoid style leaks | gitlab-org/gitlab-ui!1487 (merged) |
Update link text color in alert warning | gitlab-org/gitlab-ui!1224 (merged) |
Ellipsis support for label | gitlab-org/gitlab-ui!1074 (merged) |
Style fix for labels without link | gitlab-org/gitlab-ui!1121 (merged) |
Support scoped label with multiple :: | gitlab-org/gitlab-ui!1117 (merged) |
Add title to scoped label tooltip | gitlab-org/gitlab-ui!1103 (merged) |
Rename .gl-label-text-black to .gl-label-text-dark for label | gitlab-org/gitlab-ui!1069 (merged) |
Add isScoped prop on GlLabel component | gitlab-org/gitlab-ui!1068 (merged) |
Tooltip on Label for gitlab | gitlab-org/gitlab-ui!1017 (merged) |
Introduce Cypress for end to end testing | gitlab-org/gitlab-ui!2083 (merged) |
The most significant work I've done which I think is relevant actually happened in GitLab project. GlLabel was the first gitlab-ui component to be fully used across GitLab and it was a pretty significant refactor. I've also contributed docs to the gitlab-ui project to help with future integrations of more components: gitlab-org/gitlab-ui!1455 (merged).
Description | Link |
---|---|
Update labels on sidebar update with gitlab-ui css classes | gitlab-org/gitlab!22071 (merged) |
Replace labels in Vue with gitlab-ui component | gitlab-org/gitlab!21465 (merged) |
Replace labels in HAML with gitlab-ui CSS | gitlab-org/gitlab!21377 (merged) |
As a reviewer
Description | Link |
---|---|
Added close option for label | gitlab-org/gitlab-ui!1407 (merged) |
Use 16px for icons in small button | gitlab-org/gitlab-ui!1597 (merged) |
Update GlRadio and GlCheck Groups | gitlab-org/gitlab-ui!1474 (merged) |
Make dark scoped label text compatible with dark theme | gitlab-org/gitlab-ui!1402 (merged) |
Add slot for custom input on datepicker | gitlab-org/gitlab-ui!1329 (merged) |
Add AnimatedNumber component | gitlab-org/gitlab-ui!2142 (merged) |
Trainee template
Basic setup
-
Read the code review page in the handbook and the code review guidelines. -
Understand how to become a maintainer and add yourself as a trainee maintainer on the team page.
Working towards becoming a maintainer
These are only guidelines. Remember that there is no specific timeline on this.
As part of your journey towards becoming a maintainer, you may find it useful to:
-
Act as a coach in a big deliverable that requires following the planning step as part of the trainee program. -
Shadow a maintainer while they review an MR. This will allow you to get insight into the thought processes involved. -
Have a maintainer shadow you while you review an MR as if you were a maintainer . Ideally, this would be with a different maintainer to the above, so you can get different insights.
It is up to you to ensure that you are getting enough MRs to review, and of varied types. All engineers are reviewers, so you should already be receiving regular reviews from Reviewer Roulette. You could also seek out more reviews from your team, or #frontend Slack channels.
Your reviews should aim to cover maintainer responsibilities as well as reviewer responsibilities. Your approval means you think it is ready to merge.
After each MR is merged or closed, add a discussion to this issue using this template:
### (Merge request title): (Merge request URL)
During review:
- (List anything of note, or a quick summary. "I suggested/identified/noted...")
Post-review:
- (List anything of note, or a quick summary. "I missed..." or "Merged as-is")
(Maintainer who reviewed this merge request) Please add feedback, and compare
this review to the average maintainer review.
Note: Do not include reviews of security MRs because review feedback might reveal security issue details.
Code Review Pairing
Much like pair programming, pairing on code review is a great way to knowledge share and collaborate on merge request. This is a great activity for trainee maintainers to participate with maintainers for learning their process of code review.
A private code review session (unrecorded) involves one primary reviewer, and a shadow. If more than one shadow wishes to observe a private session, please consider obtaining consent from the merge request author.
A public code review session involves a primary reviewer and one or more shadows in a recorded session that is released publicly, for example to GitLab Unfiltered.
- If the merge request author is a GitLab team member, please consider obtaining consent from them.
- If the merge request author is a community contributor, you must obtain consent from them.
- Do not release reviews of security merge requests publicly.
When you're ready to make it official
When reviews have accumulated, and recent reviews consistently fulfill maintainer responsibilities, any maintainer can take the next step. The trainee should also feel free to discuss their progress with their manager or any maintainer at any time.
-
Create a merge request for team page proposing yourself as a maintainer. -
Keep reviewing, start merging 🤘