Remove the in-process worker, port Netherite to isolated, rebuild CI - #321
Closed
Viswanath (ViswanathBalusu) wants to merge 1 commit into
Closed
Viswanath (ViswanathBalusu) wants to merge 1 commit into
Viswanath (ViswanathBalusu) wants to merge 1 commit into
Conversation
The .NET in-process backend was a parallel fork of the isolated one, not a
consumer of it, so removing it touches nothing the isolated projects rely on.
Removed:
durablefunctionsmonitor.dotnetbackend
tests/durablefunctionsmonitor.dotnetbackend.tests
custom-backends/{mssql,netherite,netcore21,netcore31}
Netherite was the only storage provider without an isolated backend, so it is
ported rather than dropped: durablefunctionsmonitor.dotnetisolated.netherite
plus custom-backends/dotnetIsolated-netherite, mirroring the .mssql pair. Task
Hub discovery reads Netherite's DurableTaskPartitions table via core's
TableClient, which also gains identity-based Storage support that the
in-process version lacked. Reaching that helper needs one InternalsVisibleTo,
matching how core already exposes internals to its test project.
VS Code extension now launches isolated backends: FUNCTIONS_WORKER_RUNTIME is
dotnet-isolated and the contradictory --csharp flag is gone. The Functions v4
version gate moved ahead of the custom-backend dispatch, since every backend
now requires it. The backendVersionToUse setting is dropped; it only ever
selected .NET Core 2.1/3.1 in-process backends.
Custom backends reference durablefunctionsmonitor.dotnetisolated.* by project,
so they cannot build from inside the VSIX. CI now pre-publishes them as
binaries instead of shipping source, which also removes the slow dotnet publish
on first launch. Docker builds move to a repo-root context for the same reason.
CI/CD:
build.yml reusable build, called by all publishing workflows
pr-build.yml PR validation, publishes nothing
main-build.yml main -> GitHub Packages prerelease
publish-nuget.yml tag v* -> nuget.org via Trusted Publishing (OIDC)
push-to-nuget.yml deleted, superseded
Directory.Build.props becomes the single source of version truth, replacing 12
hardcoded copies. Package ids and versions are now nuspec tokens supplied at
pack time.
Fixes a latent packaging bug: MSBuild only auto-imports build/<PackageId>.targets,
but the nuspecs shipped a fixed filename, so the targets that copies DfmStatics
into a consumer's output never fired for DurableFunctionsMonitor.DotNetIsolated.MsSql.
Now targeted as build/$id$.targets.
publish-nuget.yml hard-fails unless PACKAGE_ID_PREFIX is set, because
DurableFunctionsMonitor.DotNetIsolated and .MsSql are owned by other accounts
on nuget.org and cannot be published from this repo.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
The .NET in-process backend was a parallel fork of the isolated one, not a consumer of it, so removing it touches nothing the isolated projects rely on.
Removed:
durablefunctionsmonitor.dotnetbackend
tests/durablefunctionsmonitor.dotnetbackend.tests
custom-backends/{mssql,netherite,netcore21,netcore31}
Netherite was the only storage provider without an isolated backend, so it is ported rather than dropped: durablefunctionsmonitor.dotnetisolated.netherite plus custom-backends/dotnetIsolated-netherite, mirroring the .mssql pair. Task Hub discovery reads Netherite's DurableTaskPartitions table via core's TableClient, which also gains identity-based Storage support that the in-process version lacked. Reaching that helper needs one InternalsVisibleTo, matching how core already exposes internals to its test project.
VS Code extension now launches isolated backends: FUNCTIONS_WORKER_RUNTIME is dotnet-isolated and the contradictory --csharp flag is gone. The Functions v4 version gate moved ahead of the custom-backend dispatch, since every backend now requires it. The backendVersionToUse setting is dropped; it only ever selected .NET Core 2.1/3.1 in-process backends.
Custom backends reference durablefunctionsmonitor.dotnetisolated.* by project, so they cannot build from inside the VSIX. CI now pre-publishes them as binaries instead of shipping source, which also removes the slow dotnet publish on first launch. Docker builds move to a repo-root context for the same reason.
CI/CD:
build.yml reusable build, called by all publishing workflows
pr-build.yml PR validation, publishes nothing
main-build.yml main -> GitHub Packages prerelease
publish-nuget.yml tag v* -> nuget.org via Trusted Publishing (OIDC)
push-to-nuget.yml deleted, superseded
Directory.Build.props becomes the single source of version truth, replacing 12 hardcoded copies. Package ids and versions are now nuspec tokens supplied at pack time.
Fixes a latent packaging bug: MSBuild only auto-imports build/.targets, but the nuspecs shipped a fixed filename, so the targets that copies DfmStatics into a consumer's output never fired for DurableFunctionsMonitor.DotNetIsolated.MsSql. Now targeted as build/$id$.targets.
publish-nuget.yml hard-fails unless PACKAGE_ID_PREFIX is set, because DurableFunctionsMonitor.DotNetIsolated and .MsSql are owned by other accounts on nuget.org and cannot be published from this repo.