Skip to content

Guard published TVP contracts against schema drift - #323

Open
andystaples wants to merge 3 commits into
mainfrom
andystaples-test-tvp-backward-compatibility
Open

Guard published TVP contracts against schema drift#323
andystaples wants to merge 3 commits into
mainfrom
andystaples-test-tvp-backward-compatibility

Conversation

@andystaples

Copy link
Copy Markdown
Contributor

Summary

  • add an integration regression test that submits frozen v1.6 TVP record shapes to the latest database schema
  • document that published TVPs are immutable outside major/breaking releases and should be versioned instead of altered
  • add repository-wide Copilot instructions covering scope, conventions, testing, SQL performance, and rolling-upgrade compatibility
  • document shared-schema rolling-upgrade considerations for multitenant deployments

This guards the mixed-version deployment scenario reported in #317 without adding runtime metadata checks or hot-path overhead.

Testing

  • dotnet build test\DurableTask.SqlServer.Tests\DurableTask.SqlServer.Tests.csproj --no-restore
  • dotnet test test\DurableTask.SqlServer.Tests\DurableTask.SqlServer.Tests.csproj --no-build --filter FullyQualifiedName~DatabaseManagement --verbosity minimal

Freeze published TVP shapes in an integration test and document their rolling-upgrade compatibility requirements.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 7fe49384-6e2f-42c2-86b1-70b55c20d0a9
@andystaples
andystaples requested a review from cgillum July 31, 2026 15:55

@cgillum cgillum left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for creating this PR. I do have one question about the maintenance expectations.

Comment thread src/DurableTask.SqlServer/Scripts/README.md
Comment thread test/DurableTask.SqlServer.Tests/Integration/DatabaseManagement.cs Outdated
andystaples and others added 2 commits July 31, 2026 12:04
Name the compatibility baseline after v1.6.0 and keep detailed maintenance guidance canonical in the schema documentation.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 7fe49384-6e2f-42c2-86b1-70b55c20d0a9
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