ci(registry): canonical RegistryCI validation + name/UUID & repo-slug gate + semver policy - #41
Merged
Conversation
… gate + semver policy Makes the registry professionally validated (tier-2; G23, G25, G29). - ci/validate.jl: two-layer validator. Layer 1 runs the canonical RegistryCI.test (the checker JuliaRegistries/General uses); it distinguishes the expected non-General registry_deps gap from a real tooling/API error (the latter is fatal). Layer 2 adds TOML-stdlib belt-and-braces checks for the exact bug classes this registry hit in #40: (a) Deps.toml name<->UUID vs Registry.toml across all 37 packages, (b) Registry.toml/Package.toml repo slug + git remote consistency, (c) warn-only Compat.toml upper-bound advisory. - .github/workflows/registry-validate.yml: always-triggering CI (no on.*.paths, per estate required-check rule); the General-deps RegistryCI path is gated + continue-on-error (egress restricted here, unrestricted in Actions). - docs/REGISTRY-POLICY.adoc + docs/decisions/0001-...: semver bump rules, mandatory upper-bounded compat, name/UUID immutability, auto-merge vs BDFL-review table; first ADR (GOVERNANCE referenced docs/decisions/ which did not exist -- closes G29). GOVERNANCE.adoc links the policy. - tests/idris2/ValidateTest.idr: repaired 4 stale README.adoc refs to README.md. Verified locally: julia ci/validate.jl -> VALIDATION PASSED, exit 0 (RegistryCI layer expected_general_gap; 191 name/UUID pairs 0 mismatches; repo slug matches; 0 unbounded compat). Adversarial scratch-corruption confirmed each Layer-2 check fails as designed. Residual: RegistryCI.AutoMerge PR-automation (needs a GitHub token; follow-up). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1
hyperpolymath
marked this pull request as ready for review
July 1, 2026 06:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Makes the registry professionally validated — the two critical breakers were fixed in #40; this adds the CI + policy so future malformed changes are caught. Tier-2 of the flagship/registry hardening effort (gaps G23, G25, G29).
Changes
ci/validate.jl— two-layer validator:RegistryCI.test(the checkerJuliaRegistries/Generaluses). It distinguishes the expected non-Generalregistry_depsgap (deps like HTTP/JSON3/Zygote registered in General) from a real tooling/API error — the latter is fatal, so a broken invocation can't silently pass.Registry.tomlacross all 37 packages; (b)Registry.toml/Package.tomlrepo slug +git remoteconsistency; (c) warn-only Compat.toml upper-bound advisory..github/workflows/registry-validate.yml— always-triggering CI (noon.*.paths, per the estate required-check rule); the General-registry_depspath is gated +continue-on-error(egress is restricted in-sandbox, unrestricted in Actions).docs/REGISTRY-POLICY.adoc+docs/decisions/0001-…adoc— semver bump rules, mandatory upper-bounded compat, name/UUID immutability, and an auto-merge vs BDFL-review table; the first ADR (GOVERNANCE referenceddocs/decisions/which didn't exist — closes G29).GOVERNANCE.adoclinks the policy.tests/idris2/ValidateTest.idr— repaired 4 staleREADME.adocreferences toREADME.md(README was converted to Markdown ine0903a9; this suite was never updated).RSR Quality Checklist
Required
.envfilesAs Applicable — Registry Changes
Registry.tomlindex updated for a package/version — N/A (tooling/policy only)As Applicable — Documentation / Infra Changes
GOVERNANCE.adocupdated to link itTesting
Independently re-run (not self-graded by the worker):
The worker also adversarially corrupted scratch copies to confirm each Layer-2 check fails (exit 1) as designed.
Residuals (tracked)
idris2bootstrap here) — flagged honestly, not faked.🤖 Generated with Claude Code
https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1
Generated by Claude Code