Git repository information
Monorepo
The main Docsy repository is effectively a monorepo containing the Docsy:
- Theme at the repo root
- Website in the
docsy.devdirectory. The website uses the Docsy theme, of course, with extra styling.
The main Docsy example site is Goldydocs, located in the Docsy example site repository.
Branch model
Both the Docsy and Goldydocs repositories use the same branch model:
main: development branch- All feature work and doc updates land here first.
- Source of leading-edge theme version for downstream sites.
releasebranch- Published & supported line of the theme and website.
- Website production builds are deployed from this branch via Netlify.
- An ancestor of
mainmost of the time, diverged due to hotfixes on occasion.
No rebases and no history rewriting for either branch.
Tags
- Tags are used for official theme releases
- Tags are attached to
maincommits, which are shared byreleasesince the two branches sync on releases.
Release flow
- Work merges into
main. - At release:
- Tag the release commit on
main. - Fast-forward
releaseto that same commit.
- Tag the release commit on
- Netlify deploys from
release.
This keeps history mostly linear.
Hotfixes (rare)
- If a fix lands on
release, it must be forward-merged or cherry-picked tomain. - Next promotion fast-forwards
releasetomainagain.
Invariant: release should converge back to main ASAP.
Why this model?
- Preserves a clean, mostly linear history.
- Allows website production deploys on release commits (and a rare hotfix).
- Keeps
mainfree for ongoing theme + site development. - Maintains clear, immutable release points for theme consumers via tags.