Repository navigation
Registering a Package
This page is the practitioner-facing companion to GOVERNANCE.adoc. The governance file states the policy; this page walks through the mechanics.
Register a package here when:
- It is part of the hyperpolymath ecosystem (or a tightly coupled dependency thereof).
- A
vX.Y.Zgit tag exists on the upstream repo. - The package meets the quality bar below.
Do not register here packages that should live in JuliaRegistries/General — this registry is a proving ground and aggregator for the hyperpolymath surface, not a competitor to General.
A package must satisfy all of the following before registration is accepted:
| Check | Detail |
|---|---|
| SPDX headers | Every source file carries an SPDX-License-Identifier: line |
| REUSE compliance | A LICENSES/ directory exists with the canonical license texts |
| License compatibility | Compatible with the registry's PMPL-1.0-or-later (or MPL-2.0-or-later equivalent) |
| OpenSSF Scorecard ≥ 7 | Link the latest scorecard run in the registration PR |
| No banned-language files | No TypeScript, no npm/bun, no Go, no Python source files |
compat ranges |
Project.toml has semver [compat] entries for all [deps]
|
| Upstream tag | A git tag matching vX.Y.Z exists on the upstream repo |
Use the Package registration request issue template. This lets maintainers raise concerns before you spend time on the PR.
For a brand-new package Foo versioned 0.1.0:
F/Foo/
├── Package.toml
├── Versions.toml
├── Deps.toml
└── Compat.toml
For a new version of an existing package, append to Versions.toml / Deps.toml / Compat.toml without touching Package.toml.
Add an entry for the package under the [packages] table (skip if updating an existing package — the entry already exists).
Branch name: feat/register-<package>-v<X.Y.Z> or for new packages feat/add-<package>-v<X.Y.Z>.
PR title: feat(registry): register <Package> v<X.Y.Z> (use add instead of register for the first version of a new package).
Use the PR template — fill in the registry-specific checklist boxes.
Once the workflows pass and the BDFL has reviewed against the quality bar, the PR is squash-merged. The package is then available via Pkg.Registry.update(); Pkg.add("Foo").
If you need to correct a published Versions.toml / Deps.toml / Compat.toml entry without bumping the version (e.g. typo in a dep), open an issue first — registry mutations on already-published versions are reviewed more carefully than new versions because downstream resolvers may have cached the old metadata.
In rare cases (security incident, broken release) a version may need to be yanked. Open an issue tagged yank with:
- Package + version
- Reason
- Recommended replacement version (if any)
The BDFL handles yanks manually because they affect downstream resolvers globally.
The most recent registration PRs are good worked examples:
- PR #16 — register EchoTypes v0.1.0 + KRLAdapter v0.1.0 (in flight)
- Older registration PRs live on the closed-PR list.