chore(mr-templates): Update merge request templates

This commit is contained in:
Thorsten Roßner
2025-07-18 11:03:19 +02:00
parent 1e22a455a2
commit 2e3bbc7f99
6 changed files with 179 additions and 217 deletions

View File

@@ -1,81 +1,57 @@
## 📌 Summary
# 🪲 Bugfix
Brief description of the issue and what this MR resolves.
*Expected MR Title and git commit message*
*`fix(<app-name>): <Short description of what has been fixed>`*
> Example:
> Fixes a bug where users were unable to save their profile due to a missing field validation.
---
## ✅ Changes
Explain for the reviewer how the change addresses the issue:
Explain for the reviewer how the change addresses the issue, providing some insights on the underlaying cause of the bug.
- Fixed null check on user input
- Added unit test for edge case
- Updated error handling in the `ProfileService`
- ...
---
## 🧪 How to reproduce & test
## 🧪 Analysis
Provida a link to the issue or document the required details below.
In case it is a GitLab issue, reference it at the end of the commit message in square brackets, like `[#123]`
Explain the **underlying cause** of the bug:
### Before the Fix
- What was the unexpected behavior?
- Why did it happen?
- Where in the code or logic did it occur?
1. ...
---
### After the Fix
## 📚 Related Issue(s)
Provide steps for QA or reviewers to test the fix and mention anything reviewers should be aware of:
- Should be listed as part of the commit message.
- Fixes #[issue-number]
- Related to #[optional additional issues]
1. ...
## 🧪 How to Reproduce & Test
## 🔄 Requirements for migrations
Link to issue or document the required details below.
- [ ] Describe manual steps required to update existing deployments. This especially applies if this MR introduces breaking changes:
- [ ] Any other considerations in context of the update:
### Before the Fix:
# Checklist / Sign-offs
1. Go to `/profile/edit`
2. Leave the "email" field empty
3. Click "Save"
4. Observe 500 server error
## 🏷️ Labels
### After the Fix:
Set labels:
1. Same steps as above
2. Now see appropriate validation message
3. No server error occurs
```
/label ~"MR-Type::Bugfix"
/label ~"PO::👀"
/label ~"Tech Lead::👀"
/label ~"QA::👀"
/label ~"Testautomation::👀"
```
---
# 👷 Developer Checklist
## Checklist / Sign-offs
- Does the MR include new bits and pieces (e.g. new secrets) that require documentation?
- [ ] No.
- [ ] Yes, and the documentation was updated accordingly.
### 💿 CI/CD
- [ ] CI pipeline passes for all jobs
- [ ] Linting and formatting checks pass
- [ ] Review app (if used) reflects fix correctly
### 🖥 QA & Product
Set related labels on the MR for
- [ ] `PO::👀`
- [ ] `Tech Lead::👀`
- [ ] `Testautomation::👀`
- [ ] `QA::👀`
---
## 👷 Developer Checklist
- [ ] Code builds and passes linting
- [ ] Tests added or updated
- [ ] Verified fix locally
- [ ] Regression testing done for related functionality
- [ ] No new warnings or errors in logs
Document in an extra comment and link to that comment:
- [ ] How you verified the fix is working as expected, also in upgrade sceanrios.
- [ ] Any regression testing done.
--> Link to comment:

View File

@@ -1 +1,8 @@
Please select one of the templates, in case your contribution contains more than a **simple** typo fix.
Thank you for your contribution!
Please follow these simple guidelines to continue:
- Create MRs early and use the "draft" state to show that this MR isn't ready for review and merge.
- Flag the MR "ready" as soon as it can be reviewed and QA'd.
- Always assign the MR to yourself and set somebody from the development team as reviewer. If you do not know whom to chose leave the reviewer empty.
- Select one of the templates in case your contribution contains more than simple documentation updates and follow the templates instructions.

View File

@@ -1,74 +1,47 @@
## 📌 Summary
# ⬆️ Feature
Briefly describe what this feature MR does and why its needed.
> Example:
> Adds user profile editing capabilities to the dashboard. This enables users to update their personal information without admin intervention.*
---
*Expected MR Title and git commit message*
*`feat(<app-name>): <Short description of the new feature>`*
## ✅ Changes
List the key changes made in this MR:
- Added new route /profile/edit
- Created `ProfileEditForm` component
- Integrated with backend API for user updates
- Added unit tests and basic form validation
---
- ...
## 🧪 Tests
Provide steps for QA or reviewers to test the feature.
Provide steps for QA or reviewers to test the feature and mention anything reviewers should be aware of:
1. Login as any user
2. Navigate to `/profile/edit`
3. Update profile info and save
4. Verify changes are persisted and reflected in the UI
- ...
---
## 🔄 Requirements for migrations
## 📚 Related Issue(s)
- [ ] Describe manual steps required to update existing deployments. This especially applies if this MR introduces breaking changes:
- [ ] Any other considerations in context of the update:
- Closes #[issue number]
- Depends on #[merge request or issue, if any]
# Checklist / Sign-offs
---
## 🏷️ Labels
## 🕵️ Notes for Reviewer
Set labels:
Mention anything reviewers should be aware of:
```
/label ~"MR-Type::Feature"
/label ~"PO::👀"
/label ~"Tech Lead::👀"
/label ~"QA::👀"
/label ~"Testautomation::👀"
```
- Known issues or limitations
- Code sections that may need special attention
- Design considerations or edge cases handled
# 👷 Developer Checklist
---
- Does the MR include new bits and pieces (e.g. new secrets) that require documentation?
- [ ] No.
- [ ] Yes, and the documentation was updated accordingly.
## Checklist / Sign-offs
Document in an extra comment and link to that comment:
- [ ] How you verified the feature is working as expected, also in upgrade sceanrios.
- [ ] Any regression testing done.
### 💿 CI/CD
- [ ] CI pipeline passes for all jobs
- [ ] Linting and formatting checks pass
- [ ] Review app (if used) reflects fix correctly
### 🖥 QA & Product
Set related labels on the MR for
- [ ] `PO::👀`
- [ ] `Tech Lead::👀`
- [ ] `Testautomation::👀`
- [ ] `QA::👀`
---
## 👷 Developer Checklist
- [ ] Code builds and passes linting
- [ ] Tests added or updated
- [ ] Verified fix locally
- [ ] Regression testing done for related functionality
- [ ] No new warnings or errors in logs
--> Link to comment:

View File

@@ -1,33 +1,41 @@
## 📌 Summary
# 🎉 Other
Provide a concise summary of **what** this MR does and **why**.
> Example:
> This MR updates the CI configuration to cache NPM dependencies and reduce pipeline execution time.
---
*Expected MR Title and git commit message*
*`fix(<component>): <Short description of what has been changed>`*
## ✅ Changes
List the key updates made:
Explain for the reviewer and QA the reason for the MR and what changes are included.
- ...
- ...
---
## 🔄 Requirements for migrations
## 🧪 Tests (if applicable)
- [ ] Describe manual steps required to update existing deployments. This especially applies if this MR introduces breaking changes:
- [ ] Any other considerations in context of the update:
Explain how reviewers or CI can verify the change works as intended.
# Checklist / Sign-offs
> Example:
>- For CI: Check job `build:frontend` completes in <3 mins.
>- For docs: View rendered markdown locally or in GitLab.
## 🏷️ Labels
---
Set labels:
## 🧾 Checks
```
/label ~"MR-Type::Other"
/label ~"PO::👀"
/label ~"Tech Lead::👀"
/label ~"QA::👀"
/label ~"Testautomation::👀"
```
- [ ] CI passes
- [ ] No functional changes
- [ ] Verified (if needed)
# 👷 Developer Checklist
- Does the MR include new bits and pieces (e.g. new secrets) that require documentation?
- [ ] No.
- [ ] Yes, and the documentation was updated accordingly.
Document in an extra comment and link to that comment:
- [ ] How you verified the change is working as expected, also in upgrade sceanrios.
- [ ] Any regression testing done.
--> Link to comment:

View File

@@ -1,49 +1,41 @@
## ⬆️ Application Update
# ⬆️ Application Update
Expected MR Title and git commit message:
*Expected MR Title and git commit message*
*`feat/fix(<app-name>): Update from <old-version> to <new-version>`*
`feat/fix(<app-name>): Update from <old-version> to <new-version>`
## 📋 Changelog/Release Notes
### 📋 Changelog/Release Notes
- [ ] [README.md](../../README.md) component table updated including the link to the related release notes
- [ ] Provide significant improvements you'd like to see in the openDesk release notes. If you have a lot of details to provide or someone else is providing the details, please use a comment on the MR and link the comment in here.
- [ ] Upstream release notes: `[link]`
- [ ] No breaking changes (or listed below)
- [ ] Relevant changes communicated (if needed)
## 🔄 Requirements for migrations
---
- [ ] Minimum version of the application required in existing depoyments to update/upgrade:
- [ ] Describe manual steps required to update existing deployments. This especially applies if the upgrade includes any breaking changes:
- [ ] Any other considerations in context of the update:
### 🔄 Migrations to Run (if any)
# Checklist / Sign-offs
Describe any migrations that need to be performed when upgrading to this application version.
## 🏷️ Labels
- [ ] Database migrations
- [ ] Configuration changes
- [ ] Cache clears / rebuilds
- [ ] Other: _describe_
Set labels:
## Checklist / Sign-offs
### 💿 CI/CD
- [ ] CI pipeline passes for all jobs
- [ ] Linting and formatting checks pass
- [ ] Review app (if used) reflects fix correctly
### 🖥 QA & Product
Set related labels on the MR for
- [ ] `PO::👀`
- [ ] `Tech Lead::👀`
- [ ] `Testautomation::👀`
- [ ] `QA::👀`
---
```
/label ~"MR-Type::AppUpdate"
/label ~"PO::👀"
/label ~"Tech Lead::👀"
/label ~"QA::👀"
/label ~"Testautomation::👀"
```
## 👷 Developer Checklist
- [ ] Code builds and passes linting
- [ ] Tests added or updated
- [ ] Verified fix locally
- [ ] Regression testing done for related functionality
- [ ] No new warnings or errors in logs
- Does the MR include new bits and pieces (e.g. new secrets) that require documentation?
- [ ] No.
- [ ] Yes, and the documentation was updated accordingly.
Document in an extra comment and link to that comment:
- [ ] How you verified the update is working as expected, also in upgrade sceanrios.
- [ ] Any regression testing done.
--> Link to comment:

View File

@@ -66,52 +66,58 @@ XWiki,PersistentVolume,1
# Details
| Application | Data Storage | Backup | Content | Identifier | Details |
|----------------------|--------------|----------|--------------------------------------------------------------------------------------------|------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------|
| **ClamAV** | PVC | No | ClamAV Database | `clamav-database-clamav-simple-0` | `/var/lib/clamav` |
| **Dovecot** | PVC | Yes | User mail directories (openDesk CE only, openDesk EE uses Dovecot Pro with Object Storage) | `dovecot` | `/srv/mail` |
| **Element/Synapse** | PostgreSQL | Yes | Application's main database | `matrix` | |
| | PVC | Yes | Attachments | `media-opendesk-synapse-0` | `/media` |
| | | Yes | Sync and state data | `matrix-neodatefix-bot` | `/app/storage` |
| **Intercom-Service** | Redis | No | Shared session data | | |
| **Jitsi** | PVC | Optional | Meeting recordings (feature not enabled in openDesk) | `prosody-data-jitsi-prosody-0` | `/config/data` |
| **Nextcloud** | PostgreSQL | Yes | Application's main database Meta-Data | `nextcloud` | |
| | S3 | Yes | The Nextcloud managed user files | `nextcloud` | |
| | Redis | No | Distributed caching, as well as transactional file locking | | |
| **Nubus** | PostgreSQL | Yes | Main database for Nubus' IdP Keycloak | `keycloak` | |
| | | Yes | Login actions and device-fingerprints | `keycloak_extensions` | |
| | | Optional | Store of the temporary password reset token | `selfservice` | |
| | | No | Notification features are not used in openDesk 1.1 | `notificationsapi` | |
| | | No | Guardian features are currently not used in openDesk 1.1 | `guardianmanagementapi` | |
| | S3 | No | Static files for Portal | `ums` | |
| | PVC | Yes | openLDAP database (primary R/W Pods), when restore select the one from the leader | `shared-data-ums-ldap-server-primary-0` | `/var/lib/univention-ldap` |
| | | Yes | openLDAP process data | `shared-run-ums-ldap-server-primary-0` | `/var/run/slapd` |
| | | No | openLDAP database (secondary R/O Pods), secondaries can sync from the primary | `shared-data-ums-ldap-server-secondary-0` | `/var/lib/univention-ldap` |
| | | No | openLDAP process data | `shared-run-ums-ldap-server-secondary-0` | `/var/run/slapd` |
| | | Yes | The state of the listener | `data-ums-provisioning-udm-listener-0` | `/var/log/univention`<br>`/var/lib/univention-ldap/schema/id`<br>`/var/lib/univention-directory-listener` |
| | | No | Cache | `group-membership-cache-ums-portal-consumer-0` | `/usr/share/univention-group-membership-cache/caches` |
| | | Yes | Queued provisioning objects | `nats-data-ums-provisioning-nats-0` | `/data` |
| | Memcached | No | Cache for UMC Server | | |
| **OpenProject** | PostgreSQL | Yes | Application's main database | `openproject` | |
| | S3 | Yes | Attachments, custom styles | `openproject` | |
| | Memcached | No | Cache | | |
| | PVC | No | PVC backed `emptyDir` as K8s cannot set the sticky bit on standard emptyDirs | `openproject-<web/worker>-*-tmp` | `/tmp` |
| | | No | PVC backed `emptyDir` as K8s cannot set the sticky bit on standard emptyDirs | `openproject-<web/worker>-app-*-tmp` | `/app/tmp` |
| **Open-Xchange** | MariaDB | Yes | Application's control database to coordiate dynamically created ones | `configdb` | |
| | | Yes | Dynamically creates databases of schema `PRIMARYDB_n`containing multiple contexts | `PRIMARYDB_*` | |
| | | Yes | OX Guard related settings | `oxguard*` | |
| | Redis | Optional | Cache, session related data, distributed maps | | |
| | PVC | Yes | OX-Connector: OXAPI access details | `ox-connector-appcenter-ox-connector-0` | `/var/lib/univention-appcenter/apps/ox-connector` |
| | | Yes | OX-Connector: Application's meta data | `ox-connector-ox-contexts-ox-connector-0` | `/etc/ox-secrets` |
| **Postfix** | PVC | Yes | Mail spool | `postfix` | `/var/spool/postfix` |
| **XWiki** | PostgreSQL | Yes | Application's main database | `xwiki` | |
| | PVC | Yes | Attachments | `xwiki-data-xwiki-0` | `/usr/local/xwiki/data` |
| Application | Data Storage | Backup | Content | (Default) Identifier | Details |
|----------------------|--------------|----------|-----------------------------------------------------------------------------------|------------------------------------------------|-----------------------------------------------------------------------------------------------------------|
| **ClamAV** | PVC | No | ClamAV Database | `clamav-database-clamav-simple-0` | `/var/lib/clamav` |
| **Dovecot** | PVC | Yes | openDesk CE only: User mail directories | `dovecot` | `/srv/mail` |
| | S3 | Yes | openDesk EE only: User mail | `dovecot` | `dovecot` |
| | Cassandra | Yes | openDesk EE only: Metadata and ACLs | `dovecot_dictmap`, `dovecot_acl` |
| **Element/Synapse** | PostgreSQL | Yes | Application's main database | `matrix` | |
| | PVC | Yes | Attachments | `media-opendesk-synapse-0` | `/media` |
| | | Yes | Sync and state data | `matrix-neodatefix-bot` | `/app/storage` |
| **Intercom-Service** | Redis | No | Shared session data | | |
| **Jitsi** | PVC | Optional | Meeting recordings (feature not enabled in openDesk) | `prosody-data-jitsi-prosody-0` | `/config/data` |
| **Nextcloud** | PostgreSQL | Yes | Application's main database Meta-Data | `nextcloud` | |
| | S3 | Yes | The Nextcloud managed user files | `nextcloud` | |
| | Redis | No | Distributed caching, as well as transactional file locking | | |
| **Nubus** | PostgreSQL | Yes | Main database for Nubus' IdP Keycloak | `keycloak` | |
| | | Yes | Login actions and device-fingerprints | `keycloak_extensions` | |
| | | Optional | Store of the temporary password reset token | `selfservice` | |
| | | No | Notification features are not used in openDesk 1.1 | `notificationsapi` | |
| | | No | Guardian features are currently not used in openDesk 1.1 | `guardianmanagementapi` | |
| | S3 | No | Static files for Portal | `ums` | |
| | PVC | Yes | openLDAP database (primary R/W Pods), when restore select the one from the leader | `shared-data-ums-ldap-server-primary-0` | `/var/lib/univention-ldap` |
| | | Yes | openLDAP process data | `shared-run-ums-ldap-server-primary-0` | `/var/run/slapd` |
| | | No | openLDAP database (secondary R/O Pods), secondaries can sync from the primary | `shared-data-ums-ldap-server-secondary-0` | `/var/lib/univention-ldap` |
| | | No | openLDAP process data | `shared-run-ums-ldap-server-secondary-0` | `/var/run/slapd` |
| | | Yes | The state of the listener | `data-ums-provisioning-udm-listener-0` | `/var/log/univention`<br>`/var/lib/univention-ldap/schema/id`<br>`/var/lib/univention-directory-listener` |
| | | No | Cache | `group-membership-cache-ums-portal-consumer-0` | `/usr/share/univention-group-membership-cache/caches` |
| | | Yes | Queued provisioning objects | `nats-data-ums-provisioning-nats-0` | `/data` |
| | Memcached | No | Cache for UMC Server | | |
| **OpenProject** | PostgreSQL | Yes | Application's main database | `openproject` | |
| | S3 | Yes | Attachments, custom styles | `openproject` | |
| | Memcached | No | Cache | | |
| | PVC | No | PVC backed `emptyDir` as K8s cannot set the sticky bit on standard emptyDirs | `openproject-<web/worker>-*-tmp` | `/tmp` |
| | | No | PVC backed `emptyDir` as K8s cannot set the sticky bit on standard emptyDirs | `openproject-<web/worker>-app-*-tmp` | `/app/tmp` |
| **Open-Xchange** | MariaDB | Yes | Application's control database to coordiate dynamically created ones | `configdb` | |
| | | Yes | Dynamically creates databases of schema `PRIMARYDB_n`containing multiple contexts | `PRIMARYDB_*` | |
| | | Yes | OX Guard related settings | `oxguard*` | |
| | S3 | Yes | Attachments of meetings, contacts and tasks | `openxchange` | |
| | Redis | Optional | Cache, session related data, distributed maps | | |
| | PVC | Yes | OX-Connector: OXAPI access details | `ox-connector-appcenter-ox-connector-0` | `/var/lib/univention-appcenter/apps/ox-connector` |
| | | Yes | OX-Connector: Application's meta data | `ox-connector-ox-contexts-ox-connector-0` | `/etc/ox-secrets` |
| **Postfix** | PVC | Yes | Mail spool | `postfix` | `/var/spool/postfix` |
| **XWiki** | PostgreSQL | Yes | Application's main database | `xwiki` | |
| | PVC | Yes | Attachments | `xwiki-data-xwiki-0` | `/usr/local/xwiki/data` |
Additionally, the following persistent volumes are mounted by pods that serve as a data storage for the applications mentioned above.
Additionally, the following persistent volumes are mounted by Pods that serve as a data storage for the applications mentioned above.
| Service | Pod | Volume Name | PVC | MountPath |
| ---------- | ---------------- | ------------ | --------------------------- | --------------------- |
| MariaDB | `mariadb-*` | `data` | `data-mariadb-0` | `/var/lib/mysql` |
| MinIO | `minio-*-*` | `data` | `minio` | `/bitnami/minio/data` |
| PostgreSQL | `postgresql-*` | `data` | `data-postgresql-0` | `/mnt/postgresql` |
| Redis | `redis-master-*` | `redis-data` | `redis-data-redis-master-0` | `/data` |
These services are not ment for production use, so you can ignore these as you surely backup your production services instead.
| Service | Pod | Volume Name | PVC | MountPath | Comment |
|------------|------------------|--------------|-----------------------------|-----------------------|------------------|
| MariaDB | `mariadb-*` | `data` | `data-mariadb-0` | `/var/lib/mysql` | |
| MinIO | `minio-*-*` | `data` | `minio` | `/bitnami/minio/data` | |
| PostgreSQL | `postgresql-*` | `data` | `data-postgresql-0` | `/mnt/postgresql` | |
| Redis | `redis-master-*` | `redis-data` | `redis-data-redis-master-0` | `/data` | |
| Cassandra | `cassandra-*` | `data` | `data-cassandra-*` | `/bitnami/cassandra` | openDesk EE only |