-
Notifications
You must be signed in to change notification settings - Fork 132
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
pixi run pip install
is overridden by subsequent call to pixi
#1233
Comments
I think I understand the use-case, it begs the question though, is the package that |
I should have clarified: |
So the use-case is:
Couldn't you add |
We'd rather keep a "lax" dependency on Edit: also it wouldn't cover the CI use case, where we want to run against a very specific, pre-built wheel. |
Couldn't you just make a seperate environment for running with the latest version? EDIT: Also is my read of your use-case correct ):? |
Four our use-case (use-cases, really), our ideal requirements are: A) As a user:
B) As a dev:
C) As CI:
( |
I believe (A) forces examples to have a lax dependency on |
Thanks, let me see.. So for a), I think this is already possible right:
B) I believe we should support
C) You are right there is no real good support for it as long as the rerun-sdk is managed in the lock as well. |
I think your summary matches our experience. The workaround I mentioned in OP provides us with an escape hatch for (C), and, as a dev, for the odd time you might still need to install an alternative (Thinking of it, I should have listed (B-extra) which is the ability as a dev to occasionally install any rerun-sdk from anywhere because.... life happens 😄) |
Yeah for B-extra, you would need the ability to override the locked dependency in some way. Maybe checking the |
I think, and that's kinda totally unrelated to your issue, but somehow it does come back to it. The reason we need to install the environments when using Two ways of going about this:
If we have that we could reinstate the full functionality of |
Checks
I have checked that this issue has not already been reported.
I have confirmed this bug exists on the latest version of pixi, using
pixi --version
.Reproducible example
We encountered this issue while working on rerun-io/rerun#5966 (can be reproduced with commit 44412db2519cf2a37b0bd9d951cc4d8630eac037).
-> leads to the same initial error, as if
py-build
had no effect.Issue description
It actually turns out that
py-build
does install a build-from-source rerun-sdk correctly, but this is reverted by the last call to pixi, possibly due to #998?Interestingly, activating a shell is a possibly work-around:
Another case where it appears to work as expected is in CI, with an environment set for the
setup-pixi
action: https://github.com/rerun-io/rerun/blob/36f00a5b0bd3edf06bc0f4ec65ce58f86a32e458/.github/workflows/reusable_build_examples.yml#L66-L86Expected behavior
Ideally,
pixi
would make it easy and robust to manually "override" packages in the environments, including via pip specifically for when there is no other way (e.g maturin). This would cover at least two workflow:Workaround
For our particular case, @jleibs just had a workaround idea that appears to work:
rerun-sdk
local package somewhere (that would install a differently named empty python file)pixi.toml
for theexamples
environmentThat way, examples defaults to failing (
no module named 'rerun'
), and somehow a subsequentpixi run -e examples py-build
doesn't end up being overridden.pyproject.toml:
The text was updated successfully, but these errors were encountered: