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 244 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
244 commits
Select commit Hold shift + click to select a range
47588ac
refactor: remove unused test-fixture/src/sim/net.rs (#1873)
mxinden May 6, 2024
e467273
fix(http3): always qlog on send_buffer() (#1876)
mxinden May 6, 2024
c42597d
build(deps): bump codecov/codecov-action from 4.3.0 to 4.3.1 (#1881)
dependabot[bot] May 6, 2024
adb6507
build(deps): bump actions/download-artifact from 4.1.6 to 4.1.7 (#1879)
dependabot[bot] May 6, 2024
9d17e2a
build(deps): bump actions/checkout from 4.1.3 to 4.1.4 (#1880)
dependabot[bot] May 6, 2024
d589ea0
remove the assertion that can be triggered when a HANDSHAKE_DONE fram…
KershawChang May 6, 2024
343df5c
neqo v0.7.7 (#1885)
KershawChang May 6, 2024
c854000
ci: Remove CI code to show differential QNS results (#1884)
larseggert May 6, 2024
20a4058
ci: Build Firefox with current neqo (#1834)
larseggert May 6, 2024
bb88aab
fix(SendMessage): use SendStream::set_writable_event_low_watermark (#…
mxinden May 7, 2024
ebae88f
ci: Pin rustup-init (#1888)
larseggert May 7, 2024
6979f01
chore: Fix new clippy lints in cargo 1.80.0-nightly (#1883)
larseggert May 7, 2024
08cdd47
refactor(bin): introduce server/http3.rs and server/http09.rs (#1877)
mxinden May 7, 2024
beffcc6
Cleanup tracking (#1886)
martinthomson May 7, 2024
35c157b
ci: Only build Fx for PRs (#1890)
larseggert May 8, 2024
b8ae981
refactor: enable mozilla-central http3server to use neqo-bin (#1878)
mxinden May 8, 2024
3015218
ci: Try and fix CI Fx build (#1893)
larseggert May 8, 2024
d1fef60
build(deps): bump actions/checkout from 4.1.3 to 4.1.5 (#1897)
dependabot[bot] May 13, 2024
520bfb0
build(deps): bump martenseemann/quic-network-simulator-endpoint in /q…
dependabot[bot] May 13, 2024
9d05b40
build(deps): bump actions/download-artifact from 4.1.6 to 4.1.7 (#1898)
dependabot[bot] May 13, 2024
d7f33e2
chore: Use `MIN_INITIAL_PACKET_SIZE` instead of literal `1200` (#1895)
larseggert May 13, 2024
e44c472
feat(bin): use quinn-udp crates.io release instead of git ref (#1899)
mxinden May 13, 2024
aebc9ca
Reapply "perf(transport): remove Server::timers (#1784)" (#1800) (#1902)
mxinden May 15, 2024
a71e43d
v0.7.8 (#1904)
KershawChang May 15, 2024
cb343da
A test to trigger 'earliest > now' assertion (#1491)
KershawChang May 16, 2024
590940b
remove trailing comma (#1907)
KershawChang May 17, 2024
821e048
build(deps): bump codecov/codecov-action from 4.3.1 to 4.4.0 (#1909)
dependabot[bot] May 21, 2024
4162cd8
ci: Only show performance improvements and regressions details (#1906)
larseggert May 21, 2024
b900860
build(deps): bump actions/checkout from 4.1.5 to 4.1.6 (#1908)
dependabot[bot] May 21, 2024
e354fdd
ci: Reduce bench transfer size to 32MB (#1911)
larseggert May 22, 2024
ea1b2bb
ci: Set `RUST_LOG` during coverage tests (#1910)
larseggert May 23, 2024
0004f9a
fix: Don't initialize regex on each call to `stream_readable` (#1915)
larseggert May 27, 2024
f98b7f4
fix: Use correct ECN mark when sending datagram (#1914)
larseggert May 29, 2024
4142ac6
Enable Xyber768d00 on servers by default (#1913)
jschanck May 29, 2024
121fe68
neqo_0.7.9 (#1916)
KershawChang May 30, 2024
4975501
build(deps): bump docker/login-action from 3.1.0 to 3.2.0 (#1919)
dependabot[bot] Jun 10, 2024
e7a7b16
build(deps): bump docker/build-push-action from 5.3.0 to 5.4.0 (#1921)
dependabot[bot] Jun 10, 2024
cc2614a
build(deps): bump codecov/codecov-action from 4.4.1 to 4.5.0 (#1924)
dependabot[bot] Jun 17, 2024
6664452
build(deps): bump actions/checkout from 4.1.6 to 4.1.7 (#1923)
dependabot[bot] Jun 17, 2024
290d1f0
fix(transport/recovery): remove needless `mut` (#1927)
mxinden Jun 17, 2024
9732a12
chore: Fix new clippy issues found by Rust 1.81.0-nightly (#1930)
larseggert Jun 18, 2024
581a9f2
ci: Hook up Taskcluster (#1901)
larseggert Jun 18, 2024
de60e0a
fix: Make taskcluster integration work (#1933)
larseggert Jun 18, 2024
c9df873
Undo taskcluster change
larseggert Jun 18, 2024
0157a18
ci: Use cargo-quickinstall instead of cargo-binstall (#1932)
larseggert Jun 18, 2024
95104fe
ci: Disable taskcluster again (#1934)
larseggert Jun 18, 2024
c7f654b
ci: Only use cargo-quickinstall (#1938)
larseggert Jun 19, 2024
c97a7fc
fix: Don't try to generate PR comments for cancelled workflow runs (#…
larseggert Jun 19, 2024
6650490
build(deps): bump docker/build-push-action from 5.4.0 to 6.1.0 (#1939)
dependabot[bot] Jun 25, 2024
cf06329
revert: remove ttl information from datagram (#1940)
mxinden Jun 26, 2024
fb37f28
fix: Remove the "init NSS twice" tests (#1937)
larseggert Jun 27, 2024
e2fc9b0
Fix up the Taskcluster / Taskgraph configuration (#1935)
ahal Jul 1, 2024
ea54273
build(deps): bump docker/build-push-action from 6.1.0 to 6.2.0 (#1942)
dependabot[bot] Jul 1, 2024
a79d720
ci: Disable taskcluster again (#1949)
larseggert Jul 2, 2024
c9ff46e
[StepSecurity] Pin image tags to digests in Dockerfiles (#1945)
step-security-bot Jul 2, 2024
8d23703
refactor(transport/server): always process each connection (#1929)
mxinden Jul 2, 2024
a8e2363
[StepSecurity] Update Dependabot configuration (#1951)
step-security-bot Jul 2, 2024
e2c37a9
test(server): drop short header packet for unknown connection (#1952)
mxinden Jul 2, 2024
2e1f92e
ci: Fix bench comment formatting regex (#1953)
larseggert Jul 2, 2024
6ed84a7
chore: address nightly clippy lints (#1955)
mxinden Jul 2, 2024
780daf8
feat(bin): enable Firefox to use quinn-udp through neqo-udp (#1920)
mxinden Jul 3, 2024
7709938
[StepSecurity] Add Dependency review Workflow (#1947)
step-security-bot Jul 3, 2024
3566375
[StepSecurity] Update the pre-commit configuration (#1950)
step-security-bot Jul 3, 2024
59fb995
chore(udp): disable bench (#1957)
mxinden Jul 3, 2024
2fe667e
fix: Disable pylint pre-commit check (#1958)
larseggert Jul 3, 2024
cf72ed4
ci: Need to run dependency-review.yml for merge queue (#1959)
larseggert Jul 3, 2024
3f1b183
ci: Bump action versions for dependency-review (#1960)
larseggert Jul 4, 2024
34a5126
ci: dependency-review needs refs for merge_queue (#1961)
larseggert Jul 4, 2024
c209c43
chore: Turn on more clippy lints, and fix the warnings (#1956)
larseggert Jul 4, 2024
d35fe07
build(deps): bump actions/upload-artifact from 4.3.3 to 4.3.4 (#1968)
dependabot[bot] Jul 8, 2024
7ecab3f
build(deps): bump docker/build-push-action from 6.2.0 to 6.3.0 (#1965)
dependabot[bot] Jul 8, 2024
7d5095f
build(deps): bump actions/download-artifact from 4.1.7 to 4.1.8 (#1966)
dependabot[bot] Jul 8, 2024
b3e72e9
build(deps): bump docker/setup-qemu-action from 3.0.0 to 3.1.0 (#1967)
dependabot[bot] Jul 8, 2024
7d610ed
build(deps): bump docker/setup-buildx-action from 3.3.0 to 3.4.0 (#1969)
dependabot[bot] Jul 8, 2024
4852dc6
feat: DPLPMTUD (#1903)
larseggert Jul 10, 2024
9f0a86d
neqo 0.8.0 (#1973)
KershawChang Jul 11, 2024
f1c04d2
ci: Fix the fuzz targets (#1972)
larseggert Jul 12, 2024
59dc0ab
Use a stack allocation for header protection (#1978)
martinthomson Jul 12, 2024
80c7969
ci: Use cargo-machete to check for unused dependencies (#1974)
larseggert Jul 12, 2024
8b81a09
build(deps): bump actions/dependency-review-action from 4.3.3 to 4.3.…
dependabot[bot] Jul 15, 2024
735be28
ci: Trigger secondary checks off `check.yml` (#1984)
larseggert Jul 16, 2024
e05cc70
Revert "ci: Trigger secondary checks off `check.yml` (#1984)" (#1987)
larseggert Jul 16, 2024
22ca6f7
ci: Try to use NSS package on Linux (#1900)
larseggert Jul 17, 2024
2ca0d2d
ci: Cache NSS build (#1982)
larseggert Jul 17, 2024
c1b14e4
ci: Try and drop more permissions (#1979)
larseggert Jul 17, 2024
ef4a06c
ci: Run QNS with unbuffered output (#1990)
larseggert Jul 17, 2024
19ec1a9
refactor(server): remove ServerConnectionIdGenerator (#1981)
mxinden Jul 17, 2024
e82da39
chore(neqo-udp): drop tokio dependency (#1988)
mxinden Jul 17, 2024
9e3ff0d
ci: Fail QNS run on Rust panic (#1976)
larseggert Jul 17, 2024
3a8f724
ci: Improve QNS workflow (#1993)
larseggert Jul 19, 2024
2e419cc
ci: Report QNS results by client and server separately (#1994)
larseggert Jul 19, 2024
f0bffce
v0.8.1 (#1999)
KershawChang Jul 22, 2024
904acd3
fix(udp): test blocking Socket (#2002)
mxinden Jul 22, 2024
88d3ed1
build(deps): bump docker/build-push-action from 6.3.0 to 6.4.1 (#2000)
dependabot[bot] Jul 22, 2024
608c0a7
deps(quinn-udp): enable `direct-log` feature to log via `log` (#2004)
mxinden Jul 23, 2024
aadf8be
bench(transfer): run with and without pacing (#2006)
mxinden Jul 24, 2024
1815c3c
fix: Log `rttvar` in qlog (#2005)
larseggert Jul 25, 2024
7a39675
chore: Remove superfluous clippy allows (#1997)
larseggert Jul 25, 2024
67a7ee0
build(deps): bump martenseemann/quic-network-simulator-endpoint from …
dependabot[bot] Jul 29, 2024
e8dfd5b
ci: Don't install unneeded rust components by default (#2011)
larseggert Jul 29, 2024
77fd60e
build(deps): bump docker/login-action from 3.2.0 to 3.3.0 (#2017)
dependabot[bot] Jul 29, 2024
7896271
build(deps): bump docker/setup-qemu-action from 3.1.0 to 3.2.0 (#2015)
dependabot[bot] Jul 29, 2024
d91c619
build(deps): bump docker/build-push-action from 6.4.1 to 6.5.0 (#2016)
dependabot[bot] Jul 29, 2024
d28e94c
build(deps): bump alpine in /taskcluster/docker/linux (#2012)
dependabot[bot] Jul 29, 2024
b572b46
build(deps): bump docker/setup-buildx-action from 3.4.0 to 3.5.0 (#2014)
dependabot[bot] Jul 29, 2024
6e9147e
bench(bin): remove sample-size override (#2018)
mxinden Jul 29, 2024
cecad73
bench(.github): don't print capture group $4 twice (#2019)
mxinden Jul 29, 2024
afbb462
ci: Fix building NSS from source (#2010)
larseggert Jul 30, 2024
45a9988
ci: Hotfix for #2010 (#2021)
larseggert Jul 30, 2024
7e96081
fix(benches/transfer): remove throughput (#2007)
mxinden Jul 30, 2024
b22512c
ci: Skip `sudo` runner steps on self-hosted runner (#2022)
larseggert Jul 30, 2024
4dc6ca4
ci: Simplify QNS output (#2023)
larseggert Jul 30, 2024
b63e0ff
chore: Remove `test_` from test names (#2024)
larseggert Jul 31, 2024
b033d95
feat(transport): Use a shorter ECN probe threshold initially (#1964)
mxinden Jul 31, 2024
67bd43b
Add @mxinden to CODEOWNERS (#2025)
larseggert Jul 31, 2024
c80630b
fix: Make neqo pass `amplificationlimit` QNS test (#1875)
larseggert Aug 1, 2024
d5c656a
neqo-crypto: use SSL_PeerCertificateChainDER (#2009)
jschanck Aug 1, 2024
0eb9174
fix: Don't assert in NSS `version_check` (#2030)
larseggert Aug 2, 2024
516ce6f
build(deps): bump docker/setup-buildx-action from 3.5.0 to 3.6.1 (#2038)
dependabot[bot] Aug 5, 2024
dad1c51
build(deps): bump actions/upload-artifact from 4.3.4 to 4.3.5 (#2037)
dependabot[bot] Aug 5, 2024
3d0efa2
docs(transport): fix old/new mixup (#2039)
mxinden Aug 5, 2024
0aa7ebb
chore: Remove some `unwrap`s where it is straightforward (#2033)
larseggert Aug 6, 2024
f63b22c
ci: Fix QNS reporting (#2042)
larseggert Aug 6, 2024
72a42db
ci: Treat a QNS `null` result as a failure (#2043)
larseggert Aug 6, 2024
68b1048
docs(README): explain connecting with Firefox to local neqo-server (#…
mxinden Aug 6, 2024
0a7acfd
fix(udp): ignore empty datagram (#2044)
mxinden Aug 6, 2024
9fa21ee
fix(transport): don't pace below timer granularity (#2035)
mxinden Aug 6, 2024
b7e1766
chore: prepare v0.8.2 release (#2045)
mxinden Aug 6, 2024
21e9782
Fewer `unwrap`s
larseggert Aug 6, 2024
2c99b2d
Merge branch 'main' of github.com:mozilla/neqo
larseggert Aug 6, 2024
80fd8e5
Revert 2c99b2df01f6be3ec192f5463cee5481b9db5fa2
larseggert Aug 6, 2024
7cbd776
refactor: consolidate NeqoQlog instantiation (#2031)
mxinden Aug 7, 2024
ca0080e
fix(common/qlog): use BufWriter (#2032)
mxinden Aug 8, 2024
78e5a5e
ci: Allow `binstall` to handle current Rust install issue (#2048)
larseggert Aug 9, 2024
477a09a
fix: Check whether CIDs are empty (#2034)
larseggert Aug 9, 2024
9c54b4a
ci: Pass a PAT to rust/action.yml to avoid hitting download rate limi…
larseggert Aug 9, 2024
f801c29
test: Prep env for custom NSS build (#2046)
larseggert Aug 9, 2024
67fb75f
build(deps): bump actions/upload-artifact from 4.3.5 to 4.3.6 (#2051)
dependabot[bot] Aug 12, 2024
c2fd808
feat: Use `EnumMap` for `AckTracker` (#2047)
larseggert Aug 12, 2024
39c7b9f
build(deps): bump docker/build-push-action from 6.5.0 to 6.6.1 (#2052)
dependabot[bot] Aug 12, 2024
fe2f0d0
fix: Handle H3 grease frame types (#1996)
larseggert Aug 12, 2024
4a5a041
refactor(bin): use 32k stream IO buffer (#2008)
mxinden Aug 12, 2024
bff53b7
fix: Check for error when looking up packet number space (#2029)
larseggert Aug 13, 2024
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
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
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 }
2 changes: 1 addition & 1 deletion .github/CODEOWNERS
Validating CODEOWNERS rules …
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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
with:
repository: nss-dev/nss
path: nss

- name: Checkout NSPR
if: env.USE_SYSTEM_NSS == '0'
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
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@3624ceb22c1c5a301c8db4169662070a689d9ea8 # v4.1.1
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@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
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@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 # v4.2.1
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@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
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@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
if: always()
with:
name: '${{ inputs.client }} vs. ${{ inputs.server }} results'
path: |
result.json
summary.txt
retention-days: 1
retention-days: 1
Loading