GitLab Workflows and Merge Requests
Chris Johns
chrisj at rtems.org
Wed May 1 06:47:34 UTC 2024
Hi RTEMS Community.
This email explains the Workflows and Merge Requests.
GitLab is will be open and accounts can be created from 12PM EST / 5PM GM.
The workflow is based around issues and merge requests. We use project forks as
the base of our workflow and outside of that there is no workflow we mandate.
What works for one task or work package may not work for another. Complex tasks
may affect a number of our GitLab Projects with issues and merge requests in a
number of projects. You may want to use an Epic to bring work together.
RTEMS will only accept changes via a Merge Request. This allows us to use the
Gitlab review and approval support which provides an easily accessible record of
the issue, code changes, and the reviews.
Workflows
With our GitLab instance, you fork a repo into your personal workspace and use
that to manage your changes. RTEMS will only accept changes via a Merge Request.
This allows us to use the Gitlab review and approval support which provides an
easily accessible record of the issue, code changes, and the reviews.
Issues and Merge Requests
Most merge requests will have a ticket however it is not always required.
Discussions can happen in merge requests and for simple isolated changes this is
fine.
Please do not use merge requests to introduce new code, concepts, styles or to
change existing behaviours such as APIs or internal interfaces. Please create an
issue before you start the work so the community is aware of the changes coming.
The merge requests can then focus on the details of the implementation and
approval does not need to be about approval of change at a functional level.
Merge Requests
1. We will work with forks of a project as we do not allow pushes to project
repos. This means you need to keep your forked project up to date.
https://docs.gitlab.com/ee/user/project/merge_requests/authorization_for_merge_requests.html#forking-workflow
2. If you are part of a team working on a change you can collaborate on merge
requests
https://docs.gitlab.com/ee/user/project/merge_requests/allow_collaboration.html
3. You work on a fork of a project under your namespace, e.g. my user name is
chris and my namespace is https://gitlab.rtems.org/chris.
4. GitLab enforces branch naming rules and provides branch naming patterns to
help
https://docs.gitlab.com/ee/user/project/repository/branches/index.html#prefix-branch-names-with-issue-numbers
5. You can create a merge from your fork:
https://docs.gitlab.com/ee/user/project/merge_requests/creating_merge_requests.html#when-you-work-in-a-fork
6. We do not normally squash merge requests. A merge request with more than one
commit should be buildable at each commit so a bisect of main does not
break.
If you need help please join the #gitlab-support channel on our Discord server.
You can find our invite link here https://www.rtems.org/discord. We will also
respond to posts on this list when we have the time.
Regards
Chris Johns
RTEMS GitLab Team
More information about the users
mailing list