Skip to content

[THROWAWAY PROBE] P2.1 validate lane — docs-only skip - #850

Closed
brandom-msft wants to merge 11 commits into
brandom-msft-brandom-public-validation-pipelinefrom
brandom-msft-redesigned-journey-probe-docsonly
Closed

[THROWAWAY PROBE] P2.1 validate lane — docs-only skip#850
brandom-msft wants to merge 11 commits into
brandom-msft-brandom-public-validation-pipelinefrom
brandom-msft-redesigned-journey-probe-docsonly

Conversation

@brandom-msft

Copy link
Copy Markdown
Member

Throwaway probe: docs-only change. Expect detect has_changes=false and the validate job to skip (empty-matrix guard). Not for merge. ADO 5449695.

brandom-msft and others added 11 commits July 24, 2026 11:22
…lf-test

Ports the private ADO DetectChanges stage to a GH-Actions-native detector: changed files under samples/ resolve to their nearest ancestor sample.yaml dir, deduped into a set exposed as job outputs (has_changes/count/samples) for needs.*.outputs consumption. Fail-loud on git diff error (ADO 5247751); empty set = docs-only short-circuit. Single deduped set instead of per-language has_<lang> booleans (language derived from path at fan-out). Sibling hermetic harness (git-only) + inert selftest workflow (contents:read, no secrets/OIDC, no on:paths).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 441d830f-ce1e-4ebf-bdbf-cdf84cafef1f
…s the step's output file

The unit harness invokes the detector ~10x and asserts on stdout; on a runner each call was appending has_changes/count/samples to the real \, which GitHub then rejected. Unset it in the harness — the GITHUB_OUTPUT emission is proven separately by the detect->consume plumbing job.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 441d830f-ce1e-4ebf-bdbf-cdf84cafef1f
grep -c on an empty file prints 0 AND exits 1, so the '|| echo 0' fallback double-printed, making COUNT=\
…est-effort fetch)

Non-behavioral: adds a Known-limitations comment block above resolve_base_ref
capturing the three faithful-port characteristics surfaced in the P1.2
Chapter-1 walkthrough (two-dot PR diff, HEAD~1 final-transition-only on push,
best-effort fetch staleness). No logic change to the frozen DetectChanges port.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 441d830f-ce1e-4ebf-bdbf-cdf84cafef1f
One-page companion to detect-changed-samples.sh: the five-move flow, the
fail-loud rule, the input/output contract, the needs.*.outputs wiring note,
and the two tracked known-characteristics follow-ups (ADO 5473511, 5473651).

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 441d830f-ce1e-4ebf-bdbf-cdf84cafef1f
pip/npm install failures with positive transport evidence (DNS / connection refused-reset / timeout / registry 5xx) now classify as error (exit 2) instead of failure (exit 1); unaccompanied resolution errors stay failure. Transport evidence wins even when pip prints its misleading 'No matching distribution' line after exhausting retries against an unreachable index.

- dep_infra_signature() narrow transport allow-list, routed on the two dedicated install steps only (merged build tools stay failure - documented limit)
- CLASSIFICATION.md: exit contract, taxonomy, ambiguity-bias, honest limits
- run-tests.sh: real-runner blackhole cases (pip/npm -> error) + hermetic no-index resolution failure (-> fail); new python-deps / typescript-deps fixtures

ADO 5449687: https://msdata.visualstudio.com/Vienna/_workitems/edit/5449687

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6b0ffec6-9f36-4309-80ef-adb79f1de81a
npm install --silent suppresses error output too, so the captured log was empty and dep_infra_signature saw no transport evidence -> blackhole misclassified as fail. Real-runner proof (run 30309241864) caught this: pip cases passed, npm registry-unreachable got fail instead of error. Switch to --no-audit --no-fund --loglevel=error: quiet on success, ECONNREFUSED still emitted and captured.

ADO 5449687: https://msdata.visualstudio.com/Vienna/_workitems/edit/5449687

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6b0ffec6-9f36-4309-80ef-adb79f1de81a
Microsoft Security is blocking direct public-npm access on managed devices (CFS-protected feed); a held package can return 403/blocked, which the 5xx-only allow-list doesn't promote to error. Documented as a v1 honest limit + deferred follow-up. Doc-only; no classifier change (runner-proven behavior is commit 391ba22).

ADO 5449687: https://msdata.visualstudio.com/Vienna/_workitems/edit/5449687

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 6b0ffec6-9f36-4309-80ef-adb79f1de81a
Documents that the public-first validation path is already fully GitHub-Actions-native (zero ADO-isms): every UseDotNet@2/UsePythonVersion@0/NodeTool@0/JavaToolInstaller@0/GoTool@0 setup task maps to a pinned setup-* action; cross-job data flows via needs.*.outputs; CheckMailmap + Report/status-posting intentionally dropped; artifact fan-out + aggregation deferred to P2.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: a7d3b36b-7970-4500-888e-af959a5a5066
Real PR-triggered floor lane (distinct from the inert self-tests): on: pull_request (never pull_request_target), permissions contents:read only, no environment/secrets. detect-changed-samples.sh finds changed samples in-job; a matrix fans out one runner per sample and validates to L3 via validate-sample.sh, deriving --language from the samples/<dir>/ path. Untrusted fork code runs on a barren runner by design.

ADO 5449695

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: c4e21e67-bf10-42a8-9e21-98dde95aa89f
@github-actions

Copy link
Copy Markdown
Contributor

👋 Thanks for your contribution, @brandom-msft!

This repository is read-only. If you are contributing on behalf of Microsoft, please submit your PR to the private staging repository instead:

👉 foundry-samples-pr

See CONTRIBUTING.md for full instructions.

@github-actions github-actions Bot closed this Jul 28, 2026
@brandom-msft
brandom-msft deleted the brandom-msft-redesigned-journey-probe-docsonly branch July 28, 2026 05:23
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.

1 participant