Skip to content

Commit ceb9b5a

Browse files
committed
Release 2.0.0
Overview There are a lot of changes in the new major version. The main ones: * The `go_tarantool_call_17` build tag is no longer needed, since by default the `CallRequest` is `Call17Request`. * The `go_tarantool_msgpack_v5` build tag is no longer needed, since only the `msgpack/v5` library is used. * The `go_tarantool_ssl_disable` build tag is no longer needed, since the connector is no longer depends on `OpenSSL` by default. You could use the external library go-tlsdialer[1] to create a connection with the `ssl` transport. * Required Go version is `1.20` now. * The `Connect` function became more flexible. It now allows to create a connection with cancellation and a custom `Dialer` implementation. * It is required to use `Request` implementation types with the `Connection.Do` method instead of `Connection.<Request>` methods. * The `connection_pool` package renamed to `pool`. See the migration guide[2] for more details. Breaking changes connection_pool renamed to pool (#239). Use msgpack/v5 instead of msgpack.v2 (#236). Call/NewCallRequest = Call17/NewCall17Request (#235). Change encoding of the queue.Identify() UUID argument from binary blob to plain string. Needed for upgrade to Tarantool 3.0, where a binary blob is decoded to a varbinary object (#313). Use objects of the Decimal type instead of pointers (#238). Use objects of the Datetime type instead of pointers (#238). `connection.Connect` no longer return non-working connection objects (#136). This function now does not attempt to reconnect and tries to establish a connection only once. Function might be canceled via context. Context accepted as first argument. `pool.Connect` and `pool.Add` now accept context as the first argument, which user may cancel in process. If `pool.Connect` is canceled in progress, an error will be returned. All created connections will be closed. `iproto.Feature` type now used instead of `ProtocolFeature` (#337). `iproto.IPROTO_FEATURE_` constants now used instead of local `Feature` constants for `protocol` (#337). Change `crud` operations `Timeout` option type to `crud.OptFloat64` instead of `crud.OptUint` (#342). Change all `Upsert` and `Update` requests to accept `*tarantool.Operations` as `ops` parameters instead of `interface{}` (#348). Change `OverrideSchema(*Schema)` to `SetSchema(Schema)` (#7). Change values, stored by pointers in the `Schema`, `Space`, `Index` structs, to be stored by their values (#7). Make `Dialer` mandatory for creation a single connection (#321). Remove `Connection.RemoteAddr()`, `Connection.LocalAddr()`. Add `Addr()` function instead (#321). Remove `Connection.ClientProtocolInfo`, `Connection.ServerProtocolInfo`. Add `ProtocolInfo()` function instead, which returns the server protocol info (#321). `NewWatcher` checks the actual features of the server, rather than relying on the features provided by the user during connection creation (#321). `pool.NewWatcher` does not create watchers for connections that do not support it (#321). Rename `pool.GetPoolInfo` to `pool.GetInfo`. Change return type to `map[string]ConnectionInfo` (#321). `Response` is now an interface (#237). All responses are now implementations of the `Response` interface (#237). `SelectResponse`, `ExecuteResponse`, `PrepareResponse`, `PushResponse` are part of a public API. `Pos()`, `MetaData()`, `SQLInfo()` methods created for them to get specific info. Special types of responses are used with special requests. `IsPush()` method is added to the response iterator (#237). It returns the information if the current response is a `PushResponse`. `PushCode` constant is removed. Method `Get` for `Future` now returns response data (#237). To get the actual response new `GetResponse` method has been added. Methods `AppendPush` and `SetResponse` accept response `Header` and data as their arguments. `Future` constructors now accept `Request` as their argument (#237). Operations `Ping`, `Select`, `Insert`, `Replace`, `Delete`, `Update`, `Upsert`, `Call`, `Call16`, `Call17`, `Eval`, `Execute` of a `Connector` and `Pooler` return response data instead of an actual responses (#237). `pool.Connect`, `pool.ConnetcWithOpts` and `pool.Add` use a new type `pool.Instance` to determinate connection options (#356). `pool.Connect`, `pool.ConnectWithOpts` and `pool.Add` add connections to the pool even it is unable to connect to it (#372). Required Go version from `1.13` to `1.20` (#378). multi subpackage is removed (#240). msgpack.v2 support is removed (#236). pool/RoundRobinStrategy is removed (#158). DeadlineIO is removed (#158). UUID_extId is removed (#158). IPROTO constants are removed (#158). Code() method from the Request interface is removed (#158). `Schema` field from the `Connection` struct is removed (#7). `OkCode` and `PushCode` constants is removed (#237). SSL support is removed (#301). `Future.Err()` method is removed (#382). New features Type() method to the Request interface (#158). Enumeration types for RLimitAction/iterators (#158). IsNullable flag for Field (#302). Meaningful description for read/write socket errors (#129). Support `operation_data` in `crud.Error` (#330). Support `fetch_latest_metadata` option for crud requests with metadata (#335). Support `noreturn` option for data change crud requests (#335). Support `crud.schema` request (#336, #351). Support `IPROTO_WATCH_ONCE` request type for Tarantool version >= 3.0.0-alpha1 (#337). Support `yield_every` option for crud select requests (#350). Support `IPROTO_FEATURE_SPACE_AND_INDEX_NAMES` for Tarantool version >= 3.0.0-alpha1 (#338). It allows to use space and index names in requests instead of their IDs. `GetSchema` function to get the actual schema (#7). Support connection via an existing socket fd (#321). `Header` struct for the response header (#237). It can be accessed via `Header()` method of the `Response` interface. `Response` method added to the `Request` interface (#237). New `LogAppendPushFailed` connection log constant (#237). It is logged when connection fails to append a push response. `ErrorNo` constant that indicates that no error has occurred while getting the response (#237). `AuthDialer` type for creating a dialer with authentication (#301). `ProtocolDialer` type for creating a dialer with `ProtocolInfo` receiving and check (#301). `GreetingDialer` type for creating a dialer, that fills `Greeting` of a connection (#301). New method `Pool.DoInstance` to execute a request on a target instance in a pool (#376). Bugfixes Race condition at roundRobinStrategy.GetNextConnection() (#309). Incorrect decoding of an MP_DECIMAL when the `scale` value is negative (#314). Incorrect options (`after`, `batch_size` and `force_map_call`) setup for crud.SelectRequest (#320). Incorrect options (`vshard_router`, `fields`, `bucket_id`, `mode`, `prefer_replica`, `balance`) setup for crud.GetRequest (#335). Splice update operation accepts 3 arguments instead of 5 (#348). Unable to use a slice of custom types as a slice of tuples or objects for `crud.*ManyRequest/crud.*ObjectManyRequest` (#365). Testing More linters on CI (#310). Added an ability to mock connections for tests (#237). Added new types `MockDoer`, `MockRequest` to `test_helpers`. Fixed flaky decimal/TestSelect (#300). Fixed tests with crud 1.4.0 (#336). Fixed tests with case sensitive SQL (#341). Renamed `StrangerResponse` to `MockResponse` (#237). Other All Connection.<Request>, Connection.<Request>Typed and Connection.<Request>Async methods are now deprecated. Instead you should use requests objects + Connection.Do() (#241). All ConnectionPool.<Request>, ConnectionPool.<Request>Typed and ConnectionPool.<Request>Async methods are now deprecated. Instead you should use requests objects + ConnectionPool.Do() (#241). box.session.push() usage is deprecated: Future.AppendPush() and Future.GetIterator() methods, ResponseIterator and TimeoutResponseIterator types (#324). 1. https://github.com/tarantool/go-tlsdialer 2. https://github.com/tarantool/go-tarantool/blob/master/MIGRATION.md
1 parent 86abcdd commit ceb9b5a

File tree

1 file changed

+39
-12
lines changed

1 file changed

+39
-12
lines changed

CHANGELOG.md

+39-12
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,47 @@ Versioning](http://semver.org/spec/v2.0.0.html) except to the first release.
1010

1111
### Added
1212

13+
### Changed
14+
15+
### Fixed
16+
17+
## [2.0.0] - 2024-02-14
18+
19+
There are a lot of changes in the new major version. The main ones:
20+
21+
* The `go_tarantool_call_17` build tag is no longer needed, since by default
22+
the `CallRequest` is `Call17Request`.
23+
* The `go_tarantool_msgpack_v5` build tag is no longer needed, since only the
24+
`msgpack/v5` library is used.
25+
* The `go_tarantool_ssl_disable` build tag is no longer needed, since the
26+
connector is no longer depends on `OpenSSL` by default. You could use the
27+
external library [go-tlsdialer](https://github.com/tarantool/go-tlsdialer) to
28+
create a connection with the `ssl` transport.
29+
* Required Go version is `1.20` now.
30+
* The `Connect` function became more flexible. It now allows to create a
31+
connection with cancellation and a custom `Dialer` implementation.
32+
* It is required to use `Request` implementation types with the `Connection.Do`
33+
method instead of `Connection.<Request>` methods.
34+
* The `connection_pool` package renamed to `pool`.
35+
36+
See the [migration guide](./MIGRATION.md) for more details.
37+
38+
### Added
39+
1340
- Type() method to the Request interface (#158)
1441
- Enumeration types for RLimitAction/iterators (#158)
1542
- IsNullable flag for Field (#302)
1643
- More linters on CI (#310)
1744
- Meaningful description for read/write socket errors (#129)
18-
- Support `operation_data` in `crud.Error` (#330)
45+
- Support `operation_data` in `crud.Error` (#330)
1946
- Support `fetch_latest_metadata` option for crud requests with metadata (#335)
2047
- Support `noreturn` option for data change crud requests (#335)
2148
- Support `crud.schema` request (#336, #351)
22-
- Support `IPROTO_WATCH_ONCE` request type for Tarantool
49+
- Support `IPROTO_WATCH_ONCE` request type for Tarantool
2350
version >= 3.0.0-alpha1 (#337)
2451
- Support `yield_every` option for crud select requests (#350)
2552
- Support `IPROTO_FEATURE_SPACE_AND_INDEX_NAMES` for Tarantool
26-
version >= 3.0.0-alpha1 (#338). It allows to use space and index names
53+
version >= 3.0.0-alpha1 (#338). It allows to use space and index names
2754
in requests instead of their IDs.
2855
- `GetSchema` function to get the actual schema (#7)
2956
- Support connection via an existing socket fd (#321)
@@ -37,12 +64,12 @@ Versioning](http://semver.org/spec/v2.0.0.html) except to the first release.
3764
- Ability to mock connections for tests (#237). Added new types `MockDoer`,
3865
`MockRequest` to `test_helpers`.
3966
- `AuthDialer` type for creating a dialer with authentication (#301)
40-
- `ProtocolDialer` type for creating a dialer with `ProtocolInfo` receiving and
67+
- `ProtocolDialer` type for creating a dialer with `ProtocolInfo` receiving and
4168
check (#301)
4269
- `GreetingDialer` type for creating a dialer, that fills `Greeting` of a
4370
connection (#301)
4471
- New method `Pool.DoInstance` to execute a request on a target instance in
45-
a pool (#376).
72+
a pool (#376)
4673

4774
### Changed
4875

@@ -54,22 +81,22 @@ Versioning](http://semver.org/spec/v2.0.0.html) except to the first release.
5481
decoded to a varbinary object (#313).
5582
- Use objects of the Decimal type instead of pointers (#238)
5683
- Use objects of the Datetime type instead of pointers (#238)
57-
- `connection.Connect` no longer return non-working
58-
connection objects (#136). This function now does not attempt to reconnect
59-
and tries to establish a connection only once. Function might be canceled
84+
- `connection.Connect` no longer return non-working
85+
connection objects (#136). This function now does not attempt to reconnect
86+
and tries to establish a connection only once. Function might be canceled
6087
via context. Context accepted as first argument.
6188
`pool.Connect` and `pool.Add` now accept context as the first argument, which
6289
user may cancel in process. If `pool.Connect` is canceled in progress, an
6390
error will be returned. All created connections will be closed.
6491
- `iproto.Feature` type now used instead of `ProtocolFeature` (#337)
65-
- `iproto.IPROTO_FEATURE_` constants now used instead of local `Feature`
92+
- `iproto.IPROTO_FEATURE_` constants now used instead of local `Feature`
6693
constants for `protocol` (#337)
6794
- Change `crud` operations `Timeout` option type to `crud.OptFloat64`
6895
instead of `crud.OptUint` (#342)
69-
- Change all `Upsert` and `Update` requests to accept `*tarantool.Operations`
96+
- Change all `Upsert` and `Update` requests to accept `*tarantool.Operations`
7097
as `ops` parameters instead of `interface{}` (#348)
7198
- Change `OverrideSchema(*Schema)` to `SetSchema(Schema)` (#7)
72-
- Change values, stored by pointers in the `Schema`, `Space`, `Index` structs,
99+
- Change values, stored by pointers in the `Schema`, `Space`, `Index` structs,
73100
to be stored by their values (#7)
74101
- Make `Dialer` mandatory for creation a single connection (#321)
75102
- Remove `Connection.RemoteAddr()`, `Connection.LocalAddr()`.
@@ -103,7 +130,7 @@ Versioning](http://semver.org/spec/v2.0.0.html) except to the first release.
103130
`pool.Instance` to determinate connection options (#356)
104131
- `pool.Connect`, `pool.ConnectWithOpts` and `pool.Add` add connections to
105132
the pool even it is unable to connect to it (#372)
106-
- Required Go version from `1.11` to `1.20` (#378)
133+
- Required Go version updated from `1.13` to `1.20` (#378)
107134

108135
### Deprecated
109136

0 commit comments

Comments
 (0)