Promotiefase
In het kort
In de promotiefase maak je de Candidate component officieel Hall of Fame. Je migreert de packages naar de @nl-design-system scope en main repository, publiceert versie 1.0.0, update alle systemen, en viert de mijlpaal met de community. Het resultaat is een component met garanties op toegankelijkheid, stabiliteit en ondersteuning.
Wat doe je in deze fase?
- Package scope migreren naar @nl-design-system
- Component naar main repository verplaatsen
- Versie 1.0.0 publiceren
- Oude candidate packages deprecaten
- Component status updaten
- Community informeren
Migreer van @nl-design-system-candidate naar @nl-design-system
Doel: Verplaats packages van candidate scope naar main scope.
Waarom belangrijk? Hall of Fame componenten horen onder de @nl-design-system scope, niet meer onder @nl-design-system-candidate. Dit moet gebeuren voordat we versie 1.0.0 publiceren.
Acties
-
Update package.json files:
-
Wijzig package naam:
- Was:
@nl-design-system-candidate/{component-name} - Wordt:
@nl-design-system/{component-name}
- Was:
-
Update in alle packages:
- React:
packages/component-library-react/package.json - CSS:
packages/components-css/{component-name}/package.json - Docs:
packages/component-docs/{component-name}/package.json
- React:
-
Wijzig package naam:
-
Update cross-references:
- Update dependencies in andere packages die dit component gebruiken
- Update imports in documentatie
- Update repository links
-
Maak migratie guide:
codevoorbeeld## Migration from Candidate to Hall of Fame The {ComponentName} has graduated to Hall of Fame status and is now published under `@nl-design-system` scope. ### Update your dependencies: **Before:** \`\`\`json { "dependencies": { "@nl-design-system-candidate/component-library-react": "^0.5.0" } } \`\`\` **After:** \`\`\`json { "dependencies": { "@nl-design-system/component-library-react": "^1.0.0" } } \`\`\` ### Update your imports: Imports remain the same - only the package name changes. -
Test de nieuwe package structuur:
- Build lokaal
- Test of alle imports werken
- Test of Storybook nog werkt
🚩 Checkpoint: Package scope gemigreerd
Migreer component naar nl-design-system/components repository
Doel: Verplaats de component code van de candidate repository naar de main components repository.
Waarom belangrijk? Hall of Fame componenten horen thuis in de hoofdrepository, niet in de candidate repository. Dit maakt duidelijk dat de component nu onder beheer van het kernteam valt.
Acties
-
Bereid migratie voor:
-
Clone beide repositories:
codevoorbeeld
git clone https://github.com/nl-design-system/candidate git clone https://github.com/nl-design-system/components
-
Clone beide repositories:
codevoorbeeld
-
Kopieer component packages:
-
Van
candidate/packages/naarcomponents/packages/:- React component
- CSS component
- Documentation
- Design tokens
-
Van
-
Update package.json in main repo:
- Verwijder alle verwijzingen naar
@nl-design-system-candidate - Gebruik
@nl-design-systemscope (dit is al gedaan in vorige stap) - Update dependencies tussen packages
- Update repository URLs
- Verwijder alle verwijzingen naar
-
Update build configuratie:
- Voeg component toe aan main repo builds
- Update Storybook configuratie
- Update TypeScript configuratie
- Test of alles build
-
Maak PR naar nl-design-system/components:
codevoorbeeldTitle: feat: migrate {ComponentName} from candidate to Hall of Fame Description: Migrates {ComponentName} from candidate repository to main components repository for Hall of Fame status. - ✅ All packages moved - ✅ Package scope updated to @nl-design-system - ✅ Build configuration updated - ✅ Tests passing Related: [link to candidate PR/issue] -
Review en merge:
- Laat kernteam reviewen
- Test lokaal of packages builden
- Merge naar main
-
Verwijder uit candidate repository:
-
Maak PR om component te verwijderen uit candidate repo
-
Voeg README toe die verwijst naar nieuwe locatie:
codevoorbeeld# {ComponentName} - Moved to Hall of Fame This component has been promoted to Hall of Fame and moved to: https://github.com/nl-design-system/components/tree/main/packages/{component-name} **NPM**: `@nl-design-system/{component-name}`
-
🚩 Checkpoint: Component gemigreerd naar main repository
Verhoog versienummer naar 1.0.0
Doel: Markeer de component als stabiel met semantic versioning.
Waarom belangrijk? Versie 1.0.0 signaleert aan gebruikers dat de component productierijp en stabiel is.
Acties
-
Maak changeset voor major release:
codevoorbeeldnpx changeset- Selecteer alle packages
- Kies
major(gaat naar 1.0.0) - Schrijf changelog:
🎉 Hall of Fame Release! The {ComponentName} has reached Hall of Fame status: - ✅ Used in production by multiple organizations - ✅ Passed WCAG 2.2 AA accessibility audit - ✅ Stable API with semantic versioning - ✅ Complete documentation This is now a stable release with guarantees on accessibility, usability and API stability. -
Merge Version Packages PR:
- Review versienummers (moet 1.0.0 zijn)
- Check changelogs
- Merge en wacht op NPM publicatie
-
Verifieer publicatie:
- Check NPM: versie 1.0.0 is beschikbaar
- Test installatie
🚩 Checkpoint: Versie 1.0.0 gepubliceerd
Deprecate oude @nl-design-system-candidate packages
Doel: Zorg dat gebruikers van de oude candidate packages worden geïnformeerd over de migratie.
Waarom belangrijk? Gebruikers die nog de oude candidate packages gebruiken moeten weten dat ze moeten migreren naar de nieuwe Hall of Fame packages.
Acties
-
Deprecate oude packages op NPM:
codevoorbeeldnpm deprecate @nl-design-system-candidate/{component-name} "Moved to @nl-design-system/{component-name}. This package is no longer maintained."Doe dit voor alle packages:
- React component library
- CSS component
- Documentation package
-
Update README van oude packages: Voeg toe aan de README van de candidate packages:
codevoorbeeld# ⚠️ Deprecated - Moved to @nl-design-system This package has been moved to `@nl-design-system/{component-name}` and is no longer maintained. Please update your dependencies to use the new package. See the [migration guide](link) for instructions. -
Informeer gebruikers:
- Post migratie guide in Slack
- Voeg toe aan component documentatie
- Vermeld in release notes
🚩 Checkpoint: Oude packages deprecated
Update component status naar Hall of Fame
Doel: Markeer de component als Hall of Fame in alle systemen.
Acties
-
Update GitHub labels:
- Verwijder "Candidate" label
- Voeg "Hall of Fame" label toe
-
Update project board:
- Verplaats naar "Hall of Fame" kolom
- Sluit Candidate issue
- Maak nieuw Hall of Fame issue voor onderhoud
-
Update component-progress.json:
codevoorbeeld{ "organisation": "nl-design-system", "status": "HALL_OF_FAME", "links": { "npm": "https://www.npmjs.com/package/@nl-design-system/{component-name}", "documentation": "/componenten/{component-name}/", "github": "https://github.com/nl-design-system/components/tree/main/packages/{component-name}" } }Note:
organisationverandert vannl-design-system-candidatenaarnl-design-system -
Update website documentatie:
- Voeg Hall of Fame badge toe aan component pagina
- Update status in navigatie
- Vermeld garanties (toegankelijkheid, stabiliteit)
-
Update GitHub Discussion:
codevoorbeeld## 🏆 Component is Hall of Fame! De {component-naam} heeft de Hall of Fame status bereikt! **Wat betekent dit?** - ✅ Bewezen in productie bij meerdere organisaties - ✅ WCAG 2.2 AA toegankelijkheidsaudit gepasseerd - ✅ Stabiele API met semantic versioning - ✅ Garantie op ondersteuning door het kernteam **NPM**: `npm install @nl-design-system/{component-name}` **Versie**: 1.0.0 **Documentatie**: [Component pagina]({docs-url})
🚩 Checkpoint: Status geüpdatet
Deel met de community
Doel: Vier de mijlpaal en informeer de community over de nieuwe Hall of Fame component.
Acties
-
Post in Slack (#nl-design-system):
codevoorbeeld🏆 {ComponentName} is nu Hall of Fame! We zijn trots om aan te kondigen dat de {component-naam} component Hall of Fame status heeft bereikt. **Wat betekent dit?** - Bewezen in productie door {organisatie-1} en {organisatie-2} - WCAG 2.2 AA gecertificeerd - Stabiele API (v1.0.0) met semantic versioning - Garantie op ondersteuning door het kernteam **NPM**: `@nl-design-system/{component-name}` **Docs**: https://nldesignsystem.nl/componenten/{component-name}/ **Dank aan alle contributors!** Dank aan {lijst van contributors} voor jullie bijdragen aan deze component. -
Schrijf blog post:
- Vertel het verhaal van de component
- Van Help Wanted naar Hall of Fame
- Dank contributors en organisaties
- Deel leerpunten
-
Post op LinkedIn:
- Tag betrokken organisaties
- Deel visuele voorbeelden
- Link naar blog post
-
Vermeld in nieuwsbrief:
- Kondig aan in volgende NL Design System nieuwsbrief
- Inclusief screenshot en link
-
Presenteer in Heartbeat:
- Demo van de component
- Verhaal van selectie tot Hall of Fame
- Dank contributors
🚩 Checkpoint: Community geïnformeerd
Volgende stap
De component is nu Hall of Fame! Lees meer over onderhoud van Hall of Fame componenten.
Vragen?
Heb je een vraag over de Promotiefase?
- Wil je samen werken aan componenten? Kom naar een Estafettemodeldag
- Stel je vraag in het Slack kanaal
#nl-design-systemop Code for NL - Kom naar de Design Open Hour of Developer Open Hour
- Neem contact op met het kernteam