Skip to content

0.1.0b0 - Beta Readiness - #28

Merged
stefan-jansen merged 11 commits into
mainfrom
feat/0-1-0b0-beta-readiness
Jul 23, 2026
Merged

0.1.0b0 - Beta Readiness#28
stefan-jansen merged 11 commits into
mainfrom
feat/0-1-0b0-beta-readiness

Conversation

@stefan-jansen

@stefan-jansen stefan-jansen commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

Milestone: 0.1.0b0 - Beta Readiness

Book validation included on this branch:

Local validation:

  • uv run ruff check src/ tests/ examples
  • uv run ruff format --check src/ tests/ examples
  • uv run ty check
  • uv run pytest tests/ -q
  • uv run mkdocs build --strict
  • uv build
  • uv run --extra integration pytest tests/test_integration_backtest.py tests/test_integration_data.py tests/test_integration_surfaces.py -q
  • PYTHONPATH=/home/stefan/ml4t/libraries/ml4t-models/src:/home/stefan/ml4t/code uv run jupyter nbconvert --execute 14_latent_factors/04_ipca.ipynb --to notebook --output /tmp/ml4t_models_beta_04_ipca.ipynb --ExecutePreprocessor.timeout=600
  • PYTHONPATH=/home/stefan/ml4t/libraries/ml4t-models/src:/home/stefan/ml4t/code uv run jupyter nbconvert --execute 14_latent_factors/05_rp_pca.ipynb --to notebook --output /tmp/ml4t_models_beta_05_rp_pca.ipynb --ExecutePreprocessor.timeout=600
  • PYTHONPATH=/home/stefan/ml4t/libraries/ml4t-models/src:/home/stefan/ml4t/code uv run jupyter nbconvert --execute 14_latent_factors/06_conditional_autoencoder.ipynb --to notebook --output /tmp/ml4t_models_beta_06_conditional_autoencoder.ipynb --ExecutePreprocessor.timeout=900
  • PYTHONPATH=/home/stefan/ml4t/libraries/ml4t-models/src:/home/stefan/ml4t/code uv run jupyter nbconvert --execute 14_latent_factors/07_stochastic_discount_factor.ipynb --to notebook --output /tmp/ml4t_models_beta_07_stochastic_discount_factor.ipynb --ExecutePreprocessor.timeout=1200
  • PYTHONPATH=/home/stefan/ml4t/libraries/ml4t-models/src:/home/stefan/ml4t/code uv run papermill 14_latent_factors/08_supervised_autoencoder.ipynb /tmp/ml4t_models_beta_08_supervised_autoencoder_smoke.ipynb -p N_STOCKS 50 -p N_EPOCHS 1 -p N_SPLITS 1 -p START_DATE 2016-01-01 -p END_DATE 2018-12-31
  • PYTHONPATH=/home/stefan/ml4t/libraries/ml4t-models/src:/home/stefan/ml4t/code uv run jupyter nbconvert --execute 14_latent_factors/09_case_study_insights.ipynb --to notebook --output /tmp/ml4t_models_beta_09_case_study_insights.ipynb --ExecutePreprocessor.timeout=900
  • synthetic bridge smoke for PCA, IPCA, CAE, SAE, and SDF via case_studies.utils.latent_factors.library_bridge
  • ETF latent-factor notebooks: PCA, IPCA, SDF, and SAE cached executions passed; CAE passed in cached three-fold validation mode
  • US firm characteristics latent-factor notebooks: IPCA, CAE, SDF, and SAE passed in cached three-fold validation mode
  • S&P 500 option analytics latent-factor notebooks: PCA, IPCA, CAE, SDF, and SAE passed in cached three-fold validation mode

#22 remains open until this PR merges and the v0.1.0b0 tag publishes successfully.

Export the documented latent-factor PipelineFitResult at the package root and add a public API stability reference for the beta series. The new regression test pins the reader-facing frame names and rejects stale SurfaceFrame terminology.

Closes #13.
Promote the package metadata to the first beta version and update the PyPI development classifier. The tag and publication remain gated by the remaining beta-readiness checks.

Closes #14.
Add the MkDocs strict build to the main CI workflow and make the package build depend on it. This promotes documentation from a deploy-only workflow to a release-quality gate.

Closes #15.
Clarify each model family's input contract, native output, assumptions, and checkpoint semantics for reader-facing beta documentation. Remove internal-history wording from the SAE guide.

Closes #16.
Add executable public-API examples for latent-factor forecasting, stochastic discount factor mapping, direct SAE prediction, and portfolio allocation. The examples are included in source distributions and run under pytest to catch API drift.

Closes #17.
Exercise the optional ml4t-specs FeedSpec path and keep close_col aligned with price_col when no explicit price column is supplied. Clarify that diagnostics and execution remain owned by sibling libraries.

Closes #18.
Add a regression test for the CAE latent-factor pipeline so checkpointed structural extraction is mapped through a factor-premium forecaster before asset return forecasts are produced.

Closes #19.
Add a tracked-file hygiene test that rejects archives, generated artifacts, and internal agent state in the public repository. The Dependabot PR labels referenced by configuration now exist on GitHub.

Closes #20.
Record the local and GitHub checks required before beta tagging, including strict docs, package build, optional integration smoke tests, and Python version coverage.

Closes #21.
@stefan-jansen
stefan-jansen marked this pull request as ready for review July 21, 2026 14:16
Copilot AI review requested due to automatic review settings July 21, 2026 14:16

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

Add the tested Chapter 14 compatibility matrix and clarify the split between teaching implementations and the case-study library bridge. The SAE teaching notebook is recorded as smoke-validated because full production training exceeds the notebook timeout.

Closes #23.

Closes #26.
Document the latent-factor case-study validation runs and the diagnostics/backtest integration boundary for the beta gate.

Closes #24.

Closes #25.
@stefan-jansen
stefan-jansen merged commit 48e6281 into main Jul 23, 2026
9 checks passed
@stefan-jansen
stefan-jansen deleted the feat/0-1-0b0-beta-readiness branch July 23, 2026 01:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants