Entwickler Themen
Dieser Bereich enthält Anleitungen und Dokumentation für verschiedenste relevante Themen aus dem Alltag als Entwickler.
Conventional Commits anwenden
Disclaimer
Die Conventional Commits sind ein Standard zur einheitlichen Benennung von Commit-Nachrichten. Sie helfen Teams, Versionsänderungen besser nachzuvollziehen, automatisch Changelogs zu generieren und semantische Versionierung zu automatisieren.
Weitere Informationen: conventionalcommits.org
Die Vorteile
- Erleichtert die automatische Generierung von Changelogs
- Unterstützt die semantische Versionierung vom Projekt
- Fördert ein einheitliches und verständliches Commit-Format im Team
- Verbessert die Zusammenarbeit zwischen Entwicklern, Release-Automatisierungstools und CI/CD-Systemen
Anwendungsformat
Ein konformer Commit folgt diesem Format:
Typ(optionaler Scope): BeschreibungBeispiel:
feat(auth): added login functionalityCommit-Typen
- feat: Fügt eine neue Funktion hinzu (führt zu einem
minor-Version-Sprung bei semantischer Versionierung) - fix: Behebt einen Bug (führt zu einem
patch-Version-Sprung) - docs: Änderungen an der Dokumentation (z. B. README, Kommentare)
- style: Formatierungsänderungen (keine Code-Logik-Änderungen, z. B. Einrückung, Leerzeichen, Semikolon)
- refactor: Codeänderungen ohne Fehlerbehebung oder neue Funktion (z. B. Umstrukturierung)
- perf: Leistungsverbesserungen (Performance-Optimierungen)
- test: Hinzufügen oder Anpassen von Tests
- chore: Wartungsaufgaben, die nichts mit dem Quellcode oder Tests zu tun haben (z. B. Build-Prozess, Abhängigkeiten)
Optional: Scope
Der Scope beschreibt, auf welchen Teil der Codebasis sich der Commit bezieht. Er steht in Klammern direkt hinter dem Typ.
Beispiel:
fix(api): resolved error when fetching user dataBreaking Changes
Für Änderungen, die inkompatibel zur bisherigen API sind, wird BREAKING CHANGE: in der Fußzeile des Commits verwendet.
feat(auth): added two-factor authentication
BREAKING CHANGE: login process has been restructured
Semantische Versionierung anwenden
Disclaimer
Die semantische Versionierung ist ein gängiger Standard in der Softwareentwicklung, um Versionsnummern zu vergeben. Sie macht Änderungen im Code nachvollziehbar, erleichtert den Umgang mit Abhängigkeiten und verbessert die Kommunikation über den Entwicklungsstand.
Weitere Informationen: semver.org
Was ist die semantische Versionierung?
Die semantische Versionierung beschreibt ein dreiteiliges Versionsschema:
MAJOR.MINOR.PATCH- MAJOR: Inkompatible Änderungen der öffentlichen API
- MINOR: Neue, abwärtskompatible Funktionalitäten
- PATCH: Abwärtskompatible Fehlerbehebungen
Beispiele aus der Praxis
1.2.3: Erste stabile Version, zwei kleinere Feature-Erweiterungen, drei Bugfixes2.0.0: Führt zu inkompatiblen API-Änderungen, z. B. durch Entfernen oder Umbenennen von Funktionen1.3.0: Fügt neue Funktionalitäten hinzu, ohne vorhandene zu verändern1.3.1: Behebt einen Fehler aus der Version 1.3.0
Regeln der semantischen Versionierung
- Erhöhe die MAJOR-Version bei inkompatiblen API-Änderungen
- Erhöhe die MINOR-Version bei neuen, abwärtskompatiblen Funktionen
- Erhöhe die PATCH-Version bei abwärtskompatiblen Bugfixes
Vorabversionen und Build-Metadaten
Zusätzlich können Vorabversionen und Build-Metadaten angegeben werden:
1.0.0-alpha
1.0.0-beta+exp.sha.5114f85- Vorabversionen:
-alpha,-beta,-rcusw. – für nicht stabile Entwicklungsstände - Build-Metadaten:
+build– zusätzliche Informationen wie Git-Hashes oder Build-Zeitpunkte
Zusammenfassung
- Die semantische Versionierung gibt eine klare Struktur für Versionen vor
- Sie erleichtert das Management von Abhängigkeiten in Projekten
- Sie wird häufig in Kombination mit Conventional Commits verwendet