Contributing
Issues and pull requests are welcome at PhylaTech/mlflow-autogluon.
Development environment
The repo ships a pixi.toml with two environments: the default
environment (tabular predictor plus test, lint, and docs tooling; fast to
install) and the full environment (adds timeseries and multimodal for
CI-parity coverage runs).
pixi install # default environment
pixi install -e full # everything, needed for coverage / test-all
All common operations are pixi tasks:
| Task | Environment | What it does |
|---|---|---|
pixi run test |
default | tabular test suite |
pixi run lint |
default | ruff check |
pixi run docs |
default | live docs server (mkdocs serve) |
pixi run docs-build |
default | strict docs build |
pixi run -e full test-all |
full | complete test suite |
pixi run -e full test-timeseries |
full | timeseries tests only |
pixi run -e full test-multimodal |
full | multimodal tests only |
pixi run -e full coverage |
full | CI-parity gate, 100 percent required |
The repo also ships an environment.yml (includes all predictor extras):
mamba env create -f environment.yml
mamba run -n mlflow-autogluon pip install -e .
# Tests (fast: the suite trains tiny DUMMY-model predictors)
mamba run -n mlflow-autogluon pytest
# Coverage (CI enforces 100 percent with all predictor extras installed)
mamba run -n mlflow-autogluon pytest --cov=mlflow_autogluon --cov-fail-under=100
# Lint
mamba run -n mlflow-autogluon ruff check mlflow_autogluon tests
pip install -e .[dev]
pytest
CI runs the suite on Python 3.10 to 3.12 against the latest MLflow, plus a job pinned
to mlflow<3 to guard the oldest supported line and a coverage job with all
predictor extras that enforces 100 percent.
Documentation
Docs are MkDocs Material, versioned with mike and hosted on GitHub Pages:
- every push to
maindeploys thedevdocs version - every release deploys a version matching the PyPI release (e.g.
0.2.0) and moves thelatestalias, which is the site default, so released docs always match the released code
Preview locally with mkdocs serve (or pixi run docs); the version selector
only appears on the deployed site.
Commit messages and releases
Commits to main follow Conventional Commits
(feat:, fix:, docs:, chore:, with ! or a BREAKING CHANGE: footer for
breaking changes). release-please
watches main, maintains a running release PR with the version bump and
CHANGELOG.md, and merging that PR tags the release. Publishing the GitHub
release triggers the Publish to PyPI workflow, which uploads the package via
PyPI trusted publishing. Versions live in pyproject.toml and
mlflow_autogluon/__init__.py; both are managed by release-please, never bump
them by hand.
Roadmap
- ClearML integration (tracked separately)