Saltar al contenido principal

Branch and Release Strategy

Branch model

main
|
+-- develop <-- integration branch (Javi merges here)
|
+-- 016-surgery-room-model (feature branch)
+-- 017-patient-guardian-fields (feature branch)
+-- 018-comms-whatsapp-template (feature branch)
BranchPurposeWho pushes
mainProduction releasesJavi only
developIntegration — must always buildJavi only (merges PRs here)
NNN-descriptionFeature workContributors / Claude Code sessions

Feature branch naming

Format: NNN-short-description where NNN is a zero-padded sequential number across the plugin.

016-surgery-room-model
017-patient-guardian-fields
018-comms-whatsapp-integration
019-audit-consent-events
  • Always branch from develop (git checkout -b NNN-name)
  • One feature or bug fix per branch
  • Branch number is per-plugin, not global

PR workflow

1. contributor creates NNN-branch from develop
2. contributor pushes + opens PR against develop
3. contributor writes REVIEW.md with smoke test checklist
4. Javi reviews code + runs smoke tests
5. Javi merges to develop
6. When ready for release, Javi merges develop -> main
7. CalVer tag is cut on main: AAMMDD.NN

Merge authority (ADR-032)

Only Javi closes PRs and merges to develop and main in all obeliOmed repos.

Claude Code sessions and contributors:

  • Create feature branches
  • Push commits
  • Open PRs
  • Write REVIEW.md

Never merge a PR yourself. Never ask "can I merge this?" — Javi decides on merge days.

CalVer releases (ADR-028)

Releases are tagged on main using CalVer format: AAMMDD.NN

TagMeaning
260620.012026-06-20, first release
260620.022026-06-20, second release (hotfix)
260621.012026-06-21, first release

The version is set in composer.json and in facturascripts.ini (the FS plugin manifest).

Building on open PRs

Never build code that depends on a PR that has not yet been merged by Javi.

  • Safe work while PRs are open: new self-contained features, audits, docs, new plugins
  • Blocked until merge: any code that imports or depends on code in an open PR

If you need to reference a model that is in an open PR, wait for Javi to merge it first.