Skip to content

Bump the go-runtime group across 1 directory with 9 updates - #10

Open
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/go_modules/dev/go-runtime-34cc4c4b5b
Open

Bump the go-runtime group across 1 directory with 9 updates#10
dependabot[bot] wants to merge 1 commit into
devfrom
dependabot/go_modules/dev/go-runtime-34cc4c4b5b

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 7, 2026

Copy link
Copy Markdown

Bumps the go-runtime group with 7 updates in the / directory:

Package From To
github.com/gofrs/flock 0.13.0 0.13.1
github.com/monstercameron/GoGRPCBridge 1.1.1 1.1.2
github.com/monstercameron/GoWebComponents/v5 5.0.1 5.0.4
golang.org/x/text 0.39.0 0.41.0
google.golang.org/grpc 1.83.0 1.83.2
google.golang.org/protobuf 1.36.11 1.36.12
modernc.org/sqlite 1.55.0 1.58.0

Updates github.com/gofrs/flock from 0.13.0 to 0.13.1

Release notes

Sourced from github.com/gofrs/flock's releases.

v0.13.1

What's Changed

New Contributors

Full Changelog: gofrs/flock@v0.13.0...v0.13.1

Commits
  • 4e0f4a7 chore: create the GH release based on tags
  • 3955b77 chore(deps): bump github.com/stretchr/testify from 1.11.1 to 1.12.1 in the go...
  • 66badef chore: update linter (#154)
  • e6a630d chore(deps): bump the github-actions group with 6 updates (#150)
  • d10a59f chore(deps): bump golang.org/x/sys from 0.46.0 to 0.47.0 in the gomod group (...
  • bcbbad5 chore(deps): bump golang.org/x/sys from 0.45.0 to 0.46.0 in the gomod group (...
  • 940b53d chore(deps): bump the github-actions group with 4 updates (#147)
  • 135bc44 chore(deps): bump the github-actions group with 3 updates (#145)
  • 18e4705 chore(deps): bump golang.org/x/sys from 0.43.0 to 0.45.0 in the gomod group (...
  • b000261 chore(deps): bump github/codeql-action from 3.35.3 to 4.35.2 in the github-ac...
  • Additional commits viewable in compare view

Updates github.com/monstercameron/GoGRPCBridge from 1.1.1 to 1.1.2

Commits
  • d21b815 Serialize SetWriteDeadline against in-flight writes without blocking them
  • eaefcbd A refused upgrade says when to come back
  • See full diff in compare view

Updates github.com/monstercameron/GoWebComponents/v5 from 5.0.1 to 5.0.4

Release notes

Sourced from github.com/monstercameron/GoWebComponents/v5's releases.

v5.0.4

Release v5.0.4

Changes in this release:

  • Release tag explicitly selected (no auto patch increment on main)
  • Passed unit/e2e and release verification gates
  • Includes source archive with SHA-256 checksum
  • Prebuilt gwc binaries for linux/macOS/windows (amd64 + arm64) with SHA256SUMS
  • Includes GitHub build provenance attestation (source + binaries)

Full Changelog: monstercameron/GoWebComponents@v5.0.3...v5.0.4

Changelog

Sourced from github.com/monstercameron/GoWebComponents/v5's changelog.

v5.0.4 - 2026-09-03

This release restores the browser release gate after v5.0.3 stopped before publication while trying to download its Playwright driver from a retired CDN.

  • Playwright-Go moves to github.com/mxschmitt/playwright-go v0.6201.1, whose npm-based driver installer replaces the retired Azure CDN used by v0.5700.1.

v5.0.3 - 2026-09-03

This release completes the v5 promotion path after the earlier tagged builds stopped in CI before GitHub could publish them.

  • The docs-site release-note mirror now tracks the latest changelog section.
  • Release CI builds the generated Atlas and load-harness wasm assets before the clean-checkout unit-test gate.
  • google.golang.org/grpc is upgraded to v1.82.1 and github.com/yuin/goldmark to v1.7.17, resolving the reachable GO-2026-6061 and GO-2026-5320 advisories reported by govulncheck.

v5.0.2 - 2026-07-28

No framework behaviour changed. Examples, documentation, measurement and CI only; the sole edit under internal/ is a gofmt blank line in inspect_reporting.go. The substance is that v5 now has a real application exercising it, and that measuring it invalidated several numbers the plan was relying on.

The measurements were wrong, and the instruments were the reason

PRODUCTION_READINESS.md carries a banner over every gate number recorded before 2026-07-26, because they were taken with a probe that generated no input:

  • driveTyping in the P0.2 harness is a setTimeout that types nothing, and always had been. Event Timing only records trusted events, so page script cannot produce input at all — it has to come from the automation driver.
  • M1's recorded pass was an artifact. Equivalence between an idle arm and a "loaded" arm whose probe also did nothing is trivially true no matter what the runtime does.
  • M2 and M7 were reporting zeros from dead instruments. Six deliberately injected 180 ms main-thread blocks went uncounted; LoAF does not fire in headless Chromium, and M7 sampled no collection at all.
  • The measurement machine was contended. 247 livereload dev servers leaked by tools/gwc's dev-loop tests were still running, the oldest two days old. Fixed at the source with killListenersOnPort in tools/gwc/start_test.go.

Re-measured headed, with real trusted keystrokes on a quiet machine (four runs, ~650 interaction samples each, all three §1.2 workloads confirmed running).

What the honest numbers showed about M2

... (truncated)

Commits
  • edd1f92 docs: prepare v5.0.4 release notes
  • 99422a9 ci: migrate Playwright off retired driver CDN
  • 39c3bb0 deps: resolve release-blocking advisories
  • c481d1a ci: build generated assets before release tests
  • 4fed1df docs: surface v5.0.2 release notes
  • e4062f6 fix: serve history routes in dev
  • d22be39 Atlas becomes the reference v5 application; re-measure v5 with working instru...
  • See full diff in compare view

Updates github.com/mxschmitt/playwright-go from 0.6100.0 to 0.6201.1

Release notes

Sourced from github.com/mxschmitt/playwright-go's releases.

v0.6201.1

Go-only patch release on top of the v1.62.1 driver. The bundled driver version is unchanged, so no reinstall is needed when upgrading from v0.6201.0.

Four any-typed parameters accepted argument types the generated docs promised but the code did not handle, and each failed by panicking rather than reporting an error. All four now behave as documented.

Fixes

  • Page.ExpectRequest / Page.ExpectResponse accept func(Request) bool / func(Response) bool predicates again, so waits can filter on Method(), Status(), headers or post data instead of the URL alone (#627).
  • ToHaveText, ToContainText and ToHaveClass accept mixed lists of strings and regexps ([]any{"alpha", regexp.MustCompile("bet.")}), matching upstream's Array<string|RegExp>. Homogeneous []string / []*regexp.Regexp are unaffected.
  • ExpectEvent / WaitForEvent reject the wait with a descriptive error when the predicate is unusable — not a function, wrong argument type, wrong return type, or panicking — instead of crashing the process from the library's own dispatch goroutine. A typed-nil predicate now means "no predicate".
  • The GetBy* family on Page, Frame, Locator and FrameLocator, GetByRole's Name/Description options, and the HasText/HasNotText locator options report an invalid argument type through Locator.Err() instead of panicking.

Internal

  • Driver protocol messages are decoded with encoding/json rather than the vendored Go 1.6 JSON fork in go-jose/v3 — about 20% faster on large frames at the same allocation count. github.com/go-jose/go-jose/v3 and golang.org/x/crypto leave the module graph (investigated for #631).

What's Changed

Full Changelog: mxschmitt/playwright-go@v0.6201.0...v0.6201.1

v0.6201.0

Roll to v1.62.1

This release rolls the bundled Playwright driver to v1.62.1 (Chromium 151.0.7922.34, Firefox 153.0, WebKit 26.5).

[!IMPORTANT] This release pins a new driver version. After upgrading, reinstall the driver:

go run github.com/mxschmitt/playwright-go/cmd/playwright@v0.6201.0 install --with-deps

New APIs

  • ScrollMode (auto / none) on the affected action options.
  • WebP screenshots, including path-based format inference.
  • Virtual WebAuthn credentials in BrowserContext storage state.
  • APIResponse.Timing().ResponseEnd.
  • Locator.WaitForFunction.

... (truncated)

Commits
  • b4b4642 fix: reject unusable event predicates instead of panicking in the dispatch go...
  • 5a3e1e9 fix: report invalid GetBy*/HasText argument types instead of panicking (#637)
  • a43b36f docs(readme): fix badge rendering
  • 6b3d813 docs: fix the coverage badge and link the CI badge (#640)
  • 5034630 chore: modernize the docs site and refresh the README (#639)
  • 416d1ca ci: stop commits to main from serializing into one concurrency queue (#638)
  • 74db994 chore: decode driver protocol messages with encoding/json (#636)
  • 3b1e7c9 fix: accept mixed string/regexp lists in ToHaveText, ToContainText, ToHaveCla...
  • 4ebaf2b fix: accept Request/Response predicates in Page.ExpectRequest/ExpectResponse ...
  • 6380436 test: stop TestShouldUploadAFolderRemote from eating the package timeout (#632)
  • Additional commits viewable in compare view

Updates golang.org/x/sys from 0.46.0 to 0.47.0

Commits
  • 9e7e939 cpu: handle vendor suffixes in parseRelease
  • f6fb8a1 unix: use epoll_pwait rather than epoll_wait
  • f3eeabf windows: avoid length overflow in NewNTString
  • 3cb6647 unix: update glibc to 2.43
  • c507910 windows: document safe usage of TrusteeValue
  • See full diff in compare view

Updates golang.org/x/text from 0.39.0 to 0.41.0

Commits
  • acdba66 go.mod: update golang.org/x dependencies
  • 02aa981 secure/precis: fix short destination buffer handling in Nickname profile
  • 724af9c go.mod: update golang.org/x dependencies
  • bf5b9d6 internal/export/idna: always treat Punycode encoding pure ASCII as an error
  • See full diff in compare view

Updates google.golang.org/grpc from 1.83.0 to 1.83.2

Release notes

Sourced from google.golang.org/grpc's releases.

Release 1.83.2

Security

  • server: Reject requests missing both :authority and Host headers with HTTP 400 and status Internal. (grpc/grpc-go#9365)

Release 1.83.1

Security

  • xds/rbac: Fix a bug where nested Principal or Permission rules with :scheme or grpc- prefixed header matchers were not rejected, which could cause DENY rules to fail open. (#9258)
  • xds/rbac: Fix a bug where the host header matcher was not being replaced with :authority in nested Principal or Permission rules. (#9258)
  • xds/rbac: Fix a bug where a header matcher whose name was not lowercase, such as X-Role, matched no header, which could cause DENY rules to fail open. (#9332)
  • xds/rbac: Fix a bug where a :scheme or grpc- prefixed header matcher was accepted when its name was not lowercase. (#9332)
  • xds/rbac: Fix a bug where a Host header matcher was not replaced with :authority. (#9332)

Performance

  • transport: Restrict memory overhead of buffering small data frames. (#9331)
Commits

Updates google.golang.org/protobuf from 1.36.11 to 1.36.12

Updates modernc.org/sqlite from 1.55.0 to 1.58.0

Changelog

Sourced from modernc.org/sqlite's changelog.

Changelog

Entries for v1.38.1 through v1.44.1 and for v1.49.1 were added on 2026-09-05, reconstructed from the git history and the merge requests they cite; they were missing at release time.

  • 2026-09-05 v1.59.0:

    • Hand user-defined function and aggregate callbacks a pooled *FunctionContext instead of allocating a fresh one per call. After the []driver.Value pooling of #226 this was the last driver-side heap allocation per invocation: one 16-byte object for every Scalar, Step, WindowInverse, WindowValue and Final call. The context now also carries the invocation's sqlite3_context, so accessor methods can be added to it later without touching the trampolines. Like the argument slice, it is valid only for the duration of the callback and must not be retained past its return; the documentation on FunctionContext and on the callbacks now says so. On the 1000-row, 3-argument noop scalar UDF benchmark this removes a further 1000 allocs/op (5756 to 4756, and 3756 to 2756 with VolatileArgs) and 16 KB/op; on the reporter's reproducer from #226 it removes about 12% of the remaining allocations (25.3M to 22.4M allocs/op, 553 MB to 505 MB per iteration).
    • Updates [GitLab issue #226](https://gitlab.com/cznic/sqlite/-/issues/226). See [GitLab merge request #137](https://gitlab.com/cznic/sqlite/-/merge_requests/137).
  • 2026-09-01 v1.58.0:

    • Upgrade to SQLite 3.53.4. Upstream's own fix for the journal-rollback data-corruption bug is part of this release, so the local super-journal patch v1.56.0 introduced — and promised to drop once upstream shipped theirs — is dropped; recovery behavior is unchanged. This also bumps the pinned modernc.org/libc to v1.75.6; as always, downstream modules must pin the exact modernc.org/libc version this module's go.mod pins (see [GitLab issue #177](https://gitlab.com/cznic/sqlite/-/issues/177)).
    • Add opt-in support for Linux Open File Description (OFD) locks on database files. A POSIX record lock is owned by the (process, inode) pair, so the kernel drops every lock the process holds on a database file whenever any descriptor of that file is closed: an os.Open/Close for a hash, a backup check or a metadata probe anywhere in the process — third-party libraries included — silently strips SQLite's transaction locks and leaves the file unprotected against other processes. With OFD locking enabled, the locks belong to the open file description that placed them and survive such a close. Off by default, and staying off until the mode has real-world mileage: without opting in, locking behavior is byte-for-byte that of previous releases. Enable it by setting MODERNC_SQLITE_OFD_LOCK=1 in the environment the process starts with (any value but the empty string or one starting with 0; read once, at library initialization), or from Go with the new OFDLocking(true), which overrides the variable and must run before the first connection is opened; OFDLockingEnabled reports the mode in effect. The switch is deliberately process-wide rather than a DSN parameter: POSIX and OFD locks taken by one process are different owners to the kernel and genuinely conflict, so every connection to a database file inside one process must use the same kind, and a per-DSN knob would advertise a granularity the kernel does not offer (see the discussion in #255). Because the two kinds do not release one another, the mode is frozen at the process's first lock attempt: later attempts to change it return the new ErrOFDLockingTooLate, while querying, and setting the value already in effect, keep working. On kernels older than 3.15, and on filesystems that reject OFD locks, the first lock attempt falls back to POSIX locks for good and OFDLocking returns the new ErrOFDLockingUnavailable from then on, which is also how OFDLockingEnabled turning false reports the fallback; the same error is returned on every platform but Linux, where the API exists but OFD locks do not. Two boundaries to note: the immunity covers the locks on the database file itself, while WAL's -shm coordination stays on POSIX locks; and code in the same process that takes fcntl record locks of its own on a database file — which used to never conflict with SQLite's, while quietly destroying them — now conflicts with them loudly instead. The C side — F_OFD_SETLK routing through a designated per-inode locking descriptor that preserves upstream's unixInodeInfo semantics (last-unlocker release, PENDING piggybacking, unix-excl), guarded to __linux__ — ships in the transpiled sources via libsqlite3!3 and its follow-up hardening, with the OFD lock constants from libc!33; the review rounds, the /proc/locks measurements behind the design, and the Tcl lock/WAL gate that runs both modes are recorded in [GitLab issue #255](https://gitlab.com/cznic/sqlite/-/issues/255) and those merge requests.
    • Add the accompanying regression tests. The four OFD scenarios contributed in merge request #136 — lock survival across a rogue os.Close, the interleaved-readers lock lifecycle, the read-only-first designated-descriptor migration, and the failed-first-lock cleanup — run in a re-executed child process with MODERNC_SQLITE_OFD_LOCK=1, since the mode is process-wide and frozen at the first lock so the suite's own process cannot switch; a positive control asserts the variable really switched the mode on before each scenario runs, and the two scenarios whose invariants hold under both modes also run in the parent process's inherited mode. TestOFDLockingSetter exercises the Go call path end to end in a clean child — off by default, enabled before the first connection, the kernel-visible OFDLCK record in /proc/locks as the positive control, frozen after the first lock — and on every other platform the switch is asserted to report itself unavailable.
    • Resolves [GitLab issue #255](https://gitlab.com/cznic/sqlite/-/issues/255). See [GitLab merge request #136](https://gitlab.com/cznic/sqlite/-/merge_requests/136), thanks Nathan Herring (@​technosloth), and thanks Gani Georgiev (@​ganigeorgiev) for pressing the opt-in default!
  • 2026-08-19 v1.57.0:

    • Add an opt-in _defensive DSN query parameter that turns on SQLite's defensive mode for the connection, disabling the SQL-level features that let ordinary statements deliberately corrupt the database file. When _defensive=1 (or any strconv.ParseBool true value) is supplied, the driver calls sqlite3_db_config with SQLITE_DBCONFIG_DEFENSIVE immediately after sqlite3_open_v2 and before every other parameter is applied, so the PRAGMAs the driver itself runs, the _pragma list, and every statement the caller prepares are all subject to it. On such a connection PRAGMA writable_schema=ON, PRAGMA journal_mode=OFF and PRAGMA schema_version=N become silent no-ops, and writes to a virtual table's shadow tables (fts5's _data, _idx and so on) and to sqlite_dbpage fail with "table ... may not be modified"; reading those tables, ordinary use of the virtual tables that own them, and VACUUM are unaffected. The flag has no PRAGMA equivalent, so sqlite3_db_config — and therefore a DSN parameter — is the only way to reach it short of dropping to modernc.org/sqlite/lib. The value is parsed before sqlite3_open_v2, so an invalid one fails the connection without creating the database file, and the parameter must appear at most once: a repeated _defensive is an error rather than letting the first value silently win. Absence of the parameter, or _defensive=0, leaves SQLite's default behavior unchanged; existing DSNs continue to work byte-for-byte. Two limits are worth stating plainly, since the name invites more confidence than the flag earns. Defensive mode is a hardening measure, not a sandbox for hostile database files: it is one of several steps SQLite recommends for that purpose, and this build compiles with neither SQLITE_TRUSTED_SCHEMA=0 nor SQLITE_DQS=0 and exposes no authorizer. And it is a property of the connection, not of the database file — a second handle opened on the same file without the parameter is unrestricted.
    • Reject the one DSN combination defensive mode would otherwise swallow in silence. _defensive=1 together with _journal_mode=OFF (or _journal=OFF) now fails the connection instead of opening one in which neither parameter was honoured: SQLite turns PRAGMA journal_mode=OFF into a no-op that still reports success, so the driver would have accepted the mode, executed it, and left the journal untouched without telling anyone. The check runs in the validation phase introduced in v1.55.0, before any statement executes, so a rejected DSN cannot leave the database half-configured. _pragma remains the exception it has always been: _pragma=journal_mode(OFF) alongside _defensive=1 still runs and is still silently ignored by SQLite. Only DSNs using _defensive can be affected, and that parameter is new, so no DSN that opened before changes behavior.
    • See [GitHub pull request #6](modernc-org/sqlite#6), thanks wsman!
    • Ship the sqlite-vec license notice this module has been missing. modernc.org/sqlite/vec has bundled the transpiled sqlite-vec sources since v1.47.0, but the module carried only its own BSD-3-Clause LICENSE and the public-domain SQLite notice. sqlite-vec is Copyright (c) 2024 Alex Garcia, dual-licensed Apache-2.0 OR MIT and used here under MIT, whose terms require the copyright and permission notice to accompany substantial portions of the software — which 2.8 MB of transpiled vec/ plainly is. The notice now ships as LICENSE-SQLITE_VEC in the module root, byte-identical to the LICENSE-MIT in the upstream v0.1.9 archive and named after the file modernc.org/libsqlite_vec extracts it into. Attribution was never absent — vec's package documentation has named the extension, pinned the version and linked upstream — but the license text itself was, and the omission was ours: vendor_libs/main.go copied the per-target transpiles and nothing else. It now copies the notice alongside them and fails the vendoring run if it cannot, so a make vendor can no longer quietly drop it. The vec package documentation gained a License section recording that the package is under a different license from the rest of this module.
    • The SQLite notice is renamed from SQLITE-LICENSE to LICENSE-SQLITE; update any direct links to it. Its contents are unchanged and SQLite remains public domain. The name now matches both the new LICENSE-SQLITE_VEC beside it and the LICENSE-<upstream> convention every other modernc.org repository follows, but it is more than cosmetic: go mod vendor selects the files it copies into a downstream vendor/ tree by matching each name against a fixed list of prefixes — LICENSE among them — so a name merely ending in LICENSE was never propagated. Both bundled notices now travel with the code into vendored builds, which is where the MIT terms on vec/ keep applying. No code changes; no behavior changes.
    • Let a caller-constructed Driver register its own functions, collations and virtual table modules. Driver has always held four categories of registration state, but only RegisterConnectionHook could put anything on a constructed one: functions and collations were reachable through the package-level API alone, and modules through the package-level driver only, which left the modules field written and read through that instance and so process-global state wearing a per-instance field. Driver now has RegisterFunction, RegisterScalarFunction, RegisterDeterministicScalarFunction, RegisterCollationUtf8 and RegisterModule, plus Must* variants of the first four, each registering on that Driver alone; the methods are safe to call concurrently, and the zero Driver is ready to use as-is. vtab.RegisterModule also honours its db argument now: a non-nil db registers on the driver backing it when that driver implements the new vtab.ModuleRegisterer, while a nil db keeps targeting the driver this package registers as sqlite. One existing pattern changes behavior, narrowly and loudly: vtab.RegisterModule(db, ...) where db was opened on a caller-constructed Driver used to discard the db argument and land on the sqlite driver, reaching every connection in the process; it now lands on the constructed driver alone, so a sql.Open("sqlite") connection that used to resolve such a module gets no such module instead. The same pattern is also the one way an existing program could hold one module name on both a constructed Driver and the package-level one: there the first of the two registrations used to win and the second was refused as already registered, whereas now the package-level implementation wins on the constructed Driver's connections regardless of the order they ran in. Reaching that case at all means the program ignored an error the older version returned. Two smaller deviations round out the list: Driver.RegisterModule reports no error for such a collision, and vtab.RegisterModule now validates its name and module arguments before the not-implemented check, so a call with an empty name that returned vtab: RegisterModule not wired into engine outside this driver returns vtab: module name must be non-empty instead. Everything else is additive against v1.56.0: the package-level registration functions target the same driver they always did, connections still receive every module registered through the package-level path whichever Driver opened them, and a db opened on the sqlite driver resolves to that same driver. The isolating change discussed in [GitLab issue #254](https://gitlab.com/cznic/sqlite/-/issues/254) is deliberately not made here.
    • See [GitLab merge request #135](https://gitlab.com/cznic/sqlite/-/merge_requests/135), thanks Ian Chechin!
    • Promote freebsd/386, freebsd/arm and netbsd/amd64 to fully supported platforms. All three are now listed in the package documentation's platform table, which had carried seventeen entries while this module shipped, cross-built and tested twenty. They arrived as experimental in v1.53.0 — netbsd/amd64 reviving a port that had been broken for years, freebsd/386 replacing a stale, effectively untested SQLite 3.41 transpile, and freebsd/arm entirely new — and were deliberately kept out of that table until they had accumulated real-world exposure, with promotion promised once "a period of broader real-world testing … elapses without surprises". That period has elapsed: all three have been in the builder test matrix and in make build_all_targets since v1.53.0, all three pass the full test suite on this release's commit alongside the seventeen platforms already listed, and no open issue reports a defect in any of them. The two netbsd/amd64 build failures filed before the revival, [GitLab issue #202](https://gitlab.com/cznic/sqlite/-/issues/202) and [GitLab issue #234](https://gitlab.com/cznic/sqlite/-/issues/234), no longer reproduce at this commit: Xsqlite3_is_interrupted is present in the sources that target selects, and the mu.enter/mu.leave symbols that broke the build are gone. Documentation only — the transpiled sources under lib/ are byte-for-byte what v1.56.0 shipped, and nothing about how these targets behave changes.
  • 2026-08-03 v1.56.0:

    • Re-vendor the transpiled SQLite sources, picking up modernc.org/libsqlite3's fix for an upstream data-corruption bug in SQLite 3.53.3's journal rollback. The SQLite version is unchanged at 3.53.3; what changes is that the amalgamation is now patched before it is transpiled. 3.53.3 reworked readSuperJournal() to return the super-journal name through a char** out-parameter, and pager_playback() now tests that pointer where it used to test zSuper[0]. A crash during the commit of a multi-database (ATTACH) transaction can leave the super-journal name and its checksum zeroed while the name length and the trailing magic survive; the checksum is a plain byte sum, so an all-zero name still validates and readSuperJournal() hands back a non-NULL pointer to an empty string. pager_playback() then calls sqlite3OsAccess(pVfs, "", SQLITE_ACCESS_EXISTS), gets ENOENT, and deletes the hot journal without playing it back — leaving the database corrupted. This is not a transpilation artifact: a plain gcc build of the stock 3.53.3 amalgamation fails on the same bytes while 3.53.2 recovers them, and it is what has been making upstream's own test/crash.test fail intermittently, in roughly 2% of runs, on every platform. The patch restores the pre-3.53.3 behaviour of reporting a (nul) super-journal name and will be dropped once upstream ships its own fix. Every supported target carries it.
    • Two targets change beyond that patch. On linux/s390x the regenerated transpile allocates C bit-fields MSB-first, as the big-endian platform ABI requires, rather than LSB-first; this comes from modernc.org/cc/v4 v4.29.1 and touches bit-field accesses throughout the SQLite core, s390x being this module's only big-endian target. On linux/riscv64 the transpile was regenerated on a host running GCC 11.4.0 where the previous one used GCC 13.3.0, which drops a handful of unexported compiler-predefined macro constants (the __FLT16_* family, __DBL_IS_IEC_60559__ and friends) and changes the COMPILER=gcc-13.3.0 entry PRAGMA compile_options reports to COMPILER=gcc-11.4.0; no SQLite code generation differs. Every other target's generated code is byte-identical to v1.55.0 apart from the journal-rollback patch above.
    • Bump the pinned modernc.org/libc to v1.74.4, and the remaining dependencies to their current releases. v1.74.2 and v1.74.3 are retracted upstream — a freeaddrinfo lock leak that deadlocks name resolution — and v1.74.4 is the fix. As always, downstream modules must pin the exact modernc.org/libc version this module's go.mod pins (see [GitLab issue #177](https://gitlab.com/cznic/sqlite/-/issues/177)).
    • Documentation sweep. openbsd/amd64 and openbsd/arm64 join the supported platforms table in the package documentation: both have been in the builder test matrix since January and are cross-built by make build_all_targets, but had never been listed. The vfs DSN query parameter — which names a VFS registered with SQLite, such as one returned by vfs.New — is now documented alongside the other DSN parameters on Driver.Open. The "Debug and development versions" section no longer describes a GO_GENERATE environment variable and a go generate that this repository has not had since generator.go moved to modernc.org/libsqlite3; it now points at that repository and make vendor instead, and the stale //go:generate directive naming the removed file is dropped with it. modernc.org/sqlite/vec and modernc.org/sqlite/vfs gained the package doc comments they were missing, so both finally carry a synopsis on pkg.go.dev. Documentation only; no behavior changes.
    • Add NewConnector, returning a database/sql/driver.Connector for use with sql.OpenDB. It opens the same connections sql.Open("sqlite", dsn) does, from the same registered driver, so every function, collation, connection hook and virtual table module registered through this package applies to them. It exists for callers that need to interpose on the physical connections database/sql opens — tracing, metrics, connection-scoped setup — which sql.Open gives no access to: such a caller can embed the returned Connector, override Connect, and pass its own wrapper to sql.OpenDB. Previously the only way to reach the registered driver was the db, _ := sql.Open("sqlite", ""); drv := db.Driver(); db.Close() idiom, which works only because sql.Open does not connect and this driver does not implement driver.DriverContext; and the only way to get a wrapper into a *sql.DB was sql.Register, which is process-global, panics on a name it has already seen, and cannot be undone, so a library had to invent a unique driver name per configuration. sql.OpenDB registers nothing. Constructing a &sqlite.Driver{} is not an alternative — its fields are unexported, so it carries none of the registrations. NewConnector checks the DSN only as far as it can without opening a database — a query string that does not parse, and conflicting vfs parameters; everything else continues to be validated when the connection is opened, so an unknown parameter or an out-of-range value is reported by Connect rather than at construction. Nothing about the existing sql.Open path changes: *Driver deliberately still does not implement driver.DriverContext, so sql.Open remains lazy and DSN errors continue to surface where they always have. A runnable sample is in examples/connector. Resolves [GitLab issue #253](https://gitlab.com/cznic/sqlite/-/issues/253), thanks Alessandro Segala (@​ItalyPaleAle)!
    • Document that a caller-constructed sqlite.Driver is not the driver this package registers as "sqlite". Its fields are unexported, so it starts with no functions, collations or connection hooks and the only way to give it any is its own RegisterConnectionHook method; the package-level Register* functions always apply to the registered driver. Connections such a Driver opens therefore run without the package-level functions and collations — and because a registered function silently replaces a SQLite built-in of the same name, a Driver you construct can evaluate upper(x), date(x) and the like differently from one opened through sql.Open. Virtual table modules are the one exception: they are held process-globally and reach every Driver. Constructing one remains supported for the private-hook pattern — a driver registered under a name of its own with sql.Register so its connection hooks apply only to its own connections — and is otherwise best avoided in favour of sql.Open or NewConnector. Documentation only; no behavior changes.
  • 2026-07-20 v1.55.0:

    • Add github.com/mattn/go-sqlite3-compatible shorthand DSN query parameters to ease migration from that driver: _busy_timeout/_timeout, _foreign_keys/_fk, _journal_mode/_journal, _synchronous/_sync, _auto_vacuum/_vacuum, and _query_only, each setting the correspondingly named PRAGMA. Values are validated against the same set mattn/go-sqlite3 accepts (case-insensitive) and an unrecognized value fails the connection with an error, so a typo such as _synchronous=fu1l or _foreign_keys=yes_please is reported rather than silently downgrading durability or dropping foreign-key enforcement. The keys are applied in a fixed order independent of their order in the DSN — _busy_timeout and _auto_vacuum before any _pragma values (auto_vacuum must be set before the database is first written), the rest after, and _query_only last — and where a key and its alias are both supplied the alias wins, matching mattn/go-sqlite3; selection is by presence rather than by value, so supplying the alias empty (_foreign_keys=on&_fk=) suppresses the PRAGMA rather than deferring to the primary key, again matching that driver. Behavior change to note: prior releases ignored these keys entirely, so a DSN carried over from a mattn/go-sqlite3 setup changes in two ways. A recognized key that previously did nothing now takes effect — _foreign_keys=on begins enforcing constraints against data that may already violate them, _journal_mode=wal persistently converts the database file, and _query_only=1 makes the connection read-only. And a value outside the accepted set now fails the connection with an error where the same DSN previously opened successfully — for example a duration-style _busy_timeout=5s or _timeout=5000ms, neither of which is the integer that key requires. Review such DSNs before upgrading. _pragma is unchanged and no pre-existing parameter changes meaning, though see the following entry for a change in when all of them are validated.
    • See [GitLab merge request #134](https://gitlab.com/cznic/sqlite/-/merge_requests/134), thanks Toni Spets (@​beeper-hifi) and Ian Chechin!
    • Validate every DSN query parameter before applying any of them. Parameters were previously checked as each was reached, so a DSN whose later parameter was rejected had already executed the PRAGMAs ahead of it. Because PRAGMA journal_mode and PRAGMA auto_vacuum are persistent changes to the database file, a DSN such as file:x.db?_journal_mode=wal&_synchronous=bogus failed the connection and yet left x.db converted to WAL. A failed Open now leaves the database as it found it. This covers the pre-existing _txlock, _timezone, _time_format, _time_integer_format, _inttotime and _texttotime parameters as well as the shorthand keys above: all of them were validated only after the _pragma list had already run, so the same DSN shape — a valid _pragma=journal_mode=wal alongside a misspelled _txlock — converted the file before reporting the error. Only the values accepted for each parameter are unchanged; a DSN that opened successfully before still opens, and one that failed still fails with the same error. _pragma remains the sole exception, since its values are executed verbatim and cannot be checked in advance: a malformed _pragma is still rejected by SQLite as it runs, after any earlier _pragma in the list has taken effect.
  • 2026-07-15 v1.54.0:

    • Upgrade to SQLite 3.53.3. This also bumps the pinned modernc.org/libc to v1.74.1; as always, downstream modules must pin the exact same modernc.org/libc version this module's go.mod pins (see [GitLab issue #177](https://gitlab.com/cznic/sqlite/-/issues/177)).
    • Under the opt-in _texttotime DSN parameter, best-effort parse date-shaped TEXT values from columns SQLite reports with an empty declared type — aggregates and expressions over a date column (MAX(d), COALESCE(d, ...), upper(d), d || ''), subqueries, and typeless real columns (CREATE TABLE t(x)) — into time.Time, instead of delivering them as a raw string that Scan cannot store into a *time.Time. The existing declared DATE/DATETIME/TIME/TIMESTAMP path is unchanged; this only adds the empty-decltype case. The conversion is strictly best-effort: a value that does not parse as a time falls through to the original string, so no Scan that worked before can newly fail. ColumnTypeScanType continues to report string for empty-decltype columns, since the declared type cannot prove the column is temporal. Without _texttotime the behavior is byte-for-byte unchanged. Resolves [GitLab issue #248](https://gitlab.com/cznic/sqlite/-/issues/248).
    • See [GitLab merge request #133](https://gitlab.com/cznic/sqlite/-/merge_requests/133), thanks Ian Chechin!
  • 2026-06-21 v1.53.0:

    • Add experimental netbsd/amd64 support, resolving the long-standing build break in [GitLab issue #246](https://gitlab.com/cznic/sqlite/-/issues/246). This target is intentionally not yet listed among the supported platforms in the package documentation: the port had been broken for years and is only now revived,...

      Description has been truncated

Bumps the go-runtime group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [github.com/gofrs/flock](https://github.com/gofrs/flock) | `0.13.0` | `0.13.1` |
| [github.com/monstercameron/GoGRPCBridge](https://github.com/monstercameron/GoGRPCBridge) | `1.1.1` | `1.1.2` |
| [github.com/monstercameron/GoWebComponents/v5](https://github.com/monstercameron/GoWebComponents) | `5.0.1` | `5.0.4` |
| [golang.org/x/text](https://github.com/golang/text) | `0.39.0` | `0.41.0` |
| [google.golang.org/grpc](https://github.com/grpc/grpc-go) | `1.83.0` | `1.83.2` |
| google.golang.org/protobuf | `1.36.11` | `1.36.12` |
| [modernc.org/sqlite](https://gitlab.com/cznic/sqlite) | `1.55.0` | `1.58.0` |



Updates `github.com/gofrs/flock` from 0.13.0 to 0.13.1
- [Release notes](https://github.com/gofrs/flock/releases)
- [Commits](gofrs/flock@v0.13.0...v0.13.1)

Updates `github.com/monstercameron/GoGRPCBridge` from 1.1.1 to 1.1.2
- [Release notes](https://github.com/monstercameron/GoGRPCBridge/releases)
- [Commits](monstercameron/GoGRPCBridge@v1.1.1...v1.1.2)

Updates `github.com/monstercameron/GoWebComponents/v5` from 5.0.1 to 5.0.4
- [Release notes](https://github.com/monstercameron/GoWebComponents/releases)
- [Changelog](https://github.com/monstercameron/GoWebComponents/blob/v5.0.4/CHANGELOG.md)
- [Commits](monstercameron/GoWebComponents@v5.0.1...v5.0.4)

Updates `github.com/mxschmitt/playwright-go` from 0.6100.0 to 0.6201.1
- [Release notes](https://github.com/mxschmitt/playwright-go/releases)
- [Commits](mxschmitt/playwright-go@v0.6100.0...v0.6201.1)

Updates `golang.org/x/sys` from 0.46.0 to 0.47.0
- [Commits](golang/sys@v0.46.0...v0.47.0)

Updates `golang.org/x/text` from 0.39.0 to 0.41.0
- [Release notes](https://github.com/golang/text/releases)
- [Commits](golang/text@v0.39.0...v0.41.0)

Updates `google.golang.org/grpc` from 1.83.0 to 1.83.2
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.83.0...v1.83.2)

Updates `google.golang.org/protobuf` from 1.36.11 to 1.36.12

Updates `modernc.org/sqlite` from 1.55.0 to 1.58.0
- [Changelog](https://gitlab.com/cznic/sqlite/blob/master/CHANGELOG.md)
- [Commits](https://gitlab.com/cznic/sqlite/compare/v1.55.0...v1.58.0)

---
updated-dependencies:
- dependency-name: github.com/gofrs/flock
  dependency-version: 0.13.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-runtime
- dependency-name: github.com/monstercameron/GoGRPCBridge
  dependency-version: 1.1.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-runtime
- dependency-name: github.com/monstercameron/GoWebComponents/v5
  dependency-version: 5.0.4
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-runtime
- dependency-name: github.com/mxschmitt/playwright-go
  dependency-version: 0.6201.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-runtime
- dependency-name: golang.org/x/sys
  dependency-version: 0.47.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-runtime
- dependency-name: golang.org/x/text
  dependency-version: 0.41.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-runtime
- dependency-name: google.golang.org/grpc
  dependency-version: 1.83.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-runtime
- dependency-name: google.golang.org/protobuf
  dependency-version: 1.36.12
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: go-runtime
- dependency-name: modernc.org/sqlite
  dependency-version: 1.58.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: go-runtime
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added the dependencies Pull requests that update a dependency file label Sep 7, 2026
@dependabot
dependabot Bot requested a review from monstercameron as a code owner September 7, 2026 10:10
@dependabot dependabot Bot added go Pull requests that update go code dependencies Pull requests that update a dependency file labels Sep 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file go Pull requests that update go code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants