Grip op mutaties#
Wat zijn mutaties#
Mutaties zijn wijzigingen die je doet aan de bestaande modelstructuur. Deze mutaties doe je niet direct maar worden na goedkeuring gepubliceerd. Een mutatie is altijd een wijziging ten opzichte van de vigerende versie.
Onder wijzigen verstaan we;
- Wijzigingen aan een bestaand concept
- Meta-eigenschappen
- Toevoegen of verwijderen van eigenschappen
- Het toevoegen van een nieuw concept (en ook weer alle meta-eigenschap en eigenschap wijzigingen)
- Het verwijderen van een concept
Mutaties worden niet getoond in de vigerende versie. Vanuit een RFC of kandidaatversie kan wel de impact van een mutatie bekeken worden op de vigerende versie. Om mutaties te publiceren moeten ze aan een RFC toegevoegd worden. Wanneer een mutatie niet gekoppeld is aan een RFC spreken we over een niet ingedeelde mutatie.
Hoe werken mutaties#
In dit artikel gaan we dieper in op hoe mutaties werken en ze worden toegepast.
Afspelen van mutaties#
Mutaties hebben een volgorde van afspelen. De volgorde van de mutaties wordt bepaald door de volgorde waarin de mutaties gemaakt zijn, welke RFC ze zitten en in welke kandidaatversie de RFC vervolgens weer zit.
Mutatie 1
Aanmaken nieuw concept A
Mutatie 2
Aanmaken nieuw concept B
Mutatie 3
Eigenschap aanmaken om concept A en B te verbinden
Wanneer eerst mutatie 3 wordt afgespeeld en daarna pas mutatie 1 en 2 gaat het fout. Mutatie 3 heeft de uitkomst van mutatie 1 en 2 nodig dus kan niet worden afgespeeld. Na dat het systeem mutatie 3 heeft proberen afspelen zal die daarna wel gewoon doorgaan om 1 en 2 af te spelen.
In dit voorbeeld zouden wel mutatie 1 en 2 omgewisseld kunnen worden.
Toepassingen van een mutatie#
Mutaties kennen drie soorten toepassingen. Een werkversie-toepassing, RFC-toepassing en kandidaatversie-toepassing.
- In de applicatie wordt bij een mutatie de status per toepassing getoond. Het kan voorkomen dat een mutatie in de ene toepassing niet slaagt en in de andere wel. Om een mutatie te kunnen publiceren moet deze in ieder geval in de kandidaatversietoepassing slagen.
- Een niet ingedeelde mutatie heeft altijd maar één toepassing, de werkversie.
Volgorde van afspelen in de werkversie toepassing#
In de werkversie worden alle mutaties afgespeeld per RFC in de volgorde zoals de RFC’s te vinden zijn bij de menu-ingang mutaties in de tab Ingedeelde mutaties. Als alle RFC’s afgespeeld zijn worden alle niet ingedeelde mutaties toegepast in de getoonde volgorde van Mutaties-ingang – Niet ingedeelde mutaties.
Volgorde van afspelen in een RFC-toepassing#
Bij de RFC-toepassing worden de mutaties bekeken in de context van de RFC. De mutaties worden afgespeeld in de volgorde waarop ze in de RFC zitten. Als de RFC afhankelijk is van andere RFC’s, worden altijd eerst de mutaties uit die RFC(s) afgespeeld.
Of een RFC afhankelijk is van een andere RFC wordt aangegeven bij de RFC. In de RFC-tab kan aangegeven worden of een RFC afhankelijk is van andere RFC’s.
Volgorde van afspelen in een kandidaatversie#
Bij een kandidaatversie geldt de volgorde van RFC’s zoals deze in de kandidaatversie zitten. Een kandidaatversie kan een voorgaande kandidaatversie hebben. De voorgaande kandidaatversie met de RFC’s die daarin zitten wordt altijd eerst afgespeeld.
Als de volgorde van afspelen niet correct is#
Als de volgorde van afspelen niet correct is kunnen mutaties niet worden toegepast wat betekent dat de uiteindelijke wijziging niet doorgevoerd kan worden.