fix(registry): repair two critical Pkg-resolution breakers (repo URL; name/UUID) - #40
Merged
Merged
Conversation
… name/UUID) - Registry.toml: `repo` pointed at a stale HyperpolymathRegistry.git; set it to the real remote https://github.com/hyperpolymath/julia-professional-registry.git. `name` stays "JuliaProfessionalRegistry" per owner decision -- a registry name and its repo slug are independent, so no GitHub rename is needed. (G20) - H/Hyperpolymath/{Deps,Compat}.toml referenced UUID c1c96f90-... as "JuliaKids" while Registry.toml binds that UUID to "JuliaForChildren", which breaks `Pkg.add Hyperpolymath`. Renamed to JuliaForChildren to match. (G21) Verified: Registry.toml + all 37 packages parse; an independent name<->UUID cross-check across 37 packages / 191 Deps entries passes (this was the only mismatch); the repo field matches the git remote slug. Note: a local Pkg.Registry.add(file://...) round-trip fails under this sandbox's bundled libgit2 1.6.4 on the repo's signed-commit history (system git clones it fine; `git fsck` is clean) -- an environment limitation, not a repo defect. Marked CI-only; a real https:// add in CI is the intended check. 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 02:57
Merged
7 tasks
hyperpolymath
added a commit
that referenced
this pull request
Jul 1, 2026
… gate + semver policy (#41) <!-- SPDX-License-Identifier: CC-BY-SA-4.0 --> ## 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: - *Layer 1:* the canonical **`RegistryCI.test`** (the checker `JuliaRegistries/General` uses). It distinguishes the expected non-General `registry_deps` gap (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. - *Layer 2* (TOML-stdlib, independent): (a) every 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 the estate required-check rule); the General-`registry_deps` path 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 referenced `docs/decisions/` which didn't exist — **closes G29**). `GOVERNANCE.adoc` links the policy. - **`tests/idris2/ValidateTest.idr`** — repaired 4 stale `README.adoc` references to `README.md` (README was converted to Markdown in `e0903a9`; this suite was never updated). ## RSR Quality Checklist ### Required - [x] No banned language patterns (Julia validator + YAML + AsciiDoc) - [x] SPDX headers on all new files (MPL-2.0 code / CC-BY-SA-4.0 docs) — verified - [x] No secrets, credentials, or `.env` files - [ ] CI green — pending (draft; the new validator + existing gates will run) ### As Applicable — Registry Changes - [x] Per-package TOML consistency — now enforced in CI (name↔UUID + repo slug across 37 packages) - [ ] `Registry.toml` index updated for a package/version — N/A (tooling/policy only) ### As Applicable — Documentation / Infra Changes - [x] Policy doc + first ADR added; `GOVERNANCE.adoc` updated to link it ## Testing Independently re-run (not self-graded by the worker): ``` julia ci/validate.jl → VALIDATION PASSED (exit 0) RegistryCI layer status: expected_general_gap (ran; 23 "failures" are all General-registry dep UUIDs, expected) Layer 2a: 191 name↔UUID pairs across 37 packages — 0 mismatches Layer 2b: Registry.toml slug "hyperpolymath/julia-professional-registry" == git remote — 0 owner mismatches Layer 2c: 0 unbounded Compat.toml entries ``` The worker also adversarially corrupted scratch copies to confirm each Layer-2 check fails (exit 1) as designed. ## Residuals (tracked) - **RegistryCI.AutoMerge** bot-driven PR automation (needs a GitHub token + a scope decision on bot- vs human-executed policy rows) — noted in the ADR/policy as a follow-up. - The Idris2 suite content bug is fixed but the suite still isn't invoked by any workflow (no `idris2` bootstrap here) — flagged honestly, not faked. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1 --- _Generated by [Claude Code](https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1)_ Co-authored-by: Claude <noreply@anthropic.com>
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
Repairs the two critical breakers that stop this registry from resolving under
Pkg. Part of the Axiom.jl flagship / registry-infrastructure hardening effort.Changes
Registry.toml(G20):repopointed at a staleHyperpolymathRegistry.git; set to the real remotehttps://github.com/hyperpolymath/julia-professional-registry.git.name = "JuliaProfessionalRegistry"is kept per owner decision — a registry'snameand its repo slug are independent, so no GitHub rename is required.H/Hyperpolymath/Deps.toml+Compat.toml(G21): the dependency with UUIDc1c96f90-…was namedJuliaKids, butRegistry.tomlbinds that UUID toJuliaForChildren— the mismatch breaksPkg.add Hyperpolymath. Renamed toJuliaForChildren.RSR Quality Checklist
Required
.envfiles includedAs Applicable — Registry Changes
Registry.tomlindex updated for a package/version — N/A (URL repair, no package added)Package.toml/Versions.toml/Deps.toml/Compat.tomlconsistent — the JuliaKids↔JuliaForChildren inconsistency is fixed; an independent name↔UUID cross-check across 37 packages / 191 Deps entries now passes (this was the only mismatch)As Applicable — Documentation / Infra Changes
HyperpolymathRegistry) and STATE reconciliation are tracked residuals, not addressed here.Testing
julia -e 'using TOML; TOML.parsefile("Registry.toml")'and per-package TOMLs parse cleanly (37 packages).Registry.toml["repo"]slug matchesgit remote get-url origin.Pkg.Registry.add(url="file:///…")+Pkg.addround-trip: CI-only. It fails in this sandbox withlibgit2 1.6.4on the repo's GPG-signed commit history (GitError ENOTFOUND), while systemgit cloneof the same repo succeeds andgit fsckis clean — an environment limitation, not a repo defect. The intended real check is ahttps://add in CI.Residuals (tracked, not in this PR)
HyperpolymathRegistry→ canonical-name sweep across ~21 files (perfective).J/JuliaForChildren/Package.tomlrepostill…/JuliaKids.jl.git(a repo slug, independent of the registry name — owner to decide whether to update prospectively).🤖 Generated with Claude Code
https://claude.ai/code/session_01UPFC9YQ7g9gc3VnRox42Q1
Generated by Claude Code