Repository navigation
docs(release): prepare v1.16.0 - #845
Conversation
…[vercel skip] The sed backup file was committed by accident in #791. It is not compiled but ships in the module zip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
gosqlx.Version and the CLI version were still 1.14.0 (v1.15.0 shipped with them), so gosqlx --version, the MCP server info and /health reported 1.14.0. Also bumps the VS Code extension, Claude Code plugin and marketplace, glama, performance baseline label, llms.txt and the site's release badge. pygosqlx __version__ now matches pyproject (0.2.0). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
Turns [Unreleased] into [1.16.0] - 2026-10-21, adds the missing entries for #734, #735, #780, #786, #789, #790, #791, #826, #835, #836, #837, #840, #841, #843 and #844, updates the MCP and composite-field entries amended by #841 and #843, adds PR refs, and adds the compare links. The VS Code extension gets a 1.16.0 entry, and split-changelog.js generates the /changelog page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
MIGRATION gains a v1.15.0 -> v1.16.0 section with a behaviour-change checklist. ERROR_CODES documents E4001 dialect gating and the 11 dialect names. CLI_GUIDE lists --dialect on format, parse, analyze and lint and all 11 dialects. SQL_COMPATIBILITY marks Oracle CONNECT BY/PRIOR and SQL Server PIVOT as parsed. api/mcp.md matches the current Config and middleware API, api/models.md drops the nonexistent Location.Offset and documents byte columns, and HIGHLIGHTING notes ANSI control-character neutralization. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
The website build rewrote both files on main: sample-ast.json gains the WithOrdinality and ColumnAliases fields from #843, and v1-9-1.md drops the emoji the changelog splitter strips. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Claude finished @ajitpratap0's task in 21s —— View job Review of PR #845: docs(release): prepare v1.16.0I reviewed the version-constant edits, the stray-file removal and the doc and manifest changes. I did not re-run the test suite. I'm relying on the Verdict: Looks good. The changes are mechanical and low risk, and I found no blocking issues. A few small nits are below. What checks out
Nits and suggestions
Security, performance and tests
|
…adConfig errors Address review notes on #845: the lead paragraph understated the perf audit's allocation cuts, the MIGRATION table listed a v1.15.0 plugin that never shipped, E4001 also covers LIMIT under SQL Server, and LoadConfig rejects more trusted-proxy misconfigurations than the API doc listed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
|
Claude finished @ajitpratap0's task in 18s —— View job Review of PR #845: docs(release): prepare v1.16.0I re-checked the code edits in the current diff: Verdict: Looks good. The code changes are mechanical and low risk. I found no blocking issues. Verified
Nits (non-blocking)
Security, performance and testsThere are no library behaviour changes, so no new security or performance concerns. No new tests are needed for the version constants. The |
List all 11 validate_sql dialects, describe lint_sql as the 10 rules it runs (L001-L010; the CLI and SDK have 30), sync tool descriptions with pkg/mcp/server.go, and drop the unsourced 1.38M ops/sec claim in favour of a link to the benchmarks page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
|
Claude finished @ajitpratap0's task in 26s —— View job Review of PR #845: docs(release): prepare v1.16.0I read the code diffs and grepped for leftover version strings. I did not re-run the test suite. I'm relying on the Verdict: Looks good. I found no blocking issues. Verified
Nits (non-blocking)
Security, performance and tests
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9 # Conflicts: # docs/MIGRATION.md # python/pygosqlx/__init__.py # vscode-extension/CHANGELOG.md
…uide Record the pygosqlx 0.3.0 API and wheels, the gosqlx_version double free, LSP serverInfo/CLI version reporting, the Python CI and release workflows and the #848 docs. MIGRATION companion table lists pygosqlx 0.3.0, libgosqlx exports and the LSP serverInfo version, with matching behaviour-change notes. Regenerate the v1.16.0 blog page. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
|
Claude finished @ajitpratap0's task in 26s —— View job Review of PR #845: docs(release): prepare v1.16.0I checked the version constants, the stray-file deletion and the dialect wording by grep. I did not re-run the test suite. I'm relying on the Verdict: Looks good. I found no blocking issues. The changes are mechanical and don't touch library behaviour. Verified
Nits (non-blocking)
Security, performance and testsThere are no library behaviour changes, so no new security or performance concerns. The HIGHLIGHTING untrusted-input note (#836) is a good addition. No new tests are needed for the version constants. The |
- Release date 2026-10-22 in CHANGELOG, MIGRATION, the extension changelog and the generated blog post (re-stamp at tag time if it slips). - vscode-extension CHANGELOG: Fixed entry for the #846 version reporting. - CHANGELOG: keep the Behavior changes list tight; name TranspileError and the LintResult/SecurityScanResult types in the pygosqlx 0.3.0 entry. - MIGRATION: PyPI wheels row is conditional on the pygosqlx-v0.3.0 tag. - Add #852 (sdist builds fail without libgosqlx; release tag lookup skips v1). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
…template) goreleaser check (v2.12.7) flagged archives.format, format_overrides.format and snapshot.name_template as deprecated; release.yml runs goreleaser 'latest'. Snapshot release dry-run builds all six archives. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
pygosqlx wheels bundle libgosqlx built from the same commit, so its version now matches the GoSQLX release. The first PyPI release is 1.16.0 (it was 0.2.0, never published); no older versions are backfilled. - pygosqlx-release.yml also publishes on GoSQLX 'vX.Y.Z' tags (the floating 'v1' tag does not match); 'pygosqlx-v*' stays for Python-only .postN releases. Both must match pyproject.toml and be on main. - pyproject.toml / __version__ 1.16.0; the version test now asserts __version__ equals the bundled library's version(). - CHANGELOG, MIGRATION and python/README describe the lockstep scheme. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9
|
Claude finished @ajitpratap0's task in 23s —— View job Review of PR #845: docs(release): prepare v1.16.0I checked the version constants, the Python version change, the stray-file deletion and the local working tree. I did not re-run the test suite and rely on the Verdict: Looks good. The one thing to fix before tagging is a stale PR description (item 1). Verified
Issues and nits
Security, performance and testsThere are no library behaviour changes, so no new security or performance concerns. The HIGHLIGHTING untrusted-input note (#836) is a good addition. No new tests are needed for the constants. |
Summary
Release prep for v1.16.0 (dated 2026-10-21; change the date at tag time if needed). No library behaviour changes. The only code edits are version constants and the removal of a stray file.
[Unreleased]becomes## [1.16.0] - 2026-10-21 — Performance Audit, SQL Highlighting, Dialect-Aware LSP, Claude Code Plugin & ChatGPT App, Correctness Sweep, with a new empty[Unreleased]above it and the compare links ([1.16.0],[Unreleased]→v1.16.0...HEAD).Startskips comments), fix(parser): parse || as logical OR in MySQL and MariaDB (#781) #790 (MySQL/MariaDB||is OR), fix(parser): composite field access and table function follow-ups (#839) #843 (composite access gated to E4001), fix(linter): report L006 column as a byte offset; tighten comment span test #840 (L006 byte column), MCPformat_sqluppercasing. Added: fix(parser): composite field access and table function follow-ups (#839) #843, fix(parser): parse || as logical OR in MySQL and MariaDB (#781) #790, fix(playground): correct Analyze and Lint results from the WASM bridge #780. Fixed: fix(parser): parse arithmetic on the right-hand side of comparisons (#596) #734, fix(parser): make pooled parser capabilities match NewParser (#590) #735/fix(parser): make zero-value Parser{} capabilities match NewParser (#784) #789, fix(parser): accept general expressions in CONNECT BY (PRIOR as unary operator) #791, fix(ast): render Snowflake VariantPath in SQL() and the formatter #786, fix(parser): match CROSS JOIN, FULL JOIN and GROUPING SETS in any case #844, playground fix(playground): correct Analyze and Lint results from the WASM bridge #780/feat(playground): mark parse errors in the SQL editor #796, version string. Security: fix(highlight): neutralize terminal control characters in ANSI output #836, fix(mcp): pin stateless session IDs and stop logging session IDs in transport errors #835, chore(deps,test): patch certifi and markdown-it; bound testcontainer startup #837. Internal: website/CI/docs summary.gosqlx.Version, the CLIVersion(plus a "Version 1.16.0 includes" block), the cmd doc comments, the VS Code extensionpackage.json/lock, the Claude Code plugin and marketplace,glama.json, theperformance_baselines.jsonlabel,llms.txt, the websitePROJECT.versionbadge, CLAUDE.md and examples/README. v1.15.0 shipped with these constants still at 1.14.0, sogosqlx --version, the MCP server info and/healthreported 1.14.0.pygosqlx.__version__matches pyproject (1.16.0, lockstep with GoSQLX).split-changelog.jsgeneratedwebsite/src/content/blog/v1-16-0.md(the same convention asv1-15-0.md). The website build also rewrotesample-ast.json(new fix(parser): composite field access and table function follow-ups (#839) #843 fields) andv1-9-1.mdon main, so both regenerated files are committed here.v1.15.0 → v1.16.0section with a behaviour-change checklist and companion versions.--dialectrows for format/parse/analyze/lint, and all 11 dialects in the table.Location.Offsetand documents byte columns.docs/MIGRATION.mdandvscode-extension/CHANGELOG.mdkeep both the v1.16.0 and v1.15.0 sections, andpygosqlx/__init__.pytook main's 0.3.0 (since moved to lockstep 1.16.0, see below). CHANGELOG[1.16.0]entries added and checked against each merged diff:lint,security_scan,transpile,dialects, new libgosqlx exports) (feat(cbinding,python): dialect-aware exports, lint, security scan, transpile (pygosqlx 0.3.0) #850) and prebuilt wheels with a PyPI Trusted Publishing pipeline (ci(python): build pygosqlx platform wheels and publish to PyPI #851).gosqlx_version()double free / pygosqlxversion()crash (fix(cbinding): return caller-owned string from gosqlx_version; add Python CI #847); LSPserverInfo.versionreports the library version, the VS Code bundled binary is stamped with the tag, CLIVersionldflag (fix(lsp,cli,ci): report the real version from LSP and release binaries #846).pygosqlx-v*tags, vscode-publish version smoke test (fix(lsp,cli,ci): report the real version from LSP and release binaries #846, fix(cbinding): return caller-owned string from gosqlx_version; add Python CI #847, ci(python): build pygosqlx platform wheels and publish to PyPI #851); docs: v1.16.0 release follow-ups (docs nav, highlight API, LSP dialect, MCP wording) #848 docs pages.v1-16-0.mdregenerated.serverInfo.version, libgosqlx and pygosqlx 1.16.0 rows; checklist gains LSP version, CLI ldflag,gosqlx_version()ownership and pygosqlx Python 3.10+ notes.git grep 1.15.0after the merge: remaining hits are history, the post-tag items below, or themetrics.tsbenchmark release label; none belong in this PR.pkg/sql/parser/parser.go-e, a sed backup with conflict markers that fix(parser): accept general expressions in CONNECT BY (PRIOR as unary operator) #791 committed by accident.Since the last review
v1) and fix: single-source core lint rules, derive CLI version, fix README dialect note #853 (sharedrules.CoreRules, CLI version fromgosqlx.Version, tag guard, README BigQuery/Redshift wording);root.goconflict resolved tovar Version = gosqlx.Version.TranspileError/result types, conditional PyPI wording.v1.16.0tag;pygosqlx-v*tags remain for.postNPython-only releases.Test Plan
After merging fix: single-source core lint rules, derive CLI version, fix README dialect note #853:
task checkEXIT=0 (0 lint issues);go run ./cmd/gosqlx --version→ 1.16.0; pytest against a fresh libgosqlx: 184 passed,__version__ == version() == 1.16.0; websitecheck:docs/anchors/docs-links/metricsoktask check(fmt, vet, golangci-lint,test:race): EXIT=0go run ./scripts/gen-readme-metrics --check: ok (banners still match the latest tag v1.15.0, which is intentional, see Tag-time steps)go run ./cmd/gosqlx --version→gosqlx version 1.16.0website:
npm ci,npm run typecheck,npm run lint(0 errors, 7 warnings that predate this PR),npm test(34/34),npm run build,check:metrics,check:docs,check:anchors,check:docs-links,check:seo(94 pages),check:renderedRan the doc examples I added:
gosqlx format --dialect mysql "... LIMIT 5, 10", OracleCONNECT BY NOCYCLE PRIOR id = mgr + 1, SQL Server PIVOT, and bigquery/generic(t).nameJSON manifests parse
After merging main:
go build ./...,go test -raceon cmd/gosqlx, pkg/lsp, pkg/gosqlx;task test:cbinding; pre-commit short suite;gen-readme-metrics --check; websitecheck:metrics,check:docs,check:anchors,check:docs-linksBreaking Changes
None in this PR. The release itself is source-compatible (additions only) but changes runtime behaviour; see Behavior changes in the CHANGELOG and the new MIGRATION section.
Release note
This PR is the release: the notes are the CHANGELOG
## [1.16.0]section (alsowebsite/src/content/blog/v1-16-0.md).Tag-time steps
vscode-extension/CHANGELOG.md, MIGRATION heading, generated blog post)goreleaser check(v2.12.7): deprecated keys replaced; snapshot dry-run builds all six archivesgovulncheck(v1.1.4): only GO-2026-6809 in the local go1.27.2 stdlib; release CI uses Go 1.26 latest (1.26.10, fixed)pygosqlx,ajitpratap0/GoSQLX,pygosqlx-release.yml, envpypi) and thepypiGitHub environment (tagsv[0-9]*.[0-9]*.[0-9]*,pygosqlx-v*)v1.16.0on main. The tag runs:release.yml: tag ==gosqlx.Versionguard, race + cbinding tests, GoReleaser (creates the GitHub release)vscode-publish.yml: 5 platform VSIXs to the Marketplace;--versionsmoke test must print 1.16.0pygosqlx-release.yml: wheels + sdist, then pygosqlx 1.16.0 to PyPI (lockstep versioning; no separate pygosqlx tag)glama-sync.ymlon release publishdoc.goVersion History;go run ./scripts/gen-readme-metrics;integrations/gormandintegrations/opentelemetry→go get github.com/ajitpratap0/GoSQLX@v1.16.0 && go mod tidy;@v1.15.0install pins indocs/guides/lint-sql-in-ci.mdandwebsite/src/content/articles/lint-sql-in-ci-with-a-go-binary.md; re-measure benchmarks (metrics.jsonmeasured_at,benchmarks/compare/results/latest.json) and regenerate README / llms.txt /metrics.ts/competitor-benchmarks.json🤖 Generated with Claude Code
https://claude.ai/code/session_01RkzVu3JY9Y6BRWfjesWts9