Repository navigation
Conversation
… in sqb without Python
kvlonge
enabled auto-merge (squash)
October 19, 2026 21:16
Contributor
Author
|
Closing in favour of one combined PR (H2 + fensu 0.27 + SharedMergeTree on top of the merged deadlock fix) so these share a single CI run; the branch is being fixed for an interaction between H2's broken-pipe parity tests and the merged changes. |
auto-merge was automatically disabled
October 19, 2026 23:21
Pull request was closed
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
Every
sqbinvocation except--versionand warm compile replays started Python, even help, usage errors and commands that need no Python. Starting it costs about 0.1 s before any output.Changes
sqbparses arguments natively and prints help, version and usage errors itself, with Python'sint(), terminal width and colour rules. A--varsvalue or a non-text argument still goes to Python.clean, a baresqb,skills,initandrules list|showrun insqb. The decision is made before any side effect, from the arguments and cheap project facts. Python runs instead for--debug, sinks or event exporters, a project file Python would reject, custom rules, rule options,PYTHONPATH/PYTHONHOME, or when the installed package cannot be found. A failure before the command writes anything also reruns in Python with the same arguments, so Python reports it.sqbby SIGINT, as it ends Python; a closed stdout gives Python's status, message and capture.Verification
-D warnings, fmt, fensu, ruff, ty, boundary, layering and docs-skill checks.--help381M/97 ms → 14.6M/11 ms; usage error 381M/96 ms → 13.8M/12 ms;rules list566M/177 ms → 21.8M/43 ms.