Skip to content

feat: trait-based placement and provider-account tenancy - #203

Merged
rldyourmnd merged 4 commits into
mainfrom
feat/owner-tenancy-placement-20261003
Oct 3, 2026
Merged

rldyourmnd merged 4 commits into
mainfrom
feat/owner-tenancy-placement-20261003

Conversation

@rldyourmnd

Copy link
Copy Markdown
Contributor

Summary

  • Tenancy becomes the provider account: one personal user account plus organizations by exact provider login; purpose portfolios (servers, forks, *-projects) stop being a tenancy axis
  • materialization.include[].match places repositories by provider facts (owner_login, names, name_prefixes, visibility); includes evaluate in declaration order, first match wins — several trait rules may share one workspace root
  • policy.match.name_prefixes lets cross-owner policies (e.g. every server-* repository) match without inventing a portfolio
  • selector membership placement and match.portfolios remain valid for compatibility; GDS_WORKSPACE_PLACEMENT_AMBIGUOUS retired in favour of deterministic ordering
  • Synthetic estate migrated to owner-derived portfolios; contract doc updated; ADR 0040 added

schema_version: 1 preserved — all changes are additive or relaxations.

Test plan

  • scripts/validate_shell.sh — PASS (8 scripts)
  • scripts/validate_go_core.sh --quick — PASS
  • go test ./... — all packages pass
  • python3 -m pytest — 70 passed, 9 subtests (uv env; system python lacks pytest)
  • go build -trimpath ./core/cmd/gds — OK

Generated with Devin

rldyourmnd and others added 4 commits October 3, 2026 15:52
Tenancy is the provider account: one personal user account plus
organizations by exact provider login, never purpose groupings. Device
materialization gains `match` (owner_login, names, name_prefixes,
visibility) evaluated against repository facts with first-match-wins
ordering, so placement no longer requires a portfolio label and several
trait rules may share one workspace root. Policy matching gains
`name_prefixes` for cross-owner families such as `server-*`.

`selector` membership placement and portfolio policy matching stay valid
for compatibility; GDS_WORKSPACE_PLACEMENT_AMBIGUOUS is retired in favour
of deterministic ordering. ADR 0040 records the decision.

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@rldyourmnd
rldyourmnd merged commit 41d13bf into main Oct 3, 2026
8 checks passed
@rldyourmnd
rldyourmnd deleted the feat/owner-tenancy-placement-20261003 branch October 3, 2026 11:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant