Skip to content

Commit 04ebabe

Browse files
committed
Merge main into deno-bundle-esbuild
2 parents f31c8ce + e3bf5ee commit 04ebabe

File tree

427 files changed

+18353
-9538
lines changed

Some content is hidden

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

427 files changed

+18353
-9538
lines changed

.devcontainer/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM mcr.microsoft.com/vscode/devcontainers/rust:1-bullseye
1+
FROM mcr.microsoft.com/devcontainers/rust:1
22

33
# Install cmake
44
RUN apt-get update \

.github/workflows/ci.generate.ts

Lines changed: 40 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { stringify } from "jsr:@std/yaml@^0.221/stringify";
55
// Bump this number when you want to purge the cache.
66
// Note: the tools/release/01_bump_crate_versions.ts script will update this version
77
// automatically via regex, so ensure that this line maintains this format.
8-
const cacheVersion = 55;
8+
const cacheVersion = 57;
99

1010
const ubuntuX86Runner = "ubuntu-24.04";
1111
const ubuntuX86XlRunner = "ubuntu-24.04-xl";
@@ -88,7 +88,7 @@ export DEBIAN_FRONTEND=noninteractive
8888
sudo apt-get -qq remove --purge -y man-db > /dev/null 2> /dev/null
8989
# Remove older clang before we install
9090
sudo apt-get -qq remove \
91-
'clang-12*' 'clang-13*' 'clang-14*' 'clang-15*' 'clang-16*' 'clang-17*' 'clang-18*' 'llvm-12*' 'llvm-13*' 'llvm-14*' 'llvm-15*' 'llvm-16*' 'lld-12*' 'lld-13*' 'lld-14*' 'lld-15*' 'lld-16*' 'lld-17*' 'lld-18*' > /dev/null 2> /dev/null
91+
'clang-12*' 'clang-13*' 'clang-14*' 'clang-15*' 'clang-16*' 'clang-17*' 'clang-18*' 'llvm-12*' 'llvm-13*' 'llvm-14*' 'llvm-15*' 'llvm-16*' 'llvm-17*' 'llvm-18*' 'lld-12*' 'lld-13*' 'lld-14*' 'lld-15*' 'lld-16*' 'lld-17*' 'lld-18*' > /dev/null 2> /dev/null
9292
9393
# Install clang-XXX, lld-XXX, and debootstrap.
9494
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-${llvmVersion} main" |
@@ -105,7 +105,7 @@ ${installPkgsCommand} || echo 'Failed. Trying again.' && sudo apt-get clean && s
105105
clang-${llvmVersion} -c -o /tmp/memfd_create_shim.o tools/memfd_create_shim.c -fPIC
106106
107107
echo "Decompressing sysroot..."
108-
wget -q https://github.com/denoland/deno_sysroot_build/releases/download/sysroot-20241030/sysroot-\`uname -m\`.tar.xz -O /tmp/sysroot.tar.xz
108+
wget -q https://github.com/denoland/deno_sysroot_build/releases/download/sysroot-20250207/sysroot-\`uname -m\`.tar.xz -O /tmp/sysroot.tar.xz
109109
cd /
110110
xzcat /tmp/sysroot.tar.xz | sudo tar -x
111111
sudo mount --rbind /dev /sysroot/dev
@@ -445,6 +445,7 @@ const ci = {
445445
job: "test",
446446
profile: "release",
447447
use_sysroot: true,
448+
skip_pr: true,
448449
}, {
449450
...Runners.macosX86,
450451
job: "lint",
@@ -606,13 +607,19 @@ const ci = {
606607
},
607608
{
608609
name: "Install macOS aarch64 lld",
610+
env: {
611+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}",
612+
},
609613
run: [
610614
"./tools/install_prebuilt.js ld64.lld",
611615
].join("\n"),
612616
if: `matrix.os == 'macos' && matrix.arch == 'aarch64'`,
613617
},
614618
{
615619
name: "Install rust-codesign",
620+
env: {
621+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}",
622+
},
616623
run: [
617624
"./tools/install_prebuilt.js rcodesign",
618625
"echo $GITHUB_WORKSPACE/third_party/prebuilt/mac >> $GITHUB_PATH",
@@ -639,6 +646,9 @@ const ci = {
639646
{
640647
name: "Install benchmark tools",
641648
if: "matrix.job == 'bench'",
649+
env: {
650+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}",
651+
},
642652
run: [
643653
installBenchTools,
644654
].join("\n"),
@@ -689,8 +699,11 @@ const ci = {
689699
{
690700
name: "lint.js",
691701
if: "matrix.job == 'lint'",
702+
env: {
703+
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}",
704+
},
692705
run:
693-
"deno run --allow-write --allow-read --allow-run --allow-net ./tools/lint.js",
706+
"deno run --allow-write --allow-read --allow-run --allow-net --allow-env ./tools/lint.js",
694707
},
695708
{
696709
name: "jsdoc_checker.js",
@@ -935,6 +948,7 @@ const ci = {
935948
'gsutil -h "Cache-Control: public, max-age=3600" cp ./target/release/*.symcache gs://dl.deno.land/canary/$(git rev-parse HEAD)/',
936949
"echo ${{ github.sha }} > canary-latest.txt",
937950
'gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-$(rustc -vV | sed -n "s|host: ||p")-latest.txt',
951+
"rm canary-latest.txt gha-creds-*.json",
938952
].join("\n"),
939953
},
940954
{
@@ -986,6 +1000,20 @@ const ci = {
9861000
].join("\n"),
9871001
run: "cargo test --release --locked --features=panic-trace",
9881002
},
1003+
{
1004+
name: "Ensure no git changes",
1005+
if: "matrix.job == 'test'",
1006+
run: [
1007+
'if [[ -n "$(git status --porcelain)" ]]; then',
1008+
'echo "❌ Git working directory is dirty. Ensure `cargo test` is not modifying git tracked files."',
1009+
'echo ""',
1010+
'echo "📋 Status:"',
1011+
"git status",
1012+
'echo ""',
1013+
"exit 1",
1014+
"fi",
1015+
].join("\n"),
1016+
},
9891017
{
9901018
name: "Configure hosts file for WPT",
9911019
if: "matrix.wpt",
@@ -999,10 +1027,10 @@ const ci = {
9991027
DENO_BIN: "./target/debug/deno",
10001028
},
10011029
run: [
1002-
"deno run -A --lock=tools/deno.lock.json --config tests/config/deno.json\\",
1003-
" ./tests/wpt/wpt.ts setup",
1004-
"deno run -A --lock=tools/deno.lock.json --config tests/config/deno.json\\",
1005-
' ./tests/wpt/wpt.ts run --quiet --binary="$DENO_BIN"',
1030+
"deno run -RWNE --allow-run --lock=tools/deno.lock.json --config tests/config/deno.json \\",
1031+
" ./tests/wpt/wpt.ts setup",
1032+
"deno run -RWNE --allow-run --lock=tools/deno.lock.json --config tests/config/deno.json --unsafely-ignore-certificate-errors \\",
1033+
' ./tests/wpt/wpt.ts run --quiet --binary="$DENO_BIN"',
10061034
].join("\n"),
10071035
},
10081036
{
@@ -1012,13 +1040,10 @@ const ci = {
10121040
DENO_BIN: "./target/release/deno",
10131041
},
10141042
run: [
1015-
"deno run -A --lock=tools/deno.lock.json --config tests/config/deno.json\\",
1016-
" ./tests/wpt/wpt.ts setup",
1017-
"deno run -A --lock=tools/deno.lock.json --config tests/config/deno.json\\",
1018-
" ./tests/wpt/wpt.ts run --quiet --release \\",
1019-
' --binary="$DENO_BIN" \\',
1020-
" --json=wpt.json \\",
1021-
" --wptreport=wptreport.json",
1043+
"deno run -RWNE --allow-run --lock=tools/deno.lock.json --config tests/config/deno.json \\",
1044+
" ./tests/wpt/wpt.ts setup",
1045+
"deno run -RWNE --allow-run --lock=tools/deno.lock.json --config tests/config/deno.json --unsafely-ignore-certificate-errors \\",
1046+
' ./tests/wpt/wpt.ts run --quiet --release --binary="$DENO_BIN" --json=wpt.json --wptreport=wptreport.json',
10221047
].join("\n"),
10231048
},
10241049
{

.github/workflows/ci.yml

Lines changed: 29 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,11 @@ jobs:
123123
profile: debug
124124
- os: linux
125125
arch: aarch64
126-
runner: ubicloud-standard-16-arm
126+
runner: '${{ (!contains(github.event.pull_request.labels.*.name, ''ci-full'') && (github.event_name == ''pull_request'')) && ''ubuntu-24.04'' || ''ubicloud-standard-16-arm'' }}'
127127
job: test
128128
profile: release
129129
use_sysroot: true
130+
skip: '${{ !contains(github.event.pull_request.labels.*.name, ''ci-full'') && (github.event_name == ''pull_request'') }}'
130131
- os: macos
131132
arch: x86_64
132133
runner: macos-13
@@ -187,8 +188,8 @@ jobs:
187188
~/.cargo/registry/index
188189
~/.cargo/registry/cache
189190
~/.cargo/git/db
190-
key: '55-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-${{ hashFiles(''Cargo.lock'') }}'
191-
restore-keys: '55-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-'
191+
key: '57-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-${{ hashFiles(''Cargo.lock'') }}'
192+
restore-keys: '57-cargo-home-${{ matrix.os }}-${{ matrix.arch }}-'
192193
if: '!(matrix.skip)'
193194
- uses: dsherret/rust-toolchain-file@v1
194195
if: '!(matrix.skip)'
@@ -268,7 +269,7 @@ jobs:
268269
# to complete.
269270
sudo apt-get -qq remove --purge -y man-db > /dev/null 2> /dev/null
270271
# Remove older clang before we install
271-
sudo apt-get -qq remove 'clang-12*' 'clang-13*' 'clang-14*' 'clang-15*' 'clang-16*' 'clang-17*' 'clang-18*' 'llvm-12*' 'llvm-13*' 'llvm-14*' 'llvm-15*' 'llvm-16*' 'lld-12*' 'lld-13*' 'lld-14*' 'lld-15*' 'lld-16*' 'lld-17*' 'lld-18*' > /dev/null 2> /dev/null
272+
sudo apt-get -qq remove 'clang-12*' 'clang-13*' 'clang-14*' 'clang-15*' 'clang-16*' 'clang-17*' 'clang-18*' 'llvm-12*' 'llvm-13*' 'llvm-14*' 'llvm-15*' 'llvm-16*' 'llvm-17*' 'llvm-18*' 'lld-12*' 'lld-13*' 'lld-14*' 'lld-15*' 'lld-16*' 'lld-17*' 'lld-18*' > /dev/null 2> /dev/null
272273
273274
# Install clang-XXX, lld-XXX, and debootstrap.
274275
echo "deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main" |
@@ -285,7 +286,7 @@ jobs:
285286
clang-19 -c -o /tmp/memfd_create_shim.o tools/memfd_create_shim.c -fPIC
286287
287288
echo "Decompressing sysroot..."
288-
wget -q https://github.com/denoland/deno_sysroot_build/releases/download/sysroot-20241030/sysroot-`uname -m`.tar.xz -O /tmp/sysroot.tar.xz
289+
wget -q https://github.com/denoland/deno_sysroot_build/releases/download/sysroot-20250207/sysroot-`uname -m`.tar.xz -O /tmp/sysroot.tar.xz
289290
cd /
290291
xzcat /tmp/sysroot.tar.xz | sudo tar -x
291292
sudo mount --rbind /dev /sysroot/dev
@@ -348,9 +349,13 @@ jobs:
348349
rm ~/.curlrc || true
349350
if: '!(matrix.skip) && (matrix.os == ''macos'')'
350351
- name: Install macOS aarch64 lld
352+
env:
353+
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
351354
run: ./tools/install_prebuilt.js ld64.lld
352355
if: '!(matrix.skip) && (matrix.os == ''macos'' && matrix.arch == ''aarch64'')'
353356
- name: Install rust-codesign
357+
env:
358+
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
354359
run: |-
355360
./tools/install_prebuilt.js rcodesign
356361
echo $GITHUB_WORKSPACE/third_party/prebuilt/mac >> $GITHUB_PATH
@@ -372,6 +377,8 @@ jobs:
372377
if: '!(matrix.skip)'
373378
- name: Install benchmark tools
374379
if: '!(matrix.skip) && (matrix.job == ''bench'')'
380+
env:
381+
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
375382
run: ./tools/install_prebuilt.js wrk hyperfine
376383
- name: Restore cache build output (PR)
377384
uses: actions/cache/restore@v4
@@ -384,7 +391,7 @@ jobs:
384391
!./target/*/*.zip
385392
!./target/*/*.tar.gz
386393
key: never_saved
387-
restore-keys: '55-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-'
394+
restore-keys: '57-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-'
388395
- name: Apply and update mtime cache
389396
if: '!(matrix.skip) && (!startsWith(github.ref, ''refs/tags/''))'
390397
uses: ./.github/mtime_cache
@@ -406,7 +413,9 @@ jobs:
406413
run: deno run ./tools/verify_pr_title.js "$PR_TITLE"
407414
- name: lint.js
408415
if: '!(matrix.skip) && (matrix.job == ''lint'')'
409-
run: deno run --allow-write --allow-read --allow-run --allow-net ./tools/lint.js
416+
env:
417+
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
418+
run: deno run --allow-write --allow-read --allow-run --allow-net --allow-env ./tools/lint.js
410419
- name: jsdoc_checker.js
411420
if: '!(matrix.skip) && (matrix.job == ''lint'')'
412421
run: deno run --allow-read --allow-env --allow-sys ./tools/jsdoc_checker.js
@@ -572,6 +581,7 @@ jobs:
572581
gsutil -h "Cache-Control: public, max-age=3600" cp ./target/release/*.symcache gs://dl.deno.land/canary/$(git rev-parse HEAD)/
573582
echo ${{ github.sha }} > canary-latest.txt
574583
gsutil -h "Cache-Control: no-cache" cp canary-latest.txt gs://dl.deno.land/canary-$(rustc -vV | sed -n "s|host: ||p")-latest.txt
584+
rm canary-latest.txt gha-creds-*.json
575585
- name: Autobahn testsuite
576586
if: |-
577587
!(matrix.skip) && ((matrix.os == 'linux' && matrix.arch != 'aarch64') &&
@@ -606,6 +616,9 @@ jobs:
606616
github.repository == 'denoland/deno' &&
607617
!startsWith(github.ref, 'refs/tags/'))))
608618
run: cargo test --release --locked --features=panic-trace
619+
- name: Ensure no git changes
620+
if: '!(matrix.skip) && (matrix.job == ''test'')'
621+
run: "if [[ -n \"$(git status --porcelain)\" ]]; then\necho \"❌ Git working directory is dirty. Ensure `cargo test` is not modifying git tracked files.\"\necho \"\"\necho \"\U0001F4CB Status:\"\ngit status\necho \"\"\nexit 1\nfi"
609622
- name: Configure hosts file for WPT
610623
if: '!(matrix.skip) && (matrix.wpt)'
611624
run: ./wpt make-hosts-file | sudo tee -a /etc/hosts
@@ -615,22 +628,19 @@ jobs:
615628
env:
616629
DENO_BIN: ./target/debug/deno
617630
run: |-
618-
deno run -A --lock=tools/deno.lock.json --config tests/config/deno.json\
619-
./tests/wpt/wpt.ts setup
620-
deno run -A --lock=tools/deno.lock.json --config tests/config/deno.json\
621-
./tests/wpt/wpt.ts run --quiet --binary="$DENO_BIN"
631+
deno run -RWNE --allow-run --lock=tools/deno.lock.json --config tests/config/deno.json \
632+
./tests/wpt/wpt.ts setup
633+
deno run -RWNE --allow-run --lock=tools/deno.lock.json --config tests/config/deno.json --unsafely-ignore-certificate-errors \
634+
./tests/wpt/wpt.ts run --quiet --binary="$DENO_BIN"
622635
- name: Run web platform tests (release)
623636
if: '!(matrix.skip) && (matrix.wpt && matrix.profile == ''release'')'
624637
env:
625638
DENO_BIN: ./target/release/deno
626639
run: |-
627-
deno run -A --lock=tools/deno.lock.json --config tests/config/deno.json\
628-
./tests/wpt/wpt.ts setup
629-
deno run -A --lock=tools/deno.lock.json --config tests/config/deno.json\
630-
./tests/wpt/wpt.ts run --quiet --release \
631-
--binary="$DENO_BIN" \
632-
--json=wpt.json \
633-
--wptreport=wptreport.json
640+
deno run -RWNE --allow-run --lock=tools/deno.lock.json --config tests/config/deno.json \
641+
./tests/wpt/wpt.ts setup
642+
deno run -RWNE --allow-run --lock=tools/deno.lock.json --config tests/config/deno.json --unsafely-ignore-certificate-errors \
643+
./tests/wpt/wpt.ts run --quiet --release --binary="$DENO_BIN" --json=wpt.json --wptreport=wptreport.json
634644
- name: Upload wpt results to dl.deno.land
635645
continue-on-error: true
636646
if: |-
@@ -770,7 +780,7 @@ jobs:
770780
!./target/*/gn_root
771781
!./target/*/*.zip
772782
!./target/*/*.tar.gz
773-
key: '55-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-${{ github.sha }}'
783+
key: '57-cargo-target-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.profile }}-${{ matrix.job }}-${{ github.sha }}'
774784
wasm:
775785
name: build wasm32
776786
needs:

.github/workflows/node_compat_test.yml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ jobs:
2626
uses: denoland/setup-deno@v2
2727
with:
2828
deno-version: canary
29+
- name: Install Python
30+
uses: actions/setup-python@v5
31+
with:
32+
python-version: 3.11
2933
- name: Authenticate with Google Cloud
3034
uses: google-github-actions/auth@v2
3135
with:
@@ -38,7 +42,7 @@ jobs:
3842
with:
3943
project_id: denoland
4044
- name: Run tests
41-
run: deno -A --config tests/config/deno.json tests/node_compat/run_all_test_unmodified.ts
45+
run: deno -A tools/node_compat_tests.js
4246
- name: Gzip the report
4347
run: gzip tests/node_compat/report.json
4448
- name: Upload the report to dl.deno.land
@@ -55,6 +59,10 @@ jobs:
5559
submodules: true
5660
- name: Setup Deno
5761
uses: denoland/setup-deno@v2
62+
- name: Install Python
63+
uses: actions/setup-python@v5
64+
with:
65+
python-version: 3.11
5866
- name: Authenticate with Google Cloud
5967
uses: google-github-actions/auth@v2
6068
with:

.github/workflows/post_publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ jobs:
3131
- name: Upload version file to dl.deno.land
3232
run: |
3333
echo ${GITHUB_REF#refs/*/} > release-latest.txt
34-
deno run --allow-net tools/release/version_greater_latest.ts ${GITHUB_REF#refs/*/} && gsutil -h "Cache-Control: no-cache" cp release-latest.txt gs://dl.deno.land/release-latest.txt
34+
(deno run --allow-net tools/release/version_greater_latest.ts ${GITHUB_REF#refs/*/} || exit 0) && gsutil -h "Cache-Control: no-cache" cp release-latest.txt gs://dl.deno.land/release-latest.txt

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
*.orig
22
*.pyc
33
*.swp
4+
*.symcache
45
.env
56

67
/.cargo_home/

0 commit comments

Comments
 (0)