Contributing/Plugin development cycle
From OHC Network Wiki
More languages
More actions
All CARE plugins follow a shared development cycle to keep the ecosystem predictable and reviewable. Every plugin repository must use the develop branch as its integration branch.
Branching model
main ─────── (tagged releases only)
╱
develop ───────────── (integration branch)
╱ │ ╲
feature/foo ─ │ ─── feature/bar
│
fix/bug-123 ───
main- Tagged releases only. Merged from
developwhen cutting a release. develop- Default integration branch. All features and fixes merge here after review. Must exist in every plugin repo.
feature/<name>- Branch off
developfor new features. fix/<description>- Branch off
developfor bug fixes. chore/<description>- Branch off
developfor maintenance tasks.
Creating the develop branch
If a plugin repository does not yet have a develop branch, create it from the current state of main:
git checkout main
git pull origin main
git checkout -b develop
git push origin develop
Then set develop as the default branch in the repository settings on GitHub (Settings → Branches → Default branch).
Workflow
- Branch: Create a feature/fix/chore branch from
develop. - Build: Implement your changes on that branch.
- Review: Open a Pull Request targeting
develop. - Merge: After approval, squash-merge into
develop. - Release: When ready, merge
developintomainand tag the release.
Commit conventions
Use semantic commit prefixes for changelog generation:
feat:- A new feature
fix:- A bug fix
chore:- Maintenance or tooling
docs:- Documentation changes
refactor:- Code restructuring
test:- Adding or fixing tests
perf:- Performance improvements
Example: feat: add discharge summary endpoint
Review requirements
- At least one approval from a maintainer before merging.
- All CI checks must pass.
- The branch must be up to date with develop (rebased or merged).
Plugin lifecycle
- Experimental
- New plugin in active development. May break between commits.
- Stable
- Ready for production use. Follows the full development cycle.
- Deprecated
- Replaced or superseded. No active development.