Skip to content

Target Helix Job Monitor at NetMinimum - #17231

Merged
mmitche merged 1 commit into
dotnet:mainfrom
mmitche:copilot/job-monitor-netminimum
Jul 31, 2026
Merged

Target Helix Job Monitor at NetMinimum#17231
mmitche merged 1 commit into
dotnet:mainfrom
mmitche:copilot/job-monitor-netminimum

Conversation

@mmitche

@mmitche mmitche commented Jul 31, 2026

Copy link
Copy Markdown
Member

Summary

  • target the framework-dependent Helix Job Monitor tool at $(NetMinimum)
  • enable major-version runtime roll-forward
  • align the direct Azure DevOps publisher dependency with $(NetMinimum) and replace one newer-runtime-only overload
  • preserve existing PackAsTool, installation, and invocation behavior

Packaging

  • package assets remain portable under tools/net10.0/any
  • generated runtimeconfig targets net10.0 and specifies rollForward: Major
  • the locally installed package launches on the available .NET 11 runtime without a .NET 10 runtime installed

This PR is based directly on main and is independent of the other Job Monitor refactor PRs.

Closes #17230
Parent epic: #17171

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
mmitche force-pushed the copilot/job-monitor-netminimum branch from c8c7fec to 5e70f0d Compare July 31, 2026 15:13

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 / StageAttempt to 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.

Copilot AI review requested due to automatic review settings July 31, 2026 15:14
@mmitche
mmitche marked this pull request as ready for review July 31, 2026 15:15

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 3 changed files in this pull request and generated no new comments.

@mmitche
mmitche enabled auto-merge (squash) July 31, 2026 15:20
@mmitche
mmitche merged commit 93eebf1 into dotnet:main Jul 31, 2026
9 of 10 checks passed
@dotnet-milestone-bot dotnet-milestone-bot Bot added this to the 11.0-rc1 milestone Aug 3, 2026
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.

Job Monitor: target NetMinimum and allow runtime roll-forward

3 participants