Repository navigation
Prepare v4.7.0: shared gRPC foundation and compatibility fixes - #75
Merged
Merged
Conversation
Retain shared SDK/ADO.NET pooling, opt-in native gRPC sessions, result schema reuse and scalar projection with their engine ownership dependencies. Preserve routed streaming options, cover commit-preparation disposal, retain public Task lifetime regressions, and isolate global telemetry assertions. Close the rejected tuning studies without a new performance claim. Validation: Windows SDK10.0.403; solution build0warnings/errors; 27modules, 8985passing tests and4opt-in live-provider skips. Corrected observability isolation suite134/134; original failed run retained. Documentation and package/EF guards pass.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4c4fd4f426
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
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.
Summary
Prepare CSharpDB 4.7.0 with the shared SDK/ADO.NET gRPC pool and session foundation. Matching rentals share bounded physical clients while retaining credential/route isolation, transaction ownership, cancellation, draining and stale-rental protections. Add explicit native HTTP/2 selection and experimental persistent command sessions; Auto/unary defaults remain in place.
Prevent schema-admission deadlocks by releasing the client lifecycle lock while a transaction waits to begin. Pin the shared database during admission, recheck cancellation/shutdown before registration, and cancel and drain unpublished transactions during disposal. Preserve canceled completion recovery when cancellation races an operation-lock handoff.
Fix archive-backed SQL in the published native library with generated schema/manifest JSON metadata that preserves existing bytes, legacy defaults and enum/null rejection. Add a published NativeAOT C API archive smoke, fail native publication on trimming/AOT warnings, include all 27 test modules in PR CI, and update the optional SQL Server adapter's PKCS dependency to 9.0.22 with matching exact inventories.
Support private migration reject-artifact publication on Linux tmpfs. Unsupported optional ACL attribute families are handled on this known POSIX filesystem; owner, mode, link, identity and actual ACL checks remain enforced. This corrects the three Ubuntu CLI failures, reproduced locally on tmpfs while the same tests passed on ext4.
Bump 4.6.6 to 4.7.0 for the additive public APIs. Current release notes, the versioned Unreleased website summary and its notes digest are aligned. Stable publication history and downloads continue to describe the published 4.6.6 release.
Type of Change
Related Issues
No linked issue.
Testing
The first Windows correction candidate exposed a cancellation-handoff failure, now fixed with a deterministic regression, and an allocation assertion in the unchanged WAL test. The isolated WAL check and final full suites pass. Both initial failures remain in the validation evidence. This correction reruns the complete Core/Data suites and the selected daemon classes locally; the remaining modules run in normal PR CI.
Earlier foundation/integration validation covered all 27 modules on Windows (8,992 passed, four provider skips) and Linux/ext4 (8,989 passed, seven platform/provider skips). The Linux aggregate uses one unchanged 434/434 daemon confirmation after an initial release-script mock timeout; both attempts are retained. Both platforms passed strict native/archive/observability publication, runtime smokes, 45-export verification, dependency auditing and SQL Server bundle isolation.
Hosted checks for the current revision are shown on the PR.
Checklist
Notes for Reviewers
The PR includes the shared-foundation checkpoint, integration fixes and release preparation; most of the diff is foundation regression coverage and its diagnostic harness. Streaming remains experimental and opt-in. Custom TCP and rejected optimization candidates are excluded; no verified network speedup is claimed. Native archive checks cover the C API and do not establish remote-gRPC NativeAOT support.
The tmpfs correction keeps the filesystem allowlist restricted to ext2/3/4 and tmpfs for EOPNOTSUPP. Actual ACLs, unexpected errors and unknown filesystems remain rejected. The Linux kernel documentation describes tmpfs permissions and POSIX ACL support.
Tagging, GitHub Release and NuGet publication follow merge and release qualification.