Repository navigation
Conversation
…ython-base The native record, enum and error classes, the Python call plumbing, the host entry calls and the process allocator move into a new PyO3 crate that every later binding crate can depend on. sqlbuild-python imports them directly; the extension module surface is unchanged.
kvlonge
enabled auto-merge
November 15, 2026 17:09
This branch has not been deployed
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.
Why
sqlbuild-pythonis far above the crate size limit and its helper buckets depend on each other, so it can only be split bottom-up along the XSB075 layers. This first slice moves the core every binding uses into its own crate.Changes
sqlbuild-python-base(about 11.8k code lines): native record, enum and error classes (specs, registration, construction, field reads); keyword calls, imports, conversions, panics; host entry calls; positional traits and macros; the allocator. Its public surface ismain/entries and role files.sqlbuild-pythonimports from the base directly, with no shims; a script rewrote the imports. It keeps the getter tables and record behaviours and passes them toregister_records, so registration order is unchanged.python-boundarylists both binding crates; the native-layering check, XSB072/XSB073 roots and module-path scan cover both. Moved files keep their XSB072/XSB073 budgets and edges.main. The one exact copy,session_warehouse_support, is merged; the rest are listed in[dupes]with reasons.No DuckShop case applies: only where the binding code lives changes.
Verification
dir(sqlbuild._native)surface (types, signatures, docs, MRO, order) is unchanged.sqlbuild-python(--profile fast, load 5.6–8): wall 46–48 → 43–47 s, CPU 189–197 → 177–185 s.fensu check,check-native-layering,check-native-stub,check-build-features, clippy-D warnings, the layering, module path and fensu policy script tests,make testandmake check-cipass.