-
Notifications
You must be signed in to change notification settings - Fork 863
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
Markers of splits in universal bluejay resolution are wrong #4687
Comments
Can you break this down a bit? It seems like you’re reporting multiple issues here - or am I misreading? |
No i think this is one issue where we accumulate the wrong markers and then everything downstream is wrong |
Do you want to look into it? |
My guess is... maybe we aren't checking if the fork is disjoint with the parent fork? Like, after we fork, we do: forked_state.markers.and(fork.markers);
forked_state.markers = normalize(forked_state.markers)
.unwrap_or(MarkerTree::And(Vec::new())); But that expression could be |
Although in theory we filter out deps with |
Solving this should also fix the following entry in the transformers lockfile: [[distribution]]
name = "orbax-checkpoint"
version = "0.5.16"
source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/05/f3/39988acde4fa04b0017b8dec1c2cc4429c4d54830f418c80574ff6f6ff9b/orbax_checkpoint-0.5.16.tar.gz", hash = "sha256:c64d2a3ba6dd7e41330c3efd2bb669743480e62ad242eac5517e67369c26a38e", size = 160749 }
dependencies = [
{ name = "absl-py" },
{ name = "etils", version = "1.5.2", source = { registry = "https://pypi.org/simple" } },
{ name = "etils", version = "1.5.2", source = { registry = "https://pypi.org/simple" }, extra = "epath" },
{ name = "etils", version = "1.5.2", source = { registry = "https://pypi.org/simple" }, extra = "epy" },
{ name = "etils", version = "1.9.2", source = { registry = "https://pypi.org/simple" } },
{ name = "etils", version = "1.9.2", source = { registry = "https://pypi.org/simple" }, extra = "epath" },
{ name = "etils", version = "1.9.2", source = { registry = "https://pypi.org/simple" }, extra = "epy" },
{ name = "jax" },
{ name = "jaxlib" },
{ name = "msgpack" },
{ name = "nest-asyncio" },
{ name = "numpy" },
{ name = "protobuf" },
{ name = "pyyaml" },
{ name = "tensorstore" },
{ name = "typing-extensions" },
]
wheels = [
{ url = "https://files.pythonhosted.org/packages/50/00/95794fe517d705c06b1918c4d32372d7476f81a2bfc6ed44f850bbe71ee2/orbax_checkpoint-0.5.16-py3-none-any.whl", hash = "sha256:1b4329ff477c59e061ac15bc09eea34a248f2048b1c5b43eae9b530e068e5974", size = 217032 },
] |
When resolving transformers, the marker expressions on the forks are non-sensical:
platform_system == 'Darwin' and platform_system == 'Linux'
is ∅, i.e. those split can never be reached, and the union of the splits is not universal.I've tried to minimize is a bit, but the problem did not occur when using
uv pip install --universal
or when using direct dependencies with `tool.uv.source, i.e. i think it needs some previous (dummy?) splits, and hence the half-done MRE:Use this pyproject.toml, edit the overrides to point to two dummy projects.
opencv-python
splits,foo
is our reporter.Run this on a 64-bit x86 machine or edit the marker to something else that's your machine but excluded in the lock markers. Run
uv lock -v
. In the lockfile we findand anyio 4.4.0, missing our constraint! It looks like we're only solving for a subset of markers in this case.
The marker on opencv-python -> numpy also looks wrong:
The text was updated successfully, but these errors were encountered: