exo icon indicating copy to clipboard operation
exo copied to clipboard

feat: Use uv for Python Environment Management to Improve Install Speed

Open Yvictor opened this issue 1 year ago • 6 comments

Description:

This PR proposes switching the Python environment manager to uv to improve installation speed and overall developer experience. uv provides faster package installations and simplifies the environment setup process, reducing time spent on configuration.

Changes Introduced:

  • Environment Manager Update: Replaced the existing Python environment manager with uv.
  • Improved Installation Speed: Leveraging uv for faster installation times, particularly when managing numerous dependencies.
  • Simplified Environment Setup: Easier and more efficient setup for developers.

Rationale:

  • Performance: uv offers better performance in dependency resolution and package installation, reducing overhead.
  • Consistency: Provides a consistent development environment across machines, minimizing dependency conflicts.
  • Developer Efficiency: Quicker environment setup improves productivity for contributors.

Tests Performed:

  • Tested installation on macOS using uv.
  • Confirmed that all dependencies are installed and the project runs correctly.

Future Considerations:

  • Documentation updates to explain the use of uv for new contributors.

Yvictor avatar Oct 11 '24 15:10 Yvictor

Very cool! I will add a $200 retrospective bounty as this is great.

Two things:

  • Can you add uv as a prerequisite in the README?
  • Is it possible to keep the exo command that we had previously? i.e. being able to run exo instead of uv run exo

AlexCheema avatar Oct 11 '24 18:10 AlexCheema

Thank you for the kind words and the bounty offer!

I've addressed the two points you raised:

  1. Added uv as a prerequisite: The README has been updated to reflect uv as a required tool for environment setup.
  2. Adjusted to keep the exo command: I've changed the process to use uv tool install . instead of uv run exo, ensuring the exo command remains available, preserving the original behavior.

Please let me know if you'd like any further adjustments or improvements!

Yvictor avatar Oct 12 '24 06:10 Yvictor

We have quite a few big PR's pending that will get merged in the next few weeks and this will cause a lot of conflicts so will merge this once they are merged.

AlexCheema avatar Oct 14 '24 05:10 AlexCheema

Can you fix conflicts please @Yvictor

AlexCheema avatar Nov 25 '24 12:11 AlexCheema

Can you fix conflicts please @Yvictor

I’ve resolved the conflicts. Please check if everything looks good. Let me know if there’s anything else needed.

Yvictor avatar Nov 26 '24 05:11 Yvictor

this will not be merged? :(

luxus avatar Mar 20 '25 21:03 luxus