Skip to content

docs(adr): record the metadatastician package-owner widening as ADR 0003 - #110

Merged
hyperpolymath merged 3 commits into
mainfrom
feat/package-slug-owners
Oct 9, 2026
Merged

hyperpolymath merged 3 commits into
mainfrom
feat/package-slug-owners

Conversation

@hyperpolymath

@hyperpolymath hyperpolymath commented Oct 9, 2026 •

Copy link
Copy Markdown
Owner

Summary

#109 registered the nine Marid Tier-1 packages and, in the same change, widened ci/validate.jl Layer 2b so a package repo may be owned by hyperpolymath or metadatastician. It carried no ADR. This PR adds that ADR. It records the decision #109 implemented and makes one rule explicit: the set of allowed owners is closed, so adding an organisation takes another ADR.

It contains no code change. ci/validate.jl differs from main only in the comment on ALLOWED_PACKAGE_OWNERS.

On 2026-10-09 the owner ruled that the metadatastician widening be recorded in its own PR with ADR 0003. This PR was opened before #109 merged, with its own implementation. When #109 landed first, I merged main in, kept main's code (EXPECTED_SLUG_OWNER, ALLOWED_PACKAGE_OWNERS, allowed_package_owner) and dropped my parallel constants. What remains is the record.

It changes registry policy text, so it needs BDFL review. Automerge is not armed.

Note

Merged 2026-10-09T00:26:21Z as 991a5b7 (signed by web-flow), after #107 (e8383fb). Before merging, GitHub merged main into the branch as cdc8e9b3, so main is #107 plus exactly the four files below (+85/−2). This body was updated after the merge.

On main 991a5b7, ci/validate.jl gives rc=0: 41 packages, 0 custom errors and 0 owner mismatches. ADR numbers do not collide: #107 carries ADR 0002 and this PR carries ADR 0003.

Changes

  • docs/decisions/0003-package-repos-in-metadatastician.adoc (new):
  • docs/REGISTRY-POLICY.adoc: one sentence after the Layer 2b paragraph says the set is closed and links ADR 0003.
  • ci/validate.jl: the comment on ALLOWED_PACKAGE_OWNERS gains the same sentence. No executable line changes.
  • CHANGELOG.adoc [Unreleased] → Added: one entry for the ADR, directly below feat(registry): register the nine Marid Tier-1 packages at v0.1.0 (D321/D322) #109's Marid entry.

📌 New pins

RSR Quality Checklist

Required

  • No banned language patterns: AsciiDoc, plus one comment in an existing Julia file.
  • SPDX license headers on new files: the ADR has CC-BY-SA-4.0, matching ADR 0001.
  • No secrets, credentials or .env files.
  • CI is green: not entirely. Three non-required checks are red on main at 7c52894 too (and at 9e4dc83 before it), so this PR does not cause them. They are deferred below.

Deferred checks (§5c)

As Applicable — Registry Changes

  • Registry.toml index updated: N/A. No package is added, removed or rebound.
  • Per-package TOMLs consistent: the validator reports 0 custom errors on this branch (Testing below).
  • Upstream package meets the quality bar: N/A. No package is registered here.
  • Upstream tag exists and matches: N/A. No version is registered here.

As Applicable — Documentation / Infra Changes

  • .machine_readable/6a2/*.a2ml: N/A. A2ML is retired estate-wide (D99/D269c), so no .a2ml file is created or edited.
  • TOPOLOGY.md: N/A. No architectural change.
  • Changelog updated. This repo's file is CHANGELOG.adoc.
  • Wiki updated: N/A. The wiki does not describe Layer 2b.

Testing

Every run is ci/validate.jl <tree> on Julia 1.10.10 with RegistryCI v11.0.0, against a git ls-files copy of this head. Each copy is run with GIT_CEILING_DIRECTORIES set, so no enclosing repository's origin leaks into the slug comparison.

Tree Result
This head (41 packages, nine metadatastician/marid) rc=0. Custom checks 0 errors / 0 warnings
Same, MaridIR repo → evilcorp/marid (planted negative) rc=1: MaridIR: Package.toml repo resolves to slug "evilcorp/marid", expected an owner in ("hyperpolymath", "metadatastician")
ADR claim "every package registered before #109 is hyperpolymath-owned" repo owners of the 32 non-Marid Package.toml files on main: 32 × hyperpolymath
ADR claim "the old check reported one mismatch per Marid package" #109's tree with main's pre-#109 validator (9e4dc83): rc=1, 9 owner mismatches

The only executable file touched is ci/validate.jl, and only in a comment. standards/.githooks/docstring-scan.sh skips Julia files, so it gives no verdict here, and no function is added or changed.

🤖 Generated with Claude Code

https://claude.ai/code/session_016XJoh8YA2sCWQmq93CF8RX

Layer 2b of ci/validate.jl failed any package whose Package.toml repo
was not a hyperpolymath slug. The owner's second organisation,
metadatastician, now holds the Marid repositories (D54-A), and the
Marid Tier-1 packages are to register here (D321).

Split the single owner constant in two. REGISTRY_SLUG_OWNER keeps
Registry.toml's own repo field pinned to hyperpolymath, where the
registry lives. PACKAGE_SLUG_OWNERS is the closed set a package repo
may name: hyperpolymath or metadatastician. Any other owner still fails,
and the error names both allowed owners.

Move the check_repo_slug! docstring onto that function; it sat above
extract_github_slug, which now has its own. Update REGISTRY-POLICY and
replace its stale "37 packages" count.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016XJoh8YA2sCWQmq93CF8RX
@coderabbitai

coderabbitai Bot commented Oct 9, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: ASSERTIVE
  • Plan: Advanced
  • Run ID: 6920b727-c099-442e-b8f0-9fd06355ddd7
📥 Commits

Reviewing files that changed from the base of the PR and between 7c52894 and 8d7eeb3.

📒 Files selected for processing (4)
  • CHANGELOG.adoc
  • ci/validate.jl
  • docs/REGISTRY-POLICY.adoc
  • docs/decisions/0003-package-repos-in-metadatastician.adoc
 ________________________________________________________
< You can't just `setTimeout` your way out of causality. >
 --------------------------------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

#109 shipped the Layer 2b widening (EXPECTED_SLUG_OWNER for the
registry's own repo, ALLOWED_PACKAGE_OWNERS for packages), so this
branch drops its parallel constants and takes main's ci/validate.jl,
docs/REGISTRY-POLICY.adoc and CHANGELOG.adoc. What remains:

- docs/decisions/0003-package-repos-in-metadatastician.adoc, rewritten to
  record the decision #109 implemented, under main's names;
- the set of allowed package owners is closed: adding an organisation
  takes an ADR (REGISTRY-POLICY, and the comment on
  ALLOWED_PACKAGE_OWNERS);
- one CHANGELOG [Unreleased] Added entry for the ADR.

No code change: validate.jl differs from main only in that comment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016XJoh8YA2sCWQmq93CF8RX
@hyperpolymath hyperpolymath changed the title feat(ci): accept metadatastician-owned package repos (ADR 0003) docs(adr): record the metadatastician package-owner widening as ADR 0003 Oct 9, 2026
@hyperpolymath
hyperpolymath enabled auto-merge (squash) October 9, 2026 00:26
@hyperpolymath
hyperpolymath merged commit 991a5b7 into main Oct 9, 2026
19 of 23 checks passed
@hyperpolymath
hyperpolymath deleted the feat/package-slug-owners branch October 9, 2026 00:26
@sonarqubecloud

sonarqubecloud Bot commented Oct 9, 2026

Copy link
Copy Markdown

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