Skip to content

Guard published TVP contracts against schema drift - #323

Merged
andystaples merged 4 commits into
mainfrom
andystaples-test-tvp-backward-compatibility
Sep 1, 2026
Merged

Guard published TVP contracts against schema drift#323
andystaples merged 4 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

@cgillum Chris Gillum (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

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

Adds safeguards and guidance to prevent published SQL TVP contracts from drifting during rolling upgrades.

Changes:

  • Adds a frozen v1.6.0 TVP compatibility integration test.
  • Documents TVP immutability and rolling-upgrade considerations.
  • Adds repository-wide Copilot development guidance.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/copilot-instructions.md Adds repository development conventions.
docs/multitenancy.md Documents shared-schema rolling upgrades.
src/DurableTask.SqlServer/Scripts/README.md Defines TVP compatibility rules.
src/DurableTask.SqlServer/Scripts/logic.sql Warns against modifying published TVPs.
test/DurableTask.SqlServer.Tests/Integration/DatabaseManagement.cs Adds the frozen TVP contract test.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/multitenancy.md
@andystaples
andystaples enabled auto-merge (squash) September 1, 2026 16:04
@andystaples
andystaples merged commit 8ed1cd1 into main Sep 1, 2026
3 of 4 checks passed
@andystaples
andystaples deleted the andystaples-test-tvp-backward-compatibility branch September 1, 2026 16: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