test: force aube npm backend in render-check's mise install - #49
Merged
Conversation
Fresh CI runners (no user mise config) default the npm backend to aube, which enforces stricter checks than npm/bun - notably rejecting packages that drop provenance attestation after a prior version had it (what caught the npm:cpd 5.0.13 regression). Force it here so render-check matches what consumer repos' CI actually hits, rather than whatever backend happens to be configured on the machine running this test. Needs a mise version that auto-installs the aube backend on demand (observed working on 2026.7.12, not on 2026.7.11 - older versions error "aube may be required but was not found" instead of installing it). CI intermittently runs an older cached/resolved mise release, so this is kept as its own commit/PR until that's no longer a concern.
shellcheck, shellharden, actionlint, rumdl, tombi, biome, mise install,
hk validate, and goreleaser check were all run one at a time per case,
despite having no dependencies on each other (hk validate still
serializes against other xdist workers via file_lock, just not against
this case's other checks). subprocess.run releases the GIL while
blocked, so a thread pool is enough without an asyncio rewrite. Pool
size is this worker's fair share of the machine's CPUs
(os.cpu_count() // PYTEST_XDIST_WORKER_COUNT), capped at len(checks).
Render via copier's Python API (copier.run_copy) instead of shelling
out to the CLI, avoiding a fresh interpreter spawn per case.
Add cached_check(): several checks are scoped to specific files/globs
that often render byte-identical across cases (mise.toml's [tools]
table and most mise-tasks/* scripts aren't project_name-parameterized).
Dedupe those by content hash so only the first case (across all xdist
workers) to see a given hash actually runs the check; every other case
with the same hash reads the cached result. Left the whole-tree ('.')
checks and goreleaser check (inherently per-label) alone, since they'd
rarely or never hit the cache.
Filter copier's DirtyLocalWarning, which fires routinely when iterating
locally against a dirty working tree and isn't a problem with the render.
1 task
hugoh
force-pushed
the
fix/renovate+mise-aube
branch
from
July 23, 2026 23:18
d350032 to
d1491a0
Compare
2 tasks
hugoh
enabled auto-merge
July 23, 2026 23:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
MISE_NPM_PACKAGE_MANAGER=aubeinrender-check'smise installcheck. Fresh CI runners (no user mise config) default the npm backend to aube, which enforces stricter checks than npm/bun - notably rejecting packages that drop provenance attestation after a prior version had it (this is what caught thenpm:cpd5.0.13 regression, see fix: pin npm:cpd to 5.0.10, catch custom.regex managers in mise.toml Renovate rule #50). Forcing it here makesrender-checkmatch what consumer repos' CI actually hits, regardless of what backend happens to be configured on the machine running the test.render-check's per-case checks (render via copier's Python API in-process, run independent checks concurrently, cache results by content hash across cases that render byte-identical output).Stacked on #50 (the
npm:cpdpin + Renovate fix) - this PR's diff is just the two commits on top.Needs a mise release that auto-installs the
aubebackend on demand (confirmed working on2026.7.12;2026.7.11errors "aube may be required but was not found" instead of installing it). This job intermittently resolves an older cached mise release viajdx/mise-action's "latest" lookup - re-running should pass once it lands on2026.7.12+.Test plan
mise-tasks/render-checkpasses locally (mise 2026.7.12)