Skip to content

Latest commit

 

History

History
49 lines (29 loc) · 2.59 KB

SEMVER.md

File metadata and controls

49 lines (29 loc) · 2.59 KB

Semantic versioning

De standaard

LUX gebruikt Semantic versioning (SemVer)1 voor de versies van releases. Dit is een veelgebruikt versienummeringssysteem, dat in de basis uit drie versienummers bestaat, namelijk:

MAJOR.MINOR.PATCH

Deze kunnen uitgebreid worden met optionele pre-release- en build-metadata labels.

De verschillende elementen worden, volgens het officiele schema2, verhoogd als volgt:

  1. MAJOR wordt verhoogd bij incompatibele API-wijzigingen,
  2. MINOR wordt verhoogd bij het toevoegen van functionaliteit die compatibel is met de vorige versie, en
  3. PATCH wordt verhoogd bij compatibele bugfixes.

Hoe LUX uitbreidt op de standaard

Binnen LUX hebben we dit uitgebreidt en worden de versienummer als volgt verhoogd:

MAJOR
wordt verhoogd bij incompatibele én impactvolle (visuele) wijzigingen die bij gebruikers van LUX toegankelijkheids- of regressieproblemen kunnen veroorzaken,

Voorbeeld

Mocht het hele design van LUX op grote schaal veranderen dan zal dit veel impact hebben. SemVer beschrijft voornamelijk breaking changes in een API en niet op visueel vlak. Wij zullen dit soort veranderingen wel beschouwen als een MAJOR change waardoor het voor de gebruiker duidelijk is dat ze extra moeten opletten bij het updateten van LUX. Het is niet uitgesloten dat een Minor versie ook (visuele) regressietesten breekt, maar hiervoor zouden geen wijzigingen in een design of andere code-aanpassingen voor nodig hoeven zijn, alleen een update van de test of accorderen van een nieuwe baseline.

Het artikel "Visual Breaking Change in Design Systems" van Nathan Curtis (EightShapes op Medium) beschrijft dit uitgebreid met duidelijke voorbeelden.

Canary releases

Bij elke merge naar de main-branch wordt er een release naar NPM gedaan onder de tag canary. Wil je de versie met de laatste, maar misschien niet stabiele, versie installeer het package met bijv npm install @lux-design-system/<package>@canary.
Voor de stabiele semver-versies kan je de latest-tag gebruiken (de default van NPM).

Contact

Mochten er nog vragen zijn, neem contact op met het LUX-team via ons Slack #support-kanaal.

logius-ux.slack.com

Footnotes

  1. https://en.wikipedia.org/wiki/Software_versioning#Semantic_versioning

  2. https://semver.org/lang/nl/