Open latonis opened 3 months ago
Thanks for bringing uv to our attention. I don't see the python package installation as a large contributor to build time for the Strelka project, so a 10x increase in speed would not balance with the time spent and lack of maturity in uv.
As well, Poetry has project management features that Strelka uses that I don't know uv to support. For the time being, I think other parts of the build process should be targeted for optimization if build time is a concern.
Hi @latonis! I am looking into uv now. As a starting question while I look into the tool, are there any other reasons that we would want to port over to uv besides being faster than poetry? Echoing what @ryanohoro mentioned above, we depend on specific Poetry project management features to create the Strelka build. Thanks!
Hey all, thanks so much for the quick reply!
As a starting question while I look into the tool, are there any other reasons that we would want to port over to uv besides being faster than poetry?
There's a few niceties that come with UV that could be beneficial as the project grows and dependencies and modules become developed with different dependencies themselves: https://docs.astral.sh/uv/concepts/workspaces/
The one feature I would highlight as very helpful is build isolation for each dependency: https://docs.astral.sh/uv/concepts/projects/#build-isolation
With a modular system and the ability to have conflicting dependencies and the mess that can create, adhering to PEP 517 can save a lot of headaches, especially if the project wants to continue supporting dependencies useful to the general user base when they (occasionally) face deprecation or lack of updates
Other than the speedup, the main features like the lockfile and pyproject.toml configurations are also present in Poetry so no differences there really.
I'm more than happy to do the work to have a feature branch to show the speedup/feasibility of using uv
if that is something of interest, but in the end if it's not, I can also accept that 😄
Thanks so much for the explanation above!
While the feature enhancements you mentioned look really useful, the conversion steps from Poetry to UV seem relatively new and I'm not sure that UV has all of the management features implemented that we rely on in our current Poetry build. We would certainly appreciate any work you would like to put into a feature branch to prove out UV builds with Strelka, but I do not think we will pursuing a full conversion to UV at this time.
Thank you for looking into this and for bringing this dependency manager to our attention, we'll keep an eye on it in the future!
Is your feature request related to a problem? Please describe. Builds with Poetry can take quite a bit of time, to decrease build time and increase ability to iterate quickly and build quickly, consider implementing
uv
instead.Describe the solution you'd like Migrate dependency management and installation from Poetry to uv.
Describe alternatives you've considered n/a - with the amount of dependencies pulled and managed on the Python side of strelka, I see uv a win
Additional context