Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] main from mozilla:main #5

Open
wants to merge 393 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
393 commits
Select commit Hold shift + click to select a range
16e9085
fix: Single-packet RTX in Initial/Handshake + RTX handshake ACKs (#2027)
larseggert Aug 13, 2024
bea873b
fix: qlog `reference_time` should be in msec (#2053)
larseggert Aug 13, 2024
165fff6
Refactor NSS initialization (#2050)
martinthomson Aug 15, 2024
abcd70f
build(deps): bump docker/build-push-action from 6.6.1 to 6.7.0 (#2055)
dependabot[bot] Aug 19, 2024
a9f707f
Add a tiny bit of hygiene to this macro (#2060)
martinthomson Aug 20, 2024
318ec99
fix: Don't process timers during Closing or Draining (#2061)
larseggert Aug 20, 2024
e3d8be4
test: Add a test case for 0-RTT loss (#2057)
larseggert Aug 20, 2024
c35028a
refactor: drop time crate in favor of std::time::SystemTime (#2059)
mxinden Aug 20, 2024
836ffc6
fix: Turn off PMTUD during QNS `zerortt` test (#2064)
larseggert Aug 21, 2024
90d1585
chore: Lower some log levels (#2065)
larseggert Aug 21, 2024
13237c3
fix: Resend stream data on `ZeroRttRejected` (#2062)
larseggert Aug 21, 2024
43ce605
fix: Don't stop handler if there is no resumption token (#2067)
larseggert Aug 22, 2024
adf4722
chore: Fix various issues that markdownlint found (#2066)
larseggert Aug 22, 2024
15cae9b
ci: Delete all QNS logs >5MB before artifact upload (#2071)
larseggert Aug 22, 2024
b4168d5
fix: Add missing space (#2074)
larseggert Aug 26, 2024
910a7cd
test(transport/ecn): cover disable on remark (#2075)
mxinden Aug 26, 2024
a793d4a
chore: Switch to the `windows` crate (#2077)
larseggert Aug 28, 2024
cdff99d
test(transport/connection): apply modifier after Output::Callback (#2…
mxinden Aug 28, 2024
9e8d298
ci: Don't cache nss
larseggert Aug 29, 2024
22370e7
fix: Don't panic on Windows is `GITHUB_WORKFLOW` is not set (#2079)
larseggert Aug 29, 2024
7e8d22d
chore: Fix clippy nightly warnings (#2080)
larseggert Aug 29, 2024
6f8823b
feat(transport): add ecn metrics to Stats (#2072)
mxinden Aug 29, 2024
7139f57
build(deps): bump martenseemann/quic-network-simulator-endpoint in /q…
dependabot[bot] Sep 2, 2024
b545899
build(deps): bump actions/upload-artifact from 4.3.6 to 4.4.0 (#2083)
dependabot[bot] Sep 2, 2024
3a4b940
fix: Handle migrating to a path that is an ECN blackhole (#2081)
larseggert Sep 2, 2024
e41e639
ci: Only build Firefox for non-draft PRs (#2085)
larseggert Sep 2, 2024
28f60bd
chore: prepare v0.9.0 release (#2082)
mxinden Sep 3, 2024
b1b0da3
ci: Try and speed up QNS docker build (#2092)
larseggert Sep 9, 2024
45a2bb1
chore: Trim unused features (#2090)
larseggert Sep 9, 2024
5cdda3c
build(deps): bump alpine in /taskcluster/docker/linux (#2095)
dependabot[bot] Sep 9, 2024
fa2b9d3
build(deps): bump martenseemann/quic-network-simulator-endpoint in /q…
dependabot[bot] Sep 9, 2024
70b3914
ci: Only remove QNS logs for successful tests (#2096)
larseggert Sep 10, 2024
dc068f9
ci: Use stable Rust to build firefox (#2098)
larseggert Sep 11, 2024
0b106c2
ci(rust): add `targets` input (#2099)
mxinden Sep 12, 2024
46e15cb
ci: Pin nightly to `nightly-2024-09-01` (#2105)
larseggert Sep 13, 2024
4aa0319
ci: Pin NSS to prevent build hang on Windows (#2106)
larseggert Sep 13, 2024
c1e7dc3
fix: Allow turning off greasing and connection migration (#2100)
larseggert Sep 13, 2024
2ca29c1
feat: Remove `FrameStats::all` (#2104)
larseggert Sep 13, 2024
d4978de
test(transport): check local and remote GREASE_QUIC_BIT TP (#2101)
mxinden Sep 13, 2024
ee8a696
ci: Unpin nss (#2108)
larseggert Sep 16, 2024
5410bd0
ci: Fix Firefox build on Windows (#2109)
larseggert Sep 16, 2024
259a15f
Expose an SSLNamedGroup for mlkem768x25519 (#2102)
jschanck Sep 16, 2024
9dd05bb
build(deps): bump martenseemann/quic-network-simulator-endpoint in /q…
dependabot[bot] Sep 16, 2024
c76e8a1
fix: typos (#2113)
mxinden Sep 16, 2024
1841054
ci: Unpin Rust nightly (#2112)
larseggert Sep 16, 2024
75372c2
fix: Don't pace during QNS `zerortt` test (#2115)
larseggert Sep 16, 2024
b70e5cf
fix: Remove unnecessary `space` function (#2122)
larseggert Sep 17, 2024
17f5710
ci: Turn on sccache for Rust (#2121)
larseggert Sep 17, 2024
cca3db2
ci: Speed up NSS build with `sccache` (#2091)
larseggert Sep 17, 2024
0cb89a9
ci: Only install sccache action once per workflow (#2123)
larseggert Sep 17, 2024
b72b3ba
fix: Don't encode large RTT guesses in tickets (#2114)
larseggert Sep 17, 2024
0e40d36
ci: Run more things in parallel (#2125)
larseggert Sep 18, 2024
b780e53
ci: More parallelization and caching (#2124)
larseggert Sep 18, 2024
899736f
fix: Resend more data during handshake (#2119)
larseggert Sep 18, 2024
eb3e835
perf(transport): have add_datagram take Vec<u8> (#2120)
mxinden Sep 18, 2024
d6279bf
fix: Make anto-replay window 1s for tests (#2116)
larseggert Sep 18, 2024
b6aa402
ci: Run `clippy` on all platforms (#2130)
larseggert Sep 20, 2024
d513712
ci: Use Rust stable to benchmark (#2131)
larseggert Sep 20, 2024
198c006
perf(transport): don't pre-allocate mtu on max_datagram_size (#2086)
mxinden Sep 25, 2024
55e3a93
Extend panic when pn_len is 0 with metadata (#2134)
mxinden Sep 25, 2024
a484f64
build(deps): bump docker/build-push-action from 6.7.0 to 6.8.0 (#2139)
dependabot[bot] Oct 1, 2024
828169a
ci(nss): handle system-, cached-, and to-be-build-NSS (#2142)
mxinden Oct 1, 2024
a4c4ccd
fix: Add `confirmed` parameter to PTO calculation (#2127)
larseggert Oct 1, 2024
bafc244
ci(nss): fix typo USE_SYSTEM USE_SYSTEM_NSS (#2145)
mxinden Oct 2, 2024
824d7c4
Use retain to clear out old streams (#2144)
martinthomson Oct 2, 2024
eb92e43
make process_output be able to return keep_alive timeout (#2136)
KershawChang Oct 2, 2024
c796b5c
ci(bench): don't run on draft PRs (#2147)
mxinden Oct 3, 2024
4e75a77
ci: run tests with sanitizers on Linux and MacOS (#2143)
mxinden Oct 3, 2024
12ff014
build(deps): bump actions/checkout from 4.1.7 to 4.2.0 (#2140)
dependabot[bot] Oct 3, 2024
1708886
chore: prepare v0.9.1 release (#2148)
mxinden Oct 3, 2024
12fc1aa
chore: keep neqo_transport::Error internal errors sorted (#2149)
mxinden Oct 4, 2024
1d30bf8
build(deps): bump codecov/codecov-action from 4.5.0 to 4.6.0 (#2156)
dependabot[bot] Oct 7, 2024
eea43cd
build(deps): bump docker/build-push-action from 6.8.0 to 6.9.0 (#2153)
dependabot[bot] Oct 7, 2024
bd9cbe0
build(deps): bump docker/setup-buildx-action from 3.6.1 to 3.7.1 (#2155)
dependabot[bot] Oct 7, 2024
2d16df8
test(SentPackets): ignore unknown packet (#2152)
mxinden Oct 7, 2024
92fe2da
build(deps): bump actions/cache from 4.0.2 to 4.1.0 (#2154)
dependabot[bot] Oct 7, 2024
d6cc30e
chore: Address new nightly clippy warnings (#2151)
larseggert Oct 7, 2024
bd02153
ci: Only run mutants workflow under certain conditions (#2158)
larseggert Oct 7, 2024
9d12a1f
fix: Check that the largest_acked was sent (#2150)
larseggert Oct 8, 2024
e11528d
wrappers for common usage of test_frame_writer (#2159)
martinthomson Oct 8, 2024
aca20d3
chore: prepare v0.9.2 release (#2157)
mxinden Oct 8, 2024
5677bd1
fix(transport): remove unused Error::HandshakeFailed (#2160)
mxinden Oct 8, 2024
f39e12e
ci: Try to pin more deps (#2163)
larseggert Oct 9, 2024
5f8d876
ci: Don't run QNS when a PR is merged (#2161)
larseggert Oct 9, 2024
249d062
ci: Run the sanitizers in parallel (#2166)
larseggert Oct 11, 2024
9ef0355
test: Dump simulator RNG seeds (#2165)
larseggert Oct 11, 2024
944c817
feat: Plumbing to begin supporting QNS migration tests (#2167)
larseggert Oct 11, 2024
7116cf8
build(deps): bump lukemathwalker/cargo-chef in /qns (#2172)
dependabot[bot] Oct 14, 2024
1adf9bd
build(deps): bump actions/cache from 4.1.0 to 4.1.1 (#2173)
dependabot[bot] Oct 14, 2024
4bd87eb
build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 (#2174)
dependabot[bot] Oct 14, 2024
9b5ec71
build(deps): bump actions/checkout from 4.2.0 to 4.2.1 (#2175)
dependabot[bot] Oct 14, 2024
ce1e79f
fix: Build QNS docker image with debug symbols (#2181)
larseggert Oct 16, 2024
62415bf
ci: fix cache-hit check (#2186)
mxinden Oct 17, 2024
c4e8f06
test: Make sure our PATH_CHALLENGEs are padded OK (#2168)
larseggert Oct 18, 2024
5d53446
refactor(udp): pass SocketAddr instead of &SocketAddr (#2169)
mxinden Oct 18, 2024
2b64d75
ci: Run benchmarks with Ethernet and max MTUs (#2183)
larseggert Oct 18, 2024
66b9c8c
ci: Terminate `nextest` after a test runs for three minutes (#2192)
larseggert Oct 18, 2024
618f31c
clippy isn't always right (#2193)
martinthomson Oct 21, 2024
fef59b2
feat: Support QNS `connectionmigration` test (#2180)
larseggert Oct 21, 2024
9f1c2f3
chore: Fix new clippy warning (#2194)
larseggert Oct 21, 2024
b5e0374
chore(http3): fix typo (#2196)
mxinden Oct 22, 2024
934b62d
feat: don't allocate in UDP recv path (#2184)
mxinden Oct 23, 2024
b516fe9
build(deps): bump lukemathwalker/cargo-chef in /qns (#2195)
dependabot[bot] Oct 23, 2024
214ad48
chore: prepare v0.10.0 release (#2198)
mxinden Oct 24, 2024
f7d73b9
docs(README): add neqo-{bin,udp} to Cargo.toml patch section (#2197)
mxinden Oct 25, 2024
67d5e7f
bench(bin): add 100MB upload benchmark (#2199)
mxinden Oct 25, 2024
05b4af9
fix: forward bench feature to test-fixtures crate (#2201)
mxinden Oct 26, 2024
de61bb3
build(deps): bump actions/checkout from 4.2.1 to 4.2.2 (#2206)
dependabot[bot] Oct 28, 2024
45ccfc3
build(deps): bump lukemathwalker/cargo-chef in /qns (#2207)
dependabot[bot] Oct 28, 2024
2ebf000
build(deps): bump actions/cache from 4.1.1 to 4.1.2 (#2204)
dependabot[bot] Oct 28, 2024
8e36f63
build(deps): bump actions/dependency-review-action from 4.3.4 to 4.3.…
dependabot[bot] Oct 28, 2024
86d5796
ci: update actions/dependency-review-action to v4.4.0 (#2210)
mxinden Oct 31, 2024
e08c14f
bench(bin/client): don't allocate upload payload upfront (#2200)
mxinden Oct 31, 2024
42fa260
chore: update to quinn-udp v0.5.6 (#2209)
mxinden Nov 1, 2024
b61136f
build(deps): bump lukemathwalker/cargo-chef in /qns (#2215)
dependabot[bot] Nov 4, 2024
ad2c7d2
deps: enable std feature of url crate (#2219)
mxinden Nov 6, 2024
1f0106e
chore: make url crate a workspace dependency (#2221)
mxinden Nov 6, 2024
c0a2bfe
ci: Only build Firefox on manual trigger (#2222)
larseggert Nov 6, 2024
5d8651a
feat: Enable `SSL_ENABLE_CH_EXTENSION_PERMUTATION` (#2217)
larseggert Nov 6, 2024
02c5147
build(deps): bump lukemathwalker/cargo-chef in /qns (#2223)
dependabot[bot] Nov 11, 2024
f11ce06
feat: Option for no zero-len CIDs for client (#2171)
larseggert Nov 11, 2024
84bf552
chore: Bump some dependency versions that changed upstream (#2225)
larseggert Nov 12, 2024
1cae854
ci: Show QNS results relative to `main` (#2220)
larseggert Nov 13, 2024
978aa4e
feat(bin): don't allocate in server UDP recv path (#2202)
mxinden Nov 13, 2024
fe76cdc
refactor(transport): reuse `now` in qlog wherever available (#2216)
mxinden Nov 14, 2024
bcc16fc
ci: Benchmark against google-quiche (#2218)
larseggert Nov 14, 2024
68e19fc
fix: More migration tests and related fixes (#2170)
larseggert Nov 14, 2024
a4692b5
Don't include runner name in QNS cache key (#2229)
larseggert Nov 15, 2024
4c94fb8
chore: Remove outdated `docs` (#2231)
larseggert Nov 15, 2024
f5125c6
fix: Don't allow migration if the peer doesn't allow it (#2230)
larseggert Nov 15, 2024
8ba5cd3
build(deps): bump lukemathwalker/cargo-chef in /qns (#2234)
dependabot[bot] Nov 18, 2024
71a2a19
build(deps): bump codecov/codecov-action from 4.6.0 to 5.0.2 (#2235)
dependabot[bot] Nov 18, 2024
3c63b13
chore: Fix clippy `this map_or is redundant` (#2232)
larseggert Nov 18, 2024
7a25525
build(deps): bump alpine in /taskcluster/docker/linux (#2233)
dependabot[bot] Nov 18, 2024
77b2635
No need to borrow with a smarter borrow checker (#2238)
martinthomson Nov 19, 2024
c6b518c
Use try_send, so the caller can handle the IO error (#2237)
KershawChang Nov 19, 2024
f3d0191
deps: pin url to v2.5.1 (#2240)
mxinden Nov 19, 2024
5a99e85
chore(transport/bench): remove commented out import (#2244)
mxinden Nov 25, 2024
439771c
build(deps): bump codecov/codecov-action from 5.0.2 to 5.0.7 (#2247)
dependabot[bot] Nov 25, 2024
a80d850
build(deps): bump lukemathwalker/cargo-chef in /qns (#2250)
dependabot[bot] Nov 25, 2024
2fe2922
build(deps): bump actions/dependency-review-action from 4.4.0 to 4.5.…
dependabot[bot] Nov 25, 2024
f4f55dd
build(deps): bump docker/metadata-action from 5.5.1 to 5.6.1 (#2248)
dependabot[bot] Nov 25, 2024
2fb1a3b
chore: check-in Cargo.lock (#2208)
mxinden Nov 25, 2024
baae4f2
bench(transport/recovery): benchmark `SentPackets::take_ranges` (#2253)
mxinden Nov 26, 2024
c9db498
perf(transport/recovery): optimize `SentPackets::take_ranges` (#2245)
mxinden Nov 26, 2024
e9936dd
ci: Fix QNS diff to main (#2254)
larseggert Nov 26, 2024
5fe0c89
build(deps): update clap-verbosity-flag requirement from 2.2 to 3.0 (…
dependabot[bot] Nov 26, 2024
998571d
ci: Better formatting for QNS diff (#2255)
larseggert Nov 26, 2024
c6d5502
chore: prepare v0.11.0 (#2239)
mxinden Nov 27, 2024
673d44d
feat: Shuffle the client Initial crypto data (#2228)
larseggert Nov 29, 2024
2bc5ffc
ci: Try a different formatting for the qns diff (#2257)
larseggert Nov 29, 2024
9b8fc2a
build(deps): bump docker/build-push-action from 6.9.0 to 6.10.0 (#2260)
dependabot[bot] Dec 2, 2024
1fdb5b9
build(deps): bump lukemathwalker/cargo-chef in /qns (#2261)
dependabot[bot] Dec 2, 2024
d669f0c
Add a benchmark for the decoder (#2258)
martinthomson Dec 2, 2024
9143d73
ci: Delete `results-main` before `mv` (#2262)
larseggert Dec 2, 2024
a758177
chore: Guard testing functions properly (#2264)
larseggert Dec 3, 2024
dd8e801
Decoder improvements (#2259)
martinthomson Dec 8, 2024
a87b379
fix(sim): correct `Waiting` state comparison in `NodeHolder::ready()`…
mxinden Dec 8, 2024
2f91b41
build(deps): bump codecov/codecov-action from 5.0.7 to 5.1.1 (#2272)
dependabot[bot] Dec 9, 2024
f3ece05
build(deps): bump actions/cache from 4.1.2 to 4.2.0 (#2271)
dependabot[bot] Dec 9, 2024
7c36a4d
build(deps): bump alpine in /taskcluster/docker/linux (#2273)
dependabot[bot] Dec 9, 2024
9a25716
build(deps): bump lukemathwalker/cargo-chef in /qns (#2274)
dependabot[bot] Dec 9, 2024
40c295f
`invalid_webtransport_connect_with_status`
larseggert Dec 9, 2024
6575c55
Merge branch 'main' of github.com:mozilla/neqo
larseggert Dec 9, 2024
cf6d537
feat(ecn): expose ECN path validation outcome in Stats (#2270)
mxinden Dec 9, 2024
7d42973
chore: Simplify some webtransport checks (#2267)
larseggert Dec 9, 2024
8578776
chore: Fix misspellings (#2277)
larseggert Dec 10, 2024
3e65261
fix: `function pointer comparisons do not produce meaningful results`…
larseggert Dec 10, 2024
a1b9364
Mark WebTransport streams keep alive (#1389)
MayyaSunil Dec 11, 2024
d93f40c
ci: Enable MC/DC coverage
larseggert Dec 11, 2024
cf3830d
One more nightly
larseggert Dec 11, 2024
0e6d3be
Merge pull request #2280 from larseggert/ci-coverage-mcdc
martinthomson Dec 11, 2024
fd42bed
deps(Cargo.lock): update to quinn-udp v0.5.8 (#2278)
mxinden Dec 12, 2024
6772ae5
fix: Send Retry and VN packets with default TOS (#2266)
larseggert Dec 12, 2024
b4d0eb7
Try Codecov JSON format and include FFI (#2282)
larseggert Dec 12, 2024
3001a3a
chore(qlog): Add meaningful qlog titles and descriptions. (#2281)
mansf-osk Dec 12, 2024
eccf46b
build(deps): bump lukemathwalker/cargo-chef in /qns (#2285)
dependabot[bot] Dec 16, 2024
ad8f390
fix: Abort on RX of illegal stream control/data frame (#2269)
larseggert Dec 16, 2024
fc45989
ci: Pin `cargo-quickinstall` to 0.3.5 (#2289)
larseggert Dec 17, 2024
6af2cd1
chore: Remove `--use-old-http` command line parameter (#2287)
larseggert Dec 17, 2024
b070663
chore: Remove draft QUIC versions (#2288)
larseggert Dec 18, 2024
ab56672
feat: Stop the PMTUD search at the interface MTU (#2135)
larseggert Dec 18, 2024
bb45c74
feat: Create `PushId` type (#2286)
larseggert Dec 18, 2024
4028ca4
ci(sanitize): ignore leak in std::rt::lang_start_internal (#2301)
mxinden Dec 24, 2024
0962f72
build(deps): bump codecov/codecov-action from 5.1.1 to 5.1.2 (#2299)
dependabot[bot] Dec 27, 2024
70521dd
build(deps): bump docker/setup-buildx-action from 3.7.1 to 3.8.0 (#2297)
dependabot[bot] Dec 27, 2024
6a9d256
build(deps): bump lukemathwalker/cargo-chef in /qns (#2303)
dependabot[bot] Dec 27, 2024
922d266
build(deps): bump lukemathwalker/cargo-chef in /qns (#2305)
dependabot[bot] Dec 31, 2024
c84880b
build(deps): bump lukemathwalker/cargo-chef in /qns (#2308)
dependabot[bot] Jan 6, 2025
a5fbfdd
docs(transport): remove obsolete comment (#2304)
mxinden Jan 7, 2025
17129d4
deps: update quinn-udp to v0.5.9 (#2296)
mxinden Jan 7, 2025
6b88943
ci: Fix bench (#2312)
larseggert Jan 7, 2025
5c36c79
chore: Apply clippy suggestions (#2310)
larseggert Jan 7, 2025
f3e9793
fix(qpack): make `can_evict_to` iter all evictable entries (#2307)
mxinden Jan 8, 2025
b53ecd3
chore: Enable clippy `get_unwrap` lint (#2318)
larseggert Jan 8, 2025
b17233c
chore: Enable clippy `if_then_some_else_none` lint (#2319)
larseggert Jan 8, 2025
808b018
chore(transport): Remove `module_name_repetitions` (#2311)
mansf-osk Jan 8, 2025
ef9e4dc
chore: Enable clippy `pathbuf_init_then_push` lint (#2324)
larseggert Jan 8, 2025
db0a332
ci: Pin nightly (#2335)
larseggert Jan 9, 2025
d84f14d
build(deps): bump actions/upload-artifact from 4.4.3 to 4.5.0 (#2298)
dependabot[bot] Jan 9, 2025
17c4103
chore: Enable the `renamed_function_params` lint (#2327)
larseggert Jan 9, 2025
3c48567
perf(udp): multi-message receive on apple (#2302)
mxinden Jan 9, 2025
c9815b5
chore: Enable the `ref_patterns` clippy lint (#2326)
larseggert Jan 9, 2025
6013bde
chore: Enable the `unused_trait_names` lint (#2334)
larseggert Jan 9, 2025
df86bf0
chore: Remove some unused files (#2290)
larseggert Jan 10, 2025
763ac2c
chore: Enable clippy `multiple_inherent_impl` lint (#2323)
larseggert Jan 10, 2025
01816e6
chore: Enable the `redundant_type_annotations` lint (#2325)
larseggert Jan 10, 2025
b0fbde7
chore: Enable the `unneeded_field_pattern` lint (#2332)
larseggert Jan 10, 2025
82683d4
chore: Enable the `try_err` lint (#2331)
larseggert Jan 10, 2025
5aee532
chore: Enable some rustc lints (#2317)
larseggert Jan 10, 2025
e5770ce
chore: Enable the `semicolon_inside_block` lint (#2328)
larseggert Jan 10, 2025
c9f5a36
ci: Unpin nightly (#2338)
larseggert Jan 10, 2025
ac2985e
tests(udp): use blocking socket to receive empty datagram (#2339)
mxinden Jan 10, 2025
80b4c3f
chore: Enable clippy `clone_on_ref_ptr` lint (#2314)
larseggert Jan 10, 2025
1596bc6
chore: Enable the clippy `create_dir` lint (#2315)
larseggert Jan 10, 2025
648863b
chore: Enable clippy `cfg_not_test` (#2313)
larseggert Jan 10, 2025
e664280
chore: Enable the `unused_result_ok` lint (#2333)
larseggert Jan 10, 2025
46ed9c8
ci: Use `vmactions` for checks on other platforms (#2133)
larseggert Jan 10, 2025
085fa62
fix: Simplify `neqo_common::log` and enforce clippy format checks (#2…
larseggert Jan 10, 2025
c3ecaa6
ci(sanitize): downgrade to ubuntu v22.04 (#2353)
mxinden Jan 13, 2025
a2c52f1
ci: Remove some things from `env` (#2336)
larseggert Jan 13, 2025
f9a3a93
ci: Run benchmarks on draft PRs (#2345)
larseggert Jan 13, 2025
9abde4e
chore: We no longer need the `tpids!` macro (#2341)
larseggert Jan 13, 2025
678380b
build(deps): bump lukemathwalker/cargo-chef in /qns (#2354)
dependabot[bot] Jan 13, 2025
8f5233a
build(deps): bump actions/upload-artifact from 4.5.0 to 4.6.0 (#2351)
dependabot[bot] Jan 13, 2025
47ba233
build(deps): bump vmactions/freebsd-vm from 1.1.5 to 1.1.8 (#2350)
dependabot[bot] Jan 13, 2025
a979459
chore(transport/cc): remove obsolete comment (#2343)
mxinden Jan 13, 2025
c9ac8b7
build(deps): bump vmactions/solaris-vm from 1.1.0 to 1.1.1 (#2348)
dependabot[bot] Jan 13, 2025
81e0800
ci: Lengthen QNS CI timout
larseggert Jan 13, 2025
bc310ca
build(deps): bump docker/setup-qemu-action from 3.2.0 to 3.3.0 (#2349)
dependabot[bot] Jan 13, 2025
9e5a622
build(deps): bump vmactions/openbsd-vm from 1.1.4 to 1.1.6 (#2347)
dependabot[bot] Jan 13, 2025
4f138a4
chore: `cargo clippy --fix` (#2355)
larseggert Jan 13, 2025
1a38b27
ci: Lengthen QNS CI timout (#2356)
larseggert Jan 13, 2025
8bc926a
ci: Run `cargo-deny` during ci (#2340)
larseggert Jan 13, 2025
7bbf900
docs(transport/cubic): add references to RFC 8312 (#2344)
mxinden Jan 14, 2025
7f8136e
ci: Fix the `add_event_with_instant` test (#2359)
larseggert Jan 15, 2025
b550010
ci: Revamp the QNS CI action timeout (#2361)
larseggert Jan 15, 2025
6b87603
fix(transport): don't consider remote stream illegal (#2358)
mxinden Jan 15, 2025
e18658d
ci: pin nightly (#2370)
mxinden Jan 16, 2025
a7b33a3
Revert "ci: pin nightly (#2370)" (#2371)
mxinden Jan 17, 2025
b4143a1
Revert "ci(sanitize): downgrade to ubuntu v22.04 (#2353)" (#2364)
mxinden Jan 17, 2025
a7e2fb0
chore: prepare v0.12.0 (#2362)
mxinden Jan 17, 2025
df0a4dd
build(deps): bump lukemathwalker/cargo-chef in /qns (#2375)
dependabot[bot] Jan 20, 2025
7218cff
ci(clippy): include benchmarks (#2372)
mxinden Jan 20, 2025
bd12928
build(deps): bump docker/build-push-action from 6.10.0 to 6.12.0 (#2377)
dependabot[bot] Jan 20, 2025
eaf7c39
build(deps): bump codecov/codecov-action from 5.0.7 to 5.1.2 (#2378)
dependabot[bot] Jan 20, 2025
108fb8d
build(deps): bump vmactions/netbsd-vm from 1.1.4 to 1.1.8 (#2376)
dependabot[bot] Jan 20, 2025
29f63d0
deps: update mtu to v0.2.4 (#2379)
mxinden Jan 20, 2025
51ce9d6
deps(common/log): drop env_logger's auto-color and regex features (#2…
mxinden Jan 20, 2025
f06c7ec
ci: Disable failing VM actions in CI (#2380)
larseggert Jan 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .clippy.toml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
disallowed-methods = [
{ path = "std::slice::from_raw_parts", reason = "see null_safe_slice" }
]
allow-mixed-uninlined-format-args = false
5 changes: 5 additions & 0 deletions .config/nextest.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[profile.ci]
# Do not cancel the test run on the first failure.
fail-fast = false
# Terminate test after three slow periods of 60 seconds.
slow-timeout = { period = "60s", terminate-after = 3 }
28 changes: 28 additions & 0 deletions .deny.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
[bans]
multiple-versions = "allow"

[bans.workspace-dependencies]
duplicates = "allow"
unused = "allow"

[licenses]
unused-allowed-license = "allow"
allow = [
"Apache-2.0",
"Apache-2.0 WITH LLVM-exception",
"BSD-2-Clause",
"BSD-3-Clause",
"CC0-1.0",
"ISC",
"MPL-2.0",
"MIT",
"MIT-0",
"Unicode-DFS-2016",
"Unicode-3.0",
"Zlib",
]

[sources]
unknown-registry = "deny"
unknown-git = "deny"
required-git-spec = "rev"
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1 +1 @@
* @KershawChang @martinthomson @larseggert
* @KershawChang @martinthomson @larseggert @mxinden
210 changes: 157 additions & 53 deletions .github/actions/nss/action.yml
Original file line number Diff line number Diff line change
@@ -1,101 +1,205 @@
name: Fetch and build NSS
description: Fetch and build NSS
name: Install NSS
description: Install NSS

inputs:
type:
description: "Whether to do a debug or release build of NSS"
description: "When building, whether to do a debug or release build of NSS"
default: "Release"

# This step might be removed if the distro included a recent enough
# version of NSS. Ubuntu 20.04 only has 3.49, which is far too old.
# (neqo-crypto/build.rs would also need to query pkg-config to get the
# right build flags rather than building NSS.)
#
# Also see https://github.com/mozilla/neqo/issues/1711
minimum-version:
description: "Minimum required version of NSS"
required: true

runs:
using: composite
steps:
- name: Install system NSS (Linux)
shell: bash
if: runner.os == 'Linux' && runner.environment == 'github-hosted'
env:
DEBIAN_FRONTEND: noninteractive
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends libnss3-dev pkg-config

- name: Install system NSS (MacOS)
shell: bash
if: runner.os == 'MacOS' && runner.environment == 'github-hosted'
run: |
brew update
brew install nss

- name: Check system NSS version
shell: bash
run: |
if ! command -v pkg-config &> /dev/null; then
echo "BUILD_NSS=1" >> "$GITHUB_ENV"
echo "pkg-config: not found"
echo "USE_SYSTEM_NSS=0" >> "$GITHUB_ENV"
exit 0
fi
if ! pkg-config --exists nss; then
echo "BUILD_NSS=1" >> "$GITHUB_ENV"
echo "pkg-config: NSS not found"
echo "USE_SYSTEM_NSS=0" >> "$GITHUB_ENV"
exit 0
fi
NSS_VERSION="$(pkg-config --modversion nss)"
if [ "$?" -ne 0 ]; then
echo "BUILD_NSS=1" >> "$GITHUB_ENV"
echo "pkg-config: failed to determine NSS version"
echo "USE_SYSTEM_NSS=0" >> "$GITHUB_ENV"
exit 0
fi
NSS_MAJOR=$(echo "$NSS_VERSION" | cut -d. -f1)
NSS_MINOR=$(echo "$NSS_VERSION" | cut -d. -f2)
REQ_NSS_MAJOR=$(cut -d. -f1 < neqo-crypto/min_version.txt)
REQ_NSS_MINOR=$(cut -d. -f2 < neqo-crypto/min_version.txt)
REQ_NSS_MAJOR=$(echo "${{ inputs.minimum-version}}" | cut -d. -f1)
REQ_NSS_MINOR=$(echo "${{ inputs.minimum-version}}" | cut -d. -f2)
if [[ "$NSS_MAJOR" -lt "$REQ_NSS_MAJOR" || "$NSS_MAJOR" -eq "$REQ_NSS_MAJOR" && "$NSS_MINOR" -lt "$REQ_NSS_MINOR" ]]; then
echo "System NSS is too old: $NSS_VERSION"
echo "BUILD_NSS=1" >> "$GITHUB_ENV"
echo "USE_SYSTEM_NSS=0" >> "$GITHUB_ENV"
exit 0
fi
echo "System NSS is suitable: $NSS_VERSION"
echo "BUILD_NSS=0" >> "$GITHUB_ENV"

# Ideally, we'd use this. But things are sufficiently flaky that we're better off
# trying both hg and git. Leaving this here in case we want to re-try in the future.
#
# - name: Checkout NSPR
# if: env.BUILD_NSS == '1'
# uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
# with:
# repository: "nss-dev/nspr"
# path: ${{ github.workspace }}/nspr

# - name: Checkout NSS
# if: env.BUILD_NSS == '1'
# uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
# with:
# repository: "nss-dev/nss"
# path: ${{ github.workspace }}/nss
echo "USE_SYSTEM_NSS=1" >> "$GITHUB_ENV"

- name: Checkout NSPR
- name: Use sccache
# Apparently the action can't be installed twice in the same workflow, so check if
# it's already installed by checking if the SCCACHE_ENABLED environment variable is set
# (which every "use" of this action needs to therefore set)
#
# Also, only enable sscache on our self-hosted runner, because the GitHub cache limit
# is too small for this to be effective there.
if: env.SCCACHE_ENABLED != '1' && env.USE_SYSTEM_NSS == '0' && runner.environment != 'github-hosted'
uses: mozilla-actions/sccache-action@2e7f9ec7921547d4b46598398ca573513895d0bd # v0.0.4

- name: Enable sscache
if: env.USE_SYSTEM_NSS == '0' && runner.environment != 'github-hosted'
shell: bash
if: env.BUILD_NSS == '1'
run: |
hg clone https://hg.mozilla.org/projects/nspr "${{ github.workspace }}/nspr" || \
git clone --depth=1 https://github.com/nss-dev/nspr "${{ github.workspace }}/nspr"
echo "SCCACHE_ENABLED=1" >> "$GITHUB_ENV"
if [ "${{ runner.os }}" != "Windows" ]; then
# TODO: Figure out how to make this work on Windows
echo "SCCACHE_CC=sccache cc" >> "$GITHUB_ENV"
echo "SCCACHE_CXX=sccache c++" >> "$GITHUB_ENV"
fi
echo "CMAKE_C_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV"
echo "CMAKE_CXX_COMPILER_LAUNCHER=sccache" >> "$GITHUB_ENV"
if [ "${{ runner.environment }}" == "github-hosted" ]; then
echo "SCCACHE_GHA_ENABLED=true" >> "$GITHUB_ENV"
fi

- name: Checkout NSS
if: env.USE_SYSTEM_NSS == '0'
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
repository: nss-dev/nss
path: nss

- name: Checkout NSPR
if: env.USE_SYSTEM_NSS == '0'
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
repository: nss-dev/nspr
path: nspr

- name: Get head revisions
if: env.USE_SYSTEM_NSS == '0'
shell: bash
if: env.BUILD_NSS == '1'
run: |
hg clone https://hg.mozilla.org/projects/nss "${{ github.workspace }}/nss" || \
git clone --depth=1 https://github.com/nss-dev/nss "${{ github.workspace }}/nss"
NSS_HEAD=$(git -C nss rev-parse HEAD)
NSPR_HEAD=$(git -C nspr rev-parse HEAD)
echo "NSS_HEAD=$NSS_HEAD" >> "$GITHUB_ENV"
echo "NSPR_HEAD=$NSPR_HEAD" >> "$GITHUB_ENV"

- name: Build
- name: Cache NSS
id: cache
if: env.USE_SYSTEM_NSS == '0' && runner.environment == 'github-hosted'
uses: actions/cache@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0
with:
path: dist
key: nss-${{ runner.os }}-${{ inputs.type }}-${{ env.NSS_HEAD }}-${{ env.NSPR_HEAD }}

- name: Check if build is needed
if: env.USE_SYSTEM_NSS == '0'
shell: bash
if: env.BUILD_NSS == '1'
run: |
if [ "${{ inputs.type }}" != "Debug" ]; then
# We want to do an optimized build for accurate CPU profiling, but
# we also want debug symbols and frame pointers for that, which the normal optimized NSS
# build process doesn't provide.
OPT="-o"
NSS_TARGET=Release
[ "${{ runner.os }}" != "Windows" ] && export CFLAGS="-ggdb3 -fno-omit-frame-pointer"
if [ "${{ runner.environment }}" != "github-hosted" ] || [ "${{ steps.cache.outputs.cache-hit }}" == "" ]; then
echo "Building NSS from source"
echo "BUILD_NSS=1" >> "$GITHUB_ENV"
else
NSS_TARGET=Debug
echo "Using cached prebuilt NSS"
echo "BUILD_NSS=0" >> "$GITHUB_ENV"
fi
$NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static

- name: Install build dependencies (Linux)
shell: bash
if: runner.os == 'Linux' && env.BUILD_NSS == '1' && runner.environment == 'github-hosted'
env:
DEBIAN_FRONTEND: noninteractive
run: sudo apt-get install -y --no-install-recommends gyp ninja-build

- name: Install build dependencies (MacOS)
shell: bash
if: runner.os == 'MacOS' && env.BUILD_NSS == '1'
run: |
brew install ninja
echo "gyp-next>=0.18.1" > req.txt
python3 -m pip install --user --break-system-packages -r req.txt
echo "$(python3 -m site --user-base)/bin" >> "$GITHUB_PATH"

- name: Install build dependencies (Windows)
shell: bash
if: runner.os == 'Windows' && env.BUILD_NSS == '1'
run: |
# shellcheck disable=SC2028
{
echo C:/msys64/usr/bin
echo C:/msys64/mingw64/bin
} >> "$GITHUB_PATH"
/c/msys64/usr/bin/pacman -S --noconfirm python3-pip nsinstall
echo "gyp-next>=0.18.1" > req.txt
python3 -m pip install -r req.txt

- name: Set up MSVC (Windows)
if: runner.os == 'Windows' && env.BUILD_NSS == '1'
uses: ilammy/msvc-dev-cmd@v1
# TODO: Would like to pin this, but the Mozilla org allowlist requires "ilammy/msvc-dev-cmd@v1*"
# uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0

- name: Set up build environment (Windows)
shell: bash
if: runner.os == 'Windows' && env.BUILD_NSS == '1'
run: |
{
echo "GYP_MSVS_OVERRIDE_PATH=$VSINSTALLDIR"
echo "GYP_MSVS_VERSION=2022"
echo "BASH=$SHELL"
} >> "$GITHUB_ENV"
# See https://github.com/ilammy/msvc-dev-cmd#name-conflicts-with-shell-bash
rm /usr/bin/link.exe || true

- name: Set up environment
shell: bash
if: env.USE_SYSTEM_NSS == '0'
run: |
NSS_TARGET="${{ inputs.type }}"
echo "NSS_TARGET=$NSS_TARGET" >> "$GITHUB_ENV"
NSS_OUT="$NSS_DIR/../dist/$NSS_TARGET"
echo "LD_LIBRARY_PATH=$NSS_OUT/lib" >> "$GITHUB_ENV"
echo "DYLD_FALLBACK_LIBRARY_PATH=$NSS_OUT/lib" >> "$GITHUB_ENV"
echo "$NSS_OUT/lib" >> "$GITHUB_PATH"
echo "NSS_DIR=$NSS_DIR" >> "$GITHUB_ENV"
echo "NSS_PREBUILT=1" >> "$GITHUB_ENV"
env:
NSS_DIR: ${{ github.workspace }}/nss
NSPR_DIR: ${{ github.workspace }}/nspr

- name: Build
shell: bash
if: env.BUILD_NSS == '1'
run: |
if [ "${{ inputs.type }}" != "Debug" ]; then
# We want to do an optimized build for accurate CPU profiling, but
# we also want debug symbols and frame pointers for that, which the normal optimized NSS
# build process doesn't provide.
OPT="-o"
[ "${{ runner.os }}" != "Windows" ] && export CFLAGS="-ggdb3 -fno-omit-frame-pointer"
fi
[ "$SCCACHE_CC" ] && [ "$SCCACHE_CXX" ] && export CC="$SCCACHE_CC" CXX="$SCCACHE_CXX"
$NSS_DIR/build.sh -g -Ddisable_tests=1 $OPT --static
2 changes: 1 addition & 1 deletion .github/actions/pr-comment-data-export/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ runs:
echo "${{ inputs.log-url }}" > comment-data/log-url
fi
- if: github.event_name == 'pull_request'
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
with:
name: ${{ inputs.name }}
path: comment-data
Expand Down
2 changes: 1 addition & 1 deletion .github/actions/pr-comment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ inputs:
runs:
using: composite
steps:
- uses: actions/download-artifact@9c19ed7fe5d278cd354c7dfd5d3b88589c7e2395 # v4.1.6
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
with:
run-id: ${{ github.event.workflow_run.id }}
name: ${{ inputs.name }}
Expand Down
35 changes: 29 additions & 6 deletions .github/actions/quic-interop-runner/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ runs:
using: "composite"
steps:
- name: Checkout quic-interop/quic-interop-runner repository
uses: actions/checkout@1d96c772d19495a3b5c517cd2bc0cb401ea0529f # v4.1.3
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
repository: 'quic-interop/quic-interop-runner'
path: 'quic-interop-runner'
Expand All @@ -42,7 +42,7 @@ runs:

- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0
with:
python-version: 3.8
python-version: 3.12
cache: 'pip'
cache-dependency-path: 'quic-interop-runner/requirements.txt'

Expand Down Expand Up @@ -71,27 +71,50 @@ runs:
fi
# Don't fail CI if the interop test fails
set -o pipefail
python run.py $ARGS 2>&1 | tee ../summary.txt || true
python -u run.py $ARGS 2>&1 | tee ../summary.txt || true
# But do fail if any log contains 'RUST_BACKTRACE=full', which indicates a panic
# (that we assume happened in neqo.)
for log in ../logs/*/*/output.txt; do
if grep -q 'RUST_BACKTRACE=full' "$log"; then
echo "Panic detected in $log"
tail -n 50 "$log"
FAILED=1
fi
done
# Remove all log files > $MAX_SIZE for succeeded tests to make the artifacts smaller.
MAX_SIZE=2M
echo "Removed log file > $MAX_SIZE during GitHub workflow" > note.txt
echo "Removing these log files > $MAX_SIZE:"
SUCCEEDED=$(jq < ../result.json '. | .results[][] | select(.result == "succeeded").name' | tr -d '"')
for run in ../logs/*; do
for test in $SUCCEEDED; do
find "$run/$test" -type f -size +$MAX_SIZE -ls -exec cp note.txt {} \;
done
done
exit $FAILED
shell: bash

- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
- uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
if: always()
id: upload-logs
with:
name: '${{ inputs.client }} vs. ${{ inputs.server }} logs'
path: logs
compression-level: 9

- name: Store log URL
if: always()
run: |
jq '. + {log_url: "${{ steps.upload-logs.outputs.artifact-url }}"}' \
< result.json > result.json.tmp && \
mv result.json.tmp result.json
shell: bash

- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
- uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
if: always()
with:
name: '${{ inputs.client }} vs. ${{ inputs.server }} results'
path: |
result.json
summary.txt
retention-days: 1
retention-days: 1
Loading