Julia package registry for jool.space. Install with:
using Pkg
Registry.add(url="https://registry.jool.space")Registration, tagging, and the GitHub release happen in one synchronous CI run — no Registrator server, no TagBot.
Once per package, copy examples/release.yml to .github/workflows/release.yml. Then, to release:
- GitHub UI: Actions → Release → Run workflow → choose
patch/minor/major/x.y.z/current. - CLI:
gh workflow run release.yml -f bump=patch
The workflow bumps Project.toml, commits, registers the version here, tags vX.Y.Z, and creates a release with generated notes. Every step is skip-if-already-done, so re-running a failed run completes it. Concurrent releases of different packages are serialized against the registry with a rebase-and-retry push.
Who can release: anyone with write access to the package repo. The trust model is GitHub's.
Actions → Yank → Run workflow (package name + version). Sets yanked = true: the resolver stops picking that version, but pinned manifests keep working.
.github/workflows/register.yml— reusable workflow called by package repos; checks out the package and this registry side by side.scripts/register.jl— idempotent bump → register (LocalRegistry headless) → tag.scripts/check.jl— structural consistency check, plus a realPkg.Registry.addinto a scratch depot, on every push.- The registry is read through
https://registry.jool.space(a server-side redirect to this repo, which git follows) and written only via the deploy key from CI.
- Deploy key: an SSH keypair; public half as a deploy key on this repo with write access, private half as the
REGISTRY_DEPLOY_KEYsecret (org-level so every package repo inherits it). - Domain:
registry.jool.spacemust be a server-side 301/302 to this repo's URL, preserving path and query (git's first request is/info/refs?service=git-upload-pack). GitHub Pages cannot do this; use registrar URL forwarding or a Cloudflare redirect rule. Verify withgit ls-remote https://registry.jool.space.