Skip to content
Snippets Groups Projects
title: How to contribute to UNICADO
summary: Explains the basic procedure how to contribute.
authors:
    - Sebastian Oberschwendtner
date: 2024-03-05

How to contribute to UNICADO

You want to contribute to UNICADO?

Merge Request's are the way to contribute to any project hosted on GitLab platform. Currently UNICADO project is hosted on self hosted GitLab platform on RWTH server and only project members with right access can contribute to the project. If you have write access ( If not, please contact the admins of the project.) , follow the below guidelines to create an MR.

Awesome! :sunglasses: Please make sure to read our style guides first:

How to actually contribute

This is how you can actually make a difference: The flowchart below illustrates the Merge Request workflow, along with the commands used at each stage.

graph TD; A[Create Feature Branch] -->|git checkout -b feature-branch| B[Make Changes & Commit]; B -->|git add . & git commit -m "message"| C[Push to Remote Repository]; C -->|git push origin feature-branch| D[Open Merge Request in GitLab]; D -->|Select source & target branch| E[Assign Reviewers & Add Description]; E --> F[Code Review & Discussion]; F -->|Comments & Fixes| G[Push Updates if Needed]; G --> H[Run CI/CD Pipeline]; H -->|Tests Pass?| I{Success?}; I -- No -->|Fix Issues & Push Again| G; I -- Yes --> J[Approvals & Final Review]; J -->|Code Standards & Security Checks| K[Merge the Request]; K -->|Select Merge Strategy| L[Delete Feature Branch (Optional)]; L --> M[Pull Latest Changes]; M --> N[Deployment via CI/CD (If Configured)]; N --> O[Merge Process Complete! :tada:];

merge-request
Merge request workflow

You cloned the UNICADO Package successfully acc. to Get Source Code. Nice! You want to make a change, e.g. fixing a bug or creating a new feature, so you create a issue (see also types of contribution). Then you :point_up: create a feature branch, change the code and create a merge request (here a how to). An automatic CI/CD pipeline is triggered, which helps your selected reviewer to make sure that request is ok. If it is accepted and ready-to-land :airplane:, the documentation is automatically updated. Nicely done :thumbsup:

Types of contribution {#contributions}

We use issues and merge requests to manage the contribution to UNICADO. You should always create an issue first, before creating the merge request. The issue is used to discuss and plan the required work. An issue should always have at least the following labels:

  • Type: The type of the issue, can be: type::bug type::feature type::todo type::documentation
  • Tool: Specify which tool manager is responsible, i.e. library::aixml or module::calculatePolar
  • Priority: Optional, can be: priority::low priority::medium priority::high

We have issue templates for each issue type. Please use them accordingly and fill out all relevant information. The following gives you further information when to use which template:

Did you find a bug?

  • Ensure the bug was not already reported by searching under Issues.
  • If you're unable to find a related issue addressing the problem, open a new one. Be sure to use the Bug Issue Template and give a fitting title and clear description. Give as much relevant information as possible.
  • Please include test to reproduce the bug.

Do you intend to add a new feature or method?

  • Create an issue using the Feature template.
  • If you are implementing a new method, please provide relevant references.

Do you want to assign a maintenance task to yourself or somebody?

  • Create an issue using the Todo template.
  • Please describe the task in a meaningful manner, so others can understand what the task involves and could take over.

Is something unclear in the documentation?

  • Please ask the person who implemented the part the documentation refers to. The issues should not be used as a Q/A forum.
  • If you have concrete information/ideas how the documentation can be improved, create an issue using the Documentation template.

:heart: Thanks for reading this! We are looking forward to your contributions!

UNICADO Team