Conventional Commits sind ein einfacher Standard für Commit-Nachrichten in Git, der ein konsistentes Format für alle Commits vorschlägt. Dies erleichtert die Automatisierung von Aufgaben wie der Versionskontrolle (Versioning), der Changelog-Erstellung und der Rückverfolgung von Änderungen.
Das Format der Conventional Commits besteht aus einer speziellen Struktur der Commit-Nachricht, die typischerweise folgendermaßen aussieht:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Type (Pflichtfeld): Beschreibt die Art der Änderung im Commit. Es gibt standardisierte Typen:
Scope (optional): Beschreibt den betroffenen Teil des Codes oder der Anwendung, z. B. ein Modul oder eine Komponente.
fix(auth): corrected password hashing algorithm
Description (Pflichtfeld): Eine kurze, prägnante Beschreibung der Änderung. Diese sollte in der Gegenwartsform formuliert sein (z. B. „add feature“ statt „added feature“).
Body (optional): Eine ausführlichere Beschreibung der Änderung. Dies kann genutzt werden, um mehr Kontext oder technische Details anzugeben.
Footer (optional): Hier können Hinweise zu Breaking Changes oder Referenzen zu Issues oder Tickets stehen.
BREAKING CHANGE: remove deprecated authentication method
feat(parser): add ability to parse arrays
The parser now supports parsing arrays into lists.
This allows arrays to be passed as arguments to methods.
BREAKING CHANGE: Arrays are now parsed differently
Conventional Commits sind besonders in Projekten hilfreich, die SemVer (Semantic Versioning) verwenden, da sie es ermöglichen, automatisch neue Versionen basierend auf Commit-Typen zu erstellen.
Ein Release-Artifact ist ein spezifisches Build- oder Paket einer Software, das als Ergebnis eines Build-Prozesses erzeugt wird und zur Verteilung oder Bereitstellung bereit ist. Diese Artifacts sind die endgültigen Produkte, die bereitgestellt und verwendet werden können, und enthalten alle notwendigen Komponenten und Dateien, die für die Ausführung der Software erforderlich sind.
Hier sind einige wichtige Aspekte von Release-Artifacts:
Bestandteile: Ein Release-Artifact kann ausführbare Dateien, Bibliotheken, Konfigurationsdateien, Skripte, Dokumentationen und andere Ressourcen umfassen, die für die Ausführung der Software notwendig sind.
Formate: Release-Artifacts können in verschiedenen Formaten vorliegen, abhängig von der Art der Software und der Zielplattform. Beispiele sind:
Versionsnummerierung: Release-Artifacts sind normalerweise versioniert, um klar zwischen verschiedenen Versionen der Software zu unterscheiden und die Rückverfolgbarkeit zu gewährleisten.
Repository und Verteilung: Release-Artifacts werden oft in Artefakt-Repositories wie JFrog Artifactory, Nexus Repository, oder Docker Hub gespeichert, wo sie versioniert und verwaltet werden können. Diese Repositories ermöglichen es, die Artifacts einfach zu verteilen und in verschiedenen Umgebungen bereitzustellen.
CI/CD Pipelines: In modernen Continuous Integration/Continuous Deployment (CI/CD) Pipelines ist das Erstellen und Verwalten von Release-Artifacts ein zentraler Bestandteil. Nach erfolgreichem Abschluss aller Tests und Qualitätssicherungsmaßnahmen werden die Artifacts erzeugt und zur Bereitstellung vorbereitet.
Integrität und Sicherheit: Release-Artifacts werden häufig mit Checksummen und digitalen Signaturen versehen, um ihre Integrität und Authentizität sicherzustellen. Dies verhindert, dass die Artifacts während der Verteilung oder Speicherung manipuliert werden.
Ein typischer Workflow könnte folgendermaßen aussehen:
Zusammengefasst sind Release-Artifacts die fertigen Softwarepakete, die nach dem Build- und Testprozess bereit sind, um in Produktionsumgebungen eingesetzt zu werden. Sie spielen eine zentrale Rolle im Software-Entwicklungs- und Bereitstellungsprozess.