Skip to content

build: split reporting into optional extras - #1462

Draft
s3alfisc wants to merge 1 commit into
refactor/lazy-optional-dependenciesfrom
build/optional-dependency-extras
Draft

build: split reporting into optional extras#1462
s3alfisc wants to merge 1 commit into
refactor/lazy-optional-dependenciesfrom
build/optional-dependency-extras

Conversation

@s3alfisc

@s3alfisc s3alfisc commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

  • Reduce the base install to the packages needed for estimation and inference: Formulaic, joblib, Narwhals, NumPy, pandas, and SciPy.
  • Add tables and plots extras, retain numba and torch, and add all as the union of those end-user feature extras.
  • Give actionable installation errors such as pip install "pyfixest[tables]" when an optional feature is called.
  • Add a minimal-install CI job that installs only the base package, fits a model, calls summary(), and verifies that optional packages were not installed.
  • Regenerate pixi.lock for the dependency split.

Benchmark-only dependencies remain in the existing benchmarks extra and are intentionally excluded from all.

Validation

  • Clean temporary environment installed the base project with only its six direct dependencies and passed an estimation/summary smoke test
  • Verified all equals the union of tables, plots, numba, and torch
  • pixi run test-py (complete stack: 805 passed, 13 skipped, 1 xfailed)
  • Workflow validation, TOML checks, Ruff, and mypy

Stack

  1. refactor: lazy-load reporting dependencies #1461 — lazy-load reporting dependencies
  2. build: split reporting into optional extras #1462 — split reporting into optional extras
  3. docs: explain optional dependency extras #1463 — explain optional dependency extras

Stack created with GitHub Stacks CLIGive Feedback 💬

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.

1 participant