Skip to content
hyperpolymath edited this page May 27, 2026 · 1 revision

Testing & quality

The canonical version of this content lives in TEST-NEEDS.md. The wiki view repeats the most-asked questions.

CRG grade

Item Value
Grade C
Achieved 2026-04-04

CRG stands for "Coverage / Risk / Goal" — a coarse classifier used across the hyperpolymath estate to bucket a project's testing maturity. Grade C is the working-software baseline: the registry's CI verifies every assertion below on every push.

What is tested

The Idris2 test harness (tests/, driven by julia-professional-registry-tests.ipkg) verifies:

  • Registry.toml parses cleanly and contains a [packages] table.
  • Every entry in [packages] resolves to an existing per-letter / per-package / per-version directory.
  • Every per-version directory contains the four canonical TOML files (Package.toml, Versions.toml, Deps.toml, Compat.toml); WeakCompat.toml is permitted but not required.
  • UUIDs are unique across packages.
  • Compat ranges parse as well-formed semver intervals.
  • Cross-reference: every dep listed in a package's Deps.toml either resolves to another package in this registry or is documented as an external (General-registry) dep.

What is not tested at the registry level:

  • The actual behaviour of the registered packages — each package's own CI is responsible for that.
  • Build success across Julia versions — handled per-package upstream.

Running tests locally

just test

…or directly:

idris2 --build julia-professional-registry-tests.ipkg
build/exec/julia-professional-registry-tests

You will need Idris2 ≥ 0.7.0. The Guix devshell installs a compatible version:

guix shell -D -f guix.scm

CI gates

Pull requests cannot merge until the following workflows are green:

  • governance.yml — SPDX, license, banned-language, RSR
  • hypatia-scan.yml — full CI/CD intelligence scan
  • codeql.yml — CodeQL on the workflow YAMLs
  • secret-scanner.yml
  • scorecard.yml (informational, not a merge blocker by default)

Failures should be addressed at source rather than by adding files to .hypatia-baseline.json — see hypatia/.claude/CLAUDE.md § Scanner Hygiene for the canonical guidance.

Roadmap towards higher grades

See the testing entry on Roadmap. Grade B is the near-term goal — it adds end-to-end install tests that actually run Pkg.Registry.add(...); Pkg.add("<Package>") against a fresh Julia depot for each registered package, in CI.

julia-professional-registry

Getting started

For maintainers

Project

External

Clone this wiki locally