You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(chapel): Wave 2 — add chapel-multilocale gate (#87 option A)
Adds a 7th strict gate to chapel-ci.yml that exercises real multilocale
execution by building Chapel 2.8.0 from source with `CHPL_COMM=gasnet`
and `CHPL_LAUNCHER=smp`, then running `mass-panic --numLocales=2`
against the same synthetic 2-repo corpus as `chapel-e2e`.
Closes the Wave 1 gap: the stock `.deb` ships `CHPL_COMM=none` and
rejects `-nl >1`, so until now the multi-locale code path had no
CI coverage. The `smp` launcher and `smp` GASNet substrate let two
locales run as oversubscribed local processes on a single ubuntu-22.04
runner — verification, not performance.
Implementation choice — owner picked option A from issue #87:
- Build from source with `CHPL_COMM=gasnet`, aggressive caching.
- Not option B (chapel-multilocale .deb — none published upstream).
- Not option C (self-hosted runner — no infrastructure to maintain).
Cache strategy:
- `$CHPL_HOME = /opt/chapel-multilocale` cached on `actions/cache@v4`.
- Key stable on `${runner.os}-chapel-multilocale-2.8.0-gasnet-smp-v1`.
- Bump `CHAPEL_MULTILOCALE_CACHE_GEN` env var to invalidate.
- Cold build: ~30-40 min on 2-core runner. Warm restore: ~30s.
- Cache eviction after 7 days idle (GitHub policy); chapel/** touches
in normal repo activity keep it warm.
Aggregator gate updated:
- `chapel-ci-gate` now waits on 7 jobs (added `chapel-multilocale`).
- `R_MULTILOCALE` env var added to the success-aggregation loop.
- Doc comments updated from "six gates" → "seven gates".
Acceptance criteria from #87 (partial closure):
- [x] `chapel-multilocale` job defined and wired into aggregator
- [ ] Job green on PR + main ≥1 merge cycle (this PR)
- [ ] Added to Base ruleset `required_status_checks` (separate ruleset edit)
- [ ] ~50-repo benchmark for README perf claim (separate PR; needs
either a beefier runner or self-hosted CI to be meaningful)
The aggregator job is the only one in the ruleset, so 7 → 7 is a
no-op there: when this PR is green and merged, the aggregator just
covers one more underlying job. Ruleset bump is therefore optional
unless the owner wants per-gate visibility.
Refs: #87
0 commit comments