Upstream Sync Strategy
Onelink is a fork of Chatwoot and should keep a disciplined sync process.Branching Model
- main working branch:
onelink-main - upstream sync branch:
sync/chatwoot-vX.Y.Z - feature branches from
onelink-main - writable remote for product work:
origin - upstream Chatwoot remote:
upstream
Daily GitHub Flow
For normal product changes, do not develop directly ononelink-main.
- update local
onelink-main - create a focused
feature/...,fix/..., orchore/...branch from it - push that branch to
originover SSH - open a pull request into
onelink-main - merge after review or maintainer verification
sync/... branches only for bringing Chatwoot changes into the fork.
Stacked Feature Branches
When a task contains a reusable platform/base change plus an optional product feature, do not mix them in one delivery branch.- create the base branch from
onelink-main - commit and push the shared/base work first
- create the optional feature branch from that base branch
- commit and push the feature branch separately
- merge the base branch first, then decide whether the feature branch should merge
Sync Process
Guardrails
- minimize direct core patches
- prefer extension points and isolated overlays
- validate generic, healthcare, and construction assumptions after shared changes
- document intentional divergences from upstream
- do not push product changes to
upstream - do not use
developfrom this fork as the base branch for active work