...
- Als een nieuwe versie compatible is met een eerdere versie, dan wordt er gesproken over backward compatibility.
...
Algemene Versioneringsregels
Bij het uitwerken van de wijziging wordt een analyse gemaakt om de impact van de wijziging vast te stellen. Een uitgewerkte wijziging wordt geclassificeerd als major, minor of patch o.b.v. de onderstaande onderdelen:
- of het de uitwisseling beïnvloedt en daarmee niet backward compatible is met het huidige afsprakenstelsel
- of en hoe het de functionaliteit beïnvloedt
- of het alleen een tekstuele wijziging is zonder functionele invloed
Een release volgt de wijziging met de hoogste classificatie;
- Een incompatibele wijziging leidt ALTIJD tot een major publicatie
- Een compatibele wijziging KAN, met valide reden, ook tot een major publicatie leiden (bijvoorbeeld door grote impact op de uitwisselingsketen).
Releases voor het afsprakenstelsel worden als volgt aangeduid:
- Major
...
- :
...
- wijzigingen die invloed hebben op de functionaliteit en niet backward compatible zijn. Deze releases worden opgenomen in de
...
- roadmap;
- Minor
...
- :
...
- Wijzigingen die nodig zijn om een onmiddellijke dreiging voor de continuïteit van of het vertrouwen in het MedMij Afsprakenstelsel/-netwerk af te wenden;
- Verbeteringen waarvan de baten van spoedig doorvoeren significant groter zijn dan de implementatie-inspanningen, en die op breed draagvlak onder de deelnemers kunnen rekenen.
De aanduiding van releases is opgebouwd uit drie nummers, namelijk x.y.z (bijvoorbeeld 1.3.2). Bij een major release wordt de combinatie x.y opgehoogd. Daarbij zijn twee opties, ofwel y wordt met een verhoogd waarna z op 0 wordt gezet (bijvoorbeeld van 1.3.2 naar 1.4.0), ofwel x wordt met een verhoogd waarna y en z op 0 worden gezet (bijvoorbeeld van 1.3.2 naar 2.0.0). De keuze hiertussen is afhankelijk van aard en omvang van de release. Bij een minor release wordt z met een verhoogd (bijvoorbeeld van 1.3.2 naar 1.3.3).
Er zijn twee major releases per jaar. De inhoud van een major release wordt samengesteld op basis van uitgewerkte wijzigingsvoorstellen (RFC's). Minor releases zijn niet bij voorbaat gepland; zij worden alleen als dit nodig is tussen major releases uitgebracht, op een datum die in overleg met Deelnemers wordt vastgesteld.
...
- wijzigingen die invloed hebben op de functionaliteit en backward compatible zijn;
- Patch: Wijzigingen die geen invloed hebben op de functionaliteit en backward compatible zijn.
De (SemVer) aanduiding van het release versienummer moet de structuur X.Y.Z. hebben, waar X, Y en Z een niet-negatief geheel getal zijn. Voorloopnullen mogen niet aanwezig zijn. X is de major, Y is de minor versie en Z is de patch-versie. Elk element moet numeriek ophogen. Bijvoorbeeld:
- Patch 1.6.0 => 1.6.1
- Minor 1.6.0 => 1.7.0
- Major 1.7.0 => 2.0.0
Hierbij geldt dat de hoogst geclassificeerde wijziging het te wijzigen nummer bepaalt.
Een release candidate bevat tenminste één major wijziging en eventueel ook minors en patches. De inhoud van de nieuwe release candidate wordt samengesteld op basis van uitgewerkte wijzigingsvoorstellen. Majors worden enkel buiten de major release slots gepubliceerd indien noodzakelijk. Echter, in overleg met de belanghebbenden kunnen minors ook tussentijds doorgevoerd worden.
Patches kunnen in het MedMij Afsprakenstelsel worden opgenomen zonder dat deze leiden tot een nieuwe release.
...
Voorbeelden van patches zijn het verwijderen van inconsistenties of het aanpassen van voorbeeldberichten. Een patch heeft geen invloed op de functionaliteit en is backward compatible. Wanneer blijkt dat een patch toch invloed heeft op de functionaliteit, dient de wijziging als minor of major geclassificeerd te worden en als dusdanig behandeld te worden.
Besluitvorming releases
Bij major releases legt Stichting MedMij de release eerst voor aan de dDeelnemersraad, die hierover een zwaarwegend advies afgeeftmag afgeven. Het bestuur is niet gehouden aan dit advies, maar dientmoet het advies van de raad wel serieus te nemen en een afwijking te onderbouwen. De besluitvorming over de release door het bestuur behoeft heeft de goedkeuring nodig van de eEigenaarsraad . De eEigenaarsraad dient hierbijmoet geïnformeerd te worden over het advies van de dDeelnemersraad en eventueel over de eventuele motivatie van het bestuur om van dit advies af te wijken.
...