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

Consider Migrating to Rye #46

Open
0xMochan opened this issue Oct 12, 2023 · 0 comments
Open

Consider Migrating to Rye #46

0xMochan opened this issue Oct 12, 2023 · 0 comments
Labels
enhancement New feature or request needs-discussion Looking for discussion

Comments

@0xMochan
Copy link
Collaborator

0xMochan commented Oct 12, 2023

rye is a newer, rust based tool for python management, inspired by cargo's utility in the rust ecosystem.

It has tooling for

  • Installing and managing python installations (like pyenv)
  • Project dependency management via pyproject.toml (like poetry)
  • Python tool / app global installation and isolation (like pipx)

It's designed to be:

  • Matching as close as possible to PEP 621.
  • As extensive as cargo is to rust.
  • Removing all custom complexity (leveraging base requirements format for .lock files)

Since rye manages both python installations AND project management, it can ensure a correct python is being used for maintainers and contributors, a really key fact that trumps the current poetry setup. It also leverages a much simpler setup for dependency locking (using the same resolver as pip) and avoids bootstrapping issues (and gains speed) from being a rust project (instead of a python/shell tool).

Considerations

I'm a bit hesitant to migrate this repo again from one project management tool to another, as a symptom of "shiny object syndrome". rye is also a newer tool, unlike poetry, and lacks a bit of the foundation (esp. from industry) that poetry has gained w/ experience overtime. The community resources is necessarily weaker (growing) and there will be growing pains if we did make this move. I've already ran into some small barriers of missing features from poetry in rye.

The main reason why I think it's a good idea is to really simplify the tooling we both use and recommend, especially from the point of view of simplistic python installations that match for project development (won't harm whatever python situation you have going on). It specifically aims to never compile python to your system (unless you chose to) which fixes a whole load of issues with pyenv. Python installations vary so widely among systems that it can get a bit awkward to manage (w/ shell shims and global environments galore). I've seen this first hand with the struggle of getting a working poetry setup.

I've started using it for some personal projects and I've greatly enjoyed the simplicity in the design (for example, it outputs requirements.lock that can be pip installed naturally, making Dockerfiles and Github Action workflows simpler).

@0xMochan 0xMochan added the enhancement New feature or request label Oct 12, 2023
@0xMochan 0xMochan changed the title Moving to rye Migrating to rye Oct 12, 2023
@0xMochan 0xMochan added the needs-discussion Looking for discussion label Oct 12, 2023
@0xMochan 0xMochan changed the title Migrating to rye Consider Migrating to Rye Nov 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request needs-discussion Looking for discussion
Projects
None yet
Development

No branches or pull requests

1 participant