Add update-os-coverage skill for Helix queue OS version updates#126384
Add update-os-coverage skill for Helix queue OS version updates#126384richlander merged 21 commits intomainfrom
Conversation
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Tagging subscribers to this area: @dotnet/runtime-infrastructure |
There was a problem hiding this comment.
Pull request overview
Adds a new Copilot skill (update-os-coverage) to guide/automate updating OS version references across Helix queue and related pipeline definitions (and auditing against the supported OS matrix).
Changes:
- Introduces a new skill document describing an end-to-end workflow for OS version updates in Helix queue definitions.
- Documents inputs, key files, scanning/updating steps, validation steps, and optional cross-branch / supported-os auditing guidance.
- Fix relative link to os-onboarding.md (use repo-root absolute path) - Make supported-os.json link version-agnostic - Add docs/workflow/using-docker.md to scan and validation grep commands - Clarify wording on which value parts to update Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Address remaining Copilot code review suggestions: - Note that _internal counterparts exist and must also be updated - Add Alpine edge as a special case in the naming conventions table - Add AI-generated content disclosure note for PR creation step Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Fix _internal variants wording: 'Most' -> 'Some', conditional guidance - Add ArmArch suffix and correct ARM host queue guidance - Remove head -10 limit from release branch scan - Make supported-os.json cross-reference version-agnostic Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
- Use relative path for OS onboarding guide in Reference section, matching the Key files section - Add Windows/macOS VM queue exclusion to 'When NOT to use' Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
- Fix _internal example to use actual variable names (not distro-specific) - Clarify docs/workflow/using-docker.md scope (build images only) - Add curl fallback for gh search when not authenticated - Note AzureLinux's role as host queue in naming conventions - Add shallow clone caveat for release branch scanning - Note jq/curl prerequisites in Process section Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Distro versions expected to ship within one quarter that already have a prereqs container image are good candidates for early onboarding to main. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
Document which distros are behind the extra-platforms pipeline guard vs the default PR pipeline, and instruct the agent to tell the user when /azp run runtime-extra-platforms is needed to validate changes. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Instead of telling the user to trigger extra-platforms, use gh pr comment to post the /azp run command automatically. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
> [!NOTE] > This PR was AI/Copilot-generated using the [`update-os-coverage` skill](#126384). ## Summary Update Fedora Helix test queues to use Fedora 44 as the `latest` slot, with Fedora 43 remaining as the `oldest` slot. ## Changes | File | Change | |------|--------| | `eng/pipelines/helix-platforms.yml` | Fedora latest: 43 → 44 | | `eng/pipelines/libraries/helix-queues-setup.yml` | extra-platforms Fedora: 43 → 44 | ## Version Details | Version | Slot | EOL | |---------|------|-----| | Fedora 44 | latest (new) | ~2027-06 (estimated) | | Fedora 43 | oldest | 2026-12-09 | | Fedora 42 | removed | 2026-05-13 | ## Verification - ✅ Container image `fedora-44-helix-amd64` confirmed available in [image-info](https://github.com/dotnet/versions/blob/main/build-info/docker/image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json) - ✅ No stale Fedora 43 references remain outside the `oldest` slot - ✅ Variable names unchanged; only values updated ## Full Audit All other Linux distros are current: - **Alpine**: edge / 3.23 ✅ - **Azure Linux**: 3.0 ✅ - **CentOS Stream**: 10 / 9 ✅ - **Debian**: 13 / 13 ✅ - **openSUSE**: 16.0 / 16.0 ✅ - **Ubuntu**: 26.04 / 22.04 ✅ Ref: [OS onboarding guide](https://github.com/dotnet/runtime/blob/main/docs/project/os-onboarding.md) · [.NET OS Support Tracking](dotnet/core#9638) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Thanks @hoyosjs. Your comments motivated a more critical review on my part. Your call-outs and the additional review made the skill quite a bit better. |
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This comment has been minimized.
This comment has been minimized.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
🤖 Copilot Code Review — PR #126384Note This review was generated by Copilot using multi-model analysis (Claude Opus 4.6 primary, with GPT-5.2 and Claude Sonnet 4.5 sub-agent perspectives). Holistic AssessmentMotivation: This PR adds a new Copilot skill definition to guide an AI agent through the process of updating OS version references in Helix queue pipeline files. This is well-justified — OS version updates are a recurring, mechanical task that touches multiple files with specific naming conventions, and encoding the procedure as a skill ensures consistency and reduces manual effort. Approach: A single, comprehensive SKILL.md file with a clear step-by-step process (verify image → check EOL → scan references → apply changes → validate → trigger CI → check release branches → cross-reference supported-os → create PR). The document has been through 19+ rounds of iterative refinement and all technical claims have been verified against the actual pipeline files. Summary: ✅ LGTM. This is a thorough, well-structured skill document. All queue format patterns, naming conventions, Detailed Findings✅ Technical Accuracy — Verified against pipeline filesAll core technical claims were cross-checked against the actual source files:
✅ Conventions — Consistent with sibling skills
✅ Structure & Completeness — Well-organized workflowThe 9-step process covers the full lifecycle: verification → research → scanning → editing → validation → CI → release branches → cross-referencing → PR creation. The "When NOT to use" section clearly scopes boundaries. The audit mode section provides a separate workflow for coverage auditing. 💡 Scope Clarity — Consider stating "Linux-focused" earlier (flagged by GPT-5.2)The title and intro say "OS version references" broadly. The Linux-only scope is only clarified later in "When NOT to use" (line 33: "Updating Windows or macOS Helix queues…"). Consider adding a brief "(primarily Linux distros)" qualifier in the opening line to prevent an agent from attempting Windows/macOS queue updates before reaching the exclusion section. 💡 Alpine musl_arm64 Dual-Table Appearance — Minor clarity improvement (flagged by Sonnet 4.5, GPT-5.2 in different forms)Alpine (versioned) 💡 Search Strategy — Consider searching by old version tokens too (flagged by GPT-5.2)Step 3 (line 120) suggests 💡 Shallow Clone Detection — Helpful agent hint (flagged by Sonnet 4.5)Line 231 mentions shallow clones may not have release branches visible and provides a
|
> [!NOTE] > This PR was AI/Copilot-generated using the [`update-os-coverage` skill](dotnet#126384). ## Summary Update Fedora Helix test queues to use Fedora 44 as the `latest` slot, with Fedora 43 remaining as the `oldest` slot. ## Changes | File | Change | |------|--------| | `eng/pipelines/helix-platforms.yml` | Fedora latest: 43 → 44 | | `eng/pipelines/libraries/helix-queues-setup.yml` | extra-platforms Fedora: 43 → 44 | ## Version Details | Version | Slot | EOL | |---------|------|-----| | Fedora 44 | latest (new) | ~2027-06 (estimated) | | Fedora 43 | oldest | 2026-12-09 | | Fedora 42 | removed | 2026-05-13 | ## Verification - ✅ Container image `fedora-44-helix-amd64` confirmed available in [image-info](https://github.com/dotnet/versions/blob/main/build-info/docker/image-info.dotnet-dotnet-buildtools-prereqs-docker-main.json) - ✅ No stale Fedora 43 references remain outside the `oldest` slot - ✅ Variable names unchanged; only values updated ## Full Audit All other Linux distros are current: - **Alpine**: edge / 3.23 ✅ - **Azure Linux**: 3.0 ✅ - **CentOS Stream**: 10 / 9 ✅ - **Debian**: 13 / 13 ✅ - **openSUSE**: 16.0 / 16.0 ✅ - **Ubuntu**: 26.04 / 22.04 ✅ Ref: [OS onboarding guide](https://github.com/dotnet/runtime/blob/main/docs/project/os-onboarding.md) · [.NET OS Support Tracking](dotnet/core#9638) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…et#126384) > [!NOTE] > This PR was generated with assistance from GitHub Copilot CLI. Add a new Copilot skill (`update-os-coverage`) that automates updating OS version references in Helix queue definition files. ## What it does The skill guides through the full process of updating OS versions in Helix pipelines: 1. Verify container image availability at dotnet-buildtools-prereqs-docker 2. Check EOL dates via endoflife.date 3. Scan all pipeline files for current references 4. Apply version updates (queue names, image tags, comments) 5. Validate no stale references remain 6. Check release branches for needed updates 7. Cross-reference with supported-os.json in dotnet/core ## Key files it operates on - `eng/pipelines/helix-platforms.yml` (primary) - `eng/pipelines/libraries/helix-queues-setup.yml` - `eng/pipelines/coreclr/templates/helix-queues-setup.yml` - `eng/pipelines/installer/helix-queues-setup.yml` - `eng/pipelines/common/templates/pipeline-with-resources.yml` - `docs/workflow/using-docker.md` References the [OS onboarding guide](docs/project/os-onboarding.md) as the authoritative source for policies and processes. Tested by running the skill against a Fedora 43→44 update — it correctly updated the 2 files with Fedora references, verified image availability, and validated results. --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Note
This PR was generated with assistance from GitHub Copilot CLI.
Add a new Copilot skill (
update-os-coverage) that automates updating OS version references in Helix queue definition files.What it does
The skill guides through the full process of updating OS versions in Helix pipelines:
Key files it operates on
eng/pipelines/helix-platforms.yml(primary)eng/pipelines/libraries/helix-queues-setup.ymleng/pipelines/coreclr/templates/helix-queues-setup.ymleng/pipelines/installer/helix-queues-setup.ymleng/pipelines/common/templates/pipeline-with-resources.ymldocs/workflow/using-docker.mdReferences the OS onboarding guide as the authoritative source for policies and processes.
Tested by running the skill against a Fedora 43→44 update — it correctly updated the 2 files with Fedora references, verified image availability, and validated results.