Skip to content

docs(csharp): add C# driver release process#362

Open
eric-wang-1990 wants to merge 14 commits intomainfrom
docs/csharp-release-process
Open

docs(csharp): add C# driver release process#362
eric-wang-1990 wants to merge 14 commits intomainfrom
docs/csharp-release-process

Conversation

@eric-wang-1990
Copy link
Copy Markdown
Collaborator

Summary

  • Adds csharp/RELEASE_PROCESS.md documenting the release branch model for the C# driver
  • Defines three-phase lifecycle: pre-cutoff (merge from main), cutoff (tag + lock), post-cutoff (cherry-picks only)
  • Covers branch naming, tag conventions, branch protection rules, CI scoping, and consumer mapping

Context

The C# driver needs a release branch model so downstream consumers (e.g., PowerBI) can pin to stable versions and receive hotfixes without pulling in all new development work. Go already uses tag-only releases; this introduces release branches specifically for C#.

Test plan

  • Review the documented process with the team
  • Validate branch protection rules can be applied to release/csharp/* pattern
  • Confirm CI workflow triggers correctly on release branch pushes

This pull request was AI-assisted by Isaac.

Defines the release branch lifecycle (pre-cutoff, cutoff, post-cutoff),
tag conventions, branch protection rules, and CI scoping for C# releases.

Co-authored-by: Isaac
Release branches follow the same rules as main (PR required, CI must
pass). Cutoff is enforced by convention, not extra restrictions.

Co-authored-by: Isaac
Replace gitGraph with flowchart to avoid "Cannot merge branch into
itself" rendering error on GitHub.

Co-authored-by: Isaac
The ADBC driver version appears in Databricks query history, enabling
issue investigation by driver version.

Co-authored-by: Isaac

- All new commits go to `main` as usual.
- The release branch is created early from `main`.
- Periodically merge `main` into the release branch to keep it current.
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Why would we do it this way instead of just creating a release branch when one is ready?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Good point — simplified. The doc now branches directly off main at release time with no pre-cutoff phase. The three-phase model was over-engineered for how we'll actually work.

1. Final merge of `main` into the release branch
2. Tag the cutoff commit (e.g., `csharp/v1.1.0`)
3. Update `stable/csharp` to point to this tag
4. Create the next release branch (e.g., `release/csharp/v1.2.0`) immediately, to give the team a landing place for new work
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Do you need create next? If we are only cutting off the release branch when we are about to release, it seems unnecessary

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Agreed, removed. The doc no longer creates the next release branch at cutoff — branches are created only when ready to release.

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