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
{{ message }}
Repository navigation
Required checks run whenever their inputs change (path filters) #317
Part of #311 (Group D, CI consistency). Owner: not assigned. Task base and PR target: develop. Merge before #318 and #320 (same file).
Intended behavior
A required check runs its real work whenever any input it builds or calls changes. A skipped check proves nothing, so a skip happens only when no input changed.
Current behavior
The custody-harness-smoke filter (.github/workflows/ci.yml:390-411) lists custody, availability and IPFS providers, the protected-content crates and six elastos-server modules. It misses inputs that the smoke builds or calls:
scripts/setup-source-home.sh (called per scripts/custody-harness-ci-smoke.sh:72, 93, 385);
capsules/chain-provider/** (built at deploy/custody-host/Dockerfile:137);
elastos/crates/elastos-runtime/**;
elastos/Cargo.lock;
rust-toolchain.toml;
.github/workflows/ci.yml itself.
When no path matches, the job reports success without running the smoke (ci.yml:412-418), so the required check passes. Push and merge-group runs always run it.
The canary filter (.github/workflows/canary-holder-linux.yml:7) misses:
scripts/update-hop-compare.py (imported at line 74);
scripts/seed-kubo-cache.sh (line 65);
components.json (line 232);
the Cargo.lock files.
Implementation notes
Add the missing inputs. Add a policy test in scripts/ci-release-policy-test.py: it parses the job's scripts for repository paths they call, and asserts that the filter covers each one. The test keeps the filter in step with future script changes.
The independent adversarial review of #326 found a remaining local input-coverage gap. The current release trigger meets #319's narrow acceptance but misses changes to several inputs of ci-release-policy-test.py, including that test itself, CI/release workflows, the cache action, package-release-binaries.sh, installed-journey helpers and llama bundle tooling. prepare-release-platform-test.py and publish-platform-artifacts-test.py also remain hosted-only.
Extend #317's input map to cover local lightweight policy/self-tests as well as hosted skip decisions. Each mapped input change must select its policy/fixture check; unrelated tooling keeps the basic formatting/product-data gate. Add negative fixtures for unknown and mixed inputs, and retain per-command failure/zero-case refusal. A public PR with clean checks still needs its hosted current-candidate checks.
The same review notes that local RUSTC/wrapper/target environment settings can differ from CI even though RUSTFLAGS and CARGO_ENCODED_RUSTFLAGS are now controlled. Define the supported local compiler/target environment explicitly and test accidental overrides. Local checks provide early feedback; hosted checks retain the current acceptance boundary. These are follow-ups, not blockers to #326's passed scope.
Activity
andersalm commentedon Oct 9, 2026
The independent adversarial review of #326 found a remaining local input-coverage gap. The current release trigger meets #319's narrow acceptance but misses changes to several inputs of ci-release-policy-test.py, including that test itself, CI/release workflows, the cache action, package-release-binaries.sh, installed-journey helpers and llama bundle tooling. prepare-release-platform-test.py and publish-platform-artifacts-test.py also remain hosted-only.
Extend #317's input map to cover local lightweight policy/self-tests as well as hosted skip decisions. Each mapped input change must select its policy/fixture check; unrelated tooling keeps the basic formatting/product-data gate. Add negative fixtures for unknown and mixed inputs, and retain per-command failure/zero-case refusal. A public PR with clean checks still needs its hosted current-candidate checks.
The same review notes that local RUSTC/wrapper/target environment settings can differ from CI even though RUSTFLAGS and CARGO_ENCODED_RUSTFLAGS are now controlled. Define the supported local compiler/target environment explicitly and test accidental overrides. Local checks provide early feedback; hosted checks retain the current acceptance boundary. These are follow-ups, not blockers to #326's passed scope.
andersalm commentedon Oct 13, 2026
Postponed to 0.8.1: CI cleanup/hardening; no workflow or deletion changes on release day.