InSyncWithFoo / ryecharm

The all-in-one PyCharm plugin for Astral-backed Python tools
https://insyncwithfoo.github.io/ryecharm/
MIT License
73 stars 4 forks source link

Remove uv's project generator #12

Closed InSyncWithFoo closed 1 month ago

InSyncWithFoo commented 1 month ago

The generator was a reimplementation of the now-deprecated newProject module. That module's replacement, newProjectWizard is, however, not what we need: It does provide a much better interface for framework plugins, but not project and package manager ones (I'm sure RyeCharm is currently the only one in this second category).

newProjectWizard makes use of sdk.add.v2, which has recently been made internal. The Marketplace team won't even approve a plugin using internal APIs, so if I were to reimplement newProjectWizard, I would also have to copy the entire sdk.add.v2 over.

All of these modules (as well as other related ones) are changing at a very fast pace. To be clear, this is very welcoming news: it means future plugin developers won't have to go through what I went through. On the other hand, these changes mean an unofficial fork would take a lot of efforts to maintain.

Why would I reimplement such legacy code, you ask? It's because there aren't any official APIs. I have requested that the Custom environment subpanel be extendable from third-party plugins. Please vote for the issue to show your support.

(For reference, currently this subpanel allows choosing from a list of Virtualenv, Conda, Pipenv and Poetry, all hardcoded.)

In the mean time, the generator is but a burden. I have decided that it's best to just remove it.

InSyncWithFoo commented 1 month ago

The aforementioned issue was closed. One good news, one bad news:

This probably means I should be removing most of the SDK parts as well.

InSyncWithFoo commented 1 month ago

uv will be supported as an environment type. This means, on 2025.1 at the earliest (~3 months until EAP, 5 or 6 months until stable), we will have a proper generator.

uv's generator should stay for now. It will be removed as soon as a version natively supporting uv is released, or newProject is removed, whichever comes first.

The new logic might break old environments, but so be it.