Releases: canonical/go-dqlite
go-dqlite v3.0.0
This is the first release of the v3.x.x series. This release series will host ongoing development of go-dqlite. There are no breaking changes between go-dqlite v1.22.0 and this release; the major version bump is just to accomodate the use of the v2.x.x version range for go-dqlite LTS. To track this series, follow the v3
branch, and update paths in require
and import
, e.g. import "github.com/canonical/go-dqlite/client"
becomes import "github.com/canonical/go-dqlite/v3/client"
.
What's Changed
- dqlite-demo: Reflect operation status in HTTP code by @cole-miller in #309
- feat: tab writer by @SimonRichardson in #314
- node: Document usage of ReconfigureMembership and ReconfigureMembershipExt by @cole-miller in #310
- Propagate dqlite_node_recover_ext errors by @petrutlucian94 in #318
- Add a wrapper for dqlite_node_describe_last_entry by @cole-miller in #312
- Add security policy by @cole-miller in #321
- Enable client session cache for App TLS by @cole-miller in #339
- Speed up leader search by @cole-miller in #320
go-dqlite v1.99.99
This is the last release of the v1 series. If you depend on go-dqlite, please switch to depending on either v2
(LTS release series, fixes only) or v3
(mainline development). Releases have been published for both of these major versions, and there are no breaking changes compared to major version 1.
v2.0.0
This is the first release of the dqlite v2.x.x LTS series. This series will receive security fixes and other major bug fixes (at the maintainers' discretion), but no new features. To follow this release series, track the v2
branch and update your import paths, e.g. import "github.com/canonical/go-dqlite/client"
becomes import "github.com/canonical/go-dqlite/v2/client"
. Ongoing development will happen on the v3
branch (v3.x.x release series). The master
branch should not be used and all v1.x.x releases will shortly be retracted to emphasize this.
What's Changed
- dqlite-demo: Reflect operation status in HTTP code by @cole-miller in #309
- feat: tab writer by @SimonRichardson in #314
- node: Document usage of ReconfigureMembership and ReconfigureMembershipExt by @cole-miller in #310
- Propagate dqlite_node_recover_ext errors by @petrutlucian94 in #318
- Add a wrapper for dqlite_node_describe_last_entry by @cole-miller in #312
- Add security policy by @cole-miller in #321
- Enable client session cache for App TLS by @cole-miller in #339
- Speed up leader search by @cole-miller in #320
- Bump minimum libdqlite to v1.17 for LTS by @cole-miller in #342
Full Changelog: v1.22.0...v2.0.0
go-dqlite v1.99.99 (first release candidate)
This is a release candidate for the upcoming go-dqlite v2 LTS series.
v1.22.0
Summary
This release includes two new features:
- dqlite clients now search for the current leader by connecting to several nodes of the cluster in parallel (#292, thanks @cnnrznn). The level of parallelism can be configured with the new
WithConcurrentLeaderConns
option (#303, thanks @masnax). - The new
WithRolesAdjustmentHook
option allows applications that use go-dqlite to react to changes in cluster membership and roles (#301, thanks @masnax).
It also includes several bug fixes and performance improvements:
- Introduce a timeout for connecting to the leader in the dqlite-demo example program (#295, thanks @letFunny).
- Fix a panic caused by reading from a closed channel when accepting new client connections (#304, thanks @marco6).
- Copy blob values from server messages in bulk instead of one byte at a time (#297, thanks @marco6).
- Fix a panic causes by an unset field in the client's
Rows
object (#308, thanks @marco6).
All changes
- .github/workflows: run tests on go 1.21.x by @MathieuBordere in #280
- packages: Add mantic. by @MathieuBordere in #281
- Remove lunar, add noble by @cole-miller in #285
- driver_test: test interrupting query yielding rows. by @MathieuBordere in #286
- github: Don't install libraft-dev package by @cole-miller in #288
- Set protocol version inside connectAttemptOne by @cnnrznn in #287
- Attempt to connect to leader via 10 servers simultaneously by @cnnrznn in #292
- set client timeout in dqlite demo by @letFunny in #295
- Improve Message.getBlob performance by @marco6 in #297
- Hook into continual dqlite role probes by @masnax in #301
- Use range loop instead of endless loop by @marco6 in #304
- Configure maximum concurrent leader probes by @masnax in #303
- Avoid context cancellation during net.Dial call in connector by @cole-miller in #306
- driver: Expose leadership-related error codes by @cole-miller in #307
- Fix missing log in Rows by @marco6 in #308
See also the full commit log.
v1.21.0
What's Changed
- app: Regression test for RowsAffected issue by @cole-miller in #255
- test: Allow building test binaries with -asan by @cole-miller in #258
- Add missing $ASAN to tests in one place by @cole-miller in #262
- Always use QUERY_SQL in the dqlite shell by @cole-miller in #260
- Expose auto-recovery config switch from dqlite by @cole-miller in #264
- Implement role re-assignment based on failure domains by @ktsakalozos in #268
- driver: detect EOF on Connect and mark with ErrBadConn. by @MathieuBordere in #270
- packages: build, sign and push package from GHA. by @MathieuBordere in #273
- packages: remove kinetic, add lunar by @MathieuBordere in #275
- OpenTelemetry Driver Tracing by @SimonRichardson in #276
- Only publish to PPA from master by @cole-miller in #278
- internal/bindings: Fall back if dqlite_node_set_auto_recovery is missing by @cole-miller in #279
New Contributors
- @ktsakalozos made their first contribution in #268
Full Changelog: v1.20.0...v1.21.0
dqlite version
- required dqlite version is
v1.14.0
(same as previous release)
v1.20.0
What's Changed
- internal/bindings: Don't use raft directly by @cole-miller in #247
- Linker flags by @MathieuBordere in #248
-Wl,-z,now
no longer needed - internal/protocol: Expose 32-bit parameter count support by @cole-miller in #243
- Fix int overflow on 32-bit archs by @cole-miller in #249
- app_test: Close App before removing dir in TestParallell. by @MathieuBordere in #251
- refactor: allow any net.Conn works with dqlite by @Zxilly in #252
- driver: Detect EOF in driverError by @MathieuBordere in #186
New Contributors
Full Changelog: v1.11.9...v1.20.0
edit: yeah, this should have been v1.12.0
...
v1.11.9
v.1.11.8-pre
This is a pre-release that includes changes to go-dqlite's interaction with libsqlite3 (see #236), along with some bug fixes.
v1.11.7
- Fix in
SimpleTLSConfig
forgo 1.19.6
. - Some changes in packages and CI workflow.