Repository navigation
docs(release): prepare v1.17.0 - #877
Conversation
… compatibility page - metrics.ts: add REALWORLD_CORPUS (per-dialect pass/total from scripts/dialect-audit at 8d8c527, totals derived, released: false) and the REALWORLD_STATUS qualifier. - DialectShowcase: each dialect card shows "Real-world corpus: N/N" with an "on main, next release" qualifier; anchors and v1.15.0 QA badges unchanged. - FEATURES: Multi-Dialect cites the corpus from metrics.ts; new full-width "Format & Transpile" card (v1.14 features, comment/hint preservation marked next release) with a code icon so the grid stays balanced. - SQL_COMPATIBILITY.md: single-dialect reproduce command, the ratchet rule, and a table of unreleased statement syntax (multi-table UPDATE/DELETE, UPDATE/DELETE TOP and OUTPUT, GO [n], RETURNING INTO, ARRAY JOIN/LIMIT BY, MERGE with VALUES, CLONE ... AT, SEQUENCE DDL, EXPLAIN, Oracle '/', <=> and == gating), each example checked with ParseWithDialect. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…xample
- wasm: format() now calls gosqlx.FormatWithDialect with the selected
dialect (TOP stays TOP in SQL Server, comments and hints are kept) and
returns {"result"} or {"error","error_span"} (bridge.TextResponse); add a
gosqlxTranspile(sql, from, to) export wrapping gosqlx.Transpile.
- bridge: Format and Transpile helpers with tests for dialect format,
comment preservation, ErrUnplaceableComment, operator/quote/escape
transpilation and transpile errors; contract fixture extended.
- website: Transpile tab (From is the editor dialect, To is selectable),
Format tab shares a SqlOutput component, TextData in bridgeTypes and the
contract check, loader gains transpile(); tab bar scrolls on narrow
screens; default SQL starts with a comment.
- homepage: Transpile API example (MySQL -> PostgreSQL) and a Format
example that keeps a comment, each with its printed output.
- regenerate src/generated/sample-ast.json (new AST quote fields).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…ST surface - format guide: replace "Comments are not preserved" with comment and hint handling, ErrUnplaceableComment, FormatWithDialect and the CLI's comment check and fully lower-case --no-uppercase - CLI guide: add transpile, stats and watch sections, dialect aliases, validate --quiet/--check/--list-dialects, lint exit 1 on syntax errors, -o for parse/transpile; drop unsourced performance claims and link to /benchmarks/ - api/gosqlx.md: Format, FormatWithDialect, WithComments, Lint error contract, SplitStatements block and separator handling, Transpile operator mapping, ExtractColumns alias rule (#849) - api/ast.md: ExplainStatement, BatchSeparator, Extras/DialectExtras/ EnsureExtras, identifier quote style, literal introducers, TableReference.Modifiers, PIVOT/UNPIVOT additions, BinaryExpression.BitwiseXor; struct field names corrected from the Go source - feature tour: formatting with comments, transforms, fingerprinting and transpilation, with outputs produced from main - troubleshooting, usage, LSP and MCP guides: Lint error return, SplitStatements blocks/GO/DELIMITER/'/', LSP outline and formatting, MCP GO counts and alias columns - lint-sql-in-ci: fix the link to the renamed comments section Unreleased behaviour is marked in body text; no heading carries a version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…website-next-release
…docs/website-next-release
…ext release - CLI_GUIDE: describe what gosqlx watch does today (watches, reports nothing, never rewrites files); drop the --mode claims pending the watch fix - CLI_GUIDE, api/gosqlx.md: ||/ becomes CBRT() only for Snowflake and ClickHouse; other targets return an error - CLI_GUIDE: remove unsourced validate latency/throughput claims - api/ast.md: DialectExtras() returns a shallow struct copy; EnsureExtras() is the mutable path - SQL_COMPATIBILITY: <=> and == accepted only in the listed dialects (none in v1.16.0), quote dialect-audit output exactly, qualify GO statement counts, call the corpus production-style - website: production-style corpus wording, CLI guide description, playground intro/meta mention transpile, Transpile tab notes comments are dropped - bridge: TextResponse doc matches WasmLoader.parseResult (throws on error) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ajitpratap0's task in 23s —— View job PR review: #877 (docs, dialect corpus, playground Format/Transpile)I read the WASM bridge, Overall: the Go side looks clean and well tested. I found no blocking issues. What looks good
Suggestions (non-blocking)
Security and performance
|
Library, CLI, MCP server.json, Claude Code plugin, Glama, VS Code extension, pygosqlx, performance baselines, website version constant and docs headers now report 1.17.0. Adds the 1.17.0 entries to the CLI and package version-history comments. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…vercel skip] - CHANGELOG: rename [Unreleased] to [1.17.0] with a release summary; Behavior changes first (led by the #868 GO change), new Security and Performance sections, duplicates merged and PR numbers on every entry. - MIGRATION: v1.16.0 -> v1.17.0 checklist and companion versions. - VS Code extension changelog 1.17.0 entry. - API reference: new formatter package page; AST container fields, CTE/PIVOT fields, checked formatting, linter syntax errors, security scanner, tokenizer dialect lexing, LSP sync key and error handling, MCP parse_sql dialect, CLI security merge and quiet mode. - Generated v1-17-0 release post (split-changelog). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…[vercel skip] Re-ran scripts/dialect-audit on all 8 dialects at fda9a5e: 2,813 statements (was 2,788), all passing. Updates metrics.ts (released: true, per-dialect counts, sourceCommit), the SQL_COMPATIBILITY table and every 2,788 mention, and regenerates the v1-17-0 release post. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…el skip] Rewrite the "unreleased / on the main branch / next release" markers in the guides and API reference now that the behaviour ships in v1.17.0, and regenerate the homepage sample AST for the new AST fields. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
…ctness work Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
|
Claude finished @ajitpratap0's task in 17s —— View job PR review: #877 (docs, dialect corpus, playground Format/Transpile)I read the WASM bridge, Overall: I found no blocking issues. The Go side is thin, well tested and consistent with the JSON contract. What looks good
Suggestions (non-blocking)
Security and performance
|
gen-readme-metrics --check requires the doc.go version history and the docs/*.md banners to match the latest tag; they move to 1.17.0 in the post-tag follow-up, as for v1.16.0 (#855). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
The playground page now transfers 3.60 MB (CI median), 1.4 KB over the shared 3.6 MB budget, because the GoSQLX WASM module grows with the parser. Budget it like its script size: measured value plus ~15%. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
|
Claude finished @ajitpratap0's task in 17s —— View job Review of PR #877: prepare v1.17.0This is a partial review. I checked the diff stat and grepped for leftover Overall: no blocking issues found. The version bump is consistent across the surfaces I checked. Findings
Security and performance
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2
* docs(website): show the real-world dialect corpus on the homepage and compatibility page - metrics.ts: add REALWORLD_CORPUS (per-dialect pass/total from scripts/dialect-audit at 8d8c527, totals derived, released: false) and the REALWORLD_STATUS qualifier. - DialectShowcase: each dialect card shows "Real-world corpus: N/N" with an "on main, next release" qualifier; anchors and v1.15.0 QA badges unchanged. - FEATURES: Multi-Dialect cites the corpus from metrics.ts; new full-width "Format & Transpile" card (v1.14 features, comment/hint preservation marked next release) with a code icon so the grid stays balanced. - SQL_COMPATIBILITY.md: single-dialect reproduce command, the ratchet rule, and a table of unreleased statement syntax (multi-table UPDATE/DELETE, UPDATE/DELETE TOP and OUTPUT, GO [n], RETURNING INTO, ARRAY JOIN/LIMIT BY, MERGE with VALUES, CLONE ... AT, SEQUENCE DDL, EXPLAIN, Oracle '/', <=> and == gating), each example checked with ParseWithDialect. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * feat(playground): dialect-aware Format, Transpile tab and transpile example - wasm: format() now calls gosqlx.FormatWithDialect with the selected dialect (TOP stays TOP in SQL Server, comments and hints are kept) and returns {"result"} or {"error","error_span"} (bridge.TextResponse); add a gosqlxTranspile(sql, from, to) export wrapping gosqlx.Transpile. - bridge: Format and Transpile helpers with tests for dialect format, comment preservation, ErrUnplaceableComment, operator/quote/escape transpilation and transpile errors; contract fixture extended. - website: Transpile tab (From is the editor dialect, To is selectable), Format tab shares a SqlOutput component, TextData in bridgeTypes and the contract check, loader gains transpile(); tab bar scrolls on narrow screens; default SQL starts with a comment. - homepage: Transpile API example (MySQL -> PostgreSQL) and a Format example that keeps a comment, each with its printed output. - regenerate src/generated/sample-ast.json (new AST quote fields). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * docs: document comment-preserving format, CLI additions and new API/AST surface - format guide: replace "Comments are not preserved" with comment and hint handling, ErrUnplaceableComment, FormatWithDialect and the CLI's comment check and fully lower-case --no-uppercase - CLI guide: add transpile, stats and watch sections, dialect aliases, validate --quiet/--check/--list-dialects, lint exit 1 on syntax errors, -o for parse/transpile; drop unsourced performance claims and link to /benchmarks/ - api/gosqlx.md: Format, FormatWithDialect, WithComments, Lint error contract, SplitStatements block and separator handling, Transpile operator mapping, ExtractColumns alias rule (#849) - api/ast.md: ExplainStatement, BatchSeparator, Extras/DialectExtras/ EnsureExtras, identifier quote style, literal introducers, TableReference.Modifiers, PIVOT/UNPIVOT additions, BinaryExpression.BitwiseXor; struct field names corrected from the Go source - feature tour: formatting with comments, transforms, fingerprinting and transpilation, with outputs produced from main - troubleshooting, usage, LSP and MCP guides: Lint error return, SplitStatements blocks/GO/DELIMITER/'/', LSP outline and formatting, MCP GO counts and alias columns - lint-sql-in-ci: fix the link to the renamed comments section Unreleased behaviour is marked in body text; no heading carries a version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * docs(website): correct watch, transpile, AST and corpus wording for next release - CLI_GUIDE: describe what gosqlx watch does today (watches, reports nothing, never rewrites files); drop the --mode claims pending the watch fix - CLI_GUIDE, api/gosqlx.md: ||/ becomes CBRT() only for Snowflake and ClickHouse; other targets return an error - CLI_GUIDE: remove unsourced validate latency/throughput claims - api/ast.md: DialectExtras() returns a shallow struct copy; EnsureExtras() is the mutable path - SQL_COMPATIBILITY: <=> and == accepted only in the listed dialects (none in v1.16.0), quote dialect-audit output exactly, qualify GO statement counts, call the corpus production-style - website: production-style corpus wording, CLI guide description, playground intro/meta mention transpile, Transpile tab notes comments are dropped - bridge: TextResponse doc matches WasmLoader.parseResult (throws on error) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * docs(cli): describe watch validate/format modes and --dialect Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * chore(release): bump version surfaces to 1.17.0 [vercel skip] Library, CLI, MCP server.json, Claude Code plugin, Glama, VS Code extension, pygosqlx, performance baselines, website version constant and docs headers now report 1.17.0. Adds the 1.17.0 entries to the CLI and package version-history comments. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * docs(release): v1.17.0 changelog, migration guide and API reference [vercel skip] - CHANGELOG: rename [Unreleased] to [1.17.0] with a release summary; Behavior changes first (led by the #868 GO change), new Security and Performance sections, duplicates merged and PR numbers on every entry. - MIGRATION: v1.16.0 -> v1.17.0 checklist and companion versions. - VS Code extension changelog 1.17.0 entry. - API reference: new formatter package page; AST container fields, CTE/PIVOT fields, checked formatting, linter syntax errors, security scanner, tokenizer dialect lexing, LSP sync key and error handling, MCP parse_sql dialect, CLI security merge and quiet mode. - Generated v1-17-0 release post (split-changelog). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * docs(release): mark the real-world corpus released and re-measure it [vercel skip] Re-ran scripts/dialect-audit on all 8 dialects at fda9a5e: 2,813 statements (was 2,788), all passing. Updates metrics.ts (released: true, per-dialect counts, sourceCommit), the SQL_COMPATIBILITY table and every 2,788 mention, and regenerates the v1-17-0 release post. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * docs(release): describe merged behaviour as released in v1.17.0 [vercel skip] Rewrite the "unreleased / on the main branch / next release" markers in the guides and API reference now that the behaviour ships in v1.17.0, and regenerate the homepage sample AST for the new AST fields. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * docs(changelog): record transpile and parse costs of the 1.17.0 correctness work Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * fix(release): keep tag-tracked version banners at v1.16.0 until the tag gen-readme-metrics --check requires the doc.go version history and the docs/*.md banners to match the latest tag; they move to 1.17.0 in the post-tag follow-up, as for v1.16.0 (#855). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * ci(lighthouse): give /playground/ its own total-size budget The playground page now transfers 3.60 MB (CI median), 1.4 KB over the shared 3.6 MB budget, because the GoSQLX WASM module grows with the parser. Budget it like its script size: measured value plus ~15%. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 * fix(playground): resolve the #877 review items - Render tests for SqlOutput and TranspileTab error, success and empty states (react-dom/server + in-process TypeScript, no new dependencies). - One useCopyFeedback hook for the four copy buttons: the reset timer is restarted on each click and cleared on unmount, and the "go get" copy now reports a failed clipboard write. - Document that parse/format/lint/analyze/highlight treat an unknown dialect as generic while transpile returns an error (JSDoc, wasm/main.go, docs/HIGHLIGHTING.md). - Drop the unused error_span from the Format/Transpile payload; Lint and Analyze keep parse_error_span, which the editor already marks. - Clamp WASM download progress to 1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2 --------- Co-authored-by: Ajit Pratap Singh <ajitpratapsingh@Ajits-Mac-mini-2655.local> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Release preparation for v1.17.0 (Real-World Dialect Corpus, Dialect-Faithful Round Trips, Security Scanner & LSP Hardening). This PR now carries both the website feature docs drafted earlier and the release finalisation, so the site, docs and version surfaces change together in one production deploy.
gosqlx.Version, CLI docs,server.json, Claude Code plugin + marketplace,glama.json, VS Code extension (package.json+ lock), pygosqlx (pyproject.toml,__version__),performance_baselines.jsonversion,llms.txt,CLAUDE.md, docs headers, websitePROJECT.version; 1.17.0 entries in the CLI and package version-history comments.[Unreleased]→[1.17.0] - 2026-10-29with a release summary; Behavior changes first (led by fix(parser)!: treat a GO line inside a SQL Server statement as an error #868, SQL ServerGOinside a statement), new Security and Performance sections, duplicates merged, PR numbers on every entry, chore(mcp): register hosted server and automate registry publication #859 and the new formatter/gosqlx/transform*CheckedAPIs added. Performance records the measured costs:Transpile≈2.0 → 5.2 µs on the CREATE TABLE benchmark, parse ≈+6% time / −8% allocs.docs/api/formatter.md(added to the docs sidebar); AST container fields, CTE/PIVOT fields, checked formatting, linter syntax errors, security scanner, tokenizer dialect lexing, LSPtextDocumentSync+ error handling, MCPparse_sqldialect, CLI security merge.fda9a5ef— 2,813 statements, all passing (was 2,788);REALWORLD_CORPUS.released: true, SQL_COMPATIBILITY table and every mention updated.v1-17-0release post (from CHANGELOG viasplit-changelog.js) and refreshed homepage sample AST./playground/gets its own 4.2 MB total-size Lighthouse budget (measured 3.60 MB; the WASM module grows with the parser).Test Plan
task check(fmt, vet, lint, full race suite) andtask test:cbindingon the release headgo test -run TestVersionManifestsMatchVersion ./pkg/gosqlx/npm run build,typecheck,lint,test(34 pass),check:metrics,check:docs,check:docs-links,check:anchors,check:seo,check:rendered,check:layoutscripts/dialect-auditon all 8 dialects: 2,813 / 2,813, failed=0FuzzScanSQL,FuzzParse,FuzzTokenizer,FuzzTokenizerStringLiterals,FuzzTokenizerComments,FuzzFormat-count=6, benchstat): parse baselines and Transpile, recorded in the CHANGELOGBreaking Changes
None to the Go API: exported signatures are unchanged apart from additions. Runtime behaviour changes are listed under Behavior changes in the CHANGELOG and in
docs/MIGRATION.md(SQL ServerGOinside a statement and unquotedtopare errors, per-dialect statement termination and numeric lexing, fingerprints keep quoting, LSP advertisestextDocumentSync).After merge (maintainer)
gh workflow run deploy-mcp.yml --ref main, then confirmhttps://mcp.gosqlx.dev/healthreports1.17.0(needed bypublish-mcpat tag time).v1.17.0on main;release.yml(GoReleaser) creates the GitHub release — do not rungh release create.integrations/*/go.modand the@v1.16.0install pins, add thev1.17.0line to the rootdoc.goversion history and rungo run ./scripts/gen-readme-metrics(these track the latest tag, so they move after it).🤖 Generated with Claude Code
https://claude.ai/code/session_01DnbRnTFErhoMJdAjVEeCg2