ADR 0011: Git hosting on Bitbucket, project TROV, one repository per surface
- Status
- Accepted
- Date
- Deciders
- Founder
Context
ADR 0010 left the git host open (org.gitHost = local) and every directory was a local repository without commits. The user chose the existing Bitbucket workspace cognivanceinc and its project TROV for Trovensa, asked for one repository per directory, feature branches with pull requests, and a squashed history that loses no work. The exemplar suite in the same workspace uses the pattern bitbucket.org/cognivanceinc/<repo>.
Decision
org.gitHost = bitbucket.org,org.gitOrg = cognivanceinc; repositories live in projectTROVand are private.- Names follow the service names:
trovensa-workspace(the workspace root: config, plan, contract, decisions, claims register,shared/,scripts/,review/),trovensa-site,trovensa-docs,trovensa-api,trovensa-web,trovensa-agent,trovensa-deck,trovensa-infra. - History shape at publication:
maincarries one initial commit (README and ignore file); the entire phase-1 build is a single commit onfeat/phase-1-build, opened as a pull request intomain. Nothing is force-pushed or rewritten afterwards. - Commit messages and pull-request text carry no attribution (the commit hook and
shared/attribution-words.jsonenforce it).
Consequences
PRODUCT-CONTRACT.mdline 6 and section 9.3 name the repositories;forge.config.jsonorgis updated.- Release tags become real short shas once the pull requests merge; until then
release.shtagsnogit-<hash>are expected. - The workspace root repository ignores the seven surface directories, so each surface is cloned separately next to it.
Alternatives considered
- One monorepo: simpler cloning, but the method releases surfaces independently with their own tags; rejected.
- Commit straight to main: faster, but the user asked for pull requests; rejected.
Follow-ups
- Merge the eight pull requests after review; then set branch permissions on
mainin project TROV.