Target Helix Job Monitor at NetMinimum - #17231
Merged
Merged
Conversation
This was referenced Jul 31, 2026
Keep the framework-dependent tool portable across newer runtimes with major-version roll-forward and align its direct publisher dependency with the minimum target.\n\nCo-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>\nCopilot-Session: baa969a4-1d79-4b6a-a3f0-4d349d768b5e
mmitche
force-pushed
the
copilot/job-monitor-netminimum
branch
from
July 31, 2026 15:13
c8c7fec to
5e70f0d
Compare
Contributor
There was a problem hiding this comment.
Pull request overview
This PR retargets the framework-dependent Helix Job Monitor .NET tool to Arcade’s $(NetMinimum), enables major-version runtime roll-forward, and updates Job Monitor internals to use a dedicated job lineage model for attempt/stream reasoning.
Changes:
- Retarget
Microsoft.DotNet.Helix.JobMonitor(and a direct dependency) to$(NetMinimum)and set<RollForward>Major</RollForward>for the tool. - Introduce
JobLineage/WorkStreamIdentity/StageAttemptto centralize lineage + work-stream identity logic and update the monitor to use it. - Update and expand test coverage around lineage behavior and stage-attempt parsing/validation.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/Microsoft.DotNet.Helix/Sdk.Tests/Microsoft.DotNet.Helix.Sdk.Tests/JobMonitorRunnerTests.cs | Adjusts stage-attempt-absent scenario naming/expectations and adds a fail-fast test for invalid monitor stage-attempt input. |
| src/Microsoft.DotNet.Helix/Sdk.Tests/Microsoft.DotNet.Helix.Sdk.Tests/JobLineageTests.cs | Adds focused unit tests for StageAttempt, WorkStreamIdentity, and lineage ordering/latest-incarnation selection. |
| src/Microsoft.DotNet.Helix/JobMonitor/StatusReporter.cs | Switches timeout reporting to use JobLineage for “latest” job selection. |
| src/Microsoft.DotNet.Helix/JobMonitor/Services/AzureBlobClientFactory.cs | Replaces a newer-runtime-only LastIndexOf(char, StringComparison) overload to keep compatibility with $(NetMinimum). |
| src/Microsoft.DotNet.Helix/JobMonitor/MonitorState.cs | Replaces submitter-chain-key lineage logic with the new lineage model and updates work item outcome keying. |
| src/Microsoft.DotNet.Helix/JobMonitor/Models/HelixJobInfo.cs | Updates the StageAttempt doc comment for the new contract wording. |
| src/Microsoft.DotNet.Helix/JobMonitor/Microsoft.DotNet.Helix.JobMonitor.csproj | Retargets to $(NetMinimum) and enables major-version roll-forward for the tool. |
| src/Microsoft.DotNet.Helix/JobMonitor/JobMonitorRunner.Design.md | Updates design documentation to reflect revised stage-attempt scoping contract. |
| src/Microsoft.DotNet.Helix/JobMonitor/JobMonitorRunner.cs | Parses stage attempt once and updates attempt scoping + lineage usage throughout polling/reconciliation. |
| src/Microsoft.DotNet.Helix/JobMonitor/JobMonitorOptions.cs | Updates StageAttempt option documentation to match the new contract expectations. |
| src/Microsoft.DotNet.Helix/JobMonitor/JobLineage.cs | Adds the new lineage model and stage-attempt parsing utilities. |
| src/Microsoft.DotNet.Helix/AzureDevOpsTestPublisher/Microsoft.DotNet.Helix.AzureDevOpsTestPublisher.csproj | Retargets to $(NetMinimum) and adds an explicit logging abstractions dependency. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
premun
approved these changes
Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
$(NetMinimum)$(NetMinimum)and replace one newer-runtime-only overloadPackAsTool, installation, and invocation behaviorPackaging
tools/net10.0/anynet10.0and specifiesrollForward: MajorThis PR is based directly on
mainand is independent of the other Job Monitor refactor PRs.Closes #17230
Parent epic: #17171