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