Skip to content

Commit 466b59e

Browse files
authored
Merge branch 'main' into smallvec-tokens
2 parents f8e2c98 + 085fa62 commit 466b59e

File tree

167 files changed

+2621
-2768
lines changed

Some content is hidden

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

167 files changed

+2621
-2768
lines changed

.clippy.toml

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
disallowed-methods = [
22
{ path = "std::slice::from_raw_parts", reason = "see null_safe_slice" }
33
]
4+
allow-mixed-uninlined-format-args = false

.github/actions/pr-comment-data-export/action.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ runs:
3131
echo "${{ inputs.log-url }}" > comment-data/log-url
3232
fi
3333
- if: github.event_name == 'pull_request'
34-
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
34+
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
3535
with:
3636
name: ${{ inputs.name }}
3737
path: comment-data

.github/actions/quic-interop-runner/action.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ runs:
9494
exit $FAILED
9595
shell: bash
9696

97-
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
97+
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
9898
if: always()
9999
id: upload-logs
100100
with:
@@ -110,7 +110,7 @@ runs:
110110
mv result.json.tmp result.json
111111
shell: bash
112112

113-
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
113+
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
114114
if: always()
115115
with:
116116
name: '${{ inputs.client }} vs. ${{ inputs.server }} results'

.github/actions/rust/action.yml

+4-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ runs:
2424
- name: Install Rust
2525
uses: dtolnay/rust-toolchain@21dc36fb71dd22e3317045c0c31a3f4249868b17 # master
2626
with:
27-
toolchain: ${{ inputs.version }}
27+
toolchain: ${{ inputs.version }}
2828
components: ${{ inputs.components }}
2929
targets: ${{ inputs.targets }}
3030

@@ -66,11 +66,12 @@ runs:
6666
if: inputs.tools != ''
6767
env:
6868
GITHUB_TOKEN: ${{ inputs.token }}
69-
run: cargo +${{ inputs.version }} install cargo-quickinstall
69+
# TODO: Unpin cargo-quickinstall once our MSRV is > 1.76
70+
run: cargo install --locked [email protected]
7071

7172
- name: Install Rust tools
7273
shell: bash
7374
if: inputs.tools != ''
7475
env:
7576
GITHUB_TOKEN: ${{ inputs.token }}
76-
run: cargo +${{ inputs.version }} quickinstall $(echo ${{ inputs.tools }} | tr -d ",")
77+
run: cargo quickinstall $(echo ${{ inputs.tools }} | tr -d ",")

.github/workflows/bench.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ jobs:
135135
# Flags to pass to neqo when it runs against another implementation.
136136
declare -A neqo_flags=(
137137
["neqo"]=""
138-
["msquic"]="-o -a hq-interop"
138+
["msquic"]="-a hq-interop"
139139
["gquiche"]=""
140140
)
141141
@@ -278,7 +278,7 @@ jobs:
278278

279279
- name: Export perf data
280280
id: export
281-
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
281+
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
282282
with:
283283
name: ${{ github.event.repository.name }}-${{ github.sha }}
284284
path: |

.github/workflows/check-vm.yml

+167
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
name: CI VM
2+
on:
3+
push:
4+
branches: ["main"]
5+
paths-ignore: ["*.md", "*.png", "*.svg", "LICENSE-*"]
6+
pull_request:
7+
branches: ["main"]
8+
paths-ignore: ["*.md", "*.png", "*.svg", "LICENSE-*"]
9+
merge_group:
10+
workflow_dispatch:
11+
env:
12+
CARGO_TERM_COLOR: always
13+
RUST_BACKTRACE: 1
14+
RUST_LOG: trace
15+
16+
concurrency:
17+
group: ${{ github.workflow }}-${{ github.ref_name }}
18+
cancel-in-progress: true
19+
20+
permissions:
21+
contents: read
22+
23+
jobs:
24+
check-vm:
25+
strategy:
26+
fail-fast: false
27+
matrix:
28+
os: [freebsd, openbsd, netbsd, solaris]
29+
runs-on: ubuntu-latest
30+
31+
steps:
32+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
33+
34+
- id: nss-version
35+
run: echo "minimum=$(cat neqo-crypto/min_version.txt)" >> "$GITHUB_OUTPUT"
36+
37+
- run: curl -o rustup.sh --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs
38+
39+
- if: matrix.os == 'freebsd'
40+
uses: vmactions/freebsd-vm@debf37ca7b7fa40e19c542ef7ba30d6054a706a4
41+
with:
42+
usesh: true
43+
envs: "CARGO_TERM_COLOR RUST_BACKTRACE RUST_LOG GITHUB_ACTIONS"
44+
prepare: | # This executes as root
45+
set -e
46+
pkg install -y curl llvm nss pkgconf
47+
run: | # This executes as user
48+
set -e
49+
# FIXME: We're only comparing the NSS minor version here.
50+
NSS_MINOR_VERSION="$(pkg-config --modversion nss | cut -d. -f2)"
51+
NSS_MINIMUM_VERSION="$(echo ${{ steps.nss-version.outputs.minimum }} | cut -d. -f2)"
52+
if [ "$NSS_MINOR_VERSION" -lt "$NSS_MINIMUM_VERSION" ]; then
53+
echo "System NSS package too old (minorversion $NSS_MINOR_VERSION < $NSS_MINIMUM_VERSION); skipping checks"
54+
exit 0
55+
fi
56+
sh rustup.sh --default-toolchain stable --profile minimal --component clippy llvm-tools -y
57+
. "$HOME/.cargo/env"
58+
cargo check --all-targets
59+
cargo clippy -- -D warnings
60+
cargo install cargo-llvm-cov --locked
61+
cargo llvm-cov test --no-fail-fast --lcov --output-path lcov.info
62+
cargo test --no-fail-fast --release
63+
rm -rf target # Don't sync this back to host
64+
65+
- if: matrix.os == 'openbsd'
66+
uses: vmactions/openbsd-vm@0cfe06e734a0ea3a546fca7ebf200b984b94d58a
67+
with:
68+
usesh: true
69+
envs: "CARGO_TERM_COLOR RUST_BACKTRACE RUST_LOG GITHUB_ACTIONS"
70+
prepare: | # This executes as root
71+
set -e
72+
pkg_add rust rust-clippy llvm-16.0.6p30 nss pkgconf # rustup doesn't support OpenBSD at all
73+
run: | # This executes as user
74+
set -e
75+
# FIXME: We're only comparing the NSS minor version here.
76+
NSS_MINOR_VERSION="$(pkg-config --modversion nss | cut -d. -f2)"
77+
NSS_MINIMUM_VERSION="$(echo ${{ steps.nss-version.outputs.minimum }} | cut -d. -f2)"
78+
if [ "$NSS_MINOR_VERSION" -lt "$NSS_MINIMUM_VERSION" ]; then
79+
echo "System NSS package too old (minorversion $NSS_MINOR_VERSION < $NSS_MINIMUM_VERSION); skipping checks"
80+
exit 0
81+
fi
82+
export LIBCLANG_PATH=/usr/local/llvm16/lib
83+
cargo check --all-targets
84+
cargo clippy -- -D warnings
85+
# FIXME: No profiler support in openbsd currently, error is:
86+
# > error[E0463]: can't find crate for `profiler_builtins`
87+
# > = note: the compiler may have been built without the profiler runtime
88+
# export LLVM_COV=/usr/local/llvm16/bin/llvm-cov
89+
# export LLVM_PROFDATA=/usr/local/llvm16/bin/llvm-profdata
90+
# cargo install cargo-llvm-cov --locked
91+
# cargo llvm-cov test --no-fail-fast --lcov --output-path lcov.info
92+
cargo test --no-fail-fast # Remove this once profiler is supported
93+
cargo test --no-fail-fast --release
94+
rm -rf target # Don't sync this back to host
95+
96+
- if: matrix.os == 'netbsd'
97+
uses: vmactions/netbsd-vm@7c9086fdb4cc1aa814cda6e305390c2b966551a9
98+
with:
99+
usesh: true
100+
envs: "CARGO_TERM_COLOR RUST_BACKTRACE RUST_LOG GITHUB_ACTIONS"
101+
prepare: | # This executes as root
102+
set -e
103+
/usr/sbin/pkg_add pkgin
104+
pkgin -y install curl clang nss pkgconf
105+
run: | # This executes as user
106+
set -e
107+
# FIXME: We're only comparing the NSS minor version here.
108+
NSS_MINOR_VERSION="$(pkg-config --modversion nss | cut -d. -f2)"
109+
NSS_MINIMUM_VERSION="$(echo ${{ steps.nss-version.outputs.minimum }} | cut -d. -f2)"
110+
if [ "$NSS_MINOR_VERSION" -lt "$NSS_MINIMUM_VERSION" ]; then
111+
echo "System NSS package too old (minorversion $NSS_MINOR_VERSION < $NSS_MINIMUM_VERSION); skipping checks"
112+
exit 0
113+
fi
114+
sh rustup.sh --default-toolchain stable --profile minimal --component clippy llvm-tools -y
115+
. "$HOME/.cargo/env"
116+
# FIXME: Why do we need to set this on NetBSD?
117+
export LD_LIBRARY_PATH=/usr/pkg/lib/nss:/usr/pkg/lib/nspr
118+
cargo check --all-targets
119+
cargo clippy -- -D warnings
120+
# FIXME: No profiler support in netbsd currently, error is:
121+
# > error[E0463]: can't find crate for `profiler_builtins`
122+
# > = note: the compiler may have been built without the profiler runtime
123+
# cargo install cargo-llvm-cov --locked
124+
# cargo llvm-cov test --no-fail-fast --lcov --output-path lcov.info
125+
cargo test --no-fail-fast # Remove this once profiler is supported
126+
cargo test --no-fail-fast --release
127+
rm -rf target # Don't sync this back to host
128+
129+
- if: matrix.os == 'solaris'
130+
uses: vmactions/solaris-vm@a89b9438868c70db27e41625f0a5de6ff5e90809
131+
with:
132+
release: "11.4-gcc"
133+
usesh: true
134+
envs: "CARGO_TERM_COLOR RUST_BACKTRACE RUST_LOG GITHUB_ACTIONS"
135+
prepare: | # This executes as root
136+
set -e
137+
pkg install clang-libs nss pkg-config
138+
run: | # This executes as also as root on Solaris
139+
set -e
140+
# FIXME: We're only comparing the NSS minor version here.
141+
NSS_MINOR_VERSION="$(pkg-config --modversion nss | cut -d. -f2)"
142+
NSS_MINIMUM_VERSION="$(echo ${{ steps.nss-version.outputs.minimum }} | cut -d. -f2)"
143+
if [ "$NSS_MINOR_VERSION" -lt "$NSS_MINIMUM_VERSION" ]; then
144+
echo "System NSS package too old (minorversion $NSS_MINOR_VERSION < $NSS_MINIMUM_VERSION); skipping checks"
145+
exit 0
146+
fi
147+
source <(curl -s https://raw.githubusercontent.com/psumbera/solaris-rust/refs/heads/main/sh.rust-web-install) || true # This doesn't exit with zero on success
148+
export LIBCLANG_PATH="/usr/lib/amd64"
149+
cargo check --all-targets
150+
cargo clippy -- -D warnings
151+
# FIXME: No profiler support in openbsd currently, error is:
152+
# > error[E0463]: can't find crate for `profiler_builtins`
153+
# > = note: the compiler may have been built without the profiler runtime
154+
# cargo install cargo-llvm-cov --locked
155+
# cargo llvm-cov test --no-fail-fast --lcov --output-path lcov.info
156+
cargo test --no-fail-fast # Remove this once profiler is supported
157+
cargo test --no-fail-fast --release
158+
rm -rf target # Don't sync this back to host
159+
160+
- uses: codecov/codecov-action@015f24e6818733317a2da2edd6290ab26238649a # v5.0.7
161+
with:
162+
files: lcov.info
163+
fail_ci_if_error: false
164+
token: ${{ secrets.CODECOV_TOKEN }}
165+
verbose: true
166+
env:
167+
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/check.yml

+11-11
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ jobs:
6565
- uses: ./.github/actions/rust
6666
with:
6767
version: ${{ matrix.rust-toolchain }}
68-
components: ${{ matrix.rust-toolchain == 'stable' && 'llvm-tools-preview' || '' }}
69-
tools: ${{ matrix.rust-toolchain == 'stable' && 'cargo-llvm-cov, ' || '' }} cargo-nextest
68+
components: ${{ matrix.rust-toolchain == 'nightly' && 'llvm-tools' || '' }}
69+
tools: ${{ matrix.rust-toolchain == 'nightly' && 'cargo-llvm-cov, ' || '' }} cargo-nextest
7070
token: ${{ secrets.GITHUB_TOKEN }}
7171

7272
- id: nss-version
@@ -79,7 +79,7 @@ jobs:
7979
- name: Check
8080
run: |
8181
# shellcheck disable=SC2086
82-
cargo +${{ matrix.rust-toolchain }} check $BUILD_TYPE --all-targets --features ci
82+
cargo check $BUILD_TYPE --all-targets --features ci
8383
8484
- name: Run tests and determine coverage
8585
env:
@@ -88,16 +88,16 @@ jobs:
8888
DUMP_SIMULATION_SEEDS="$(pwd)/simulation-seeds"
8989
export DUMP_SIMULATION_SEEDS
9090
# shellcheck disable=SC2086
91-
if [ "${{ matrix.rust-toolchain }}" == "stable" ]; then
92-
cargo +${{ matrix.rust-toolchain }} llvm-cov nextest $BUILD_TYPE --features ci --profile ci --lcov --output-path lcov.info
91+
if [ "${{ matrix.rust-toolchain }}" == "nightly" ]; then
92+
cargo llvm-cov nextest $BUILD_TYPE --mcdc --include-ffi --features ci --profile ci --codecov --output-path codecov.json
9393
else
94-
cargo +${{ matrix.rust-toolchain }} nextest run $BUILD_TYPE --features ci --profile ci
94+
cargo nextest run $BUILD_TYPE --features ci --profile ci
9595
fi
9696
9797
- name: Run client/server transfer
9898
run: |
9999
# shellcheck disable=SC2086
100-
cargo +${{ matrix.rust-toolchain }} build $BUILD_TYPE --bin neqo-client --bin neqo-server
100+
cargo build $BUILD_TYPE --bin neqo-client --bin neqo-server
101101
"target/$BUILD_DIR/neqo-server" "$HOST:4433" &
102102
PID=$!
103103
# Give the server time to start.
@@ -111,19 +111,19 @@ jobs:
111111
RUST_LOG: warn
112112
BUILD_DIR: ${{ matrix.type == 'release' && 'release' || 'debug' }}
113113

114-
- uses: codecov/codecov-action@7f8b4b4bde536c465e797be725718b88c5d95e0e # v5.1.1
114+
- uses: codecov/codecov-action@1e68e06f1dbfde0e4cefc87efeba9e4643565303 # v5.1.2
115115
with:
116-
files: lcov.info
116+
files: codecov.json
117117
fail_ci_if_error: false
118118
token: ${{ secrets.CODECOV_TOKEN }}
119119
verbose: true
120120
env:
121121
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
122-
if: matrix.type == 'debug' && matrix.rust-toolchain == 'stable'
122+
if: matrix.type == 'debug' && matrix.rust-toolchain == 'nightly'
123123

124124
- name: Save simulation seeds artifact
125125
if: always()
126-
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
126+
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
127127
with:
128128
name: simulation-seeds-${{ matrix.os }}-${{ matrix.rust-toolchain }}-${{ matrix.type }}
129129
path: simulation-seeds

.github/workflows/firefox.yml

+20-3
Original file line numberDiff line numberDiff line change
@@ -87,16 +87,21 @@ jobs:
8787
8888
- name: Plumb in Neqo
8989
run: |
90-
# Get qlog version used by neqo
90+
# Get qlog and mtu version used by neqo
9191
cargo generate-lockfile
9292
QLOG_VERSION=$(cargo pkgid qlog | cut -d@ -f2)
93+
MTU_VERSION=$(cargo pkgid mtu | cut -d@ -f2)
9394
rm Cargo.lock
9495
cd mozilla-unified
9596
{
9697
echo '[[audits.qlog]]'
9798
echo 'who = "CI"'
9899
echo 'criteria = "safe-to-deploy"'
99100
echo "version = \"$QLOG_VERSION\""
101+
echo '[[audits.mtu]]'
102+
echo 'who = "CI"'
103+
echo 'criteria = "safe-to-deploy"'
104+
echo "version = \"$MTU_VERSION\""
100105
} >> supply-chain/audits.toml
101106
sed -i'' -e "s/qlog =.*/qlog = \"$QLOG_VERSION\"/" netwerk/socket/neqo_glue/Cargo.toml
102107
{
@@ -107,6 +112,18 @@ jobs:
107112
echo 'neqo-qpack = { path = "../neqo-qpack" }'
108113
echo 'neqo-crypto = { path = "../neqo-crypto" }'
109114
} >> Cargo.toml
115+
{
116+
echo '[[trusted.windows-bindgen]]'
117+
echo 'criteria = "safe-to-deploy"'
118+
echo 'user-id = 64539 # Kenny Kerr (kennykerr)'
119+
echo 'start = "2021-11-15"'
120+
echo 'end = "2024-09-12"'
121+
echo '[[trusted.windows-metadata]]'
122+
echo 'criteria = "safe-to-deploy"'
123+
echo 'user-id = 64539 # Kenny Kerr (kennykerr)'
124+
echo 'start = "2021-11-15"'
125+
echo 'end = "2024-09-12"'
126+
} >> supply-chain/audits.toml
110127
cargo update neqo-http3 neqo-transport neqo-common neqo-qpack neqo-crypto
111128
./mach vendor rust --ignore-modified
112129
@@ -124,7 +141,7 @@ jobs:
124141
125142
- name: Export binary
126143
id: upload
127-
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
144+
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
128145
with:
129146
name: ${{ runner.os }}-${{ env.FIREFOX }}-${{ matrix.type }}.tgz
130147
path: ${{ env.FIREFOX }}.tar
@@ -133,7 +150,7 @@ jobs:
133150
- run: echo "${{ steps.upload.outputs.artifact-url }}" >> artifact
134151

135152
- name: Export artifact URL
136-
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
153+
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
137154
with:
138155
name: artifact-${{ runner.os }}-${{ env.FIREFOX }}-${{ matrix.type }}
139156
path: artifact

.github/workflows/mutants.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ jobs:
6161
echo '```'
6262
} > "$GITHUB_STEP_SUMMARY"
6363
64-
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
64+
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
6565
with:
6666
name: mutants.out
6767
path: mutants.out

.github/workflows/qns.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
packages: write
3636
steps:
3737
- uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3.2.0
38-
- uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 # v3.7.1
38+
- uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3.8.0
3939
- uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 # v3.3.0
4040
with:
4141
registry: ghcr.io
@@ -77,7 +77,7 @@ jobs:
7777
platforms: 'linux/amd64'
7878
outputs: type=docker,dest=/tmp/${{ env.LATEST }}.tar
7979

80-
- uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
80+
- uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # v4.5.0
8181
with:
8282
name: '${{ env.LATEST }} Docker image'
8383
path: /tmp/${{ env.LATEST }}.tar

0 commit comments

Comments
 (0)