Hoppa till huvudinnehÄll

🌿 Arbetsflöde

Denna sida beskriver vÄra konventioner för versionshantering, commits och release-processen.

Versionshantering​

Vi anvÀnder en enkel branchstrategi med en main-branch som alltid ska vara i ett deploybart skick. Utveckling sker i feature- eller bugfix-brancher som sedan mergas in i main. Vi anvÀnder inte develop eller andra liknande brancher för att hÄlla det enkelt och för att passa ett arbetssÀtt med kontinuerlig integration och leverans (CI/CD).


📝 Conventional commits​

Commits görs enligt conventional commits. AnvÀnd engelska, imperativ form, definiera type feat|docs|fix|refactor|test|chore|ops... för att avgöra vilken versionsÀndring du vill göra och scope (project, component) som rubrik för changelog.

Viktigt: Scope börjar alltid med ett av Nx-projekten (components, theme, docs, etc.) för att versionshanteringen ska fungera korrekt. Du kan lÀgga till flera scopes med kommatecken, t.ex. feat(components,button): ...

Exempel​

feat(components, button): add new button variant   # Minor bump för components
fix(theme): fix button hover color # Patch för theme
docs: update contribution guide # Ingen bump

# Med body för mer kontext
fix(theme): prevent red color on button hover

Introduce new css variable to automatically
select style based on input type

Types och versionsĂ€ndringar​

TypeBeskrivningVersion
featNy funktionalitetMinor
fixBuggfixPatch
docsDokumentationIngen
refactorKodrefaktoreringIngen
testTesterIngen
choreUnderhÄllIngen

Breaking changes och major-versioner​

För att trigga en major-version, lÀgg till BREAKING CHANGE: i commit-meddelandets body:

feat(components, button): remove deprecated size prop

BREAKING CHANGE: The size prop has been removed. Use variant instead.

Ta aldrig bort funktionalitet direkt - deprecera först! Markera med @deprecated i koden och dokumentera i release notes. Ge anvÀndare minst en major-version att migrera innan borttagning.

Innan du skapar en PR, stÀda gÀrna commit-historiken med git rebase -i om du har mÄnga commits i din feature branch. Guide till git rebase.


🚀 Release​

Release sker automatiskt via CI/CD nÀr Àndringar mergas till main-branchen.

Hur det fungerar​

  1. Automatiska versioner: NÀr en pull request mergas till main analyserar Nx Release alla commits sedan senaste release och rÀknar fram rÀtt version baserat pÄ conventional commits.

  2. Publicering: Om nÄgon package fÄr en ny version publiceras den automatiskt till npm.

  3. Changelog och taggar: Changelog uppdateras automatiskt och nya git-taggar skapas enligt formatet nx-project@version.

  4. Dokumentation: Dokumentationswebben byggs och publiceras automatiskt med de senaste Àndringarna.

Vad du behöver göra​

  • Följ conventional commits: Se till att dina commits följer conventional commits-standarden, eftersom det avgör vilken versionsĂ€ndring som sker (major, minor, patch).
  • Skapa en PR: Alla kan skapa pull requests, men Midas core-team ansvarar för granskning och merge.
  • InvĂ€nta merge: NĂ€r din PR godkĂ€nns och mergas till main sker resten automatiskt.

Du behöver inte köra nĂ„gra manuella release-kommandon. CI/CD-pipelinen hanterar hela releasen automatiskt! 🎉