-
Notifications
You must be signed in to change notification settings - Fork 25
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
micropipenv future & python dependency pinning standardization #249
Comments
Responding there as this is relevant and would apply to similar issues.
There is kind of a standard already for defining "requirements" (aka, non-exact deps) in wheels metadata: either specify it in Where micropipenv could be useful, IMO, is to install resolved python stack regardless of the package manager used (poetry, pdm, pipenv, other). Handling the "requirements files" (aka Pipfile and equivalent for others) leans dangerously into doing the work of all those packages managers all at once, which why narrowing the scope looks like the best path forward to me. |
If I understand the tool correctly, micropipenv does exactly this.
These are also true already. Not sure if I'm missing something. |
On Thu, Jan 26, 2023 at 08:05:50AM -0800, Fridolín Pokorný wrote:
> Where micropipenv could be useful, IMO, is to install resolved python stack regardless of the package manager used (poetry, pdm, pipenv, other).
If I understand the tool correctly, micropipenv does exactly this.
Well, it should. We don't have support for pdm.
> 1. micropipenv should not be a "stack resolver", aka, it should not try to be
> pipenv, poetry or pdm.
> 2. it shall become a converter from those packages managers lock files to the future standard
> format.
> 3. once the standard is adopted and supported, it will either stay a minimal
> installer, or be obsoleted if pip support the new format sufficiently.
These are also true already. Not sure if I'm missing something.
Which ones ? 2 and 3 are not yet there because there isn't a standard.
1 is precisely why I'd like to move away from handling Pipfile (among
others) and only focusing on lock files.
|
Yes, it will most probably take some time to have a standardized lockfile in Python. In the meantime, micropipenv can be valuable for other lockfile formats. |
Precisely. But Pipfile, poetry.toml etc are not lockfiles ; they are dependency solver specifications, which is a bit different. |
My point of view is that we should focus on lock files but Pipfile or pyproject.toml might sometimes have important info as well. Do you see a way how to support the current set of functionalities without touching anything else than lock files? |
On Fri, Jan 27, 2023 at 01:45:26AM -0800, frenzymadness wrote:
My point of view is that we should focus on lock files but Pipfile or pyproject.toml might sometimes have important info as well. Do you see a way how to support the current set of functionalities without touching anything else than lock files?
pyproject.toml info and similar should not be relevant to us, as far as I can tell ; it's for build frontend (most of the times pip).
For a dependency installer (locked dependencies), we don't need anything other than lock files.
For some of the current functionality of micropipenv, yeah, we do. But precisely the point of that issue is to reduce our scope.
One possibility would be to split the sub-command in different packages (like `micropipenv[install]` / `micropipenv[requirements]` for
example). But I thinks the requirements command for example duplicate functionality from pipenv.
|
It seems that the current version of poetry needs pyproject.toml and poetry.lock both to be present. They for example removed the
now produces:
and I don't see a way how to distinguish between runtime and dev dependencies only from the lock file. |
Unfortunately, I don't have the capacity to lead this effort. @goern how the situation looks on your side? I can imagine that some of the bugs we have here would be solvable by the new locking standard but it's too much for me. I'm gonna take a look at the reported bugs but any help with the maintenance of the project would be appreciated. |
We want to shift micropipenv direction toward the currently discussed "lock file" standard.
We believe that standardizing dependency pinning in the Python ecosystem (for
resuming the purpose of the above discussion) can answer to the problem
micropipenv currently solves.
As such, we intent to focus our work on working with the Python community on
defining that standard.
This implies refining the scope and purpose of micropipenv a bit:
pipenv, poetry or pdm.
format.
installer, or be obsoleted if pip support the new format sufficiently.
For micropipenv users
There won't be any short term impact on micropipenv usage.
On the mid or long term, we might deprecate some functionally, particularly
around resolving (aka, getting from a version requirement to an exact version).
On the other hand, if you use micropipenv, knowing your use case could probably
help the new standard discussion; if you can, please join the discussion,
or expose it in this issue.
The text was updated successfully, but these errors were encountered: