Skip to Content
EngineeringDecisions (ADRs)ADR 0011 Git hosting on Bitbucket, project TROV, one repository per surface

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 project TROV and 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: main carries one initial commit (README and ignore file); the entire phase-1 build is a single commit on feat/phase-1-build, opened as a pull request into main. Nothing is force-pushed or rewritten afterwards.
  • Commit messages and pull-request text carry no attribution (the commit hook and shared/attribution-words.json enforce it).

Consequences

  • PRODUCT-CONTRACT.md line 6 and section 9.3 name the repositories; forge.config.json org is updated.
  • Release tags become real short shas once the pull requests merge; until then release.sh tags nogit-<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 main in project TROV.