Skip to content
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

[REQUEST] Consider migrating from Poetry to uv #471

Open
latonis opened this issue Aug 27, 2024 · 5 comments
Open

[REQUEST] Consider migrating from Poetry to uv #471

latonis opened this issue Aug 27, 2024 · 5 comments
Assignees
Labels
enhancement New feature or request

Comments

@latonis
Copy link

latonis commented Aug 27, 2024

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
image

@latonis latonis added the enhancement New feature or request label Aug 27, 2024
@target target deleted a comment Aug 27, 2024
@ryanohoro
Copy link
Collaborator

ryanohoro commented Aug 27, 2024

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.

@skalupa
Copy link
Collaborator

skalupa commented Aug 27, 2024

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!

@latonis
Copy link
Author

latonis commented Aug 27, 2024

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.

@latonis
Copy link
Author

latonis commented Aug 27, 2024

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 😄

@skalupa
Copy link
Collaborator

skalupa commented Aug 27, 2024

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!

@phutelmyer phutelmyer removed their assignment Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants