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)
| Branch | Purpose | Who pushes |
|---|---|---|
main | Production releases | Javi only |
develop | Integration — must always build | Javi only (merges PRs here) |
NNN-description | Feature work | Contributors / 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
| Tag | Meaning |
|---|---|
260620.01 | 2026-06-20, first release |
260620.02 | 2026-06-20, second release (hotfix) |
260621.01 | 2026-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.