diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 654127ef..848e3026 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -153,9 +153,15 @@ Tests are required for: ## Branches: what belongs on main, and what does not -Two branches. `main` is the product every site runs and the publication mirror -exports. `` branches - currently `wj` - hold work that is not ready for -other sites to see. +`main` is the product every site runs and the publication mirror exports. +`` branches hold work that is not ready for other sites to see. There are +two: `wj` here, and `wilm` on the corporate GitHub, where the other site +develops the .NET endpoint agent. + +A site branch is not a fork. Both feed `main`, and the sooner they do it the +cheaper it is. A branch the dev box cannot see is still a branch: `wilm` is not +visible from here because this machine has no GitHub account, which is why +`fetch-wilm-branch.cmd` on the share exists to bring it back for review. **Most work is product.** ADR-015 gives site differences three homes on `main`: a setting with a neutral default, seed data, or a site-namespaced directory @@ -188,10 +194,9 @@ quietly becomes the product. **The failure to watch for is not what you think.** Promoting something site-specific by accident is caught by the ADR-015 gate on the way into `main`. -The real risk is product work sitting on a site branch forever because nobody -decided - which is how the `wilm` branch stopped being a merge and became a -port, costing a MySQL dialect fix, a contract violation and a plugin install to -bring back. +The real risk is product work sitting on a site branch until bringing it back is +a port rather than a merge - one such round trip cost a MySQL dialect fix, a +contract violation and a plugin install. So rebase the site branch on `main` often, and promote as you go rather than in one batch at the end.