Skip to content
Snippets Groups Projects
Commit 66b2dfe8 authored by Alfin Johny's avatar Alfin Johny
Browse files

Update all merge request related pages

parent d5998954
No related branches found
No related tags found
1 merge request!84Update how to contribute
Pipeline #1680664 waiting for manual action
......@@ -14,12 +14,9 @@ If you are not familiar with *Git Submodules*, please read their Documentation !
🎥 **Watch the first part of [Merge Request Workflow](../how-to-contribute/contributor-tutorial/videos/Merge_Request_Workflow.mp4) video for a more detailed explanation of below mentioned steps**.
## Step-by-Step Guide
UNICADO project is now on self hosted GitLab platform of RWTH. So you need to have write permission in the self hosted GitLab platform a GitLab if you want to create Merge Request and start contributing to it. But you can get a copy of UNICADO source code on your local machine( via cloning) and experment with it.
### Step 1: Locate the Repository You Want to Clone
### Step 1: Locate the Unicado Package repository
UNICADO project is now on self hosted GitLab platform of RWTH. So you need to have write permission in the self hosted GitLab platform if you want to create Merge Request and start contributing to it. But you can get a copy of UNICADO source code on your local machine( via cloning) and experment with it.
The repository [Unicado Package](https://git.rwth-aachen.de/unicado/unicado-package) contains all necessary source code as submodules to get started compiling **UNICADO** and its installer. It is used to create UNICADO releases and provides a good starting point for development.
### Step 2: Clone the Repository
......
......@@ -9,7 +9,7 @@ date: 2024-03-05
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.
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, follow the below guidelines to create an MR.
Awesome! :sunglasses: Please make sure to read our *style guides* first:
......@@ -18,36 +18,57 @@ 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.
The flowchart below illustrates the Merge Request workflow. Git commands used at each stage are presented in italics for easy reference.
<pre class="mermaid">
<div style="max-width: 100%; overflow-x: auto; margin-bottom: 0;">
<pre class="mermaid" style="margin-bottom: 0;">
graph TB;
A(Clone 'Unicado Package' repository) --> B[Update Submodules];
B --> C[Create new-branch];
C --> D[Make Changes & Commit];
D --> D1[Push to Remote Repository];
D1 --> E[Open Merge Request in GitLab];
E --> I[MR triggers the CI/CD pipeline];
I <--> |CI Checks fail?|K{Review&CI checks Pass?};
E --> J[Code Review & Discussion];
K <-->|Approvals & Final Review| J;
K -- Yes ✅ --> M[Merge the MR];
M --> N(Clean Up After Merge);
classDef wideBox stroke-width:3px, stroke:#FF0000, fill:#000000, color:#FFFFFF, font-size:20px, padding:15px, width:350px, height:100px;
A("**Clone 'Unicado Package'
repository**
_git clone 'repository URL'_") -->
B["**Update Submodules**
_git submodule update
--init --recursive_"];
B --> C["**Create new-branch**
_git checkout -b 'new-branch-name'_"];
C --> D["**Make Changes & Commit**
_git add ._
_git commit -m Brief description
of the commit_ "];
D --> D1["**Push to Remote Repository**
git push origin new-branch-name"];
D1 --> E["**Open Merge Request in GitLab**"];
E --> I["**MR triggers the CI/CD pipeline**"];
I <--> |**CI Checks fail**?| K{**Review & CI checks Pass?**};
E --> J["**Code Review & Discussion**"];
K <-->|**Approvals & Final Review**| J;
K -- **Yes** ✅ --> M["**Merge the MR**"];
M --> N("**Clean Up After Merge**");
classDef wideBox stroke-width:2px, stroke:#3399FF, fill:#000000, color:#FFFFFF, font-size:16px, padding:12px;
class A,B,C,D,D1,E,I,J,K,M,N wideBox;
</pre>
</div>
<figure>
<figcaption>Merge request workflow</figcaption>
</figure>
<figcaption style="text-align: center; font-style: italic; margin-top: 4px;">Figure: UNICADO Merge Request Workflow</figcaption>
You cloned the UNICADO Package successfully acc. to [Get Source Code](../build-instructions/get-source-code.md). 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](#contributions)). Then you :point_up: create a feature branch, change the code and create a merge request (here a [how to](merge-request.md)). 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 :+1:
You cloned the UNICADO Package successfully acc. to [Get Source Code](../build-instructions/get-source-code.md). 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](#contributions)). Then you :point_up: create a feature branch, change the code and create a merge request (here a [how to](./merge-request.md)). 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 :+1:
## Types of contribution {#contributions}
We use *issues* and [merge requests](merge-request.md) to manage the contribution to UNICADO.
We use *issues* and [merge requests](./merge-request.md) 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*:
......
......@@ -27,7 +27,6 @@ However, we will highlight the workflow, we prefer - but feel free to make your
This is the first and preferred way to make a merge request, as it is similar to our previous UNICADO workflow.
Let's assume you have cloned the Unicado Package repoistory and updated all it's submodules following [Get Source Code](../build-instructions/get-source-code.md ). Open your preferred IDE (e.g., Visual Studio Code). Ensure that Git is integrated within your IDE. Most IDEs, such as VSCode, have built-in Git integration. Go to the sub module where you want to make the change. Create your own (local) branch, where you are developing a new feature / fixing bug / addong documentation.
For a more detailed explanation of the steps mentioned below, watch the [Merge Request Workflow](contributor-tutorial/videos/Merge_Request_Workflow.mp4) video.
```
### 2. Create a New Branch
......@@ -61,6 +60,9 @@ git add . # Stage all modified files
Next, commit your changes with a meaningful commit message:
```{ .cmd .copy }
git commit -m "Your descriptive commit message here"
```
#### Guidelines for a Good Commit Message
......@@ -70,22 +72,20 @@ Next, commit your changes with a meaningful commit message:
Before committing, ensure that your code is working as expected by running local tests (such as static code analysis) and avoid committing code that is not functioning properly.
### 5. Push Changes to Your Fork
### 5. Push Changes to the remote repository
Push your branch to your forked repository on GitLab:
Push your branch to remote repository on GitLab:
```{ .cmd .copy }
git push origin <new-branch-name>
```
If you are working on this branch locally, and it is not shared with remote ☁️, then you have to push it ⏫ to remote, first in order to create a merge request.
### 6. Create a Merge Request (MR) to the Original Repository
To propose your changes to the original UNICADO repository:
1. Go to the original UNICADO repository on GitLab.
2. Click Create Merge Request.
3. Set <new-branch-name> as the source branch and `main` in the original repository as the target branch.
3. Set `new-branch-name` as the source branch and `main` in the original repository as the target branch.
4. Fill out the MR details:
- Provide a clear title and description of your changes.
- Use the available MR templates for consistency. Select a suitable one from the dropdown menu. These templates are saved in merge_request_templates folder inside .gitlab
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment