bg_image
header

Changelog

Ein Changelog ist eine Datei oder ein Dokument, das die Änderungen und Updates an einer Software oder einem Projekt auflistet. Es enthält eine chronologische Aufzeichnung von neuen Funktionen, Fehlerbehebungen, Verbesserungen und Breaking Changes (Änderungen, die die Rückwärtskompatibilität brechen). Ein Changelog hilft Benutzern und Entwicklern, den Entwicklungsverlauf einer Software zu verfolgen und zu verstehen, welche Änderungen in einer bestimmten Version vorgenommen wurden.

Wichtige Bestandteile eines Changelogs:

  1. Versionsnummern: Jede Änderung wird mit der entsprechenden Versionsnummer versehen (z. B. 1.2.0), oft basierend auf SemVer (Semantic Versioning).
  2. Änderungstypen: Die Änderungen sind in Kategorien eingeteilt, wie:
    • Added: Neue Funktionen oder Features.
    • Changed: Änderungen an bestehenden Funktionen.
    • Fixed: Fehlerbehebungen.
    • Deprecated: Veraltete Funktionen, die in zukünftigen Versionen entfernt werden.
    • Removed: Entfernte Funktionen.
    • Security: Sicherheitsrelevante Verbesserungen oder Patches.
  3. Beschreibung der Änderungen: Jede Änderung wird kurz und prägnant beschrieben, oft mit zusätzlichen Details, wenn nötig.

Beispiel eines Changelogs:

# Changelog

## [1.2.0] - 2023-09-19
### Added
- New user authentication system.
- Ability to reset passwords via email.

### Fixed
- Resolved bug with session timeout after 30 minutes of inactivity.

### Changed
- Updated the UI for the login screen.

## [1.1.0] - 2023-08-10
### Added
- New dark mode theme for the dashboard.

### Security
- Patched vulnerability in file upload functionality.

Vorteile eines Changelogs:

  • Transparenz: Ein Changelog zeigt klar, was sich von Version zu Version geändert hat.
  • Dokumentation: Es dient als nützliches Referenzdokument für Benutzer, die wissen möchten, welche Funktionen oder Fehlerbehebungen in einer neuen Version enthalten sind.
  • Rückverfolgbarkeit: Entwickler können anhand des Changelogs frühere Änderungen nachvollziehen, was bei der Fehlersuche oder bei Upgrades wichtig ist.

Changelogs sind in Open-Source-Projekten besonders weit verbreitet, da sie für die Community eine nachvollziehbare und klare Übersicht über die Entwicklung eines Projekts bieten.

 

 


Semantic Versioning - SemVer

Semantic Versioning (oft als SemVer abgekürzt) ist ein Versionsnummerierungsschema, das dazu dient, die Änderungen in einer Software klar und verständlich zu kommunizieren. Es verwendet ein dreiteiliges Nummerierungssystem im Format MAJOR.MINOR.PATCH, um verschiedene Arten von Änderungen zu kennzeichnen. Hier ist eine Erklärung, wie diese Nummern verwendet werden:

  1. MAJOR: Wird erhöht, wenn inkompatible Änderungen vorgenommen werden, die möglicherweise bestehende Software, die auf die alte Version angewiesen ist, brechen können.
  2. MINOR: Wird erhöht, wenn neue, abwärtskompatible Funktionen hinzugefügt werden. Diese Änderungen fügen neue Funktionalitäten hinzu, die jedoch die bestehende Funktionalität nicht beeinträchtigen.
  3. PATCH: Wird erhöht, wenn abwärtskompatible Fehlerbehebungen vorgenommen werden. Diese Änderungen beheben Fehler und Probleme, ohne neue Funktionen hinzuzufügen oder bestehende zu ändern.

Ein Beispiel für eine SemVer-Version könnte wie folgt aussehen: 1.4.2. Dies bedeutet:

  • 1 (MAJOR): Erste Hauptversion, möglicherweise mit signifikanten Änderungen seit der Vorgängerversion.
  • 4 (MINOR): Vierte Version dieser Hauptversion, mit neuen Funktionen, aber abwärtskompatibel.
  • 2 (PATCH): Zweite Fehlerbehebungsversion dieser Minor-Version.

Zusätzliche Konventionen:

  • Vorab-Versionen: Zum Beispiel 1.0.0-alpha, 1.0.0-beta, 1.0.0-rc.1 (Release Candidate).
  • Build-Metadaten: Zum Beispiel 1.0.0+20130313144700, die nach einem +-Zeichen angegeben werden.

Warum ist SemVer wichtig?

  • Klarheit und Vorhersehbarkeit: Entwickler und Benutzer können anhand der Versionsnummer sofort erkennen, welche Art von Änderungen vorgenommen wurden.
  • Kompatibilität: Bibliotheken und Abhängigkeiten können sicherer verwaltet werden, da Entwickler wissen, welche Versionen miteinander kompatibel sind.
  • Automatisierung: Build- und Deployment-Tools können Versionen automatisch verwalten und entscheiden, wann und wie Updates angewendet werden sollen.

SemVer erleichtert das Management von Softwareversionen erheblich, indem es ein konsistentes und verständliches Schema für Versionsnummern bereitstellt.