Eine Version, häufig auch englisch revision genannt, ist ein definiertes Entwicklungsstadium einer Software mit allen dazugehörigen Komponenten. Verschiedene Versionen stellen die Veränderung und Weiterentwicklung einer Software oder eines Teils (z. B. einer Programmbibliothek) über die Zeit dar. Sie haben immer eine gemeinsame historische Basis. So werden Systeme zur Versionierung genutzt, um neuere Ausgaben einer Software von einer älteren zu unterscheiden.
Verschiedene numerische, alphanumerische oder auch datumsbasierte Versionsnummern werden zur Unterscheidung und Bezeichnung verwendet. Der Prozess wird oft durch ein Versionsverwaltungssystem technisch begleitet. Software vor ihrer Fertigstellung (z. B. Beta-Versionen) erhält meist eine Versionsnummer, die mit „0“ beginnt.
Im allgemeinen sprachlichen Umgang werden häufig auch Varianten von Software (z. B. „Windows XP Home“ und „Windows XP Professional“) als Versionen bezeichnet. Um jedoch Verwechslungen vorzubeugen, ist die Differenzierung der Begriffe Version und Variante hilfreich, kann allerdings nicht immer exakt vollzogen werden.
Bei anderen Arten von Produkt-Publikationen (z. B. bei Büchern und Spielen) spricht man eher von Auflagen oder Ausgaben statt von Versionen.
Semantic Versioning
Ein Versuch, die Software-Versionierung zu standardisieren, ist Semantic Versioning (SemVer), d. h. der Aufbau der Versionsnummern wird mit Bedeutung versehen. Dabei besteht die Version im Wesentlichen aus drei (durch je einen Punkt getrennten) natürlichen Zahlen (einschließlich der Null). In der folgenden Liste wird die Bedeutung einer Inkrementierung der jeweiligen Versionsteile beschrieben:
- Die major version: Eine neue Version darf auch Veränderungen beinhalten, die die API inkompatibel mit früheren Versionen werden lassen.
- Die minor version: Neue Funktionalität wurde rückwärtskompatibel hinzugefügt.
- Die patch version: Die Software wurde rückwärtskompatibel korrigiert (siehe Patch).