Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Release strategy

Version, channel, the jaxstro dependency, and the path to a citable release

San Diego State University

The audit verdict is that the science and the mechanics are ready; the open questions are about channel and ecosystem packaging, which are the maintainer’s to decide. This page lays out the recommended path and the decisions that shape it.

Version: 0.1.0

Ship as 0.1.0 with the Development Status :: 4 - Beta classifier already in pyproject.toml. This is honest: a first public release of research software with a verified core and a known, deferred PyPI-installability story. Bumping to a release candidate or a higher minor would over- or under-state where the package is. Adopt semantic versioning going forward: the public API (progenax.__all__, 122 symbols) becomes the compatibility surface a 1.0 would freeze.

Channel: GitHub source tag now, PyPI when the ecosystem packaging is decided

The runtime depends on the sibling jaxstro, which is not yet on PyPI, so pip install progenax cannot work for an outsider today. Two consequences:

The jaxstro ecosystem-dependency decision (maintainer-owned)

progenax core needs only a small, stable slice of jaxstro (jaxstro.units + jaxstro.jaxconfig). How that slice reaches an installer is an open ecosystem decision the maintainer is still resolving — the leading direction is a jaxstro namespace package spanning the ecosystem. The options, with trade-offs:

OptionWhat it meansTrade-off
Namespace packagePublish jaxstro as a PEP-420 namespace umbrella; progenax depends on the published namespace dist(s).Cleanest long-term ecosystem story; needs the namespace layout settled first. (Maintainer’s leading direction.)
Publish jaxstro to PyPI firstPin jaxstro>=0.1,<0.2; release progenax after.Simple, conventional; couples two release timelines.
Vendor units+jaxconfigCopy the two modules into progenax._vendor for a standalone wheel.Fastest path to a standalone PyPI wheel; costs ecosystem coherence (duplicated UnitSystem objects shared with gravax).
git-URL dependencyjaxstro @ git+https://…Works for a GitHub soft-launch; PyPI rejects URL deps, so not a PyPI path.

Recommendation: proceed with the GitHub source tag now; resolve the namespace question on the ecosystem’s own timeline, then publish progenax to PyPI against whatever jaxstro distribution results. Do not block the verified v0.1.0 core on the packaging decision.

Re-enable CI as a release prerequisite

The CI configuration is sound (sharded core, wheel-smoke, gradient-gate, slow lane, version matrix) but both workflows are disabled. Before tagging:

  1. Re-enable tests.yml and physics-validation.yml.

  2. Confirm a green run on a real PR (the aggregator tests check).

  3. Optionally restore a nightly cron, or rely on the per-PR + release-tag lanes to conserve Actions minutes.

CHANGELOG and provenance

A CHANGELOG.md already exists and documents the 0.1.0 cycle’s fixes against the prior audit’s finding IDs — keep it as the canonical changelog and stamp the release date when tagging. This audit report, checklist, and strategy live under 95-release/ as the release-readiness provenance, complementing the existing validation dashboard and gradient-audit registries.

Citable release (Zenodo / DOI)

For a research package that a methods paper will cite, mint a DOI via the GitHub–Zenodo integration on the v0.1.0 tag and add a CITATION.cff to the repository root. The docs site already carries the ORCID and Apache-2.0 / CC-BY-4.0 licensing; a DOI closes the loop so users cite a fixed, archived version. This pairs naturally with the methods-paper plan sketched in the prior audit.

Experimental and OED-demo code at release

Documentation hosting

The MyST site builds to 178 pages with zero content warnings and is the project’s single source of truth. (The count rose from the 172 of the 2026-06-17 audit as the v0.1.0 docs-hardening pass added a bibliography landing, missing per-paper notes, and the unlisted-pages index, while consolidating the gravoturbulence subsection.) Deploy it (GitHub Pages or the existing MyST hosting) from the release tag — the internal-doc-link fixes that would otherwise deploy broken were completed during the docs-hardening pass (the link gate now reports 0 broken cross-references).