Skip to content

fix(uv): Don't just delete windows whls#773

Merged
arrdem merged 4 commits intomainfrom
arrdem/fix-754-requirements-with-no-sdist
Mar 7, 2026
Merged

fix(uv): Don't just delete windows whls#773
arrdem merged 4 commits intomainfrom
arrdem/fix-754-requirements-with-no-sdist

Conversation

@arrdem
Copy link
Copy Markdown
Contributor

@arrdem arrdem commented Jan 9, 2026

Summary

Packages with only platform-specific wheels (e.g. Windows-only) and no source distribution would crash with an empty select chain when built on an incompatible host.

  • Adds _no_sbuild filegroup marked target_compatible_with = ["@platforms//:incompatible"] as the default arm when no sdist fallback exists
  • Adds win32, win_amd64, and win_arm64 platform config_settings (with msvc libc) so Windows wheels are included in the select chain rather than silently dropped
  • Adds is_msvc config_setting and makes is_musl visibility public

This doesn't enable full Windows builds (no interpreter support yet), but cross-platform lockfiles containing Windows-only packages no longer break analysis on Linux/macOS.

Fixes #754

Test plan

  • bazel test //... — 87/87 pass
  • e2e //cases/uv-no-sdist-754:test — verifies pywin32 repo has _no_sbuild incompatible default and Windows wheel arms

🤖 Generated with Claude Code

@aspect-workflows
Copy link
Copy Markdown

aspect-workflows Bot commented Jan 9, 2026

Bazel 8 (Test)

All tests were cache hits

87 tests (100.0%) were fully cached saving 47s.


Bazel 9 (Test)

All tests were cache hits

87 tests (100.0%) were fully cached saving 1m 15s.


Bazel 8 (Test)

e2e

All tests were cache hits

20 tests (100.0%) were fully cached saving 12s.


Bazel 9 (Test)

e2e

All tests were cache hits

20 tests (100.0%) were fully cached saving 14s.


Bazel 8 (Test)

examples/uv_pip_compile

All tests were cache hits

1 test (100.0%) was fully cached saving 444ms.

@arrdem
Copy link
Copy Markdown
Contributor Author

arrdem commented Jan 15, 2026

Blocked on #776 probably.

@arrdem arrdem force-pushed the arrdem/fix-754-requirements-with-no-sdist branch from a3cdf70 to 912d5e6 Compare January 15, 2026 20:04
@CLAassistant
Copy link
Copy Markdown

CLAassistant commented Jan 23, 2026

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.
1 out of 3 committers have signed the CLA.

✅ arrdem
❌ claude
❌ aspect-marvin
You have signed the CLA already but the status is still pending? Let us recheck it.

arrdem added a commit that referenced this pull request Mar 4, 2026
The original uv extension prototype treated the uv.lock file as
"requirements.txt++" which enormously undersells what uv can and will
put into the lockfile.

One example of which is that in cases where the user provided marker
dependent version constraints, uv will happily solve the constraints for
all cases of the markers and generate a lockfile which captures the
_version disambiguated_ requirement graph for all configurations, and
propagates marker expressions as needed.

A related example is that uv retains extras and their activations
explicitly as part of the graph rather than simply listing the reach set
of requirements after extras have all been activated, which would
discard that information.

Fixes #798,  #797, #794, #792, #791, #773

### Changes are visible to end-users: yes

- Searched for relevant documentation and updated as needed: yes
- Breaking change (forces users to change their own code or config): no
- Suggested release notes appear below: yes

The experimental `uv` extension has seen significant changes to address
a number of outstanding bugs.
- Multiple versions of a single package are now supported
- `[dependency-groups]` are now interpreted as defining build/venv
configurations
- Extra activations are propagated correctly

### Test plan

- New test cases added

### Remaining work
- [x] Need to re-validate the Gazelle manifest generation
- [x] Need to add a test covering #790
- [x] Need to add a test covering #791
- [x] Need to add a test covering #789
- [x] Need to add a test covering #794

---------

Co-authored-by: aspect-marvin[bot] <marvin@aspect.build>
@arrdem arrdem force-pushed the arrdem/fix-754-requirements-with-no-sdist branch from 7a02ba5 to 4243f35 Compare March 6, 2026 12:14
@arrdem arrdem marked this pull request as ready for review March 6, 2026 12:15
@arrdem arrdem force-pushed the arrdem/fix-754-requirements-with-no-sdist branch from 4243f35 to 7016b8a Compare March 6, 2026 12:17
arrdem pushed a commit that referenced this pull request Mar 7, 2026
Aligns with #773 which establishes "msvc" as the platform_libc value
for Windows platforms.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@arrdem arrdem force-pushed the arrdem/fix-754-requirements-with-no-sdist branch from e0184ca to 58c6272 Compare March 7, 2026 03:32
arrdem and others added 4 commits March 6, 2026 20:33
Verifies that packages with no sdist and no Linux wheels don't crash
the build graph during analysis.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
In Bazel 9, sh_test is no longer a native built-in. Add rules_shell
as a dependency and load sh_test explicitly.
@arrdem arrdem force-pushed the arrdem/fix-754-requirements-with-no-sdist branch from 58c6272 to 4f42bd8 Compare March 7, 2026 03:34
@arrdem arrdem merged commit b27a653 into main Mar 7, 2026
3 of 4 checks passed
@arrdem arrdem deleted the arrdem/fix-754-requirements-with-no-sdist branch March 7, 2026 04:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: UV locks may contain no sdist

4 participants