Skip to content
This repository was archived by the owner on Feb 5, 2026. It is now read-only.

Retire Rye and add a uv migration guide#1476

Merged
geofft merged 4 commits intomainfrom
geofft/migrate-to-uv
Aug 18, 2025
Merged

Retire Rye and add a uv migration guide#1476
geofft merged 4 commits intomainfrom
geofft/migrate-to-uv

Conversation

@geofft
Copy link
Contributor

@geofft geofft commented Jul 21, 2025

https://lucumr.pocoo.org/2024/8/21/harvest-season/

Domination is a goal because it means that most investment will go
into one stack. I can only re-iterate my wish and desire that Rye (and
with it a lot of other tools in the space) should cease to exist once
the dominating tool has been established. For me uv is poised to be
that tool. It's not quite there today yet for all cases, but it will
be in no time, and now is the moment to step up as a community and
start to start to rally around it. That doesn't mean that this tool
will be the tool forever. Things come and go and maybe there is a
future for some other tool.

But today I'm looking forward to the moment when there will be a final
release of Rye that is no remaining functionality other than to just
largely alias to uv, that retires Rye specific functionality and
migrates you over to uv.

This does not do a final release - adding a compatibility layer for uv and an automatic migration is likely to be buggy and incomplete, and users are better served by changing the command they type to uv. Instead, it adds a migration guide based on the discussion thread (#1342), documenting things that are not immediately obvious to a user swapping out rye for uv.

https://lucumr.pocoo.org/2024/8/21/harvest-season/

> Domination is a goal because it means that most investment will go
> into one stack. I can only re-iterate my wish and desire that Rye (and
> with it a lot of other tools in the space) should cease to exist once
> the dominating tool has been established. For me uv is poised to be
> that tool. It's not quite there today yet for all cases, but it will
> be in no time, and now is the moment to step up as a community and
> start to start to rally around it. That doesn't mean that this tool
> will be the tool forever. Things come and go and maybe there is a
> future for some other tool.
>
> But today I'm looking forward to the moment when there will be a final
> release of Rye that is no remaining functionality other than to just
> largely alias to uv, that retires Rye specific functionality and
> migrates you over to uv.

This does not do a final release - adding a compatibility layer for uv
and an automatic migration is likely to be buggy and incomplete, and
users are better served by changing the command they type to `uv`.
Instead, it adds a migration guide based on the discussion thread
(#1342), documenting things
that are not immediately obvious to a user swapping out `rye` for `uv`.
@geofft geofft requested a review from charliermarsh July 21, 2025 15:34
@geofft
Copy link
Contributor Author

geofft commented Jul 21, 2025

Rendered website

@hugovk
Copy link

hugovk commented Aug 18, 2025

Thanks for this migration guide, the "rye fmt and rye test" section was especially useful.

One thing that was missing, replace rye lint with something like uv run ruff check.

@geofft
Copy link
Contributor Author

geofft commented Aug 18, 2025

Great, glad it was useful! Added a section on that (and updated the preview rendering above so the links work right).

docs/guide/uv.md Outdated
A few configuration keys are slightly different but easy to migrate:

* `tool.rye.universal` and `tool.rye.generate-hashes` are under the `tool.uv.pip` namespace, i.e., `tool.uv.pip.universal` and `tool.uv.pip.generate-hashes`.
* `tool.rye.lock-with-sources` corresponds to `tool.uv.no-sources` but with the sense inverted, i.e., convert `lock-with-sources = false` to `no-sources = true`.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"sense inverted" seems confusing

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about

* `tool.rye.lock-with-sources` corresponds to `tool.uv.no-sources` but the Boolean value of the setting is inverted, i.e., convert `lock-with-sources = false` to `no-sources = true`.

?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That works for me, though I'd nit and not capitalize "Boolean".

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've always thought of it as a proper noun (after George Boole, similar to "Euclidean distance", "Hamiltonian", etc.), but huh, the Rust docs seem to use lowercase and the CPython docs use both styles. Wikipedia uses uppercase.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added to the CPython style guide just yesterday:
https://devguide.python.org/documentation/style-guide/#specific-words

It definitely varies.

See also https://english.stackexchange.com/questions/13762/are-there-examples-of-terms-named-after-a-person-that-are-no-longer-capitalized for a whole list of eponyms that are no longer capitalised.

docs/guide/uv.md Outdated

Rye supports a [global Python shim](https://rye.astral.sh/guide/shims/) that sets up the `python` and `python3` commands to run a managed version of Python. While this is highly convenient, it does risk breaking existing software on your computer that expects the OS version of Python.

As of uv 0.8.0, `uv python install` will install a `python3.x` command for the latest stable managed Python. If you would like to install `python` and `python3` commands too. you can use `uv python install --preview`. Note that this is _not_ a shim, just a direct link to the Python installation; it does not pick up dependencies from the current project. This behavior may change in the future; [astral-sh/uv#6265](https://github.com/astral-sh/uv/issues/6265) tracks uv adding a Python shim.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's --default not --preview here

ekishouTV added a commit to ekishouTV/ekishouTV.github.io that referenced this pull request Nov 24, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants