Software versioning

Semantisch versioneren: een driedelig versienummer
Een voorbeeld van versienummers

Software versioning is het proces van het toewijzen van unieke nummers aan elke versie van computersoftware. Het is een regelmatig gebruikt versieschema[1] dat een versie beschrijft met een driedelig versienummer (Majeur.Mineur.Patch), een optionele tag en een optioneel label. Er wordt binnen dit schema groot belang gehecht aan het beschrijven van risico en functionaliteit.

Ingrijpende veranderingen worden aangegeven door het Majeur-getal te verhogen (hoog risico); nieuwe, compatibele wijzigingen verhogen het Mineure getal (gemiddeld risico); en alle andere niet-ingrijpende wijzigingen verhogen het patchnummer (laagste risico). Een tag kan worden meegegeven om eventuele risico's (-alpha, -beta) aan te duiden. Majeur versie nul (0.y.z) wordt gebruikt om aan te tonen dat een product nog drastisch kan veranderen.

Semantic versioning

Een voorstel om softwareversies te standaardiseren heet semantic versioning (ook afgekort tot SemVer)[2] Er wordt in dit schema betekenis gegeven aan de structuur van de versienummers, die bestaat uit drie natuurlijke getallen, elk gescheiden door een punt.

Een voorbeeld van het afleiden van compatibiliteit uit een SemVer-versie: software die afhankelijk is van versie 2.1.5 van een API is compatibel met versie 2.2.3, maar niet noodzakelijkerwijs met 3.2.4.

Ontwikkelaars hebben de optie om de Mineure versie met meer dan 1 cijfer tegelijk te verhogen om aan te geven dat er belangrijke functionaliteit werd toegevoegd. Dit rechtvaardigt echter niet het verhogen van de Majeure versie; bijvoorbeeld Internet Explorer 5 van 5.1 naar 5.5 of Adobe Photoshop 5 naar 5.5. Men kan dit doen om de waarde van de upgrade tegenover de gebruiker te benadrukken. Merk op dat de versiecijfers niet beperkt zijn tot een enkel cijfer, zoals in Blender versie 2.91 of Minecraft Java Edition vanaf 1.7.10).

Schema's

Verschillende versienummerschema's werden opgesteld om verschillende versies van een stuk software bij te houden. Doordat computers niet weg te denken zijn uit het dagdagelijkse leven, worden deze schema's tegenwoordig ook buiten computers gebruikt.

Andere schema's kunnen waarde hechten aan meerdere versies:

majeur.mineur[.build[.revisie]] (voorbeeld: 1.2.12.102)
majeur.mineur[.maintenance[.build]] (voorbeeld: 1.4.3.5249)

Zie ook

  • Versiebeheersysteem
Bron
  • Dit artikel of een eerdere versie ervan is een (gedeeltelijke) vertaling van het artikel Software versioning op de Engelstalige Wikipedia, dat onder de licentie Creative Commons Naamsvermelding/Gelijk delen valt. Zie de bewerkingsgeschiedenis aldaar.

Referenties

  1. Lam, Patrick (August 16, 2020). Proceedings of the 2020 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software. DOI:10.1145/3426428.3426922, "Putting the semantics into semantic versioning", 157–179. ISBN 9781450381789.
  2. Preston-Werner, Tom (2013), Semantic Versioning 2.0.0. Creative Commons. Retrieved from https://semver.org/spec/v2.0.0.html.