Releases: stefanosbalaskas/gp3sequencespy
Release list
gp3sequencespy 0.1.2
gp3sequencespy 0.1.2
Added
- Complete quality-completion test tranche covering every reachable statement and branch.
- Mutation-smoke companion oracles for pseudocount normalization, empty subsequences, and distance-diagonal validation.
- Dedicated coverage ledger and quality-snapshot workflows, plus expanded user-facing documentation, examples, method maps, plot guidance, reporting guidance, and reproducibility material.
- Guarded release orchestration and post-PyPI verification workflows for exact-artifact stable releases.
Changed
- Hardened sequence preparation for PyArrow/pandas-backed cumulative operations.
- Made grouped plotting paths robust to missing grouping values while preserving the frozen plotting contracts.
- Removed unreachable defensive branches identified during full branch-coverage review.
- Canonically formatted the quality-completion test suite with Ruff.
Validation
- 292 / 292 Python tests pass.
- 4,564 / 4,564 executable statements covered (100.00%).
- 1,702 / 1,702 branches covered (100.00%).
- Mutation smoke: 3 / 3 mutants killed (100%).
- Linux, macOS, and Windows CI passes across Python 3.11–3.14.
- Ruff lint/format, mypy, frozen API, frozen R-block ledger, frozen signature parity, strict MkDocs, wheel build, and fresh-wheel smoke all pass.
Scientific/API status
- No breaking public scientific API or signature changes.
- Frozen R 0.3.0 reference remains unchanged.
- Frozen API remains 81 / 81.
- Frozen R test-block ledger remains 130 / 130.
- Frozen public signatures remain 81 / 81 with 0 unexplained drift.
gp3sequencespy 0.1.1
gp3sequencespy 0.1.1
Metadata and release-infrastructure maintenance release over the frozen
gp3sequencespy 0.1.0 scientific implementation.
Scope
- no scientific algorithm changes
- no public API/signature changes
- frozen R 0.3.0 behavioral reference unchanged
- 81 / 81 frozen public API counterparts retained
- 130 / 130 frozen R test blocks retained
- 81 / 81 frozen public signatures retained with 0 unexplained drift
- 182 Python tests pass
- stale PyPI-facing release-candidate wording corrected
- Zenodo archival DOI recorded: 10.5281/zenodo.22166449
- first release exercising PyPI Trusted Publishing/OIDC end-to-end
Authoritative artifacts
Wheel SHA-256: 2f36abe1b02e91aec4b4749414b5d09446345017be11f3e545445f8b6b1dc808
Source distribution SHA-256: e71a5f02dca35aeaf2cad20bac852bcee7dd47449d515bbd8b7b0d1d7d30039e
The exact GitHub Release wheel and source distribution are the files consumed
by the Trusted Publishing workflow. The original v0.1.0 tag and PyPI 0.1.0
artifacts remain immutable.
gp3sequencespy 0.1.0
gp3sequencespy 0.1.0
First non-prerelease release of the Python port of gp3sequences 0.3.0.
Frozen parity and validation
- 81 / 81 frozen public function counterparts
- 130 / 130 frozen R test blocks mapped to dedicated Python translations
- 81 / 81 frozen public signatures audited; 0 unexplained drift
- 182 Python tests
- deterministic six-contract R ↔ Python oracle: PASS
- hierarchical/PAM oracle: 3915 / 3915 partition rows and 108 / 108 medoid rows matched
- mssm time-model calibration: 12 / 12 k=3/4/5 × state/transition × random-effect scenarios
- GitHub CI: Python 3.11–3.14 across Ubuntu, Windows, and macOS
- manual Release checks on exact commit: PASS
- tag-triggered Release checks on exact commit: PASS
Authoritative release artifacts
Wheel SHA-256:
97725d0b34872b79c9f9cb4da57f14a788a8920880a0a415c13669d281a39525
Source distribution SHA-256:
e01ff3ac4ec0cbede48b1019e4bcabddd38b9587df3fe541ce66aff585bf7e19
The attached SHA256SUMS.txt and release_candidate_manifest.json preserve the exact local release-candidate evidence.
Optional backend note
hmmlearn is an optional reference-validation backend, not the native gp3sequencespy HMM engine. The 0.1.0 release candidate validated the [hmm] extra on Windows/Python 3.13 using the upstream wheel, while core plus [time,data,performance] were validated on Windows/Python 3.14. See OPTIONAL_EXTRA_VALIDATION.txt.
Deliberate parity boundaries
The release does not claim identity of R ecosystem objects, pixel-identical base-R/Matplotlib graphics, bit-for-bit R/NumPy random streams, or exact coefficient/penalty identity for non-default mgcv smoothing criteria. These boundaries are explicit and documented in PARITY_EXCEPTIONS.md.
PyPI publication was not performed by the release finalizer.