-
Alfin Johny authoredAlfin Johny authored
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!
- Our ⤷ C++ Code Style.
- Our ⤷ Python Code Style.
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!
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
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
ormodule::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.
UNICADO Team