-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Deterministic installations from packages #5449
Comments
+1 |
I propose this as an option —frozen-wheel |
I would still recommend to put it as option, and potentially give a different package name, since the generated package is not pip installable in an existing environment. Basically two different « frozen » app cannot live in the same environment since there are good chances that one at least of their deps will be pinned differently. coupled with pipx however this would be perfect ! |
Just to be nitpicky here: the generated packages conceptually are installable into an existing environment (e. g. an empty one ;)), and two different frozen apps can be installed into the same environment (iff they don't contain different versions of the same dependency). Practically, that may or may not be an issue, which is why I argue for providing such an option 👍 |
We are talking about the following problems:
trust me. Everything is simpler when each app is it its own venv. And since it is optional, you do not have to use it if you feel everything I have told does not apply to you. |
Same as #2331 |
Duplicate of #2778 |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Feature Request
Hi y'all,
I built a simple application that I would like to package, so that when deployed (in my case installed into a Docker image) I don't have to manually copy source files into the file system, but can rely on the package manager to handle standard compliant placement (scripts in
$PATH
, importable modules in$PYTHONPATH
).However, when packaging my code, the
.lock
file seems to be ignored (the same waysetuptools
would do), and theMETADATA
in the*.dist-info/
dir only list the direct dependencies specified in the project toml. This means that any installation not happening from the source, but from a derived wheel, will be non-deterministic, losing all associated benefits.Since poetry already resolved and pinned the transitive dependencies of the project, I think it would be great if the
build
command could be instructed to replace the direct dependencies (which usually contain ranges of accepted versions) listed in the project toml with all the materialized pinned versions from the.lock
file.This way, easily distributable packages could still produce deterministic installations (obviously that would put the burden of avoiding version conflicts in the target environment through some means of isolation onto the consumer).
Thanks for considering and the sleek tool
dtk
The text was updated successfully, but these errors were encountered: