Skip to content

Cut redundant CI work - #36

Closed
moreal wants to merge 3 commits into
mainfrom
ci/snippets-cpython-ubuntu-only
Closed

moreal wants to merge 3 commits into
mainfrom
ci/snippets-cpython-ubuntu-only

Conversation

@moreal

@moreal moreal commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

One of checkbox below must be checked.

  • I did not use AI to write the code of this patch.
  • This PR follows our AI policy

Summary

Cuts redundant CI work without adding jobs.

  • cargo doc --no-deps.
  • The example projects share one target directory.
  • One macOS runner checks both macOS cross targets. The two cargo check (macos-latest, …) checks become one; update branch protection if they are required.

Measured on the same base commit, main vs this PR, for steps that did not restore a cache in either run:

Step main This PR
cargo doc 7.5 min 4.8 min
Build example projects 3.9 min 2.9 min
macOS cargo check 2 runners, 8.1 + 7.2 min 1 runner, 8.9 min

AI assistance

Claude Code wrote all of this PR: the investigation of CI timings, every commit, and this description, at the PR author's direction. It verified the changes with actionlint and zizmor and with cargo unit graphs of the example and macOS check builds; the changes were verified on macOS and Windows only by this PR's CI runs.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JpHqXiC3mDShqfsPxvr9ey

moreal commented Oct 24, 2026

Copy link
Copy Markdown
Owner Author

Run snippets and cpython tests (ubuntu-latest) fails on test_snippets.py::SampleTestCase::test_cpython_stdlib_io: CPython 3.15.0 runs extra_tests/snippets/stdlib_io.py and the assertion at line 172 ("attribute '_CHUNK_SIZE' of '_io.TextIOWrapper' objects cannot be deleted") no longer matches CPython's message.

This is not caused by this PR: ubuntu still runs the full set (490 tests, no filter), and the same test fails with the same assertion on main in run #92 (06007c8). No fix exists yet; it belongs in a separate change to the snippet, not in this CI-timing experiment, so no re-run.


Generated by Claude Code

@moreal moreal changed the title Check snippets against CPython only on ubuntu-latest Cut redundant CI work and fix two failures on main Oct 24, 2026
@moreal
moreal marked this pull request as ready for review October 24, 2026 14:57
@moreal
moreal force-pushed the ci/snippets-cpython-ubuntu-only branch 4 times, most recently from 81aed75 to 48572fd Compare October 25, 2026 05:47
@moreal moreal changed the title Cut redundant CI work and fix two failures on main Cut redundant CI work Oct 25, 2026
@moreal
moreal force-pushed the ci/snippets-cpython-ubuntu-only branch from 48572fd to afd479b Compare October 25, 2026 07:14
cargo doc ran rustdoc on every dependency as well; in run RustPython#91 that was
284 documented crates for a check of this workspace's own docs.

Assisted-by: Claude Code
Claude-Session: https://claude.ai/code/session_01JpHqXiC3mDShqfsPxvr9ey
Each example project is its own workspace and built into its own target
directory, so the second build recompiled the dependencies the first had
just built. Of the 359 units the frozen_stdlib build needs, 261 are
identical to units of the barebone build.

Assisted-by: Claude Code
Claude-Session: https://claude.ai/code/session_01JpHqXiC3mDShqfsPxvr9ey
macOS runners have the smallest concurrent-job limit of the hosted
runners. The aarch64-apple-ios and x86_64-apple-darwin checks now run in
one job, with one cargo invocation per feature set that passes both
targets, so they also share the host-side build scripts and proc macros.
The matrix entry lists the targets separated by a space, because the
target is part of the cache key and actions/cache rejects commas.

This renames the two "cargo check (macos-latest, ...)" checks to one.

Assisted-by: Claude Code
Claude-Session: https://claude.ai/code/session_01JpHqXiC3mDShqfsPxvr9ey
@moreal
moreal force-pushed the ci/snippets-cpython-ubuntu-only branch 4 times, most recently from cab57af to 86d9ce1 Compare October 25, 2026 11:53
@moreal moreal closed this Oct 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants