Skip to content

feat: Add GitHub Copilot PR review instructions#3044

Merged
larseggert merged 2 commits into
mozilla:mainfrom
larseggert:feat-copilot-instructions
Oct 17, 2025
Merged

feat: Add GitHub Copilot PR review instructions#3044
larseggert merged 2 commits into
mozilla:mainfrom
larseggert:feat-copilot-instructions

Conversation

@larseggert
Copy link
Copy Markdown
Collaborator

And tell Claude to use them.

Copilot AI review requested due to automatic review settings October 13, 2025 17:28
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

This PR adds comprehensive GitHub Copilot PR review instructions by creating a new instructions file and updating the Claude code review workflow to reference it instead of external instructions.

Key changes:

  • Replaces external GitHub instructions URL with local .github/copilot-instructions.md file
  • Creates detailed Neqo-specific instructions covering repository structure, build commands, CI pipeline, and development guidelines
  • Updates the workflow to use the changed version of the instructions file when it's modified in a PR

Reviewed Changes

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

File Description
.github/workflows/claude-code-review.yml Updated to reference local instructions file instead of external URL
.github/copilot-instructions.md New comprehensive instructions file covering Neqo project structure, build commands, and development guidelines

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread .github/copilot-instructions.md Outdated
Co-authored-by: Copilot <[email protected]>
Signed-off-by: Lars Eggert <[email protected]>
Copilot AI review requested due to automatic review settings October 13, 2025 17:30
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

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


Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread .github/copilot-instructions.md
@codecov
Copy link
Copy Markdown

codecov Bot commented Oct 13, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.34%. Comparing base (3d2948d) to head (70834f1).
⚠️ Report is 8 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3044      +/-   ##
==========================================
- Coverage   93.37%   93.34%   -0.04%     
==========================================
  Files         123      123              
  Lines       35887    35887              
  Branches    35887    35887              
==========================================
- Hits        33511    33500      -11     
- Misses       1533     1545      +12     
+ Partials      843      842       -1     
Components Coverage Δ
neqo-common 97.41% <ø> (ø)
neqo-crypto 83.25% <ø> (-0.48%) ⬇️
neqo-http3 93.34% <ø> (ø)
neqo-qpack 94.18% <ø> (ø)
neqo-transport 94.42% <ø> (ø)
neqo-udp 78.84% <ø> (ø)
mtu 85.57% <ø> (-0.20%) ⬇️

@larseggert larseggert marked this pull request as ready for review October 13, 2025 17:38
@github-actions
Copy link
Copy Markdown
Contributor

Client/server transfer results

Performance differences relative to 3d2948d.

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 ± σ Δ main Δ main
google vs. google 455.9 ± 4.4 447.7 466.9 70.2 ± 7.3
google vs. neqo (cubic, paced) 279.1 ± 4.7 271.7 297.1 114.7 ± 6.8 -1.0 -0.3%
msquic vs. msquic 176.8 ± 62.5 136.1 465.4 181.0 ± 0.5
msquic vs. neqo (cubic, paced) 212.8 ± 63.8 148.5 422.5 150.4 ± 0.5 5.0 2.4%
neqo vs. google (cubic, paced) 760.9 ± 5.1 752.6 771.7 42.1 ± 6.3 -0.2 -0.0%
neqo vs. msquic (cubic, paced) 157.7 ± 5.7 149.9 185.2 203.0 ± 5.6 -1.7 -1.1%
neqo vs. neqo (cubic) 90.6 ± 4.9 83.0 108.4 353.1 ± 6.5 1.0 1.1%
neqo vs. neqo (cubic, paced) 93.0 ± 4.5 83.1 106.1 344.1 ± 7.1 💔 2.6 2.9%
neqo vs. neqo (reno) 90.4 ± 5.2 79.9 105.7 353.9 ± 6.2 💔 1.9 2.2%
neqo vs. neqo (reno, paced) 91.5 ± 4.8 83.9 107.3 349.9 ± 6.7 0.3 0.3%
neqo vs. quiche (cubic, paced) 192.1 ± 3.8 186.2 201.3 166.6 ± 8.4 💚 -1.9 -1.0%
neqo vs. s2n (cubic, paced) 221.4 ± 3.9 213.4 228.6 144.5 ± 8.2 💔 1.8 0.8%
quiche vs. neqo (cubic, paced) 153.5 ± 5.0 139.7 164.6 208.4 ± 6.4 -0.8 -0.5%
quiche vs. quiche 145.1 ± 4.4 136.7 155.9 220.5 ± 7.3
s2n vs. neqo (cubic, paced) 173.5 ± 5.0 161.7 187.6 184.5 ± 6.4 -0.5 -0.3%
s2n vs. s2n 250.3 ± 27.4 232.8 347.7 127.8 ± 1.2

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

neqo-latest as client

neqo-latest as server

All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

neqo-latest as client

neqo-latest as server

@github-actions
Copy link
Copy Markdown
Contributor

Benchmark results

Performance differences relative to 791fd40.

1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.
       time:   [199.75 ms 200.13 ms 200.57 ms]
       thrpt:  [498.59 MiB/s 499.68 MiB/s 500.63 MiB/s]
change:
       time:   [−0.0125% +0.2388% +0.5285%] (p = 0.08 > 0.05)
       thrpt:  [−0.5257% −0.2382% +0.0125%]

Found 4 outliers among 100 measurements (4.00%)
2 (2.00%) low mild
1 (1.00%) high mild
1 (1.00%) high severe

1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: Change within noise threshold.
       time:   [283.53 ms 285.25 ms 286.96 ms]
       thrpt:  [34.848 Kelem/s 35.057 Kelem/s 35.270 Kelem/s]
change:
       time:   [−2.1023% −1.2879% −0.4011%] (p = 0.00 < 0.05)
       thrpt:  [+0.4028% +1.3047% +2.1474%]
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [28.432 ms 28.483 ms 28.533 ms]
       thrpt:  [35.047   B/s 35.109   B/s 35.171   B/s]
change:
       time:   [−0.1439% +0.0707% +0.2834%] (p = 0.52 > 0.05)
       thrpt:  [−0.2826% −0.0706% +0.1441%]

Found 19 outliers among 100 measurements (19.00%)
2 (2.00%) low severe
1 (1.00%) low mild
16 (16.00%) high severe

1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: No change in performance detected.
       time:   [202.80 ms 203.08 ms 203.42 ms]
       thrpt:  [491.59 MiB/s 492.41 MiB/s 493.09 MiB/s]
change:
       time:   [−0.2482% +0.0099% +0.2528%] (p = 0.94 > 0.05)
       thrpt:  [−0.2521% −0.0099% +0.2488%]

Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe

decode 4096 bytes, mask ff: No change in performance detected.
       time:   [11.593 µs 11.629 µs 11.672 µs]
       change: [−0.1664% +0.1978% +0.5701%] (p = 0.32 > 0.05)

Found 15 outliers among 100 measurements (15.00%)
2 (2.00%) low severe
4 (4.00%) low mild
1 (1.00%) high mild
8 (8.00%) high severe

decode 1048576 bytes, mask ff: No change in performance detected.
       time:   [3.0212 ms 3.0303 ms 3.0411 ms]
       change: [−0.6669% −0.1425% +0.3763%] (p = 0.58 > 0.05)

Found 9 outliers among 100 measurements (9.00%)
9 (9.00%) high severe

decode 4096 bytes, mask 7f: No change in performance detected.
       time:   [19.929 µs 19.976 µs 20.029 µs]
       change: [−0.1862% +0.0510% +0.2859%] (p = 0.68 > 0.05)

Found 13 outliers among 100 measurements (13.00%)
1 (1.00%) low severe
2 (2.00%) low mild
1 (1.00%) high mild
9 (9.00%) high severe

decode 1048576 bytes, mask 7f: No change in performance detected.
       time:   [5.0597 ms 5.0745 ms 5.0897 ms]
       change: [−0.6743% +0.0662% +0.6475%] (p = 0.87 > 0.05)

Found 22 outliers among 100 measurements (22.00%)
22 (22.00%) high severe

decode 4096 bytes, mask 3f: No change in performance detected.
       time:   [8.2785 µs 8.3196 µs 8.3651 µs]
       change: [−0.3520% +0.1161% +0.5399%] (p = 0.63 > 0.05)

Found 24 outliers among 100 measurements (24.00%)
8 (8.00%) low mild
3 (3.00%) high mild
13 (13.00%) high severe

decode 1048576 bytes, mask 3f: No change in performance detected.
       time:   [1.5879 ms 1.5948 ms 1.6031 ms]
       change: [−0.4531% +0.1528% +0.8556%] (p = 0.65 > 0.05)

Found 10 outliers among 100 measurements (10.00%)
2 (2.00%) high mild
8 (8.00%) high severe

1-streams/each-1000-bytes/wallclock-time: Change within noise threshold.
       time:   [584.94 µs 587.28 µs 589.89 µs]
       change: [+0.0940% +0.4816% +0.9548%] (p = 0.04 < 0.05)

Found 10 outliers among 100 measurements (10.00%)
10 (10.00%) high severe
1-streams/each-1000-bytes/simulated-time
time: [118.87 ms 119.11 ms 119.34 ms]
thrpt: [8.1828 KiB/s 8.1990 KiB/s 8.2154 KiB/s]
change:
time: [−0.2806% −0.0102% +0.2627%] (p = 0.95 > 0.05)
thrpt: [−0.2620% +0.0102% +0.2813%]
No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mild

1000-streams/each-1-bytes/wallclock-time: Change within noise threshold.
       time:   [13.785 ms 13.810 ms 13.836 ms]
       change: [−0.6912% −0.4201% −0.1480%] (p = 0.00 < 0.05)
1000-streams/each-1-bytes/simulated-time: No change in performance detected.
       time:   [14.982 s 14.996 s 15.010 s]
       thrpt:  [66.621   B/s 66.683   B/s 66.745   B/s]
change:
       time:   [−0.1827% −0.0515% +0.0766%] (p = 0.45 > 0.05)
       thrpt:  [−0.0766% +0.0515% +0.1831%]

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild

1000-streams/each-1000-bytes/wallclock-time: Change within noise threshold.
       time:   [49.022 ms 49.185 ms 49.344 ms]
       change: [−1.6306% −1.1107% −0.6032%] (p = 0.00 < 0.05)

Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) low mild
1 (1.00%) high mild
1000-streams/each-1000-bytes/simulated-time
time: [18.985 s 19.149 s 19.316 s]
thrpt: [50.557 KiB/s 50.998 KiB/s 51.440 KiB/s]
change:
time: [−1.6376% −0.5299% +0.6142%] (p = 0.37 > 0.05)
thrpt: [−0.6104% +0.5328% +1.6649%]
No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low mild
2 (2.00%) high mild

coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [87.984 ns 88.326 ns 88.672 ns]
       change: [−0.7866% −0.2793% +0.2280%] (p = 0.29 > 0.05)

Found 10 outliers among 100 measurements (10.00%)
8 (8.00%) high mild
2 (2.00%) high severe

coalesce_acked_from_zero 3+1 entries: No change in performance detected.
       time:   [105.86 ns 106.18 ns 106.52 ns]
       change: [−0.9312% +0.0468% +0.9608%] (p = 0.93 > 0.05)

Found 12 outliers among 100 measurements (12.00%)
12 (12.00%) high severe

coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [105.24 ns 105.78 ns 106.73 ns]
       change: [−0.5203% +0.0827% +0.7620%] (p = 0.80 > 0.05)

Found 9 outliers among 100 measurements (9.00%)
4 (4.00%) low mild
5 (5.00%) high severe

coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [88.761 ns 88.870 ns 88.997 ns]
       change: [−0.3857% +0.4284% +1.3238%] (p = 0.35 > 0.05)

Found 9 outliers among 100 measurements (9.00%)
5 (5.00%) high mild
4 (4.00%) high severe

RxStreamOrderer::inbound_frame(): No change in performance detected.
       time:   [109.02 ms 109.10 ms 109.18 ms]
       change: [−0.3577% −0.1501% +0.0232%] (p = 0.13 > 0.05)

Found 30 outliers among 100 measurements (30.00%)
9 (9.00%) low severe
1 (1.00%) low mild
6 (6.00%) high mild
14 (14.00%) high severe

sent::Packets::take_ranges: No change in performance detected.
       time:   [4.4873 µs 4.6160 µs 4.7489 µs]
       change: [−5.0558% −1.8707% +1.4787%] (p = 0.26 > 0.05)

Found 3 outliers among 100 measurements (3.00%)
2 (2.00%) high mild
1 (1.00%) high severe

transfer/pacing-false/varying-seeds/wallclock-time/run: No change in performance detected.
       time:   [25.006 ms 25.051 ms 25.106 ms]
       change: [−0.2903% −0.0504% +0.2011%] (p = 0.70 > 0.05)

Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe

transfer/pacing-false/varying-seeds/simulated-time/run: No change in performance detected.
       time:   [25.141 s 25.172 s 25.205 s]
       thrpt:  [162.51 KiB/s 162.72 KiB/s 162.92 KiB/s]
change:
       time:   [−0.2739% −0.0723% +0.1229%] (p = 0.48 > 0.05)
       thrpt:  [−0.1227% +0.0724% +0.2746%]
transfer/pacing-true/varying-seeds/wallclock-time/run: Change within noise threshold.
       time:   [25.475 ms 25.539 ms 25.603 ms]
       change: [−0.8973% −0.5408% −0.1715%] (p = 0.00 < 0.05)

Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild

transfer/pacing-true/varying-seeds/simulated-time/run: No change in performance detected.
       time:   [24.959 s 24.998 s 25.037 s]
       thrpt:  [163.60 KiB/s 163.86 KiB/s 164.11 KiB/s]
change:
       time:   [−0.3037% −0.0899% +0.1273%] (p = 0.42 > 0.05)
       thrpt:  [−0.1272% +0.0899% +0.3047%]

Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) high mild

transfer/pacing-false/same-seed/wallclock-time/run: No change in performance detected.
       time:   [25.207 ms 25.222 ms 25.238 ms]
       change: [−0.1692% −0.0087% +0.1197%] (p = 0.92 > 0.05)

Found 3 outliers among 100 measurements (3.00%)
3 (3.00%) high mild

transfer/pacing-false/same-seed/simulated-time/run: No change in performance detected.
       time:   [25.710 s 25.710 s 25.710 s]
       thrpt:  [159.31 KiB/s 159.31 KiB/s 159.31 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000%] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000%]
transfer/pacing-true/same-seed/wallclock-time/run: Change within noise threshold.
       time:   [26.073 ms 26.096 ms 26.122 ms]
       change: [−0.8385% −0.6611% −0.4998%] (p = 0.00 < 0.05)

Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe

transfer/pacing-true/same-seed/simulated-time/run: No change in performance detected.
       time:   [25.675 s 25.675 s 25.675 s]
       thrpt:  [159.53 KiB/s 159.53 KiB/s 159.53 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000%] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000%]

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

@larseggert larseggert added this pull request to the merge queue Oct 17, 2025
Merged via the queue into mozilla:main with commit be98b44 Oct 17, 2025
99 of 137 checks passed
@larseggert larseggert deleted the feat-copilot-instructions branch October 17, 2025 14:27
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