Skip to content

Release v1.27.0 - #818

Open
wangbill (YunchuWang) wants to merge 1 commit into
mainfrom
yunchuwang-sdk-1-27-0-release
Open

wangbill (YunchuWang) wants to merge 1 commit into
mainfrom
yunchuwang-sdk-1-27-0-release

Conversation

@YunchuWang

Copy link
Copy Markdown
Member

Summary

What changed?

  • Prepare shared SDK version 1.27.0 and pin the published Microsoft.Azure.DurableTask.Core 3.11.1 package.
  • Move the verified changes since v1.26.0 into the 1.27.0 changelog and update package-specific RELEASENOTES.md, including blob auto-purge, the SDK-owned purge contracts, scheduler authentication, shim restarts, and in-process test-host fixes.
  • Preserve independent versions and existing preview suffixes. LargePayloadPurge.Abstractions inherits the shared 1.27.0 version; it does not introduce a separate contracts version.

Why is this change needed?

  • The merged purge APIs require a new SDK release: published Client/Abstractions 1.26.0 do not contain the required Client models. A minor release accounts for the additive public APIs.
  • Prepare the release against actual published Core bytes, with consistent SDK package dependency floors and release notes. No runtime source, protobuf, publication-pipeline, or workflow changes are included.

Issues / work items


Project checklist

  • Release notes are not required for the next release
    • Otherwise: Notes added to release_notes.md
  • Backport is not required
    • Otherwise: Backport tracked by issue/PR #issue_or_pr
  • All required tests have been added/updated (unit tests, E2E tests)
  • Breaking change?
    • If yes:
      • Impact: No API signatures or protobuf fields are edited by this release-preparation PR.
      • Migration guidance: See the already-merged test-host compatibility note below; no independent package version is changed here.

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 version and dependency metadata, changelog, package release notes, and this description.
  • What you changed after AI output: No subsequent human edits are claimed. Human review 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: Passed locally: 696 tests, zero failures or skips, three focused build roots, and ten validation-only package builds. Hosted CI has not run for this candidate.
  • Focused projects were restored from public NuGet into an isolated cache, with the SDK's implicit offline package sources disabled. Restored Core 3.11.1 matches the verified public package and assembly hashes; its Microsoft author and NuGet repository signatures passed verification.

Exact final-candidate test commands and results (PowerShell):

Command Result
dotnet test test\Abstractions.Tests\Abstractions.Tests.csproj --configuration Release --no-restore --verbosity minimal --logger 'trx;LogFileName=abstractions.trx' --results-directory TestResults\release-1.27.0 Passed: 184
dotnet test test\Client\OrchestrationServiceClientShim.Tests\Client.OrchestrationServiceClientShim.Tests.csproj --configuration Release --no-restore --verbosity minimal --logger 'trx;LogFileName=shim.trx' --results-directory TestResults\release-1.27.0 Passed: 111
dotnet test test\Client\Grpc.Tests\Client.Grpc.Tests.csproj --configuration Release --no-restore --verbosity minimal --logger 'trx;LogFileName=client-grpc.trx' --results-directory TestResults\release-1.27.0 --filter 'FullyQualifiedName~LargePayloadPurgeEnumParityTests|FullyQualifiedName~ProtoUtilsTests|FullyQualifiedName~GrpcDurableTaskClientInterceptorsTests' Passed: 41
dotnet test test\Worker\Grpc.Tests\Worker.Grpc.Tests.csproj --configuration Release --no-restore --verbosity minimal --logger 'trx;LogFileName=worker-grpc.trx' --results-directory TestResults\release-1.27.0 --filter 'FullyQualifiedName~GrpcDurableTaskWorkerInterceptorsTests|FullyQualifiedName~GrpcDurableTaskWorkerOptionsInternalTests|FullyQualifiedName~GrpcOrchestrationRunnerTests|FullyQualifiedName~GrpcEntityRunnerTests' Passed: 45
dotnet test test\LargePayloadPurge.Abstractions.Tests\LargePayloadPurge.Abstractions.Tests.csproj --configuration Release --no-restore --verbosity minimal --logger 'trx;LogFileName=purge-contracts.trx' --results-directory TestResults\release-1.27.0 Passed: 7
dotnet test test\Extensions\AzureBlobPayloads.Tests\AzureBlobPayloads.Tests.csproj --configuration Release --no-restore --verbosity minimal --logger 'trx;LogFileName=blob-payloads.trx' --results-directory TestResults\release-1.27.0 Passed: 232
dotnet test test\InProcessTestHost.Tests\InProcessTestHost.Tests.csproj --configuration Release --no-restore --verbosity minimal --logger 'trx;LogFileName=in-process.trx' --results-directory TestResults\release-1.27.0 --filter 'FullyQualifiedName~HistoryStorageTests|FullyQualifiedName~HubLifecycleTests|FullyQualifiedName~OrchestrationHistoryTests|FullyQualifiedName~PurgeInstancesTests|FullyQualifiedName~WorkerHistorySnapshotTests|FullyQualifiedName~WorkItemCompletionTests' Passed: 76

Exact build commands; all passed, including all declared target frameworks:

dotnet build src\Extensions\AzureBlobPayloads\AzureBlobPayloads.csproj --configuration Release --no-restore --verbosity minimal
dotnet build src\Client\OrchestrationServiceClientShim\Client.OrchestrationServiceClientShim.csproj --configuration Release --no-restore --verbosity minimal
dotnet build src\InProcessTestHost\InProcessTestHost.csproj --configuration Release --no-restore --verbosity minimal

Exact local pack commands; all passed:

dotnet pack src\Abstractions\Abstractions.csproj --configuration Release --no-build --no-restore --verbosity minimal
dotnet pack src\Client\Core\Client.csproj --configuration Release --no-build --no-restore --verbosity minimal
dotnet pack src\Worker\Core\Worker.csproj --configuration Release --no-build --no-restore --verbosity minimal
dotnet pack src\Grpc\Grpc.csproj --configuration Release --no-build --no-restore --verbosity minimal
dotnet pack src\Client\Grpc\Client.Grpc.csproj --configuration Release --no-build --no-restore --verbosity minimal
dotnet pack src\Worker\Grpc\Worker.Grpc.csproj --configuration Release --no-build --no-restore --verbosity minimal
dotnet pack src\LargePayloadPurge.Abstractions\LargePayloadPurge.Abstractions.csproj --configuration Release --no-build --no-restore --verbosity minimal
dotnet pack src\Extensions\AzureBlobPayloads\AzureBlobPayloads.csproj --configuration Release --no-build --no-restore --verbosity minimal
dotnet pack src\Client\OrchestrationServiceClientShim\Client.OrchestrationServiceClientShim.csproj --configuration Release --no-build --no-restore --verbosity minimal
dotnet pack src\InProcessTestHost\InProcessTestHost.csproj --configuration Release --no-build --no-restore --verbosity minimal

Package inspection passed for 18 effective project versions, ten nuspecs, and 24 packaged assemblies: actual Client models and purge interfaces, assembly/file/informational versions, cryptographic strong-name verification, SDK signing-key identity, MIT metadata, embedded release notes, and complete SDK dependency groups at every target framework.

git diff --check passed for the final worktree. The committed patch passed git -c core.whitespace=blank-at-eol,blank-at-eof,space-before-tab,cr-at-eol --no-pager diff --check origin/main...HEAD; cr-at-eol recognizes the changelog's pre-existing committed CRLF format while retaining the normal whitespace checks.

Compiler/analyzer warnings in unchanged source were retained without new suppressions. Local packing also reports the existing Blob package's missing-readme advisory. No unrelated source or packaging repairs are included.

Full-solution, emulator/service/cloud, Azure Functions smoke, and CodeQL suites were not run. Official SBOM generation, NuGet package signing, hosted CI, and publication are not claimed by these local checks.

Manual validation (only if runtime/behavior changed)

  • Environment (OS, .NET version, components): Windows; .NET SDK 10.0.402; public Core 3.11.1.
  • Steps + observed results:
    1. Not applicable to this metadata-and-release-notes-only preparation; automated package inspection is recorded above.
    2. No cloud/service resources or release workflows were invoked.
    3. No release tags, publication, or GitHub release were created.
  • Evidence (optional): Targeted command logs, TRX results, package/assembly hashes, dependency metadata, public Core provenance, and version-collision receipts were retained for review.

Notes for reviewers

  • Release notes are required and use this repository's actual CHANGELOG.md and per-package RELEASENOTES.md convention; the checklist's generic release_notes.md path is not a new deliverable.
  • Generators remains 2.1.0-preview.2; InProcessTestHost remains 0.2.3-preview.1; ScheduledTasks and ExportHistory retain preview.2 with the new shared prefix. The independently versioned host's notes describe unreleased repository changes, not a version bump or a publication promise.
  • Direct public downloads confirmed both preserved independent versions already exist on NuGet. They cannot be overwritten; publishing the new test-host changes requires a separately approved independent version.
  • The merged test-host change requires direct gRPC integrations to echo each delivery's completionToken; unsupported partial/chunked completion fails the orchestration. The SDK worker already echoes tokens. This PR records that existing change without altering it.
  • Existing publication gates remain approval -> Client/Abstractions -> purge contracts -> Blob. Release operators must also confirm Worker, Grpc, Client.Grpc, and Worker.Grpc are published/restorable; those additional edges are validated locally but are not all enforced by the existing publication gate.
  • All 16 proposed shared-version package downloads were checked directly on public NuGet and returned 404 before commit. No matching 1.27.0 release branch/tag or open release PR was found at preparation time. This is a point-in-time collision check, not a reservation.
  • This PR prepares source artifacts only. It does not authorize tagging, publishing, workflow dispatch, or merging.

Pin the published Microsoft.Azure.DurableTask.Core 3.11.1 package and prepare shared SDK 1.27.0 release notes from the v1.26.0 baseline. Preserve independent package versions and the shared purge-contract version.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d8b0d983-394a-430a-9173-f86114285658
Copilot AI balanced review requested due to automatic review settings October 17, 2026 17:27

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.

🔵 Needs a closer look

The SDK-wide Core dependency upgrade warrants hosted CI and maintainer validation beyond the reported focused local checks.

1 open issue
What changed in this PR

Prepares SDK release 1.27.0 through version metadata and release notes, without changing runtime source or publication workflows.

Changes:

  • Bumps the shared SDK version to 1.27.0 while preserving independent versions and preview suffixes.
  • Updates Durable Task Core to 3.11.1.
  • Consolidates release notes for purge support, scheduler authentication, shim restarts, and test-host fixes.
File Description
src/​Worker/​Grpc/​RELEASENOTES.md Documents worker transport, purge handling, and dependency updates.
src/​Worker/​Core/​RELEASENOTES.md Records the transitive Core update.
src/​Worker/​AzureManaged/​RELEASENOTES.md Removes obsolete initial-release text.
src/​Worker/​AzureManaged.Sandboxes/​RELEASENOTES.md Documents sandbox authentication behavior.
src/​LargePayloadPurge.Abstractions/​RELEASENOTES.md Names the shared purge contracts.
src/​InProcessTestHost/​RELEASENOTES.md Summarizes test-host fixes and compatibility changes.
src/​Grpc/​RELEASENOTES.md Documents purge service messages.
src/​Extensions/​AzureBlobPayloads/​RELEASENOTES.md Summarizes auto-purge and host integration.
src/​Client/​OrchestrationServiceClientShim/​RELEASENOTES.md Documents restart version preservation.
src/​Client/​Grpc/​RELEASENOTES.md Records authenticated purge control.
src/​Client/​Core/​RELEASENOTES.md Documents purge models and dependency updates.
src/​Client/​AzureManaged/​RELEASENOTES.md Removes obsolete initial-release text.
src/​Client/​AzureManaged.Sandboxes/​RELEASENOTES.md Documents sandbox token audiences.
src/​Abstractions/​RELEASENOTES.md Records the Core dependency update.
eng/​targets/​Release.props Sets shared version 1.27.0.
Directory.Packages.props Sets Core dependency version 3.11.1.
CHANGELOG.md Consolidates the 1.27.0 release entries.

Review effort: Balanced

@@ -0,0 +1,3 @@
- Add configurable gRPC interceptors that remain attached when the worker recreates its channel.
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.

2 participants