Calendar Versioning (CalVer)
Software versiebeheer. Hoe pak je dat het beste aan? Eerder schreven we over Semantic Versioning (SemVer), een leidende manier van versienummering in software ontwikkeling. SemVer is voornamelijk voor techneuten een handig hulpmiddel, omdat het ‘vertelt’ welke versies met elkaar samen kunnen gaan. De alternatieve manier van versienummering waar het in deze blog over gaat heet Calendar Versioning (CalVer). In tegenstelling tot SemVer is deze manier gericht op mensen en sluit beter aan bij de leefwereld van alle dag.
Calendar Versioning opbouw
CalVer gebruikt getallen die gebaseerd zijn op datums (zoals de naam al suggereert). Het ontwikkelteam kan zelf kiezen welke opbouw ze gebruiken. Er zijn verschillende opties, zoals 2024-02
, 2024.02
, 24-02
, enzovoort. Deze getallen geven aan dat de versie uit 2024 komt, en meer specifiek uit de maand februari. 02
staat hier voor februari. Dit is handig als je software of data aanbiedt die slechts één keer per maand verandert.
Een ander voorbeeld is hoe we de versie van q2-software.nl opbouwen: 24.50
, waarbij het laatste getal 50
de 50e dag van 2024 aangeeft. We doen namelijk meerdere updates per maand, soms zelfs per week, maar nooit meer dan één per dag. Een dagelijkse teller was voor ons dus noodzakelijk.
Toepassingen van Calendar Versioning
Waar kan je CalVer toepassen? Je kunt CalVer toepassen op plaatsen waar technische afhankelijkheden niet aanwezig zijn. Eigenlijk alle plaatsen waar je een softwareversie met een eindgebruiker wilt communiceren. Bijvoorbeeld op een blogpagina, op een privacy-policy of algemene voorwaarden, bij een dataset wat aangeboden in vaste termijnen wordt bijgewerkt of op houdbare producten.
Calendar Versioning vs. Semantic Versioning
CalVer | SemVer |
---|---|
Gebaseerd op datums | Gebaseerd op technische nummers |
Geschikt voor communicatie met eindgebruikers | Geschikt voor communicatie met ontwikkelaars |
Kan bestaan uit segmenten en modificatoren | Kan bestaan uit segmenten en modificatoren |
Gaat van groot naar klein: jaar, maand, week, dag, (uur, minuut, pre-release) | Gaat van groot naar klein: major, minor, patch, (pre-release, build) |
Verschillen
Zoals je kunt zien, hangt CalVer sterk af van de datum van de versie. SemVer is daarentegen een technisch oplopend nummer. Omdat CalVer een herkenbaar punt heeft voor niet-techneuten, is deze methode meer geschikt voor situaties waarin je met hen moet communiceren. Techneuten onder elkaar geven echter de voorkeur aan SemVer.
Overeenkomsten
Net als in SemVer kan een CalVer bestaan uit een paar segmenten van getallen en modificatoren. CalVer gaat net als Semver van groot naar klein: jaar, maand, week, dag, (uur, minuut). Bijvoorbeeld 24.1-beta.25
verwijst naar de 25e bèta-versie van de eerste versie in 2024.