Skip to content

Release v1.28.0 - #834

Merged
Bernd Verst (berndverst) merged 1 commit into
mainfrom
berndverst-prepare-v1-28-0-release
Nov 4, 2026
Merged

Bernd Verst (berndverst) merged 1 commit into
mainfrom
berndverst-prepare-v1-28-0-release

Conversation

@berndverst

@berndverst Bernd Verst (berndverst) commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Summary

What changed?

  • Bump the shared SDK version from 1.27.1 to 1.28.0.
  • Move existing unreleased entries into the aggregate v1.28.0 changelog, retaining the Azure Blob scope/name migration guidance. Add the previously missing unary client deadlines, out-of-order history export fix, tracing optimization, and dependency refresh entries.
  • Refresh both central dependency manifests without changing existing dependency majors, including published Core 3.11.2, Functions Durable extension 1.21.0, protobuf 3.36.2, and published same-major sample SDK/OpenTelemetry versions.
  • Preserve independent package versions and preview suffixes. Following Release v1.27.0 #818, existing per-package RELEASENOTES.md files are unchanged.
  • Only four files change. No production implementation, public API signature, protobuf definition, workflow, or package-source configuration changes are included.

Why is this change needed?

  • Prepare the next minor SDK release for changes merged since v1.27.1 and refresh dependencies while preserving major-version boundaries and existing target-framework support.
  • Select compatible, CI-restorable versions rather than suppressing restore/build errors or introducing major upgrades.

Issues / work items


Project checklist

  • Release notes are not required for the next release

    • Otherwise: Notes added to release_notes.md

    Release history is updated in the existing root CHANGELOG.md; package-specific notes retain their PR-base content, following Release v1.27.0 #818. No new release_notes.md is introduced.

  • Backport is not required

    • Otherwise: Backport tracked by issue/PR: N/A; no backport requested.
  • All required tests have been added/updated (unit tests, E2E tests)

    No test implementation changes; existing solution suites were run against the final dependency selections.

  • Breaking change?

    • If yes:
      • Impact: This preparation PR changes release metadata and dependencies only. The release includes the already-merged Azure Blob scope/name behavior changes documented in the v1.28.0 changelog.
      • Migration guidance: Preserve the changelog's instructions to complete or migrate affected instances/payloads, or explicitly authorize their original storage location before upgrading.

AI-assisted code disclosure (required)

Was an AI tool used? (select one)

  • No
  • Yes, AI helped write parts of this PR (e.g., GitHub Copilot)
  • Yes, an AI agent generated most of this PR

If AI was used:

  • Tool(s): GitHub Copilot.
  • AI-assisted areas/files: Shared release version, aggregate changelog, both dependency manifests, dependency/version verification, and this description.
  • What you changed after AI output: The user directed retention of compatible Azure Blob dependencies and selection of the newest gRPC client/server and StyleCop versions available through the existing CI feed. No subsequent human code edits are claimed; human verification attestations remain unchecked.

AI verification (required if AI was used):

  • I understand the code and can explain it
  • I verified referenced APIs/types exist and are correct
  • I reviewed edge cases/failure paths (timeouts, retries, cancellation, exceptions)
  • I reviewed concurrency/async behavior
  • I checked for unintended breaking or behavior changes

Testing

Automated tests

  • Result: Local solution validation passed: 2,479 tests passed, zero failures, 10 DTS-emulator-dependent skips, across 19 test runs. Hosted Validate Build, DTS emulator tests, Azure Functions Smoke Tests, and Automatic Dependency Submission also passed on commit 2cea5714070b9596f718d6eaa2418c966f7e8ca3. CodeQL analyses are still running; no all-checks-green claim is made.
  • dotnet restore Microsoft.DurableTask.sln --configfile nuget.config --force --no-http-cache --verbosity quiet — Passed using the unchanged repository CI feed.
  • dotnet build Microsoft.DurableTask.sln --configuration release --no-restore --verbosity quiet — Passed, zero errors; 670 warnings reported. No unrelated warning cleanup is included.
  • dotnet test Microsoft.DurableTask.sln --configuration release --no-build --no-restore --verbosity normal --logger trx --results-directory 'C:\Users\beverst\.copilot\session-state\e3afd0c9-8a8b-4e95-bea5-8e195bff94aa\files\test-results' — Passed, counts above; TRX results retained outside the repository.
  • dotnet pack Microsoft.DurableTask.sln --configuration release --no-build --no-restore --verbosity quiet — Passed; inspected all 18 packages. Shared packages are 1.28.0; ScheduledTasks/ExportHistory retain preview.2, Generators retains 2.1.0-preview.2, and InProcessTestHost retains 0.2.3-preview.1. Local pack reported SourceLink repository-detection warnings; these are validation artifacts, not official signed release outputs.
  • dotnet restore Microsoft.DurableTask.sln --configfile nuget.config --packages 'C:\Users\beverst\.copilot\session-state\e3afd0c9-8a8b-4e95-bea5-8e195bff94aa\files\cold-ci-packages' --no-http-cache --verbosity minimal — Passed for the entire solution with an initially empty package cache, after the feed acquisition described below. No fallback source was configured. The temporary cache was subsequently removed.
  • git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol diff --cached --check — Passed before commit; recognizes the changelog's existing CRLF format.
  • git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol --no-pager diff --check origin/main...HEAD — Passed after commit.
  • Parsed both manifests and compared every version's major against the PR base — Passed. Inspected Blob package dependencies at every target framework: SDK project dependencies consistently use 1.28.0.
  • DTS emulator tests were not run locally, but the hosted emulator job passed. Live Azure tests were not run.
Hosted workflow Verified result
Validate Build Passed, including actual build and dts-emulator-tests jobs; restore, build, tests, pack, and upload succeeded.
Azure Functions Smoke Tests Passed.
Automatic Dependency Submission Passed after the cold-feed acquisition.

Manual validation (only if runtime/behavior changed)

  • Environment (OS, .NET version, components): Windows; .NET SDK 10.0.403; installed .NET 6, 8, and 10 runtimes.
  • Steps + observed results:
    1. Queried NuGet's published version metadata for every entry in both manifests, selecting stable same-major releases where available and retaining prerelease channels for existing prerelease-only analyzer dependencies.
    2. Resolved compatibility/feed exceptions below without suppressing package downgrades, disabling framework support checks, changing targets, or editing repository feed configuration.
    3. Initial hosted dependency-submission and emulator restores exposed two uncached public transitive packages: Microsoft.Extensions.DependencyInjection.Abstractions 10.0.14 and Microsoft.Extensions.Options 10.0.14. Acquired them through the feed's supported authenticated download API using existing access, then verified anonymous HTTP 200 downloads and the full isolated-cache restore above. Both affected checks passed after one rerun. No credentials, permissions, local package uploads, or source changes were introduced for this repair.
  • Evidence (optional): Dependency query results, restore/build/test/pack logs, TRX files, and CI failure/provenance evidence are retained in session artifacts, not committed. No tags, GitHub releases, package publication, release workflow dispatch, or cloud resource changes were performed.

Notes for reviewers

  • User-approved compatibility exception: Azure.Storage.Blobs stays at 12.27.0. Every newer stable version requires Azure.Core/System.ClientModel dependencies that move Microsoft.Extensions requirements to 10.x; the initially attempted 12.30.1 produced NU1605 downgrade errors against existing 8.x/9.x pins. No existing dependency major is changed.
  • User-approved CI-feed exceptions: Grpc.Net.Client and Grpc.AspNetCore.Server use 2.84.0, and StyleCop.Analyzers uses 1.3.151-beta. NuGet-latest 2.85.0 / 1.3.171-beta were unavailable through the repository feed, including authenticated upstream acquisition attempts. Grpc.Tools 2.85.0 is available and remains updated. All final dependencies restore through the unchanged feed with an empty package cache.
  • Framework compatibility: Microsoft.NET.Test.Sdk 17.14.1 rejects net6.0. Select 17.13.0 for net6.0 only and 17.14.1 otherwise; both retain major 17. This preserves existing .NET 6 sample tests without unsupported-framework suppression.
  • Samples: Client/Worker.Grpc use published 1.27.0, not the unpublished 1.28.0 being prepared here. The sample Generators reference becomes 1.0.0, preserving its existing major 1; the independently versioned generator project stays 2.1.0-preview.2.
  • This PR prepares source changes only. It does not authorize tagging, publishing, merging, or enabling Agent merge.

Preserve existing dependency majors, retain compatible Azure Blob and .NET 6 test SDK versions, and use gRPC/analyzer versions available through the CI feed.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings November 4, 2026 21:11

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.

🟢 Approval recommended

No active review issues were identified in the release metadata and dependency updates.

No open issues 🎉

What changed in this PR

Prepares the standalone Durable Task SDK v1.28.0 release by updating release metadata and dependencies, without changing production implementation or public API signatures.

Changes:

  • Bumps the shared SDK version to 1.28.0 while preserving independent package versions and preview suffixes.
  • Consolidates release notes, retaining Azure Blob migration guidance and adding deadline, history-export, tracing, and dependency entries.
  • Refreshes dependencies within existing major versions, with compatibility exceptions for Azure Blob, CI-feed availability, and .NET 6 tests.
File Description
samples/​Directory.Packages.props Updates published Durable Task and OpenTelemetry sample dependencies.
eng/​targets/​Release.props Sets the shared SDK version to 1.28.0.
Directory.Packages.props Refreshes dependencies and selects a .NET 6-compatible test SDK.
CHANGELOG.md Creates the v1.28.0 section and completes aggregate release notes.

Review effort: Balanced

@berndverst
Bernd Verst (berndverst) merged commit f7041c0 into main Nov 4, 2026
12 of 14 checks passed
@berndverst
Bernd Verst (berndverst) deleted the berndverst-prepare-v1-28-0-release branch November 4, 2026 22:05
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.

3 participants