Skip to content

01a08ae8 - Overlap A38 jobs across distinct lock domains - #90

Merged
davidleomay merged 5 commits into
developfrom
feat/01a08ae8-a38-lock-domain-overlap
Sep 11, 2026
Merged

01a08ae8 - Overlap A38 jobs across distinct lock domains#90
davidleomay merged 5 commits into
developfrom
feat/01a08ae8-a38-lock-domain-overlap

Conversation

@davidleomay

Copy link
Copy Markdown
Member

EN:
An A38 run no longer waits for Docker before starting Jest, or for Jest before starting Docker. Jobs in different lock domains may run at the same time, with a default cap of two in flight. Lint, type-check and Jest still share a CPU domain so they do not overlap. Named locks stay exclusive across processes. Acceptance is still one complete run on the final clean head.

DE:
Ein A38-Lauf wartet nicht mehr auf Docker, bevor Jest startet, und nicht auf Jest, bevor Docker startet. Jobs in verschiedenen Lock-Domänen dürfen gleichzeitig laufen, standardmässig höchstens zwei. Lint, Type-Check und Jest teilen sich weiterhin eine CPU-Domäne und überlappen sich nicht. Benannte Locks bleiben prozessübergreifend exklusiv. Abnahme bleibt ein vollständiger Lauf am finalen sauberen Head.

Details

Behaviour

  • load_policy stores lock on each normalized job (compose / http-smoke default docker-heavy).
  • Conflict keys: docker-heavy is its own domain; every other job is #cpu plus its named lock.
  • A38_MAX_IN_FLIGHT (default 2, integer ≥ 1) caps concurrency.
  • Report table stays in policy order. verify_report is unchanged.
  • After a job failure, independent jobs still run. Dirty tree or HEAD change still stops further starts.

Tests

python -m pytest tests/test_a38.py tests/test_a38_jobs.py -q → 157 passed, 22 subtests passed.

@davidleomay
davidleomay force-pushed the feat/01a08ae8-a38-lock-domain-overlap branch from 323d023 to 299a99e Compare September 11, 2026 06:36
@davidleomay

Copy link
Copy Markdown
Member Author

EN:
Ready after 5 review passes.
An A38 run overlaps jobs in different lock domains, with a default cap of two in flight.

DE:
Bereit nach 5 Review-Durchläufen.
Ein A38-Lauf überlappt Jobs in verschiedenen Lock-Domänen, standardmässig höchstens zwei gleichzeitig.

Details

Grok and Codex quality/logic on head 2c31a51. Iterations: executor lock key, docs (policy-order table, in-run vs cross-process locks, lock grammar), drift abort of in-flight peers, OSError via the future, KeyboardInterrupt inside the executor with block. Test-robustness nits (host A38_MAX_IN_FLIGHT, wall-clock bound, failure-continue start order) were not counted. Mergeable MERGEABLE / CLEAN. GitHub pytest SUCCESS. No review threads.

@davidleomay
davidleomay marked this pull request as ready for review September 11, 2026 10:03
@davidleomay
davidleomay merged commit b121fd2 into develop Sep 11, 2026
1 check passed
@davidleomay
davidleomay deleted the feat/01a08ae8-a38-lock-domain-overlap branch September 11, 2026 13:42
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.

2 participants