chore: check-in Cargo.lock#2208
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2208 +/- ##
==========================================
+ Coverage 95.37% 95.40% +0.02%
==========================================
Files 112 112
Lines 36569 36569
==========================================
+ Hits 34879 34888 +9
+ Misses 1690 1681 -9 ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
Failed Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
All resultsSucceeded Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
Unsupported Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
|
Currently we use `quinn-udp` `v0.5.4`. `quinn-udp` `v0.5.5` fixes [`recvmmsg` calls on Android x86](quinn-rs/quinn#1966). `quinn-udp` `v0.5.6` adds [experimental multi-message support on Apple platforms](quinn-rs/quinn#1993) and [fixes an unnecessary `windows-sys` version restriction](quinn-rs/quinn#2021). While not strictly necessary, given that our current version specification (i.e. `version = "0.5.4"`) already allows users to use Neqo with `quinn-udp` `v0.5.6`, this commit updates to `quinn-udp` `v0.5.6` anyways, thus making sure CI tests with latest version. In case mozilla#2208 lands, future compatible version updates would touch the `Cargo.lock` file, not `Cargo.toml`.
|
Don't have a strong opinion here due to limited experience maintaining Rust libs. Do we think this is "best for the project"? |
Currently we use `quinn-udp` `v0.5.4`. `quinn-udp` `v0.5.5` fixes [`recvmmsg` calls on Android x86](quinn-rs/quinn#1966). `quinn-udp` `v0.5.6` adds [experimental multi-message support on Apple platforms](quinn-rs/quinn#1993) and [fixes an unnecessary `windows-sys` version restriction](quinn-rs/quinn#2021). While not strictly necessary, given that our current version specification (i.e. `version = "0.5.4"`) already allows users to use Neqo with `quinn-udp` `v0.5.6`, this commit updates to `quinn-udp` `v0.5.6` anyways, thus making sure CI tests with latest version. In case #2208 lands, future compatible version updates would touch the `Cargo.lock` file, not `Cargo.toml`. Co-authored-by: Lars Eggert <lars@eggert.org>
|
@martinthomson objections? Would catch things like #2219 early by making the |
|
Friendly ping @martinthomson. In case there are no objections, I will update the pull request before merge. |
|
No objections, though dependabot spam seems like the real cost. If it gets annoying, we can back it out. |
Benchmark resultsPerformance differences relative to f3d0191. coalesce_acked_from_zero 1+1 entries: 💔 Performance has regressed. time: [99.584 ns 99.926 ns 100.27 ns]
change: [+11.813% +12.462% +13.107%] (p = 0.00 < 0.05)
coalesce_acked_from_zero 3+1 entries: 💔 Performance has regressed. time: [117.63 ns 117.95 ns 118.30 ns]
change: [+18.148% +19.086% +19.991%] (p = 0.00 < 0.05)
coalesce_acked_from_zero 10+1 entries: 💔 Performance has regressed. time: [117.29 ns 117.78 ns 118.35 ns]
change: [+18.795% +19.275% +19.819%] (p = 0.00 < 0.05)
coalesce_acked_from_zero 1000+1 entries: 💔 Performance has regressed. time: [98.212 ns 101.89 ns 110.21 ns]
change: [+19.574% +24.253% +34.244%] (p = 0.00 < 0.05)
RxStreamOrderer::inbound_frame(): Change within noise threshold. time: [111.77 ms 111.83 ms 111.88 ms]
change: [+0.4140% +0.4866% +0.5602%] (p = 0.00 < 0.05)
transfer/pacing-false/varying-seeds: No change in performance detected. time: [26.888 ms 27.973 ms 29.085 ms]
change: [-3.6318% +1.4463% +6.8814%] (p = 0.60 > 0.05)
transfer/pacing-true/varying-seeds: No change in performance detected. time: [35.408 ms 37.102 ms 38.796 ms]
change: [-3.0243% +3.8076% +10.882%] (p = 0.27 > 0.05)
transfer/pacing-false/same-seed: No change in performance detected. time: [24.645 ms 25.338 ms 26.040 ms]
change: [-7.5445% -3.5393% +0.5740%] (p = 0.11 > 0.05)
transfer/pacing-true/same-seed: No change in performance detected. time: [41.193 ms 43.375 ms 45.618 ms]
change: [-4.9679% +1.9588% +9.2446%] (p = 0.58 > 0.05)
1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: Change within noise threshold. time: [905.29 ms 915.06 ms 925.22 ms]
thrpt: [108.08 MiB/s 109.28 MiB/s 110.46 MiB/s]
change:
time: [-3.2264% -1.7583% -0.2723%] (p = 0.02 < 0.05)
thrpt: [+0.2730% +1.7898% +3.3339%]
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected. time: [316.16 ms 319.33 ms 322.59 ms]
thrpt: [30.999 Kelem/s 31.316 Kelem/s 31.630 Kelem/s]
change:
time: [-1.8599% -0.5220% +0.8649%] (p = 0.46 > 0.05)
thrpt: [-0.8575% +0.5247% +1.8952%]
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected. time: [33.741 ms 33.901 ms 34.066 ms]
thrpt: [29.355 elem/s 29.498 elem/s 29.638 elem/s]
change:
time: [-0.0963% +0.6513% +1.3936%] (p = 0.10 > 0.05)
thrpt: [-1.3745% -0.6471% +0.0964%]
1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client: No change in performance detected. time: [1.6178 s 1.6360 s 1.6550 s]
thrpt: [60.425 MiB/s 61.125 MiB/s 61.812 MiB/s]
change:
time: [-1.0012% +0.7766% +2.6995%] (p = 0.40 > 0.05)
thrpt: [-2.6286% -0.7706% +1.0113%]
Client/server transfer resultsTransfer of 33554432 bytes over loopback.
|
I did some more digging. Setting the
Yes, we won't get any updates for non-security releases. That said, we have to coordinate those with mozilla-central anyways. Might as well do it manually before a release. I updated the pull request:
Depends on #2240 for now. |
This commit checks the `Cargo.lock` file into git. Version controlling `Cargo.lock` makes e.g. our CI builds more reproducible, where two consecutive CI runs on the same commit use the same set of dependencies, even if a compatible update of a dependency was published in between the two runs. This is also helpful when cutting patch releases of old Neqo versions, where dependencies since shipped a breaking change in a patch version, e.g. a MSRV update. See for example pinned dependencies in a recent Neqo patch release to the Neqo v0.6 family. 66e60f3 While previously the recommendation by the cargo team was for libraries to not check in their `Cargo.lock`, this recommendation has since been replaced by "do what is best for the project". https://blog.rust-lang.org/2023/08/29/committing-lockfiles.html
|
Dependency Review CI failure will be fixed with https://bugzilla.mozilla.org/show_bug.cgi?id=1932137. |
See corresponding mozilla-central patch https://bugzilla.mozilla.org/show_bug.cgi?id=1932137.
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.3. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493
|
Once https://phabricator.services.mozilla.com/D229591 and https://phabricator.services.mozilla.com/D229592 landed, we can merge here. |
|
Need to wait for https://bugzilla.mozilla.org/show_bug.cgi?id=1932635. |
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.3. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493 UltraBlame original commit: afdd9e4681c18d09d2c124c1af5033cbd49acf90
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.3. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493 UltraBlame original commit: afdd9e4681c18d09d2c124c1af5033cbd49acf90
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.3. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493 UltraBlame original commit: afdd9e4681c18d09d2c124c1af5033cbd49acf90
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.4. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493
See same change in Neqo mozilla/neqo#2208.
See same change in Neqo mozilla/neqo#2208.
See same change in Neqo mozilla/neqo#2208.
See same change in Neqo mozilla/neqo#2208.
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.4. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493 UltraBlame original commit: ab95d9361f380b29216548f78ce04b1827754c58
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.4. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493 UltraBlame original commit: ab95d9361f380b29216548f78ce04b1827754c58
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.4. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493 UltraBlame original commit: ab95d9361f380b29216548f78ce04b1827754c58
* chore: check-in Cargo.lock See same change in Neqo mozilla/neqo#2208. * Include mozbuild and mtu 0.2.3 --------- Co-authored-by: Lars Eggert <lars@eggert.org>
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.3. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493
…-reviewers See `url` GitHub release https://github.com/servo/rust-url/releases/tag/v2.5.4. Unblocks mozilla/neqo#2208. Differential Revision: https://phabricator.services.mozilla.com/D229493
This commit checks the
Cargo.lockfile into git.Version controlling
Cargo.lockmakes e.g. our CI builds more reproducible, where two consecutive CI runs on the same commit use the same set of dependencies, even if a compatible update of a dependency was published in between the two runs.This is also helpful when cutting patch releases of old Neqo versions, where dependencies since shipped a breaking change in a patch version, e.g. a MSRV update. See for example pinned dependencies in a recent Neqo patch release to the Neqo v0.6 family.
mxinden@66e60f3
While previously the recommendation by the cargo team was for libraries to not check in their
Cargo.lock, this recommendation has since been replaced by "do what is best for the project".https://blog.rust-lang.org/2023/08/29/committing-lockfiles.html
I generated a fresh
Cargo.lock, i.e. ranrm Cargo.lock && cargo check && git add Cargo.lock.We could as well base our
Cargo.lockon mozilla-central'sCargo.lock. Though I can not think of a simple way to then keep the two in sync going forward.Dependabot will attempt to keep the
Cargo.lockup-to-date, in other words will open many pull requests updating patch versions. I don't know how to prevent this. Unfortunately, the Dependabotversion-strategyparameter is not supported for the cargo ecosystem.What do folks think?