-
Notifications
You must be signed in to change notification settings - Fork 915
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Document Kedro compatibility with workflow tools like uv, Hatch, PDM, Rye, Poetry #3974
Comments
Hi @galenseilis, thanks for opening this issue! Luckily, Kedro is already compatible with all PEP 621-compliant tools, and also with Poetry. I have personally enjoyed using PDM for most of my personal Kedro projects for a while. there are 2 ways to go about this:
If going for the latter, the workflow would be
then:
And you're all set!
We encourage the community to create Poetry, PDM, Rye starters (and give my Probably evolving our official starters to use an alternative workflow tool isn't going to happen any time soon (until, of course, The One Tool Everybody Uses emerges 😉) so in principle I would say there is not much else for us to do, except perhaps document this better. What do you think @galenseilis? |
This makes sense to me! I agree with your conclusion that documenting the compatability with these tools where applicable is the way to go forward. :) |
I did not encounter any major issues with setting up Kedro with Rye. |
With #4116 we're taking on the necessary changes so that the default template is totally compatible with workflow tools (Hatch, PDM, Rye, Poetry, and lastly uv). So I'm relabeling this as a documentation issue. |
#4116 has been fixed. Now Kedro starters and Kedro projects in general are fully PEP 621 compatible, and can be used with all modern project management tools (including Poetry 2.0 whenever it's out) Now the question is... Should we document all of them? Or should we favour a specific one? |
I cannot seem to come up with a good answer for you. I personally have these preferences: uv > pdm > rye = poetry > hatch. On the other hand, I'm sure that others have their own preferences. |
Description
I'm sometimes frustrated when managing project dependencies and virtual environments, especially as project complexity grows. Traditional tools like
pip
andvenv
can be cumbersome and lack advanced features for dependency resolution (although pip is better than it used to be), version management, and project configuration. This often leads to conflicts and inefficiencies.I would like Kedro to support modern package managers such as Hatch, PDM, Rye, or Poetry. These tools offer robust dependency management, streamlined environment setup, and enhanced configuration capabilities that can greatly improve the developer experience and productivity.
While it's possible to manually configure these package managers alongside Kedro, native support would ensure seamless integration and reduce the overhead associated with maintaining separate configurations. This would also help standardize the development workflow across teams.
Although I don't think it is for everyone yet, I have 'really' enjoyed using Rye.
Context
This change is important to me because it simplifies dependency management, reduces configuration overhead, and enhances the overall developer experience. By using modern package managers like Hatch, PDM, Rye, or Poetry with Kedro, I can:
For example, PDM's (and others) built-in support for CLI tools that modify
pyproject.toml
simplifies dependency declaration and management, while its lockfile ensures reproducibility. This is particularly beneficial in collaborative environments where consistency is crucial.How it can benefit other users:
Overall, integrating support for these package managers would align Kedro with modern Python development practices and significantly enhance its usability for a broad range of users.
Possible Implementation
None
Possible Alternatives
The text was updated successfully, but these errors were encountered: