Skip to content

Commit c85761d

Browse files
committed
Merge branch 'main' into zb/exclude-newer-delay
2 parents 094c198 + 5a6f2ea commit c85761d

329 files changed

Lines changed: 20224 additions & 8519 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/renovate.json5

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,14 @@
33
dependencyDashboard: true,
44
suppressNotifications: ["prEditedNotification"],
55
extends: [
6-
"config:recommended",
6+
"github>astral-sh/renovate-config",
77
// For tool versions defined in GitHub Actions:
88
"customManagers:githubActionsVersions",
99
],
1010
labels: ["internal"],
1111
schedule: ["* 0-3 * * 1"],
1212
semanticCommits: "disabled",
1313
separateMajorMinor: false,
14-
prHourlyLimit: 10,
1514
enabledManagers: ["github-actions", "pre-commit", "cargo", "custom.regex"],
1615
cargo: {
1716
// See https://docs.renovatebot.com/configuration-options/#rangestrategy

.github/workflows/ci.yml

Lines changed: 55 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ jobs:
2727
outputs:
2828
# Flag that is raised when any code is changed
2929
code: ${{ steps.changed.outputs.code_any_changed }}
30+
# Flag that is raised when uv.schema.json is changed (e.g., in a release PR)
31+
schema: ${{ steps.changed.outputs.schema_changed }}
3032
steps:
3133
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
3234
with:
@@ -40,10 +42,16 @@ jobs:
4042
CHANGED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha || 'origin/main' }}...HEAD)
4143
4244
CODE_CHANGED=false
45+
SCHEMA_CHANGED=false
4346
4447
while IFS= read -r file; do
45-
# Generated markdown and JSON files are checked during test runs.
46-
if [[ "${file}" =~ ^docs/ && ! "${file}" =~ ^docs/reference/(cli|settings).md && ! "${file}" =~ ^docs/reference/environment.md ]]; then
48+
# Check if the schema file changed (e.g., in a release PR)
49+
if [[ "${file}" == "uv.schema.json" ]]; then
50+
echo "Detected schema change: ${file}"
51+
SCHEMA_CHANGED=true
52+
fi
53+
54+
if [[ "${file}" =~ ^docs/ ]]; then
4755
echo "Skipping ${file} (matches docs/ pattern)"
4856
continue
4957
fi
@@ -70,6 +78,7 @@ jobs:
7078
7179
done <<< "${CHANGED_FILES}"
7280
echo "code_any_changed=${CODE_CHANGED}" >> "${GITHUB_OUTPUT}"
81+
echo "schema_changed=${SCHEMA_CHANGED}" >> "${GITHUB_OUTPUT}"
7382
lint:
7483
timeout-minutes: 10
7584
name: "lint"
@@ -89,7 +98,7 @@ jobs:
8998
- name: "Install uv"
9099
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
91100
with:
92-
version: "0.9.10"
101+
version: "0.9.13"
93102

94103
- name: "rustfmt"
95104
run: cargo fmt --all --check
@@ -135,7 +144,7 @@ jobs:
135144
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
136145
with:
137146
persist-credentials: false
138-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
147+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
139148
with:
140149
save-if: ${{ github.ref == 'refs/heads/main' }}
141150
- name: "Check uv_build dependencies"
@@ -167,7 +176,7 @@ jobs:
167176
run: |
168177
Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
169178
170-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
179+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
171180
with:
172181
workspaces: ${{ env.UV_WORKSPACE }}
173182

@@ -188,7 +197,7 @@ jobs:
188197
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
189198
with:
190199
persist-credentials: false
191-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
200+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
192201
with:
193202
save-if: ${{ github.ref == 'refs/heads/main' }}
194203
- name: "cargo publish dry-run"
@@ -204,11 +213,16 @@ jobs:
204213
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
205214
with:
206215
persist-credentials: false
207-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
216+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
208217
with:
209218
save-if: ${{ github.ref == 'refs/heads/main' }}
210219
- name: "Generate all"
211-
run: cargo dev generate-all --mode check
220+
run: cargo dev generate-all --mode dry-run
221+
- name: "Check sysconfig mappings"
222+
run: cargo dev generate-sysconfig-metadata --mode check
223+
- name: "Check JSON schema"
224+
if: ${{ needs.determine_changes.outputs.schema == 'true' }}
225+
run: cargo dev generate-json-schema --mode check
212226

213227
cargo-shear:
214228
timeout-minutes: 10
@@ -241,14 +255,14 @@ jobs:
241255

242256
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
243257

244-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
258+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
245259

246260
- name: "Install Rust toolchain"
247261
run: rustup show
248262

249263
- uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
250264
with:
251-
version: "0.9.10"
265+
version: "0.9.13"
252266

253267
- name: "Install required Python versions"
254268
run: uv python install
@@ -280,7 +294,7 @@ jobs:
280294
--status-level skip --failure-output immediate-final --no-fail-fast -j 20 --final-status-level slow
281295
282296
cargo-test-macos:
283-
timeout-minutes: 15
297+
timeout-minutes: 20
284298
needs: determine_changes
285299
# Only run macOS tests on main without opt-in
286300
if: ${{ contains(github.event.pull_request.labels.*.name, 'test:macos') || github.ref == 'refs/heads/main' }}
@@ -293,14 +307,14 @@ jobs:
293307

294308
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
295309

296-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
310+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
297311

298312
- name: "Install Rust toolchain"
299313
run: rustup show
300314

301315
- uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
302316
with:
303-
version: "0.9.10"
317+
version: "0.9.13"
304318

305319
- name: "Install required Python versions"
306320
run: uv python install
@@ -317,7 +331,7 @@ jobs:
317331
run: |
318332
cargo nextest run \
319333
--no-default-features \
320-
--features python,python-managed,pypi,git,performance,crates-io,native-auth,apple-native \
334+
--features python,python-managed,pypi,git,git-lfs,performance,crates-io,native-auth,apple-native \
321335
--workspace \
322336
--status-level skip --failure-output immediate-final --no-fail-fast -j 12 --final-status-level slow
323337
@@ -342,12 +356,12 @@ jobs:
342356
343357
- uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
344358
with:
345-
version: "0.9.10"
359+
version: "0.9.13"
346360

347361
- name: "Install required Python versions"
348362
run: uv python install
349363

350-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
364+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
351365
with:
352366
workspaces: ${{ env.UV_WORKSPACE }}
353367

@@ -400,7 +414,7 @@ jobs:
400414
run: |
401415
Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
402416
403-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
417+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
404418
with:
405419
workspaces: ${{ env.UV_WORKSPACE }}/crates/uv-trampoline
406420

@@ -460,7 +474,7 @@ jobs:
460474
- name: Copy Git Repo to Dev Drive
461475
run: |
462476
Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
463-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
477+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
464478
with:
465479
workspaces: ${{ env.UV_WORKSPACE }}/crates/uv-trampoline
466480
- name: "Install Rust toolchain"
@@ -478,8 +492,8 @@ jobs:
478492
working-directory: ${{ env.UV_WORKSPACE }}/crates/uv-trampoline
479493
run: |
480494
cargo build --target ${{ matrix.target-arch }}-pc-windows-msvc
481-
cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-console.exe trampolines/uv-trampoline-${{ matrix.target-arch }}-console.exe
482-
cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-gui.exe trampolines/uv-trampoline-${{ matrix.target-arch }}-gui.exe
495+
cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-console.exe ../uv-trampoline-builder/trampolines/uv-trampoline-${{ matrix.target-arch }}-console.exe
496+
cp target/${{ matrix.target-arch }}-pc-windows-msvc/debug/uv-trampoline-gui.exe ../uv-trampoline-builder/trampolines/uv-trampoline-${{ matrix.target-arch }}-gui.exe
483497
- name: "Test new binaries"
484498
working-directory: ${{ env.UV_WORKSPACE }}
485499
run: |
@@ -507,9 +521,17 @@ jobs:
507521
persist-credentials: false
508522
- uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
509523
with:
510-
version: "0.9.10"
524+
version: "0.9.13"
511525

512526
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
527+
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
528+
with:
529+
save-if: ${{ github.ref == 'refs/heads/main' }}
530+
- name: "Generate reference documentation"
531+
run: |
532+
cargo dev generate-options-reference
533+
cargo dev generate-cli-reference
534+
cargo dev generate-env-vars-reference
513535
- name: "Add SSH key"
514536
if: ${{ env.MKDOCS_INSIDERS_SSH_KEY_EXISTS == 'true' }}
515537
uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
@@ -536,7 +558,7 @@ jobs:
536558

537559
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
538560

539-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
561+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
540562

541563
- name: "Build"
542564
run: cargo build
@@ -563,7 +585,7 @@ jobs:
563585

564586
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
565587

566-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
588+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
567589

568590
- name: "Build"
569591
run: cargo build
@@ -595,7 +617,7 @@ jobs:
595617
sudo apt-get install musl-tools
596618
rustup target add x86_64-unknown-linux-musl
597619
598-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
620+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
599621

600622
- name: "Build"
601623
run: cargo build --target x86_64-unknown-linux-musl --bin uv --bin uvx
@@ -622,7 +644,7 @@ jobs:
622644

623645
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
624646

625-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
647+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
626648
- name: "Build"
627649
run: cargo build --bin uv --bin uvx
628650

@@ -648,7 +670,7 @@ jobs:
648670

649671
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
650672

651-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
673+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
652674
- name: "Build"
653675
run: cargo build --bin uv --bin uvx
654676

@@ -680,7 +702,7 @@ jobs:
680702
run: |
681703
Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
682704
683-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
705+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
684706
with:
685707
workspaces: ${{ env.UV_WORKSPACE }}
686708

@@ -717,7 +739,7 @@ jobs:
717739
run: |
718740
Copy-Item -Path "${{ github.workspace }}" -Destination "$Env:UV_WORKSPACE" -Recurse
719741
720-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
742+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
721743
with:
722744
workspaces: ${{ env.UV_WORKSPACE }}
723745

@@ -758,7 +780,7 @@ jobs:
758780
MSRV: ${{ steps.msrv.outputs.value }}
759781
- name: "Install mold"
760782
uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
761-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
783+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
762784
- run: cargo +${MSRV} build
763785
env:
764786
MSRV: ${{ steps.msrv.outputs.value }}
@@ -775,7 +797,7 @@ jobs:
775797
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
776798
with:
777799
persist-credentials: false
778-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
800+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
779801
- name: "Cross build"
780802
run: |
781803
# Install cross from `freebsd-firecracker`
@@ -1848,7 +1870,7 @@ jobs:
18481870
run: chmod +x ./uv
18491871

18501872
- name: "Configure AWS credentials"
1851-
uses: aws-actions/configure-aws-credentials@a03048d87541d1d9fcf2ecf528a4a65ba9bd7838 # v5.0.0
1873+
uses: aws-actions/configure-aws-credentials@61815dcd50bd041e203e49132bacad1fd04d2708 # v5.1.1
18521874
with:
18531875
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
18541876
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
@@ -2906,7 +2928,7 @@ jobs:
29062928
with:
29072929
persist-credentials: false
29082930

2909-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
2931+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
29102932

29112933
- name: "Install Rust toolchain"
29122934
run: rustup show
@@ -2946,7 +2968,7 @@ jobs:
29462968
with:
29472969
persist-credentials: false
29482970

2949-
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
2971+
- uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2.8.2
29502972

29512973
- name: "Install Rust toolchain"
29522974
run: rustup show

.github/workflows/publish-crates.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ jobs:
2727
# - uses: rust-lang/crates-io-auth-action@v1
2828
# id: auth
2929
- name: Publish workspace crates
30-
run: cargo publish --workspace
30+
# Note `--no-verify` is safe because we do a publish dry-run elsewhere in CI
31+
run: cargo publish --workspace --no-verify
3132
env:
3233
CARGO_REGISTRY_TOKEN: ${{ secrets.CRATES_TOKEN }}

.github/workflows/publish-docs.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,14 @@ jobs:
3636
with:
3737
python-version: 3.12
3838

39+
- uses: Swatinem/rust-cache@98c8021b550208e191a6a3145459bfc9fb29c4c0 # v2.8.0
40+
41+
- name: "Generate reference documentation"
42+
run: |
43+
cargo dev generate-options-reference
44+
cargo dev generate-cli-reference
45+
cargo dev generate-env-vars-reference
46+
3947
- name: "Set docs display name"
4048
run: |
4149
version="${VERSION}"

.github/workflows/publish-pypi.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ jobs:
1818
environment:
1919
name: release
2020
permissions:
21-
# For PyPI's trusted publishing.
22-
id-token: write
21+
id-token: write # For PyPI's trusted publishing
2322
steps:
2423
- name: "Install uv"
2524
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
@@ -37,8 +36,7 @@ jobs:
3736
environment:
3837
name: release
3938
permissions:
40-
# For PyPI's trusted publishing.
41-
id-token: write
39+
id-token: write # For PyPI's trusted publishing
4240
steps:
4341
- name: "Install uv"
4442
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,11 @@ profile.json.gz
3737
# MkDocs
3838
/site
3939

40+
# Generated reference docs (use `cargo dev generate-all` to regenerate)
41+
/docs/reference/cli.md
42+
/docs/reference/environment.md
43+
/docs/reference/settings.md
44+
4045
# macOS
4146
**/.DS_Store
4247

0 commit comments

Comments
 (0)