@@ -256,15 +256,15 @@ jobs:
256256 - name : " Install mold"
257257 uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
258258 - name : " Install cargo nextest"
259- uses : taiki-e/install-action@522492a8c115f1b6d4d318581f09638e9442547b # v2.62.21
259+ uses : taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
260260 with :
261261 tool : cargo-nextest
262262 - name : " Install cargo insta"
263- uses : taiki-e/install-action@522492a8c115f1b6d4d318581f09638e9442547b # v2.62.21
263+ uses : taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
264264 with :
265265 tool : cargo-insta
266266 - name : " Install uv"
267- uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
267+ uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
268268 with :
269269 enable-cache : " true"
270270 - name : ty mdtests (GitHub annotations)
@@ -277,8 +277,8 @@ jobs:
277277 run : cargo test -p ty_python_semantic --test mdtest || true
278278 - name : " Run tests"
279279 run : cargo insta test --all-features --unreferenced reject --test-runner nextest
280- # Dogfood ty on py-fuzzer
281- - run : uv run --project=./python/py-fuzzer cargo run -p ty check --project=./python/py-fuzzer
280+ - name : Dogfood ty on py-fuzzer
281+ run : uv run --project=./python/py-fuzzer cargo run -p ty check --project=./python/py-fuzzer
282282 # Check for broken links in the documentation.
283283 - run : cargo doc --all --no-deps
284284 env :
@@ -320,15 +320,15 @@ jobs:
320320 - name : " Install mold"
321321 uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
322322 - name : " Install cargo nextest"
323- uses : taiki-e/install-action@522492a8c115f1b6d4d318581f09638e9442547b # v2.62.21
323+ uses : taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
324324 with :
325325 tool : cargo-nextest
326326 - name : " Install cargo insta"
327- uses : taiki-e/install-action@522492a8c115f1b6d4d318581f09638e9442547b # v2.62.21
327+ uses : taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
328328 with :
329329 tool : cargo-insta
330330 - name : " Install uv"
331- uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
331+ uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
332332 with :
333333 enable-cache : " true"
334334 - name : " Run tests"
@@ -353,11 +353,11 @@ jobs:
353353 - name : " Install Rust toolchain"
354354 run : rustup show
355355 - name : " Install cargo nextest"
356- uses : taiki-e/install-action@522492a8c115f1b6d4d318581f09638e9442547b # v2.62.21
356+ uses : taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
357357 with :
358358 tool : cargo-nextest
359359 - name : " Install uv"
360- uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
360+ uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
361361 with :
362362 enable-cache : " true"
363363 - name : " Run tests"
@@ -378,7 +378,7 @@ jobs:
378378 - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
379379 - name : " Install Rust toolchain"
380380 run : rustup target add wasm32-unknown-unknown
381- - uses : actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5 .0.0
381+ - uses : actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 .0.0
382382 with :
383383 node-version : 22
384384 cache : " npm"
@@ -437,8 +437,10 @@ jobs:
437437 workspaces : " fuzz -> target"
438438 - name : " Install Rust toolchain"
439439 run : rustup show
440+ - name : " Install mold"
441+ uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
440442 - name : " Install cargo-binstall"
441- uses : cargo-bins/cargo-binstall@a66119fbb1c952daba62640c2609111fe0803621 # v1.15.7
443+ uses : cargo-bins/cargo-binstall@b3f755e95653da9a2d25b99154edfdbd5b356d0a # v1.15.10
442444 - name : " Install cargo-fuzz"
443445 # Download the latest version from quick install and not the github releases because github releases only has MUSL targets.
444446 run : cargo binstall cargo-fuzz --force --disable-strategies crate-meta-data --no-confirm
@@ -458,7 +460,7 @@ jobs:
458460 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
459461 with :
460462 persist-credentials : false
461- - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
463+ - uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
462464 - uses : actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
463465 name : Download Ruff binary to test
464466 id : download-cached-binary
@@ -494,7 +496,7 @@ jobs:
494496 with :
495497 persist-credentials : false
496498 - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
497- - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
499+ - uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
498500 - name : " Install Rust toolchain"
499501 run : rustup component add rustfmt
500502 # Run all code generation scripts, and verify that the current output is
@@ -529,10 +531,9 @@ jobs:
529531 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
530532 with :
531533 persist-credentials : false
532- - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
534+ - uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
533535 with :
534- # TODO: figure out why `ruff-ecosystem` crashes on Python 3.14
535- python-version : " 3.13"
536+ python-version : ${{ env.PYTHON_VERSION }}
536537 activate-environment : true
537538
538539 - uses : actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
@@ -646,45 +647,45 @@ jobs:
646647 name : " Fuzz for new ty panics"
647648 runs-on : ${{ github.repository == 'astral-sh/ruff' && 'depot-ubuntu-22.04-16' || 'ubuntu-latest' }}
648649 needs :
649- - cargo-test-linux
650650 - determine_changes
651651 # Only runs on pull requests, since that is the only we way we can find the base version for comparison.
652652 if : ${{ !contains(github.event.pull_request.labels.*.name, 'no-test') && github.event_name == 'pull_request' && (needs.determine_changes.outputs.ty == 'true' || needs.determine_changes.outputs.py-fuzzer == 'true') }}
653- timeout-minutes : ${{ github.repository == 'astral-sh/ruff' && 5 || 20 }}
653+ timeout-minutes : ${{ github.repository == 'astral-sh/ruff' && 10 || 20 }}
654654 steps :
655655 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
656656 with :
657+ fetch-depth : 0
657658 persist-credentials : false
658- - uses : actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0
659- name : Download new ty binary
660- id : ty-new
661- with :
662- name : ty
663- path : target/debug
664- - uses : dawidd6/action-download-artifact@20319c5641d495c8a52e688b7dc5fada6c3a9fbc # v8
665- name : Download baseline ty binary
666- with :
667- name : ty
668- branch : ${{ github.event.pull_request.base.ref }}
669- workflow : " ci.yaml"
670- check_artifacts : true
671- - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
659+ - uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
660+ - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
661+ - name : " Install Rust toolchain"
662+ run : rustup show
663+ - name : " Install mold"
664+ uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
672665 - name : Fuzz
673666 env :
674667 FORCE_COLOR : 1
675- NEW_TY : ${{ steps.ty-new.outputs.download-path }}
676668 run : |
677- # Make executable, since artifact download doesn't preserve this
678- chmod +x "${PWD}/ty" "${NEW_TY}/ty"
669+ echo "new commit"
670+ git rev-list --format=%s --max-count=1 "$GITHUB_SHA"
671+ cargo build --profile=profiling --bin=ty
672+ mv target/profiling/ty ty-new
673+
674+ MERGE_BASE="$(git merge-base "$GITHUB_SHA" "origin/$GITHUB_BASE_REF")"
675+ git checkout -b old_commit "$MERGE_BASE"
676+ echo "old commit (merge base)"
677+ git rev-list --format=%s --max-count=1 old_commit
678+ cargo build --profile=profiling --bin=ty
679+ mv target/profiling/ty ty-old
679680
680681 (
681682 uv run \
682683 --python="${PYTHON_VERSION}" \
683684 --project=./python/py-fuzzer \
684685 --locked \
685686 fuzz \
686- --test-executable="${NEW_TY}/ty" \
687- --baseline-executable="${PWD}/ty" \
687+ --test-executable=ty-new \
688+ --baseline-executable=ty-old \
688689 --only-new-bugs \
689690 --bin=ty \
690691 0-1000
@@ -699,7 +700,7 @@ jobs:
699700 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
700701 with :
701702 persist-credentials : false
702- - uses : cargo-bins/cargo-binstall@a66119fbb1c952daba62640c2609111fe0803621 # v1.15.7
703+ - uses : cargo-bins/cargo-binstall@b3f755e95653da9a2d25b99154edfdbd5b356d0a # v1.15.10
703704 - run : cargo binstall --no-confirm cargo-shear
704705 - run : cargo shear
705706
@@ -712,10 +713,12 @@ jobs:
712713 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
713714 with :
714715 persist-credentials : false
715- - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
716+ - uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
716717 - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
717718 - name : " Install Rust toolchain"
718719 run : rustup show
720+ - name : " Install mold"
721+ uses : rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
719722 - name : " Run ty completion evaluation"
720723 run : cargo run --release --package ty_completion_eval -- all --threshold 0.4 --tasks /tmp/completion-evaluation-tasks.csv
721724 - name : " Ensure there are no changes"
@@ -757,9 +760,9 @@ jobs:
757760 - uses : actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
758761 with :
759762 persist-credentials : false
760- - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
763+ - uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
761764 - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
762- - uses : actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5 .0.0
765+ - uses : actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 .0.0
763766 with :
764767 node-version : 22
765768 - name : " Cache pre-commit"
@@ -797,7 +800,7 @@ jobs:
797800 - name : " Install Rust toolchain"
798801 run : rustup show
799802 - name : Install uv
800- uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
803+ uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
801804 with :
802805 python-version : 3.13
803806 activate-environment : true
@@ -901,7 +904,7 @@ jobs:
901904 - name : " Install Rust toolchain"
902905 run : rustup target add wasm32-unknown-unknown
903906 - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
904- - uses : actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5 .0.0
907+ - uses : actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # v6 .0.0
905908 with :
906909 node-version : 22
907910 cache : " npm"
@@ -939,18 +942,18 @@ jobs:
939942 persist-credentials : false
940943
941944 - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
942- - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
945+ - uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
943946
944947 - name : " Install Rust toolchain"
945948 run : rustup show
946949
947950 - name : " Install codspeed"
948- uses : taiki-e/install-action@522492a8c115f1b6d4d318581f09638e9442547b # v2.62.21
951+ uses : taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
949952 with :
950953 tool : cargo-codspeed
951954
952955 - name : " Build benchmarks"
953- run : cargo codspeed build --features "codspeed,instrumented" --no-default-features -p ruff_benchmark --bench formatter --bench lexer --bench linter --bench parser
956+ run : cargo codspeed build --features "codspeed,instrumented" --profile profiling -- no-default-features -p ruff_benchmark --bench formatter --bench lexer --bench linter --bench parser
954957
955958 - name : " Run benchmarks"
956959 uses : CodSpeedHQ/action@6b43a0cd438f6ca5ad26f9ed03ed159ed2df7da9 # v4.1.1
@@ -977,18 +980,18 @@ jobs:
977980 persist-credentials : false
978981
979982 - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
980- - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
983+ - uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
981984
982985 - name : " Install Rust toolchain"
983986 run : rustup show
984987
985988 - name : " Install codspeed"
986- uses : taiki-e/install-action@522492a8c115f1b6d4d318581f09638e9442547b # v2.62.21
989+ uses : taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
987990 with :
988991 tool : cargo-codspeed
989992
990993 - name : " Build benchmarks"
991- run : cargo codspeed build --features "codspeed,instrumented" --no-default-features -p ruff_benchmark --bench ty
994+ run : cargo codspeed build --features "codspeed,instrumented" --profile profiling -- no-default-features -p ruff_benchmark --bench ty
992995
993996 - name : " Run benchmarks"
994997 uses : CodSpeedHQ/action@6b43a0cd438f6ca5ad26f9ed03ed159ed2df7da9 # v4.1.1
@@ -1015,18 +1018,18 @@ jobs:
10151018 persist-credentials : false
10161019
10171020 - uses : Swatinem/rust-cache@f13886b937689c021905a6b90929199931d60db1 # v2.8.1
1018- - uses : astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6.8.0
1021+ - uses : astral-sh/setup-uv@85856786d1ce8acfbcc2f13a5f3fbd6b938f9f41 # v7.1.2
10191022
10201023 - name : " Install Rust toolchain"
10211024 run : rustup show
10221025
10231026 - name : " Install codspeed"
1024- uses : taiki-e/install-action@522492a8c115f1b6d4d318581f09638e9442547b # v2.62.21
1027+ uses : taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
10251028 with :
10261029 tool : cargo-codspeed
10271030
10281031 - name : " Build benchmarks"
1029- run : cargo codspeed build --features "codspeed,walltime" --no-default-features -p ruff_benchmark
1032+ run : cargo codspeed build --features "codspeed,walltime" --profile profiling -- no-default-features -p ruff_benchmark
10301033
10311034 - name : " Run benchmarks"
10321035 uses : CodSpeedHQ/action@6b43a0cd438f6ca5ad26f9ed03ed159ed2df7da9 # v4.1.1
0 commit comments