- Objective
- Baseline Snapshot (2026-02-17)
- Basic Baseline Applied (2026-02-17)
- MUST (Blockers for Axiom-level parity)
- INTEND (Strongly recommended for operational parity)
- LIKE (Good improvements after parity)
- Suggested Execution Order
- Deliverables to add in-repo
- JuliaHub Direct Access: Requirements and Status
Bring SMTLib.jl to the same release/readiness posture as Axiom.jl for JuliaHub + registry + security-gated CI.
-
Repo:
/var$REPOS_DIR/SMTLib.jl(main, clean working tree). -
Package version:
Project.toml=0.1.0; tagv0.1.0exists. -
Workflows:
CI.yml,quality.yml,release.yml,codeql.yml,scorecard.yml. -
Missing parity items seen in
Axiom.jl:CHANGELOG.adoc,.github/CODEOWNERS,scripts/readiness-check.sh, workflow linter gate, expanded release-readiness checks. -
Metadata consistency gap:
.machine_readable/STATE.scmreportsversion = 0.3.0whileProject.tomlis0.1.0. -
Roadmap depth gap:
ROADMAP.adocis currently template-level and not implementation-tracking.
-
Added
CHANGELOG.adoc. -
Added
.github/CODEOWNERS. -
Added
scripts/readiness-check.shanddocs/release-readiness.adoc. -
Added
.github/workflows/readiness.ymland.github/workflows/workflow-linter.yml. -
Pinned release workflow artifact actions to SHA references.
-
Replaced template roadmap with a concrete Must/Intend/Like roadmap.
-
Aligned
.machine_readable/STATE.scmmetadata version withProject.toml.
-
Package identity/version discipline
-
Keep a single authoritative release version and enforce it in CI.
-
Add a CI check:
Project.tomlversion must match release tag on tag builds. -
Decide and lock next version (
0.1.xpatch vs0.2.0/0.3.0) and alignSTATE.scmto it.
-
-
Registry + dependency interoperability
-
Publish
SMTLib.jlto a registry (General or your own registry used by dependent packages). -
In downstream packages (e.g.,
Axiom.jl), avoid unresolved deps on unregistered UUIDs during JuliaHub ingest. -
Add explicit install guidance for both registry and URL modes.
-
-
Release-readiness automation
-
Add
scripts/readiness-check.shequivalent for SMTLib. -
Minimum gates: add/precompile/build/test/load smoke, docs sanity, version consistency, license presence, no unresolved placeholders.
-
Add a CI job that runs readiness check on PRs and tags.
-
-
Security and branch-governance parity
-
Add
.github/CODEOWNERS. -
Enforce branch protection in GitHub settings: required checks, signed commits, no direct pushes, review by non-pusher.
-
Tighten workflow token permissions to minimum per job (especially
release.yml). -
Add
workflow-linterworkflow/job and set required.
-
-
Changelog and release notes hygiene
-
Add
CHANGELOG.adocwith Keep-a-Changelog structure. -
Tie releases to changelog entries and machine-readable release note snippets.
-
-
Claim verification policy
-
Replace static claims such as "468 assertions" with CI-generated counts/evidence artifacts.
-
Add a check that documentation claims are sourced from generated evidence files.
-
-
CI expansion toward Axiom breadth
-
Keep current Julia matrix and add:
-
docs build verification (
docs/make.jl). -
package install smoke from clean temp environment.
-
optional solver-backed integration job(s) with explicit Z3/CVC5 installs.
-
artifact upload for solver capability report and test evidence.
-
-
Diagnostics and failure ergonomics
-
Add machine-readable diagnostics API/report for solver detection and fallback behavior.
-
Standardize actionable error messages (missing solver, invalid solver path, timeout policy).
-
Add strict-mode env controls for production pipelines (fail-fast when solver required).
-
-
Roadmap and machine docs alignment
-
Rewrite
ROADMAP.adocwith concrete stages (Must/Intend/Like) and evidence checkpoints. -
Sync
.machine_readable/STATE.scmwith actual repo status each release.
-
-
Security posture hardening
-
Add
.well-known/security.txtand link fromSECURITY.md. -
Keep Scorecard findings tracked with owners and due dates.
-
Add dependency and secret-scanning policy notes into readiness checks.
-
-
Performance and determinism
-
Benchmarks against representative solver workloads (Z3/CVC5).
-
Performance regression guardrails in CI.
-
Deterministic timeout/seed modes documented for reproducibility.
-
-
Ecosystem UX
-
Add migration guide for downstream packages currently vendoring SMT logic.
-
Publish an extension template for consumers integrating SMTLib into optional extensions.
-
-
Formal interface hardening
-
Expand ABI/FFI docs from placeholder-level to executable examples with validation tests.
-
Add compatibility policy for solver versions and capability matrix.
-
-
Version + metadata alignment (
Project.toml,STATE.scm, release policy). -
Add changelog and readiness-check script.
-
Add CODEOWNERS + workflow-linter + permission tightening.
-
Add install/load smoke and docs build gates.
-
Publish to chosen registry and update downstream dependency strategy.
-
CHANGELOG.adoc -
.github/CODEOWNERS -
scripts/readiness-check.sh -
.github/workflows/workflow-linter.yml -
docs/release-readiness.adoc -
updated
ROADMAP.adoc(Must/Intend/Like + dated evidence)
For direct JuliaHub automation, you need all of:
- reachable DNS/network to juliahub.com
- valid JuliaHub auth file (~/.julia/servers/juliahub.com/auth.toml)
- valid token/session in that auth file
- a Julia runtime that can run networked package commands
Current environment status:
- Auth path found: /home/hyper/.julia/servers/juliahub.com/auth.toml
- Network currently blocked here (curl https://juliahub.com fails DNS), so direct JuliaHub actions cannot be executed from this session.
Security note:
- tighten auth file permissions to owner-only (chmod 600 ~/.julia/servers/juliahub.com/auth.toml).