Title: chore(scripts): render cli_interactive tapes in parallel by bearomorphism · Pull Request #2010 · commitizen-tools/commitizen · GitHub
Open Graph Title: chore(scripts): render cli_interactive tapes in parallel by bearomorphism · Pull Request #2010 · commitizen-tools/commitizen
X Title: chore(scripts): render cli_interactive tapes in parallel by bearomorphism · Pull Request #2010 · commitizen-tools/commitizen
Description: Description Follow-up to PR #2009 (deterministic gif regeneration) that makes local iteration faster: Parallelism in scripts/gen_cli_interactive_gifs.py. Tapes now render through a ThreadPoolExecutor with the default capped at min(len(tapes), 4); -j N overrides. Errors are reported per tape with a final summary instead of aborting on the first failure. The poe task doc:screenshots still calls gen_cli_interactive_gifs() with no args (zero-arg compatible signature), so nothing changes for the standard render everything path. Per-tape workdir in shared/base.tape + shared/cleanup.tape. Both files used to hardcode /tmp/commitizen-example, which would race once multiple tapes ran concurrently. Replaced with mktemp -d "${TMPDIR:-/tmp}/commitizen-example.XXXXXX" saved in a per-tape $WORKDIR shell variable and cleaned up at the end. Rendered gifs are unchanged (the setup runs inside Hide). Checklist I have read the contributing guidelines Was generative AI tooling used to co-author this PR? Yes (please specify the tool below) Generated-by: GitHub Copilot CLI (claude-opus-4.7-1m-internal) following the guidelines Code Changes Run uv run poe all locally to ensure this change passes linter check and tests poe lint clean (ruff + mypy). Same pre-existing Windows-only flakes as PR #2009 (gpg setup + a parallel-test race), unrelated to this change. Manually test the changes: python scripts/gen_cli_interactive_gifs.py --help -- argparse output renders. vhs validate passes on all 5 tapes after the shared/ patch. Full vhs render not run locally (native Windows vhs hangs on ttyd+WSL bash; same caveat as PR #2009). Update the documentation for the changes N/A -- behaviour of uv run poe doc:screenshots is unchanged. Expected Behavior uv run poe doc:screenshots continues to render all five interactive gifs (now in parallel, with the same outputs). python scripts/gen_cli_interactive_gifs.py [-j N] renders all tapes with up to N parallel workers (default min(len(tapes), 4)). Parallel runs no longer race on a shared workdir, because each tape now operates in its own mktemp -d directory. Steps to Test This Pull Request # Lint uv run poe lint # Argparse python scripts/gen_cli_interactive_gifs.py --help # Tape syntax still valid cd docs/images && vhs validate bump.tape commit.tape init.tape shortcut_default.tape shortcut_custom.tape # (optional, Linux/WSL) End-to-end render uv run python scripts/gen_cli_interactive_gifs.py # all 5 in parallel uv run python scripts/gen_cli_interactive_gifs.py -j 1 # serial uv run poe doc:screenshots # poe task still works Additional Context Depends conceptually on but does not require PR #2009 (deterministic gifs). The two PRs touch disjoint files except for shared/base.tape and shared/cleanup.tape, which only PR B modifies.
Open Graph Description: Description Follow-up to PR #2009 (deterministic gif regeneration) that makes local iteration faster: Parallelism in scripts/gen_cli_interactive_gifs.py. Tapes now render through a ThreadPoolExec...
X Description: Description Follow-up to PR #2009 (deterministic gif regeneration) that makes local iteration faster: Parallelism in scripts/gen_cli_interactive_gifs.py. Tapes now render through a ThreadPoolExec...
Opengraph URL: https://github.com/commitizen-tools/commitizen/pull/2010
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:9a449c63-b86c-0186-aa48-85f2cf2fe160 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | DB7A:80108:4449C0:639607:6A61E882 |
| html-safe-nonce | 520e251a492b1f8cc43d7db52b2d7f3b053a8a6681d12b649364af45020c3af1 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEQjdBOjgwMTA4OjQ0NDlDMDo2Mzk2MDc6NkE2MUU4ODIiLCJ2aXNpdG9yX2lkIjoiMTgxODQ1Njk4NTYwNjE1NDM3MCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 6208244c1dc69f6a77cc96e97e39229a273e3febfe889618d8ef93164da53cb4 |
| hovercard-subject-tag | pull_request:3773329965 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/commitizen-tools/commitizen/pull/2010/files |
| twitter:image | https://avatars.githubusercontent.com/u/26526132?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/26526132?s=400&v=4 |
| og:image:alt | Description Follow-up to PR #2009 (deterministic gif regeneration) that makes local iteration faster: Parallelism in scripts/gen_cli_interactive_gifs.py. Tapes now render through a ThreadPoolExec... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | b2de8c74e5e61e893155ba46ee41bc66170c1644cb795adefa8386d490f7781c |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/commitizen-tools/commitizen git https://github.com/commitizen-tools/commitizen.git |
| octolytics-dimension-user_id | 62252524 |
| octolytics-dimension-user_login | commitizen-tools |
| octolytics-dimension-repository_id | 106127589 |
| octolytics-dimension-repository_nwo | commitizen-tools/commitizen |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 106127589 |
| octolytics-dimension-repository_network_root_nwo | commitizen-tools/commitizen |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | d1866027ded575df8a15c731dd8b9986c9483ceb |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width