Migrate to uv and pyproject.toml, drop u8darts#2993
Migrate to uv and pyproject.toml, drop u8darts#2993dennisbader merged 44 commits intounit8co:masterfrom
uv and pyproject.toml, drop u8darts#2993Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #2993 +/- ##
==========================================
- Coverage 95.64% 95.58% -0.07%
==========================================
Files 156 156
Lines 16946 16946
==========================================
- Hits 16208 16197 -11
- Misses 738 749 +11 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
brunnedu
left a comment
There was a problem hiding this comment.
Overall looks really good and it's great to see you pushing to update our environment management! I tested as much as I could on my side (installation of different flavors, building the package, running tests, building docs, conda build, docker build etc.) and it mostly worked flawlessly. Left some minor suggestions throughout. Thanks for the great work on this migration! 🚀
uv and pyproject.toml, drop u8darts
Co-authored-by: Dustin Brunner <92083143+brunnedu@users.noreply.github.com>
Co-authored-by: Dustin Brunner <92083143+brunnedu@users.noreply.github.com>
Add python-version parameter to setup-uv actions and update UV to 0.9. Fixes onnxruntime installation failures caused by UV using Python 3.14. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
dennisbader
left a comment
There was a problem hiding this comment.
Thanks a lot @authierj, this is a great PR and will make the package management much easier and faster in the future 🚀
I added a couple of suggestions.
Co-authored-by: Dustin Brunner <92083143+brunnedu@users.noreply.github.com>
Co-authored-by: Dennis Bader <dennis.bader@gmx.ch>
Co-authored-by: Dennis Bader <dennis.bader@gmx.ch>
Co-authored-by: Dennis Bader <dennis.bader@gmx.ch>
dennisbader
left a comment
There was a problem hiding this comment.
Thanks a lot @authierj, it looks great now 🚀
This is a really nice PR and I'm already in love with the new uv capabilities and package management 😍
I pushed some minor changes. Ready to be merged now! 💯
|
@authierj @brunnedu @dennisbader Great efforts! Thank you making development onboarding a lot easier. |
Checklist before merging this PR:
Fixes #2990
Summary
Migrates Darts from pip to uv, a modern, fast Python package manager. Consolidates all dependency management into
pyproject.toml, deprecates theu8dartspackage, and modernizes CI/CD infrastructure.The
u8dartspackage is deprecated and will no longer be maintained. Users should migrate todartswith optional extras.Migration Guide
pip install u8dartspip install dartspip install u8darts[torch]pip install "darts[torch]"pip install u8darts[all]pip install "darts[all]"Key Changes
1. Dependency Management
requirements/*folder - all dependencies now managed inpyproject.tomlsetup-uv@v7action with automatic caching in CI2. Package Simplification
dartspackage now uses a modular installation system with optional extras:pip install darts- Core only (minimal dependencies)pip install "darts[torch]"- Core + PyTorch modelspip install "darts[notorch]"- Core + Prophet, LightGBM, CatBoost, XGBoost, StatsForecastpip install "darts[all]"- All available models3. Build System Modernization
setup.py,setup_u8darts.py,MANIFEST.in- consolidated to PEP 621 compliantpyproject.toml.bumpversion.cfg- migrated configuration to[tool.bumpversion]inpyproject.tomlmake_dists.shto useuv buildApache-2.0)4. CI/CD Improvements
.github/workflows/update-cache.yml(cache now managed automatically bysetup-uv)uv cache prune --cito all workflow jobs for optimal cache management (ref)develop.yml,merge.yml,release.yml,doc.ymlbump2versionwithbump-my-version>=1.2.5callowayproject/bump-my-version@v0.27.0)5. Docker & Conda Updates
Dockerfileto use uv instead of pipghcr.io/astral-sh/uv:0.9.26imageuv sync --group dev-all --frozenfor reproducible buildsconda_recipe/darts/meta.yamlto read frompyproject.tomlusing modernload_file_data()6. Documentation Updates
INSTALL.mdwith new modular installation instructionsCLAUDE.mdwith uv development workflowCONTRIBUTING.mdwith uv commandsTesting
uv sync