RTEMS Project Repos in GitLab

Chris Johns chrisj at rtems.org
Wed May 1 06:46:26 UTC 2024


Hi RTEMS Community.

This email explains the RTEMS Project and Repos in GitLab.

GitLab is will be open and accounts can be created from 12PM EST / 5PM GM.

Note, GitLab failed to automatically identify the RTOS/RTEMS licence and it
incorrectly states it is Apache 2.0. It is not and no licences have changed. An
issue is open to sort this out.

GitLab lets you have repositories structured as projects. We have a top level
namespace called RTEMS and our repositories reside under this namespace. Having
everything under a single namespace lets us use a lot of cool GitLab features.
The link is https://gitlab.rtems.org/rtems.

We have some other namespaces alongside RTEMS such as Administration, Approvers
and Architecture. The projects in the top level namespace are place holders for
the groups we use across GitHub and groups let us control what users can do.
The Administration project is used to run GitLab and the servers we have at OSL
OSU. If you have found a bug or problem please raise an issue. If you have a
feature or a good idea please raise an issue. If you know an answer to an issue
that is open please answer.

The Architecture project lets us define groups of users who can own and approve
architecture specific parts of RTEMS. We have this at the top so architecture
owners can manage CI runners.

The top level RTEMS Project contains the following project groups:

 1. Documentation - Our documentation.

 2. Packages - The various packages we can build for RTEMS. Think of them
    as 3rd party libraries

 3. Pre-Qualification - The pre-qualification projects based on the
    recent ESA funded work

 4. RTOS - The real-time kernel, its examples and the release scripts

 5. Tools - Our ecosystem tools such as the RSB, RTEMS Tools and the
    SIS simulator

 6. Programs - A place to organise activities similar or related to
    Google Summer of Code

Main Branch

We have chosen this time to move from a master branch to main on all our repos.
Leaving the git.rtems.org repos open while we worked on GitLab meant the project
could continue to function as we deployed GitLab however we have had to make
commits in the GitLab repos to add files like CODEOWNERS and to test the
platform. The simplest solution for us is to roll any commits to git.rtems.org
into the GitLab repos before we go live. If you have maintained any waiting to
be merged on local branches in your repo you can rebase to the main branch. The
following is an example of how to switch an RTEMS git.rtems.org repo you use to
track RTEMS to RTEMS GitLab:

 1. The procedure assumes your local master branch matches the git.rtems.org
    master branch and any changes you have are on local branches.

 2. Set the remote  origin to GitLab:
     git remote set-url origin ssh://git@gitlab.rtems.org:2222/rtems/rtos/rtems.git

 3. Fetch the GitLab repo:
     git fetch

 4. Check out the GitLab main branch:
     git checkout main

 5. We recommend you delete your local master branch:
     git branch -D master

The following is an example of how to switch an RTEMS git.rtems.org repo you
have changed in you wish to post for review and merging to RTEMS GitLab:

 1. The procedure assumes your local master branch matches the git.rtems.org
    master branch and any changes you have are on local branches.

 2. Fork the GitLab repo to your user account. Open the project repo in GitLab
    and click Fork, located top right. You will need to select a namespace
    and it needs to be the one based on your user name. Select the namespace
    drop down in the Project URL field and scroll down or enter your user name
    and click on the entry.

 3. Set the remote  origin to GitLab:
     git remote set-url origin ssh://git@gitlab.rtems.org:2222/chris/rtems.git
    Replace my user name with yours.

 4. Fetch the GitLab repo:
     git fetch

 5. Check out the GitLab main branch:
     git checkout main

 6. We recommend you delete your local master branch:
     git branch -D master

Merge Request Approvers

Every merge request in RTEMS requires two approvers. Approvers are organized as
members of subgroups within the top-level Approvers group
https://gitlab.rtems.org/approvers.

We have added initial CODEOWNERS files in GitLab that details which subgroups
own and approve merge requests. There are some members of the community who need
to be added to specific subgroups but we cannot add them until they have
accounts. If you want to be a code owner and approver please raise an
Administration issue. Anyone in the subgroup of “General Approver” is able to be
one of the approvers of  merge requests. However, at least one approver must
belong to a subgroup that is a code owner for a specific file or directory.
Self-approval by the author of the merge request is not allowed.

Please take a few minutes to look over the project structure. A project has its
own issues so when you want to create a new issue please add it to the project
it relates to. We can link issues across projects using Tags. The “RTEMS Issues
in GitLab” email explains RTEMS’s issues in GitLab and how they have been
imported from Trac.

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