Skip to content

eyetrajectoriespy 0.11.0

Final 0.11 release — published 29 September 2026

eyetrajectoriespy 0.11.0 promotes the publicly qualified 0.11.0rc1 scientific surface to the final 0.11 line. Final qualification does not add an estimator, numerical method, generalized response family, hidden analytical default, or post-0.11 research feature.

What 0.11 adds

The 0.11 line turns native functional simulation into a reusable known-truth validation laboratory. Its public contracts include:

  • explicit latent mean, eigenfunctions/eigenvalues, realized scores, latent curves, observation schedules, measurement noise, missingness and phase truth;
  • dense and directly generated irregular observation designs;
  • separately retained curve-, participant-, and trial-level score sources;
  • Gaussian and variance-matched Student-t curve-level score distributions;
  • explicit multichannel noise covariance and vector-valued latent modes;
  • FunctionalSimulationScenario for deterministic finite-sample designs;
  • a strict estimator boundary in which fitting receives observations and the declared scenario while latent truth is supplied only afterward to recovery evaluation;
  • semantic recovery metrics for FPCA/MFPCA, native sparse FPCA/PACE, functional mixed-effects variance functions, registration/phase, and simulator hierarchy truth;
  • explicit failed-replicate retention and Monte Carlo summaries;
  • reporting, plotting, examples, and provenance for simulation/recovery studies.

Production-installed rc1 observation

Before final-version promotion, the exact production-PyPI 0.11.0rc1 artifact was exercised as an external consumer rather than from an editable/source checkout.

Exact protected-main commit a37214653c2f72839e356d603c4f87a514f01056 passed the complete eleven-workflow matrix. Installed-RC workflow run 36622305877 verified:

  • exact production-PyPI installation and installed-package smoke testing on Python 3.11, 3.12, and 3.13;
  • import provenance outside the repository checkout;
  • deterministic scenario replay for observations, latent scores, and missingness masks;
  • the existing four-scenario recovery qualification using the installed package;
  • all 14 threshold-free stress regimes with 3 replicates each, retaining 42/42 records in the denominator;
  • dense FPCA recovery, actual functional mixed-effects recovery, and actual registration/phase-warp recovery;
  • portable FPCA export/load with package-version match and exact retained-array equality;
  • installed-package reporting and plotting;
  • explicit environment, dependency, runner-image, and SHA-256 artifact evidence.

The exact-main deep evidence artifact is GitHub Actions artifact 11059511070, digest sha256:a01bddd0818c09b298d93596a5698f6f8f835a6e3cde9735857780c2167f289e.

No result-changing or public-API defect was identified by this observation tranche. An initial PR observation used rank-one participant truth with a two-dimensional unstructured random-effect covariance and failed closed on mixed-effects non-convergence. The qualification design—not the estimator—was corrected to full-rank basis-matched truth; no optimizer fallback, estimator change, or threshold relaxation was introduced.

Qualification versus stress evidence

0.11 keeps qualification and stress evidence separate.

The qualification workflow uses small deterministic scenarios with predeclared CI guards. Those thresholds are integration guards for the seeded workloads, not universal statistical guarantees.

The separate stress workflow is threshold-free. In the exact production- installed observation, 13 of 14 stress regimes had 0/3 execution failures. The estimated-noise diagonal-difference regime retained 2/3 fail-closed noise_variance_invalid fits. That behavior is retained as scientific evidence; it is not clipped, hidden, or converted into a successful estimate.

Final-version discipline

Final 0.11.0 is qualified under its own exact package identity. The rc1 tag, GitHub Release, wheel, sdist, checksums, attestations, and performance snapshot remain immutable.

Final-version qualification is complete:

  • PR #120 merged final 0.11.0 as exact protected-main commit f0b328dabd9d5050fa9988e3c157d034efb0ee7f;
  • the complete exact-main package, cross-platform, documentation, examples, optional-backend, performance, release-readiness, recovery/stress, and native sparse/PACE matrix passed;
  • exact-main performance qualification run 36625124460 passed under the final 0.11.0 identity;
  • the separate governance-only arming change contains no scientific or API modification.

PR #121 armed publication only after the final exact-version matrix passed. Its protected-main merge commit 2616675ad2dfc095bf17a442c1d350ba88fd030a then passed the complete post-arming matrix. Production release workflow #13 (run 36628220308) completed successfully, creating v0.11.0, publishing the exact wheel and sdist to production PyPI through OIDC Trusted Publishing with digital attestations, and passing a fresh eyetrajectoriespy==0.11.0 production-PyPI installation smoke test.

The published GitHub Release asset digests are:

  • eyetrajectoriespy-0.11.0-py3-none-any.whl: sha256:7cba258531ae5f5a41e0a95dbfc1d0604c29456dd121c3a422adc9f576f2e481;
  • eyetrajectoriespy-0.11.0.tar.gz: sha256:99b5285226a675f14a4f42369e6b4a696615b273cbd347c1716387f14250a4bc.

Post-publication GitHub/PyPI readiness is disarmed again to prevent accidental republication of immutable 0.11.0.

Scientific boundaries

Final 0.11 does not add:

  • sparse multivariate FPCA for planar gaze;
  • sparse participant/trial multilevel functional decomposition;
  • Bayesian sparse functional models;
  • additional generalized response families;
  • signal-dependent/informative missingness mechanisms;
  • a new nonlinear simulation ecosystem.

Those remain post-0.11 research directions and should be reconsidered only after the package-wide recovery audit.

Install

Install the stable release:

pip install eyetrajectoriespy==0.11.0

or:

pip install eyetrajectoriespy

The immutable release candidate remains available explicitly for reproducibility:

pip install --pre eyetrajectoriespy==0.11.0rc1