Skip to content

ci: fetch the ADR citation check from .github instead of keeping a copy - #539

Merged
lesnik512 merged 2 commits into
mainfrom
shared-adr-check
Sep 27, 2026
Merged

lesnik512 merged 2 commits into
mainfrom
shared-adr-check

Conversation

@lesnik512

Copy link
Copy Markdown
Member

What

Deletes tests/test_adr_citations.py (one of 25 byte-identical copies across the org) and adds a just adr-check recipe that fetches the file from modern-python/.github at main into a temp dir and runs it with pytest --rootdir=.. The lint job runs it once; it is not on the pytest matrix, since the check is interpreter-independent.

Same change as the pilot, modern-python/eof-fixer#55, which is merged and green on main.

Why

Tracking main rather than a pinned ref or a package is deliberate: one place to change the rule, no release step, no version bumps across 25 repos. The trade is that a change in .github takes effect everywhere at once, and a failing run cannot be reproduced against the file it saw unless the fetch is repeated while main is unchanged.

--rootdir=. makes the fetched file see this repo as the root without applying this repo's addopts (so the coverage gate does not fire on a one-file run). adr_check_source can be overridden to a file:// path to run a not-yet-merged version of the check.

The deleted copy is byte-identical to the file .github served before modern-python/.github#119, which changed only how the root is found. The rule this repo is checked against is unchanged.

Verified locally

just adr-check against .github main: 7 passed, rootdir this repo.

@github-actions github-actions Bot left a comment •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Benchmark

Details
Benchmark suite Current: e50feb8 Previous: d1c396d Ratio
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type 3604842.7601787206 iter/sec (stddev: 1.0137079900949627e-8) 3604523.763849575 iter/sec (stddev: 1.4127746794576004e-8) 1.00
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry 3596045.946100675 iter/sec (stddev: 1.0406374627092676e-8) 3561481.4808546705 iter/sec (stddev: 1.3453845578365746e-8) 0.99
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve 15304.88836083378 iter/sec (stddev: 0.000055294000130595726) 15432.305893691671 iter/sec (stddev: 0.00004976669984009631) 1.01
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached 12833.846037999343 iter/sec (stddev: 0.00015168599244315121) 12949.205350782402 iter/sec (stddev: 0.00012426848120208273) 1.01
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] 456.3600787550683 iter/sec (stddev: 0.00008499655119575039) 375.28933217302193 iter/sec (stddev: 0.000507368479632282) 0.82
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] 401.6551323197376 iter/sec (stddev: 0.00021597353118814482) 361.32035388403256 iter/sec (stddev: 0.00004799955468900768) 0.90
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] 364.81449053153244 iter/sec (stddev: 0.00020846789214877846) 337.5179274756919 iter/sec (stddev: 0.000045187621396375984) 0.93
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] 1592.8290834675536 iter/sec (stddev: 0.00020178804627385806) 1641.1705577903658 iter/sec (stddev: 0.00019205456875479165) 1.03
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] 1276.438240348917 iter/sec (stddev: 0.00022776560215290658) 1298.578271058942 iter/sec (stddev: 0.00020862423985784913) 1.02
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] 921.8796141994545 iter/sec (stddev: 0.00027730088531486614) 952.7774817321634 iter/sec (stddev: 0.0002226182121877181) 1.03
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] 1370.2836407192915 iter/sec (stddev: 0.0011519847801412441) 1391.050458941476 iter/sec (stddev: 0.001243599495224303) 1.02
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] 1179.0179142342115 iter/sec (stddev: 0.00019340233566105135) 1164.2871564074974 iter/sec (stddev: 0.00021346267823225403) 0.99
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] 773.5888963331613 iter/sec (stddev: 0.0002552469750726053) 786.1576041987564 iter/sec (stddev: 0.0002090567815794813) 1.02
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container 686938.0009949132 iter/sec (stddev: 5.132094632348138e-8) 662315.0909413252 iter/sec (stddev: 4.413415350694558e-8) 0.96
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope 630452.617221959 iter/sec (stddev: 3.578682874362444e-8) 618398.2699448045 iter/sec (stddev: 2.8312079972643534e-8) 0.98
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch 2282.5816281790335 iter/sec (stddev: 0.0000190069509022362) 2263.824419548017 iter/sec (stddev: 0.000021995034717063743) 0.99
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control 57215.537800543236 iter/sec (stddev: 0.0000024603002237585536) 57660.73397306437 iter/sec (stddev: 0.000001890432490426389) 1.01
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale 44305.98963476316 iter/sec (stddev: 0.000002267564459461066) 43392.574753277244 iter/sec (stddev: 0.000002215583600321026) 0.98
benchmarks/test_guard_resolve.py::test_g1_transient_resolve 2203627.1592944018 iter/sec (stddev: 2.6839650105047843e-8) 2081521.4339735133 iter/sec (stddev: 2.4175582291326226e-8) 0.94
benchmarks/test_guard_resolve.py::test_g2_cached_resolve 3368179.9618638703 iter/sec (stddev: 1.5361920774554333e-8) 3349978.931983027 iter/sec (stddev: 1.8869423890749824e-8) 0.99
benchmarks/test_guard_resolve.py::test_g3_deep_chain 732913.576625566 iter/sec (stddev: 5.7271406069767484e-8) 725569.8938845276 iter/sec (stddev: 5.288702241210949e-8) 0.99
benchmarks/test_guard_resolve.py::test_g4_wide_resolve 467288.36580026295 iter/sec (stddev: 3.4358947852139286e-7) 465666.02488576923 iter/sec (stddev: 3.402036133750531e-7) 1.00
benchmarks/test_guard_resolve.py::test_g5_cross_scope 1899745.4008737237 iter/sec (stddev: 5.2050376218068924e-8) 1670557.2553010292 iter/sec (stddev: 3.0430727967972204e-8) 0.88
benchmarks/test_guard_resolve.py::test_g9_context_resolve 1048122.4733197157 iter/sec (stddev: 1.7354021187209665e-7) 1055918.8767067108 iter/sec (stddev: 1.46492654994018e-7) 1.01
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve 695566.4075526642 iter/sec (stddev: 1.0068932720300772e-7) 735214.5414792834 iter/sec (stddev: 4.402313971886136e-8) 1.06
benchmarks/test_guard_resolve.py::test_g18_alias_hop 1898827.4721354814 iter/sec (stddev: 3.560287665069411e-8) 2157406.2591867545 iter/sec (stddev: 1.262099569007158e-8) 1.14
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain 23395.973973995497 iter/sec (stddev: 0.00002342357873332732) 22938.558398534373 iter/sec (stddev: 0.000035845888230381465) 0.98
benchmarks/test_guard_validate.py::test_g11_validate_wide 14061.78827576985 iter/sec (stddev: 0.00002884089441020585) 14181.044536258234 iter/sec (stddev: 0.00002669957013370756) 1.01

This comment was automatically generated by workflow using github-action-benchmark.

@lesnik512
lesnik512 merged commit 76682ec into main Sep 27, 2026
10 checks passed
@lesnik512
lesnik512 deleted the shared-adr-check branch September 27, 2026 19:49
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.

1 participant