โ ๏ธ DEPRECATED โ Diese ADR wurde als company-level BW-ADR-004 in ops/adr migriert (2026-03-12). Bitte BW-ADR-004 als maรgebliche Referenz verwenden.
Die repo-spezifischen Implementierungsdetails bleiben als historische Referenz erhalten.
ADR-018: GitLab-Native Project Management Workflow¶
Status: Accepted
Date: 2026-01-03 (originally), 2026-01-18 (renumbered)
Decision Makers: Wolfram Laube
Tags: workflow, project-management, gitlab
Note: This ADR was originally numbered ADR-001 in a separate
decisions/directory. Renumbered to ADR-018 during consolidation (see Issue #52).
Context¶
CLARISSA requires a structured development workflow that:
- Ensures traceable changes
- Guarantees code quality through reviews
- Enforces automated tests before merge
- Keeps documentation and code in sync
- Remains practical for a small team (1-3 people)
Alternatives Considered¶
- GitHub Flow - Simple branch-per-feature, PR-based
- GitFlow - Complex branch structure (develop, release, hotfix)
- Trunk-Based Development - Short feature branches, frequent merges
- GitLab Flow - Environment branches + feature branches
Decision¶
We use a GitLab-native workflow with the following hierarchy:
Epic (cross-milestone)
โโโ Issue (single task)
โโโ Feature Branch (feature/{issue-id}-{slug})
โโโ Merge Request (โ main)
Core Principles¶
- No direct push to
main- All changes via MR - Issue-First - Every work item starts with an issue
- Branch Naming -
feature/{issue-id}-{short-description} - Conventional Commits -
feat:,fix:,docs:,chore: - Auto-Close - MR commit contains
Closes #{issue-id} - Pipeline Gate - Merge only after successful CI
When to Create an Epic?¶
Since GitLab Free doesn't offer native Epics, we use parent issues with [EPIC] prefix and type::epic label.
| Situation | Epic? | Rationale |
|---|---|---|
| 3+ related issues | โ Yes | Grouping is beneficial |
| Cross-milestone work | โ Yes | Tracking across milestones |
| Isolated fixes (1-2 issues) | โ No | Overhead without benefit |
| Effort < 1 day | โ No | Too small for Epic |
Epic Format:
## [EPIC] Feature Name
Labels: type::epic, component::*, priority::*
(NO workflow:: label โ Epics are tracked via child issues, not workflow states)
### Child Issues
- [ ] #XX - Subtask 1
- [ ] #XX - Subtask 2
โ ๏ธ Note: The canonical Epic rules including label invariants are defined in BW-ADR-004 (GOV-001). This deprecated ADR retains the fix for historical consistency.
Workflow Diagram¶
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ Issue โโโโโโถโ Create โโโโโโถโ Commits โโโโโโถโ MR โ
โ Board โ โ Branch โ โ + Push โ โ + Review โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ โโโโโโโโฌโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โผ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
โ CI/CD โโโโโโถโ Merge โ
โ Pipeline โ โ + Close โ
โโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโ
Consequences¶
Positive¶
- Traceability: Every code change is traceable to an issue
- Automation:
Closes #Xautomatically closes issues - Quality Gate: CI pipeline prevents broken code on main
- Documentation: Issues and MRs form natural project history
- Single Source of Truth: Everything in GitLab, no external tools needed
Negative¶
- Overhead for small changes: Even typo fixes require issue + MR
- Learning curve: Team must internalize the workflow
- CI dependency: Blocked when CI has problems
Risks¶
- Review bottleneck: Mitigated by small, focused MRs
- Stale branches: Mitigated by
remove_source_branch: true
Implementation¶
See Contributing Guide for the detailed workflow.
References¶
- GitLab Flow Documentation
- Conventional Commits
- Issue #52: ADR Directory Consolidation