Skip to content

[CI PROBE - do not merge] P1.3 failure-vs-error self-test - #846

Closed
brandom-msft wants to merge 6 commits into
brandom-msft-brandom-public-validation-pipelinefrom
brandom-msft-fantastic-guacamole
Closed

[CI PROBE - do not merge] P1.3 failure-vs-error self-test#846
brandom-msft wants to merge 6 commits into
brandom-msft-brandom-public-validation-pipelinefrom
brandom-msft-fantastic-guacamole

Conversation

@brandom-msft

Copy link
Copy Markdown
Member

Inert CI-trigger probe — do NOT merge. Sole purpose: fire the credential-free validate-sample-selftest.yml (permissions: contents:read) on a real Actions runner to prove P1.3's failure-vs-error classifier.

Deliverable-of-record commit: a441769e on branch brandom-msft-fantastic-guacamole.

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

brandom-msft and others added 6 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
@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.

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