Replies: 1 comment
-
|
Love this - in theory we don't even need to do |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Dagster implements a nice separation between project creation and project execution, and I believe this approach could be very valuable for Kedro to resolve our struggles with heavy dependencies that are not needed in production.
This separation is not only about keeping creation-time and runtime dependencies separate (which helps keep production environments lean), but also about improving the overall developer experience.
1. Project creation
A new Dagster project is created using
uvxand a dedicated project-creation tool:Here,
uvxruns the project generator in a temporary, isolated environment, so users do not need to install or manage the generator’s dependencies themselves.We currently recommend doing something similar in our quickstart - using
uvxwithkedro new- but it makes less sense, because after that I still need to create a proper.venvfor the samekedropackage in order to run the project.create-dagsterautomatically asks whether you want to runuv sync. If you answer yes, it creates a.venvwith all dependencies frompyproject.tomlinstalled.At this step, we recommend using
uv kedro run, which for me does not seem very clear, because it actually creates a.venvinside your project but activates it only temporarily. If I want to continue working with my new project, it feels better to activate the environment explicitly.2. Project execution
Once the project is created and the
.venvis activated, execution and orchestration are handled by the Dagster runtime:If you need to modify your Dagster project and add some assets, you should use commands from the main package, such as
dg scaffold defs.I think implementing the same approach would allow us to make core Kedro less heavy:
kedro-newinto a separate library, since it brings Cookiecutter with it. I think it is possible to do this without a major release if we add a thin wrapper aroundkedro newin the Kedro CLI, which would use thekedro-newlibrary when it is installed or prompt the user to install it.kedro pipeline create, insidekedro.I also think it would be nice to embed
uv syncintokedro new, the same way Dagster does.Beta Was this translation helpful? Give feedback.
All reactions