Skip to content

chore: mtu@0.4.1#3563

Merged
larseggert merged 1 commit intomozilla:mainfrom
larseggert:chore-mtu-0.4.1
Apr 16, 2026
Merged

chore: mtu@0.4.1#3563
larseggert merged 1 commit intomozilla:mainfrom
larseggert:chore-mtu-0.4.1

Conversation

@larseggert
Copy link
Copy Markdown
Collaborator

@larseggert larseggert commented Apr 16, 2026

Because apparently in a workspace you can't just cargo publish in a subdirectory...

Copilot AI review requested due to automatic review settings April 16, 2026 09:34
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Bumps the mtu workspace crate’s package version for an upcoming publish, ensuring the workspace lockfile reflects the new version.

Changes:

  • Update mtu crate version from 0.4.0 to 0.4.1.
  • Update the Cargo.lock entry for mtu to match the new crate version.

Reviewed changes

Copilot reviewed 1 out of 2 changed files in this pull request and generated no comments.

File Description
mtu/Cargo.toml Increments the mtu crate package version to 0.4.1.
Cargo.lock Updates the locked workspace package metadata for mtu to 0.4.1.

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Straightforward patch version bump for mtu 0.4.0 → 0.4.1, presumably to unblock cargo publish after workspace-related publishing issues. Changes are limited to mtu/Cargo.toml and the corresponding Cargo.lock entry, plus a trailing-newline cleanup.

No concerns:

  • neqo-transport depends on mtu via path = "../mtu", so no downstream version pins need updating.
  • Patch bump is appropriate — no public API changes.
  • Cargo.lock is consistent with the version change.

@mxinden
Copy link
Copy Markdown
Member

mxinden commented Apr 16, 2026

Because apparently in a workspace you can't just cargo publish in a subdirectory...

I am not following. Can you expand? You can publish individual crates of a workspace.

@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 16, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.42%. Comparing base (824b15d) to head (87c5e33).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3563      +/-   ##
==========================================
+ Coverage   94.37%   94.42%   +0.04%     
==========================================
  Files         133      133              
  Lines       40081    40081              
  Branches    40081    40081              
==========================================
+ Hits        37828    37845      +17     
+ Misses       1406     1390      -16     
+ Partials      847      846       -1     
Flag Coverage Δ
freebsd 93.48% <ø> (+14.93%) ⬆️
linux 94.52% <ø> (+<0.01%) ⬆️
macos 94.45% <ø> (-0.02%) ⬇️
windows 94.51% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
neqo-common 98.61% <ø> (ø)
neqo-crypto 87.08% <ø> (+0.58%) ⬆️
neqo-http3 93.92% <ø> (ø)
neqo-qpack 95.14% <ø> (ø)
neqo-transport 95.60% <ø> (+0.01%) ⬆️
neqo-udp 84.90% <ø> (ø)
mtu 86.61% <ø> (+0.15%) ⬆️

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean patch-bump to unblock cargo publish from the workspace.

What this does:

  • Bumps mtu 0.4.0 → 0.4.1 (version + lockfile consistent).
  • Inlines categories and readme in mtu/Cargo.toml — the workspace-inherited values were wrong for standalone publishing ("web-programming" doesn't apply to mtu, and the workspace readme would resolve to the root README.md).
  • Fixes stale links in README.md and SECURITY.md to point at mozilla/neqo (post-monorepo move) and corrects the Firefox vendored path from mtu-transport to mtu.
  • Fixes "activly" → "actively" typo.

No code changes, no API surface changes. LGTM.

With some minor metadata corrections.
@larseggert
Copy link
Copy Markdown
Collaborator Author

I am not following. Can you expand? You can publish individual crates of a workspace.

I got confused because the mtu crate was published with the neqo README. Because of the Cargo.toml settings, not because of what I thought happened.

Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean patch bump to unblock cargo publish from the workspace. Changes are well-scoped:

  • Version 0.4.0 → 0.4.1 with consistent Cargo.lock update.
  • Workspace-inherited license, categories, and readme correctly inlined for standalone publishing. categories appropriately narrowed from ["network-programming", "web-programming"] to ["network-programming"].
  • Stale links updated to mozilla/neqo post-monorepo move; vendored Firefox paths corrected from mtu-transport to mtu.
  • No API or code changes; patch bump is semver-appropriate.

LGTM.

Comment thread mtu/Cargo.toml
@github-actions
Copy link
Copy Markdown
Contributor

Benchmark results

Significant performance differences relative to 824b15d.

transfer/1-conn/1-100mb-req (aka. Upload): 💔 Performance has regressed by +1.4333%.
       time:   [207.02 ms 207.46 ms 208.01 ms]
       thrpt:  [480.75 MiB/s 482.01 MiB/s 483.05 MiB/s]
change:
       time:   [+1.1209% +1.4333% +1.7825] (p = 0.00 < 0.05)
       thrpt:  [-1.7513% -1.4131% -1.1085]
       Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
All results
transfer/1-conn/1-100mb-resp (aka. Download): Change within noise threshold.
       time:   [205.48 ms 205.85 ms 206.26 ms]
       thrpt:  [484.81 MiB/s 485.78 MiB/s 486.66 MiB/s]
change:
       time:   [+0.8900% +1.1567% +1.4134] (p = 0.00 < 0.05)
       thrpt:  [-1.3937% -1.1434% -0.8821]
       Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
transfer/1-conn/10_000-parallel-1b-resp (aka. RPS): No change in performance detected.
       time:   [285.68 ms 287.51 ms 289.40 ms]
       thrpt:  [34.554 Kelem/s 34.781 Kelem/s 35.005 Kelem/s]
change:
       time:   [-1.4550% -0.5337% +0.4141] (p = 0.26 > 0.05)
       thrpt:  [-0.4124% +0.5366% +1.4765]
       No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild
transfer/1-conn/1-1b-resp (aka. HPS): No change in performance detected.
       time:   [39.241 ms 39.384 ms 39.548 ms]
       thrpt:  [25.286   B/s 25.391   B/s 25.483   B/s]
change:
       time:   [-0.3490% +0.1916% +0.6838] (p = 0.48 > 0.05)
       thrpt:  [-0.6792% -0.1912% +0.3503]
       No change in performance detected.
Found 6 outliers among 100 measurements (6.00%)
1 (1.00%) high mild
5 (5.00%) high severe
transfer/1-conn/1-100mb-req (aka. Upload): 💔 Performance has regressed by +1.4333%.
       time:   [207.02 ms 207.46 ms 208.01 ms]
       thrpt:  [480.75 MiB/s 482.01 MiB/s 483.05 MiB/s]
change:
       time:   [+1.1209% +1.4333% +1.7825] (p = 0.00 < 0.05)
       thrpt:  [-1.7513% -1.4131% -1.1085]
       Performance has regressed.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
streams/walltime/1-streams/each-1000-bytes: No change in performance detected.
       time:   [596.28 µs 598.04 µs 600.16 µs]
       change: [-0.0046% +0.5146% +1.0176] (p = 0.06 > 0.05)
       No change in performance detected.
Found 9 outliers among 100 measurements (9.00%)
3 (3.00%) high mild
6 (6.00%) high severe
streams/walltime/1000-streams/each-1-bytes: Change within noise threshold.
       time:   [12.358 ms 12.390 ms 12.435 ms]
       change: [+0.3503% +0.7541% +1.2334] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
streams/walltime/1000-streams/each-1000-bytes: Change within noise threshold.
       time:   [44.834 ms 44.884 ms 44.940 ms]
       change: [+0.3578% +0.5187% +0.6772] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
transfer/walltime/pacing-false/varying-seeds: Change within noise threshold.
       time:   [78.511 ms 78.588 ms 78.685 ms]
       change: [-1.7712% -1.5532% -1.3701] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 6 outliers among 100 measurements (6.00%)
1 (1.00%) low mild
3 (3.00%) high mild
2 (2.00%) high severe
transfer/walltime/pacing-true/varying-seeds: Change within noise threshold.
       time:   [79.635 ms 79.702 ms 79.775 ms]
       change: [-1.1639% -0.9705% -0.8172] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
transfer/walltime/pacing-false/same-seed: Change within noise threshold.
       time:   [78.133 ms 78.194 ms 78.259 ms]
       change: [-2.2214% -2.0059% -1.8362] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 6 outliers among 100 measurements (6.00%)
6 (6.00%) high mild
transfer/walltime/pacing-true/same-seed: Change within noise threshold.
       time:   [79.764 ms 79.812 ms 79.861 ms]
       change: [-1.8731% -1.7271% -1.5982] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild

Download data for profiler.firefox.com or download performance comparison data.

@github-actions
Copy link
Copy Markdown
Contributor

Failed Interop Tests

QUIC Interop Runner, client vs. server, differences relative to main at 824b15d.

neqo-pr as clientneqo-pr as server
neqo-pr vs. go-x-net: BP BA
neqo-pr vs. haproxy: ⚠️L1 BP BA
neqo-pr vs. kwik: S L1 C1 BP BA
neqo-pr vs. linuxquic: L1
neqo-pr vs. lsquic: L1 C1
neqo-pr vs. msquic: A L1 L2 C1
neqo-pr vs. mvfst: A BP BA
neqo-pr vs. neqo: Z A
neqo-pr vs. nginx: BP BA
neqo-pr vs. ngtcp2: CM
neqo-pr vs. picoquic: A
neqo-pr vs. quic-go: A
neqo-pr vs. quic-zig: ⚠️C1
neqo-pr vs. quiche: BP BA
neqo-pr vs. s2n-quic: BA CM
neqo-pr vs. tquic: S BP BA
neqo-pr vs. xquic: A L1
aioquic vs. neqo-pr: Z CM
go-x-net vs. neqo-pr: CM
kwik vs. neqo-pr: Z BP BA CM
lsquic vs. neqo-pr: Z
msquic vs. neqo-pr: Z ⚠️L1 CM
mvfst vs. neqo-pr: Z A L1 C1 CM
neqo vs. neqo-pr: Z A
openssl vs. neqo-pr: LR M A CM
picoquic vs. neqo-pr: Z
quic-go vs. neqo-pr: CM
quiche vs. neqo-pr: Z 🚀C1 CM
quinn vs. neqo-pr: Z ⚠️L1 V2 CM
s2n-quic vs. neqo-pr: ⚠️B CM
tquic vs. neqo-pr: Z CM
xquic vs. neqo-pr: M CM
All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-pr as client

neqo-pr as server

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

neqo-pr as client

neqo-pr as server

@github-actions
Copy link
Copy Markdown
Contributor

Client/server transfer results

Performance differences relative to 824b15d.

Transfer of 33554432 bytes over loopback, min. 100 runs. All unit-less numbers are in milliseconds.

Client vs. server (params) Mean ± σ Min Max MiB/s ± σ Δ baseline Δ baseline
neqo-neqo-newreno-nopacing 92.1 ± 4.0 85.7 115.9 347.5 ± 8.0 💔 1.2 1.3%
neqo-quiche-cubic 191.4 ± 2.9 185.9 199.9 167.2 ± 11.0 💔 1.6 0.8%
quiche-neqo-cubic 175.4 ± 5.6 167.2 208.9 182.5 ± 5.7 💔 1.8 1.1%

Table above only shows statistically significant changes. See all results below.

All results

Transfer of 33554432 bytes over loopback, min. 100 runs. All unit-less numbers are in milliseconds.

Client vs. server (params) Mean ± σ Min Max MiB/s ± σ Δ baseline Δ baseline
google-google-nopacing 455.8 ± 1.7 452.3 461.1 70.2 ± 18.8
google-neqo-cubic 263.6 ± 2.8 259.0 273.9 121.4 ± 11.4 0.2 0.1%
msquic-msquic-nopacing 138.0 ± 40.5 112.3 378.1 231.9 ± 0.8
msquic-neqo-cubic 152.5 ± 41.0 118.9 407.4 209.9 ± 0.8 1.7 1.1%
neqo-google-cubic 762.8 ± 2.6 755.7 774.5 42.0 ± 12.3 -0.2 -0.0%
neqo-msquic-cubic 149.7 ± 1.5 146.0 154.3 213.8 ± 21.3 -0.3 -0.2%
neqo-neqo-cubic 91.2 ± 2.9 86.0 100.8 350.9 ± 11.0 0.7 0.8%
neqo-neqo-cubic-nopacing 89.8 ± 2.2 86.0 96.8 356.3 ± 14.5 0.2 0.2%
neqo-neqo-newreno 90.9 ± 2.4 86.5 97.4 352.2 ± 13.3 0.7 0.8%
neqo-neqo-newreno-nopacing 92.1 ± 4.0 85.7 115.9 347.5 ± 8.0 💔 1.2 1.3%
neqo-quiche-cubic 191.4 ± 2.9 185.9 199.9 167.2 ± 11.0 💔 1.6 0.8%
neqo-s2n-cubic 216.1 ± 2.5 210.7 224.9 148.1 ± 12.8 -0.7 -0.3%
quiche-neqo-cubic 175.4 ± 5.6 167.2 208.9 182.5 ± 5.7 💔 1.8 1.1%
quiche-quiche-nopacing 138.8 ± 3.5 133.1 164.3 230.5 ± 9.1
s2n-neqo-cubic 213.8 ± 3.4 206.2 224.8 149.7 ± 9.4 0.3 0.2%
s2n-s2n-nopacing 299.5 ± 35.0 278.8 390.2 106.9 ± 0.9

Download data for profiler.firefox.com or download performance comparison data.

@larseggert larseggert merged commit 42f8068 into mozilla:main Apr 16, 2026
186 of 187 checks passed
@larseggert larseggert deleted the chore-mtu-0.4.1 branch April 18, 2026 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants