diff --git a/go.mod b/go.mod index 4fdf35c42254b..8b8bbbb6dec5b 100644 --- a/go.mod +++ b/go.mod @@ -203,8 +203,8 @@ require ( github.com/tdrn-org/go-hue v0.3.0 github.com/tdrn-org/go-nsdp v0.5.0 github.com/tdrn-org/go-tr064 v0.2.2 - github.com/testcontainers/testcontainers-go v0.39.0 - github.com/testcontainers/testcontainers-go/modules/azure v0.39.0 + github.com/testcontainers/testcontainers-go v0.40.0 + github.com/testcontainers/testcontainers-go/modules/azure v0.40.0 github.com/testcontainers/testcontainers-go/modules/kafka v0.39.0 github.com/thomasklein94/packer-plugin-libvirt v0.5.0 github.com/tidwall/gjson v1.18.0 diff --git a/go.sum b/go.sum index 7d7aeb3364db3..ef9fa1f4980b1 100644 --- a/go.sum +++ b/go.sum @@ -2343,10 +2343,10 @@ github.com/tdrn-org/go-nsdp v0.5.0/go.mod h1:zp7CxiCPcyXHo+s6tn+wrNBr1qQe1G/hOh/ github.com/tdrn-org/go-tr064 v0.2.2 h1:rDybEK1m2xfV5QPWHtnIJOt+xG4GFSkQSwA6FS2bQC4= github.com/tdrn-org/go-tr064 v0.2.2/go.mod h1:P2WWUiBcXDGOo+sqJ4hWn4YXYH9kWaYjZo74EdFDSS0= github.com/tedsuo/ifrit v0.0.0-20180802180643-bea94bb476cc/go.mod h1:eyZnKCc955uh98WQvzOm0dgAeLnf2O0Rz0LPoC5ze+0= -github.com/testcontainers/testcontainers-go v0.39.0 h1:uCUJ5tA+fcxbFAB0uP3pIK3EJ2IjjDUHFSZ1H1UxAts= -github.com/testcontainers/testcontainers-go v0.39.0/go.mod h1:qmHpkG7H5uPf/EvOORKvS6EuDkBUPE3zpVGaH9NL7f8= -github.com/testcontainers/testcontainers-go/modules/azure v0.39.0 h1:jBNEP6QdGs5w1fair4N1W9AlXM7wpbNZqBYbtyVCGvI= -github.com/testcontainers/testcontainers-go/modules/azure v0.39.0/go.mod h1:98b1kjnNoVYd/CdOWcResAlSm2zWHt49s9jfSoj20fs= +github.com/testcontainers/testcontainers-go v0.40.0 h1:pSdJYLOVgLE8YdUY2FHQ1Fxu+aMnb6JfVz1mxk7OeMU= +github.com/testcontainers/testcontainers-go v0.40.0/go.mod h1:FSXV5KQtX2HAMlm7U3APNyLkkap35zNLxukw9oBi/MY= +github.com/testcontainers/testcontainers-go/modules/azure v0.40.0 h1:a4Qn4UEgL3uzpY1Hhuzh2c87u/CuSoTaV12timQfHQU= +github.com/testcontainers/testcontainers-go/modules/azure v0.40.0/go.mod h1:047cjSoIxghqTQt8OVeLwLO918jOTrRnKYSEG5L6paQ= github.com/testcontainers/testcontainers-go/modules/kafka v0.39.0 h1:Nkrk5fjoHbj1bqE8OkMT25Y8bcSDgS5smdVaX3Xkfyc= github.com/testcontainers/testcontainers-go/modules/kafka v0.39.0/go.mod h1:9Si8E8u8DWMUPQpHSSDseA3lXfhyMgVnCfdMWjoqNNw= github.com/thomasklein94/packer-plugin-libvirt v0.5.0 h1:aj2HLHZZM/ClGLIwVp9rrgh+2TOU/w4EiaZHAwCpOgs= diff --git a/vendor/github.com/Azure/azure-kusto-go/kusto/ingest/.gitignore b/vendor/github.com/Azure/azure-kusto-go/kusto/ingest/.gitignore index 8e26cff44d8c0..7c8c59b4d42ca 100644 --- a/vendor/github.com/Azure/azure-kusto-go/kusto/ingest/.gitignore +++ b/vendor/github.com/Azure/azure-kusto-go/kusto/ingest/.gitignore @@ -1,2 +1,2 @@ -config.json +config.json *.csv \ No newline at end of file diff --git a/vendor/github.com/Azure/azure-kusto-go/kusto/ingest/internal/queued/.gitignore b/vendor/github.com/Azure/azure-kusto-go/kusto/ingest/internal/queued/.gitignore index 4548eff10d2c7..e6c28db27a991 100644 --- a/vendor/github.com/Azure/azure-kusto-go/kusto/ingest/internal/queued/.gitignore +++ b/vendor/github.com/Azure/azure-kusto-go/kusto/ingest/internal/queued/.gitignore @@ -1,2 +1,2 @@ -test_file +test_file test_file.gz \ No newline at end of file diff --git a/vendor/github.com/Azure/go-amqp/CODE_OF_CONDUCT.md b/vendor/github.com/Azure/go-amqp/CODE_OF_CONDUCT.md index f9ba8cf65f3e3..c72a5749c52ac 100644 --- a/vendor/github.com/Azure/go-amqp/CODE_OF_CONDUCT.md +++ b/vendor/github.com/Azure/go-amqp/CODE_OF_CONDUCT.md @@ -1,9 +1,9 @@ -# Microsoft Open Source Code of Conduct - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). - -Resources: - -- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) -- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) -- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns +# Microsoft Open Source Code of Conduct + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). + +Resources: + +- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) +- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) +- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns diff --git a/vendor/github.com/Azure/go-amqp/LICENSE b/vendor/github.com/Azure/go-amqp/LICENSE index 387b3e7e0f3b0..930bd6bdd7b0c 100644 --- a/vendor/github.com/Azure/go-amqp/LICENSE +++ b/vendor/github.com/Azure/go-amqp/LICENSE @@ -1,22 +1,22 @@ - MIT License - - Copyright (C) 2017 Kale Blankenship - Portions Copyright (C) Microsoft Corporation - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE + MIT License + + Copyright (C) 2017 Kale Blankenship + Portions Copyright (C) Microsoft Corporation + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/vendor/github.com/Azure/go-amqp/README.md b/vendor/github.com/Azure/go-amqp/README.md index 23b96c37a9910..764505214dbcc 100644 --- a/vendor/github.com/Azure/go-amqp/README.md +++ b/vendor/github.com/Azure/go-amqp/README.md @@ -1,194 +1,194 @@ -# AMQP 1.0 Client Module for Go - -[![PkgGoDev](https://pkg.go.dev/badge/github.com/Azure/go-amqp)](https://pkg.go.dev/github.com/Azure/go-amqp) -[![Build Status](https://dev.azure.com/azure-sdk/public/_apis/build/status/go/Azure.go-amqp?branchName=main)](https://dev.azure.com/azure-sdk/public/_build/latest?definitionId=1292&branchName=main) -[![Go Report Card](https://goreportcard.com/badge/github.com/Azure/go-amqp)](https://goreportcard.com/report/github.com/Azure/go-amqp) -[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/Azure/go-amqp/main/LICENSE) - -The [amqp][godoc_amqp] module is an AMQP 1.0 client implementation for Go. - -[AMQP 1.0][amqp_spec] is not compatible with AMQP 0-9-1 or 0-10. - -## Getting Started - -### Prerequisites - -- Go 1.18 or later -- An AMQP 1.0 compliant [broker][broker_listing] - -### Install the module - -```sh -go get github.com/Azure/go-amqp -``` - -### Connect to a broker - -Call [amqp.Dial()][godoc_dial] to connect to an AMQP broker. This creates an [*amqp.Conn][godoc_conn]. - -```go -conn, err := amqp.Dial(context.TODO(), "amqp[s]://", nil) -if err != nil { - // handle error -} -``` - -### Sending and receiving messages - -In order to send or receive messages, first create an [*amqp.Session][godoc_session] from the [*amqp.Conn][godoc_conn] by calling [Conn.NewSession()][godoc_conn_session]. - -```go -session, err := conn.NewSession(context.TODO(), nil) -if err != nil { - // handle error -} -``` - -Once the session has been created, create an [*amqp.Sender][godoc_sender] to send messages and/or an [*amqp.Receiver][godoc_receiver] to receive messages by calling [Session.NewSender()][godoc_session_sender] and/or [Session.NewReceiver()][godoc_session_receiver] respectively. - -```go -// create a new sender -sender, err := session.NewSender(context.TODO(), "", nil) -if err != nil { - // handle error -} - -// send a message -err = sender.Send(context.TODO(), amqp.NewMessage([]byte("Hello!")), nil) -if err != nil { - // handle error -} - -// create a new receiver -receiver, err := session.NewReceiver(context.TODO(), "", nil) -if err != nil { - // handle error -} - -// receive the next message -msg, err := receiver.Receive(context.TODO(), nil) -if err != nil { - // handle error -} -``` - -## Key concepts - -- An [*amqp.Conn][godoc_conn] connects a client to a broker (e.g. Azure Service Bus). -- Once a connection has been established, create one or more [*amqp.Session][godoc_session] instances. -- From an [*amqp.Session][godoc_session] instance, create one or more senders and/or receivers. - - An [*amqp.Sender][godoc_sender] is used to send messages from the client to a broker. - - An [*amqp.Receiver][godoc_receiver] is used to receive messages from a broker to the client. - -For a complete overview of AMQP's conceptual model, please consult section [2.1 Transport][section_2_1] of the AMQP 1.0 specification. - -## Examples - -The following examples cover common scenarios for sending and receiving messages: - -- [Create a message](#create-a-message) -- [Send message](#send-message) -- [Receive messages](#receive-messages) - -### Create a message - -A message can be created in two different ways. The first is to simply instantiate a new instance of the [*amqp.Message][godoc_message] type, populating the required fields. - -```go -msg := &amqp.Message{ - // populate fields (Data is the most common) -} -``` - -The second is the [amqp.NewMessage][godoc_message_ctor] constructor. It passes the provided `[]byte` to the first entry in the `*amqp.Message.Data` slice. - -```go -msg := amqp.NewMessage(/* some []byte */) -``` - -This is purely a convenience constructor as many AMQP brokers expect a message's data in the `Data` field. - -### Send message - -Once an [*amqp.Session][godoc_session] has been created, create an [*amqp.Sender][godoc_sender] in order to send messages. - -```go -sender, err := session.NewSender(context.TODO(), "", nil) -``` - -Once the [*amqp.Sender][godoc_sender] has been created, call [Sender.Send()][godoc_sender_send] to send an [*amqp.Message][godoc_message]. - -```go -err := sender.Send(context.TODO(), msg, nil) -``` - -Depending on the sender's configuration, the call to [Sender.Send()][godoc_sender_send] will block until the peer has acknowledged the message was received. -The amount of time the call will block is dependent upon network latency and the peer's load, but is usually in a few dozen milliseconds. - -### Receive messages - -Once an [*amqp.Session][godoc_session] has been created, create an [*amqp.Receiver][godoc_receiver] in order to receive messages. - -```go -receiver, err := session.NewReceiver(context.TODO(), "", nil) -``` - -Once the [*amqp.Receiver][godoc_receiver] has been created, call [Receiver.Receive()][godoc_receiver_receive] to wait for an incoming message. - -```go -msg, err := receiver.Receive(context.TODO(), nil) -``` - -Note that calls to [Receiver.Receive()][godoc_receiver_receive] will block until either a message has been received or, if applicable, the provided [context.Context][godoc_context] has been cancelled and/or its deadline exceeded. - -After an [*amqp.Message][godoc_message] message has been received and processed, as the final step it's **imperative** that the [*amqp.Message][godoc_message] is passed to one of the acknowledgement methods on the [*amqp.Receiver][godoc_receiver]. - -- [Receiver.AcceptMessage][godoc_receiver_accept] - the client has accepted the message and no redelivery is required (most common) -- [Receiver.ModifyMessage][godoc_receiver_modify] - the client has modified the message and released it for redelivery with the specified modifications -- [Receiver.RejectMessage][godoc_receiver_reject] - the message is invalid and therefore cannot be processed -- [Receiver.ReleaseMessage][godoc_receiver_release] - the client has released the message for redelivery without any modifications - -```go -err := receiver.AcceptMessage(context.TODO(), msg) -``` - -## Next steps - -See the [examples][godoc_examples] for complete end-to-end examples on how to use this module. - -## Contributing - -This project welcomes contributions and suggestions. Most contributions require you to agree to a -Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us -the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. - -When you submit a pull request, a CLA bot will automatically determine whether you need to provide -a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions -provided by the bot. You will only need to do this once across all repos using our CLA. - -This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). -For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or -contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. - -[amqp_spec]: http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-overview-v1.0-os.html -[broker_listing]: https://github.com/xinchen10/awesome-amqp -[section_2_1]: http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#section-transport -[godoc_amqp]: https://pkg.go.dev/github.com/Azure/go-amqp -[godoc_examples]: https://pkg.go.dev/github.com/Azure/go-amqp#pkg-examples -[godoc_conn]: https://pkg.go.dev/github.com/Azure/go-amqp#Conn -[godoc_conn_session]: https://pkg.go.dev/github.com/Azure/go-amqp#Conn.NewSession -[godoc_dial]: https://pkg.go.dev/github.com/Azure/go-amqp#Dial -[godoc_context]: https://pkg.go.dev/context#Context -[godoc_message]: https://pkg.go.dev/github.com/Azure/go-amqp#Message -[godoc_message_ctor]: https://pkg.go.dev/github.com/Azure/go-amqp#NewMessage -[godoc_session]: https://pkg.go.dev/github.com/Azure/go-amqp#Session -[godoc_session_sender]: https://pkg.go.dev/github.com/Azure/go-amqp#Session.NewSender -[godoc_session_receiver]: https://pkg.go.dev/github.com/Azure/go-amqp#Session.NewReceiver -[godoc_sender]: https://pkg.go.dev/github.com/Azure/go-amqp#Sender -[godoc_sender_send]: https://pkg.go.dev/github.com/Azure/go-amqp#Sender.Send -[godoc_receiver]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver -[godoc_receiver_accept]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.AcceptMessage -[godoc_receiver_modify]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.ModifyMessage -[godoc_receiver_reject]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.RejectMessage -[godoc_receiver_release]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.ReleaseMessage -[godoc_receiver_receive]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.Receive +# AMQP 1.0 Client Module for Go + +[![PkgGoDev](https://pkg.go.dev/badge/github.com/Azure/go-amqp)](https://pkg.go.dev/github.com/Azure/go-amqp) +[![Build Status](https://dev.azure.com/azure-sdk/public/_apis/build/status/go/Azure.go-amqp?branchName=main)](https://dev.azure.com/azure-sdk/public/_build/latest?definitionId=1292&branchName=main) +[![Go Report Card](https://goreportcard.com/badge/github.com/Azure/go-amqp)](https://goreportcard.com/report/github.com/Azure/go-amqp) +[![MIT licensed](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/Azure/go-amqp/main/LICENSE) + +The [amqp][godoc_amqp] module is an AMQP 1.0 client implementation for Go. + +[AMQP 1.0][amqp_spec] is not compatible with AMQP 0-9-1 or 0-10. + +## Getting Started + +### Prerequisites + +- Go 1.18 or later +- An AMQP 1.0 compliant [broker][broker_listing] + +### Install the module + +```sh +go get github.com/Azure/go-amqp +``` + +### Connect to a broker + +Call [amqp.Dial()][godoc_dial] to connect to an AMQP broker. This creates an [*amqp.Conn][godoc_conn]. + +```go +conn, err := amqp.Dial(context.TODO(), "amqp[s]://", nil) +if err != nil { + // handle error +} +``` + +### Sending and receiving messages + +In order to send or receive messages, first create an [*amqp.Session][godoc_session] from the [*amqp.Conn][godoc_conn] by calling [Conn.NewSession()][godoc_conn_session]. + +```go +session, err := conn.NewSession(context.TODO(), nil) +if err != nil { + // handle error +} +``` + +Once the session has been created, create an [*amqp.Sender][godoc_sender] to send messages and/or an [*amqp.Receiver][godoc_receiver] to receive messages by calling [Session.NewSender()][godoc_session_sender] and/or [Session.NewReceiver()][godoc_session_receiver] respectively. + +```go +// create a new sender +sender, err := session.NewSender(context.TODO(), "", nil) +if err != nil { + // handle error +} + +// send a message +err = sender.Send(context.TODO(), amqp.NewMessage([]byte("Hello!")), nil) +if err != nil { + // handle error +} + +// create a new receiver +receiver, err := session.NewReceiver(context.TODO(), "", nil) +if err != nil { + // handle error +} + +// receive the next message +msg, err := receiver.Receive(context.TODO(), nil) +if err != nil { + // handle error +} +``` + +## Key concepts + +- An [*amqp.Conn][godoc_conn] connects a client to a broker (e.g. Azure Service Bus). +- Once a connection has been established, create one or more [*amqp.Session][godoc_session] instances. +- From an [*amqp.Session][godoc_session] instance, create one or more senders and/or receivers. + - An [*amqp.Sender][godoc_sender] is used to send messages from the client to a broker. + - An [*amqp.Receiver][godoc_receiver] is used to receive messages from a broker to the client. + +For a complete overview of AMQP's conceptual model, please consult section [2.1 Transport][section_2_1] of the AMQP 1.0 specification. + +## Examples + +The following examples cover common scenarios for sending and receiving messages: + +- [Create a message](#create-a-message) +- [Send message](#send-message) +- [Receive messages](#receive-messages) + +### Create a message + +A message can be created in two different ways. The first is to simply instantiate a new instance of the [*amqp.Message][godoc_message] type, populating the required fields. + +```go +msg := &amqp.Message{ + // populate fields (Data is the most common) +} +``` + +The second is the [amqp.NewMessage][godoc_message_ctor] constructor. It passes the provided `[]byte` to the first entry in the `*amqp.Message.Data` slice. + +```go +msg := amqp.NewMessage(/* some []byte */) +``` + +This is purely a convenience constructor as many AMQP brokers expect a message's data in the `Data` field. + +### Send message + +Once an [*amqp.Session][godoc_session] has been created, create an [*amqp.Sender][godoc_sender] in order to send messages. + +```go +sender, err := session.NewSender(context.TODO(), "", nil) +``` + +Once the [*amqp.Sender][godoc_sender] has been created, call [Sender.Send()][godoc_sender_send] to send an [*amqp.Message][godoc_message]. + +```go +err := sender.Send(context.TODO(), msg, nil) +``` + +Depending on the sender's configuration, the call to [Sender.Send()][godoc_sender_send] will block until the peer has acknowledged the message was received. +The amount of time the call will block is dependent upon network latency and the peer's load, but is usually in a few dozen milliseconds. + +### Receive messages + +Once an [*amqp.Session][godoc_session] has been created, create an [*amqp.Receiver][godoc_receiver] in order to receive messages. + +```go +receiver, err := session.NewReceiver(context.TODO(), "", nil) +``` + +Once the [*amqp.Receiver][godoc_receiver] has been created, call [Receiver.Receive()][godoc_receiver_receive] to wait for an incoming message. + +```go +msg, err := receiver.Receive(context.TODO(), nil) +``` + +Note that calls to [Receiver.Receive()][godoc_receiver_receive] will block until either a message has been received or, if applicable, the provided [context.Context][godoc_context] has been cancelled and/or its deadline exceeded. + +After an [*amqp.Message][godoc_message] message has been received and processed, as the final step it's **imperative** that the [*amqp.Message][godoc_message] is passed to one of the acknowledgement methods on the [*amqp.Receiver][godoc_receiver]. + +- [Receiver.AcceptMessage][godoc_receiver_accept] - the client has accepted the message and no redelivery is required (most common) +- [Receiver.ModifyMessage][godoc_receiver_modify] - the client has modified the message and released it for redelivery with the specified modifications +- [Receiver.RejectMessage][godoc_receiver_reject] - the message is invalid and therefore cannot be processed +- [Receiver.ReleaseMessage][godoc_receiver_release] - the client has released the message for redelivery without any modifications + +```go +err := receiver.AcceptMessage(context.TODO(), msg) +``` + +## Next steps + +See the [examples][godoc_examples] for complete end-to-end examples on how to use this module. + +## Contributing + +This project welcomes contributions and suggestions. Most contributions require you to agree to a +Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us +the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com. + +When you submit a pull request, a CLA bot will automatically determine whether you need to provide +a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions +provided by the bot. You will only need to do this once across all repos using our CLA. + +This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). +For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or +contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments. + +[amqp_spec]: http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-overview-v1.0-os.html +[broker_listing]: https://github.com/xinchen10/awesome-amqp +[section_2_1]: http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#section-transport +[godoc_amqp]: https://pkg.go.dev/github.com/Azure/go-amqp +[godoc_examples]: https://pkg.go.dev/github.com/Azure/go-amqp#pkg-examples +[godoc_conn]: https://pkg.go.dev/github.com/Azure/go-amqp#Conn +[godoc_conn_session]: https://pkg.go.dev/github.com/Azure/go-amqp#Conn.NewSession +[godoc_dial]: https://pkg.go.dev/github.com/Azure/go-amqp#Dial +[godoc_context]: https://pkg.go.dev/context#Context +[godoc_message]: https://pkg.go.dev/github.com/Azure/go-amqp#Message +[godoc_message_ctor]: https://pkg.go.dev/github.com/Azure/go-amqp#NewMessage +[godoc_session]: https://pkg.go.dev/github.com/Azure/go-amqp#Session +[godoc_session_sender]: https://pkg.go.dev/github.com/Azure/go-amqp#Session.NewSender +[godoc_session_receiver]: https://pkg.go.dev/github.com/Azure/go-amqp#Session.NewReceiver +[godoc_sender]: https://pkg.go.dev/github.com/Azure/go-amqp#Sender +[godoc_sender_send]: https://pkg.go.dev/github.com/Azure/go-amqp#Sender.Send +[godoc_receiver]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver +[godoc_receiver_accept]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.AcceptMessage +[godoc_receiver_modify]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.ModifyMessage +[godoc_receiver_reject]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.RejectMessage +[godoc_receiver_release]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.ReleaseMessage +[godoc_receiver_receive]: https://pkg.go.dev/github.com/Azure/go-amqp#Receiver.Receive diff --git a/vendor/github.com/Azure/go-amqp/SECURITY.md b/vendor/github.com/Azure/go-amqp/SECURITY.md index e0dfff56a9569..7ab49eb829642 100644 --- a/vendor/github.com/Azure/go-amqp/SECURITY.md +++ b/vendor/github.com/Azure/go-amqp/SECURITY.md @@ -1,41 +1,41 @@ - - -## Security - -Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). - -If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) of a security vulnerability, please report it to us as described below. - -## Reporting Security Issues - -**Please do not report security vulnerabilities through public GitHub issues.** - -Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). - -If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). - -You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). - -Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: - - * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) - * Full paths of source file(s) related to the manifestation of the issue - * The location of the affected source code (tag/branch/commit or direct URL) - * Any special configuration required to reproduce the issue - * Step-by-step instructions to reproduce the issue - * Proof-of-concept or exploit code (if possible) - * Impact of the issue, including how an attacker might exploit the issue - -This information will help us triage your report more quickly. - -If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. - -## Preferred Languages - -We prefer all communications to be in English. - -## Policy - -Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). - - + + +## Security + +Microsoft takes the security of our software products and services seriously, which includes all source code repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft), [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet), [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/). + +If you believe you have found a security vulnerability in any Microsoft-owned repository that meets Microsoft's [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10)) of a security vulnerability, please report it to us as described below. + +## Reporting Security Issues + +**Please do not report security vulnerabilities through public GitHub issues.** + +Instead, please report them to the Microsoft Security Response Center (MSRC) at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report). + +If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If possible, encrypt your message with our PGP key; please download it from the the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc). + +You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Additional information can be found at [microsoft.com/msrc](https://www.microsoft.com/msrc). + +Please include the requested information listed below (as much as you can provide) to help us better understand the nature and scope of the possible issue: + + * Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.) + * Full paths of source file(s) related to the manifestation of the issue + * The location of the affected source code (tag/branch/commit or direct URL) + * Any special configuration required to reproduce the issue + * Step-by-step instructions to reproduce the issue + * Proof-of-concept or exploit code (if possible) + * Impact of the issue, including how an attacker might exploit the issue + +This information will help us triage your report more quickly. + +If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs. + +## Preferred Languages + +We prefer all communications to be in English. + +## Policy + +Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd). + + diff --git a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE index 9e841e7a26e4e..3d8b93bc7987d 100644 --- a/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE +++ b/vendor/github.com/AzureAD/microsoft-authentication-library-for-go/LICENSE @@ -1,21 +1,21 @@ - MIT License - - Copyright (c) Microsoft Corporation. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in all - copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - SOFTWARE + MIT License + + Copyright (c) Microsoft Corporation. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE diff --git a/vendor/github.com/ClickHouse/clickhouse-go/v2/CHANGELOG.md b/vendor/github.com/ClickHouse/clickhouse-go/v2/CHANGELOG.md index bcf11bbef3721..edf708945eb0c 100644 --- a/vendor/github.com/ClickHouse/clickhouse-go/v2/CHANGELOG.md +++ b/vendor/github.com/ClickHouse/clickhouse-go/v2/CHANGELOG.md @@ -1,1106 +1,1106 @@ -# v2.40.3, 2025-09-13 - -## What's Changed -### Other Changes 🛠 -* bug: deserializing into nullable field by @rbroggi in https://github.com/ClickHouse/clickhouse-go/pull/1649 -* Fixes for #1649 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1654 - -## New Contributors -* @rbroggi made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1649 - +# v2.40.3, 2025-09-13 + +## What's Changed +### Other Changes 🛠 +* bug: deserializing into nullable field by @rbroggi in https://github.com/ClickHouse/clickhouse-go/pull/1649 +* Fixes for #1649 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1654 + +## New Contributors +* @rbroggi made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1649 + **Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.40.2...v2.40.3 -# v2.40.2, 2025-09-13 - -## What's Changed -### Other Changes 🛠 -* Bump golang.org/x/net from 0.42.0 to 0.43.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1634 -* Bump github.com/ClickHouse/ch-go from 0.67.0 to 0.68.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1639 -* Bump github.com/stretchr/testify from 1.10.0 to 1.11.1 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1641 -* Bump go.opentelemetry.io/otel/trace from 1.37.0 to 1.38.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1642 -* Bump github.com/docker/docker from 28.3.3+incompatible to 28.4.0+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1646 -* Bump golang.org/x/net from 0.43.0 to 0.44.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1647 -* chore: migrate to maintained YAML library by @joschi in https://github.com/ClickHouse/clickhouse-go/pull/1651 -* skip random tests on Go 1.25 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1652 -* bug: headers map can be nil by @r0bobo in https://github.com/ClickHouse/clickhouse-go/pull/1650 - -## New Contributors -* @joschi made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1651 -* @r0bobo made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1650 - +# v2.40.2, 2025-09-13 + +## What's Changed +### Other Changes 🛠 +* Bump golang.org/x/net from 0.42.0 to 0.43.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1634 +* Bump github.com/ClickHouse/ch-go from 0.67.0 to 0.68.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1639 +* Bump github.com/stretchr/testify from 1.10.0 to 1.11.1 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1641 +* Bump go.opentelemetry.io/otel/trace from 1.37.0 to 1.38.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1642 +* Bump github.com/docker/docker from 28.3.3+incompatible to 28.4.0+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1646 +* Bump golang.org/x/net from 0.43.0 to 0.44.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1647 +* chore: migrate to maintained YAML library by @joschi in https://github.com/ClickHouse/clickhouse-go/pull/1651 +* skip random tests on Go 1.25 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1652 +* bug: headers map can be nil by @r0bobo in https://github.com/ClickHouse/clickhouse-go/pull/1650 + +## New Contributors +* @joschi made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1651 +* @r0bobo made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1650 + **Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.40.1...v2.40.2 -# v2.40.1, 2025-07-30 - -## What's Changed -### Bug fixes 🐛 -* fix: `database/sql` Nullable(JSON) string scan by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1625 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.40.0...v2.40.1 - -# v2.40.0, 2025-07-30 - -## What's Changed -### Enhancements 🎉 -* support `database/sql` scanning json into `string`/`[]byte`/`json.RawMessage` by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1623 -### Bug fixes 🐛 -* fix: json v1 encoding/decoding for prefixed types by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1622 -* fix: Nullable base types with prefix by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1624 -### Other Changes 🛠 -* Bump github.com/docker/docker from 28.3.2+incompatible to 28.3.3+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1621 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.39.0...v2.40.0 - -# v2.39.0, 2025-07-23 - -## What's Changed -### Bug fixes 🐛 -* Fix `ReadTimeout` so that it applies to each call to `conn.Read` not just the first read block by @GeorgeMac in https://github.com/ClickHouse/clickhouse-go/pull/1616, @SpencerTorres https://github.com/ClickHouse/clickhouse-go/pull/1617 - -## Read Timeout behavior changes -This bug fix has potential to affect longer running queries, ensure you're setting `clickhouse.Options` `ReadTimeout` to a reasonable value, and that your `context.WithDeadline` is also set to a reasonable value. The read timeout will now be applied to all blocks, previously it was only set for the first block. - -## New Contributors -* @GeorgeMac made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1616 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.38.1...v2.39.0 - -# v2.38.1, 2025-07-23 - -## What's Changed -### Bug fixes 🐛 -* fix: build failure due to 32-bit integer overflow on 386 arch by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1616 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.38.0...v2.38.1 - -# v2.38.0, 2025-07-22 - -## What's Changed -### Enhancements 🎉 -* `Dynamic` serialization version 3 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1588 -* `JSON` serialization version 3 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1589 -* Add `client_protocol_version` param for HTTP interface by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1594 -* Add missing interval types by @marcboeker in https://github.com/ClickHouse/clickhouse-go/pull/1613 -### Bug fixes 🐛 -* fix format function to handle pointer of time.Time by @KimMachineGun in https://github.com/ClickHouse/clickhouse-go/pull/1559 -* Fix variant prefix by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1591 -* fix(batch): nested column name parsing #1587 by @RuslanSibgatulin in https://github.com/ClickHouse/clickhouse-go/pull/1614 -### Other Changes 🛠 -* Bump github.com/andybalholm/brotli from 1.1.1 to 1.2.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1581 -* Bump github.com/docker/docker from 28.2.2+incompatible to 28.3.0+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1583 -* Bump go.opentelemetry.io/otel/trace from 1.36.0 to 1.37.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1584 -* Bump github.com/docker/docker from 28.3.0+incompatible to 28.3.1+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1585 -* Bump github.com/docker/docker from 28.3.1+incompatible to 28.3.2+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1593 -* Bump golang.org/x/net from 0.41.0 to 0.42.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1595 -* add HTTP wait condition for container tests by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1604 -* include server revision in block/column parsing by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1605 -* Bump github.com/testcontainers/testcontainers-go from 0.37.0 to 0.38.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1603 -* docs: add client configuration options by @shivanshuraj1333 in https://github.com/ClickHouse/clickhouse-go/pull/1598 -* Bump github.com/ClickHouse/ch-go from 0.66.1 to 0.67.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1609 - -## Upgrades for Dynamic / JSON - -Dynamic and JSON were never fully functional in previous versions. If you exceeded the maximum types for `Dynamic`, the data would become unreadable since it was encoded as a single `SharedVariant` type. Same for JSON, if you exceeded the maximum dynamic paths the data would also become unreadable since it was stored in a `SharedData` structure. - -In ClickHouse 25.6, a setting was added that abstracts these structures away so that clients don't have to implement them. -To begin using Dynamic and JSON to their fullest ability, upgrade to ClickHouse 25.6 along with clickhouse-go v2.38.0, and enable `output_format_native_use_flattened_dynamic_and_json_serialization` in your connection settings. This will allow you to read all Dynamic and JSON data, even the portions that are stored in the SharedVariant and SharedData blobs on the server. - -If you are using older versions of ClickHouse, things will continue to work as before (with the previously mentioned limitations). - -Feel free to create an issue in the clickhouse-go repository to report any concerns or bugs with this change. - -## New Contributors -* @KimMachineGun made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1559 -* @shivanshuraj1333 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1598 -* @RuslanSibgatulin made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1614 -* @marcboeker made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1613 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.37.2...v2.38.0 - -# v2.37.2, 2025-06-23 - -## What's Changed -### Other Changes 🛠 -* remove dependency on v1, update ch-go by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1580 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.37.1...v2.37.2 - -# v2.37.1, 2025-06-17 - -## What's Changed -### Bug fixes 🐛 -* Fix Native API HTTP bugs by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1578 -* Fixed critical bug with the new HTTP Native API where connections were not being released. -* Also fixed random HTTP 400 errors with large batches over HTTP - - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.37.0...v2.37.1 - -# v2.37.0, 2025-06-16 - -## What's Changed -### Enhancements 🎉 -* Scanning Datetime and Datetime64 into int64 by @vaibhav-kt in https://github.com/ClickHouse/clickhouse-go/pull/1560 -* Supports scanning of Array, IPv4, IPv6, and Map types into Go values that implement the `sql.Scanner` interface. by @zapateo in https://github.com/ClickHouse/clickhouse-go/pull/1570 -* Support HTTP connnections in Native Go interface by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1577 (see details at bottom of release notes!) - -### Bug fixes 🐛 -* fix: Prevent panic on slice map keys by @disq in https://github.com/ClickHouse/clickhouse-go/pull/1567 -* object_json: split JSON tag to remove any trailing omitempty by @dschofie in https://github.com/ClickHouse/clickhouse-go/pull/1547 -* fix: namedValue namedDatevalue usage error by @tosolveit in https://github.com/ClickHouse/clickhouse-go/pull/1575 -* Fix false positives in TestInterfaceArray by @tosolveit in https://github.com/ClickHouse/clickhouse-go/pull/1572 - -### HTTP in ClickHouse API - -This release includes a bug fix / enhancement for the "ClickHouse API" interface. Previously the only way to use HTTP was through the `database/sql` interface, but now you can use `Protocol: clickhouse.HTTP` in your `clickhouse.Open` options. -HTTP still has some limitations to be aware of for things like batch flushing and session context, so be cautious when switching over code to this protocol. Please report any issues you may have with this change. Native protocol shouldn't be affected, but you can downgrade to v2.36.x if you notice any issues. - -## New Contributors -* @disq made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1567 -* @vaibhav-kt made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1560 -* @tosolveit made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1572 -* @dschofie made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1547 -* @zapateo made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1570 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.36.0...v2.37.0 - -# v2.36.0, 2025-06-03 - -## What's Changed -### Enhancements 🎉 -* Add `Close` function to batch interface by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1566 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.35.0...v2.36.0 - -# v2.35.0, 2025-05-22 - -## What's Changed -### Enhancements 🎉 -* JWT Authentication by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1538 -* Add support for overriding `database` in DSN URL by @kokizzu in https://github.com/ClickHouse/clickhouse-go/pull/1541 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.34.0...v2.35.0 - -# v2.34.0, 2025-04-01 - -## What's Changed - -### Enhancements 🎉 -* allow appending to Decimal column with `string` by @rutaka-n in https://github.com/ClickHouse/clickhouse-go/pull/1532 -* Enhancements for decimal strings by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1535 -### Bug fixes 🐛 -* Add length check to `FixedString` to prevent panic by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1534 -### Other Changes 🛠 -* chore: replace github.com/pkg/errors with stdlib by @hazzik in https://github.com/ClickHouse/clickhouse-go/pull/1530 - -## New Contributors -* @hazzik made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1530 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.33.1...v2.34.0 - -# v2.33.1, 2025-03-18 - -## What's Changed -### Bug fixes 🐛 -* fix concurrent map write errors with context by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1523 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.33.0...v2.33.1 - -# v2.33.0, 2025-03-07 - -## What's Changed -### Enhancements 🎉 -* Add handling for nested structs in named tuples by @Exca-DK in https://github.com/ClickHouse/clickhouse-go/pull/1500 -* Add option to control MaxConnsPerHost for http.Transport by @holycheater in https://github.com/ClickHouse/clickhouse-go/pull/1517 - -### Bug fixes 🐛 -* fix ConnOpenRandom strategy, issue: #1509 by @PalanQu in https://github.com/ClickHouse/clickhouse-go/pull/1510 -* fix: preserve nil elements in map by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1516 - - -## New Contributors -* @PalanQu made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1510 -* @Exca-DK made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1500 -* @holycheater made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1517 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.32.2...v2.33.0 - -# v2.32.2, 2025-02-20 - -## What's Changed -### Bug Fixes 🐛 -* fix: decode prefix of nested columns in Variant by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1506 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.32.1...v2.32.2 - -# v2.32.1, 2025-02-17 - -## What's Changed -### Bug Fixes 🐛 -* fix: enable Array() support for Variant, Dynamic, JSON by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1501 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.32.0...v2.32.1 - -# v2.32.0, 2025-02-14 - -## What's Changed - -### Enhancements 🎉 -* Add LZ4HC compression method by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1499 - -### Performance 🏎️ -* Removed ~1MB of memory usage in compressor by @pablomatiasgomez and @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1499 - -### Bug fixes 🐛 -* Fixed potential security vulnerability in compression block header length overflow by @santrancisco https://github.com/ClickHouse/clickhouse-go/pull/1499 - -### Other Changes 🛠 -* update compressor functions by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1499 -* change container provider, verify close conn error in tests by @pablomatiasgomez in https://github.com/ClickHouse/clickhouse-go/pull/1497 - -## New Contributors -* @pablomatiasgomez made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1497 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.31.0...v2.32.0 - -# v2.31.0, 2025-02-10 - -## What's Changed - -### Enhancements 🎉 -* `clickhouse.JSON` Serializer interface by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1491 -* use unsafe.Slice/unsafe.StringData by @serprex in https://github.com/ClickHouse/clickhouse-go/pull/1493 - -### Other Changes 🛠 -* JSON read/write benchmarks by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1490 - -## New Contributors -* @serprex made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1493 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.30.3...2.31.0 - -# v2.30.3, 2025-02-03 - -## What's Changed -### Other Changes 🛠 -* fix enum parse logic when its last index is zero by @lobachpavel in https://github.com/ClickHouse/clickhouse-go/pull/1487 - -## New Contributors -* @lobachpavel made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1487 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.30.2...v2.30.3 - -# v2.30.2, 2025-01-30 - -## What's Changed -### Bug fixes 🐛 -* Handle json tag without name override by @matevzmihalic in https://github.com/ClickHouse/clickhouse-go/pull/1478 -* fix: JSON NestedMap + add tests by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1482 - -## New Contributors -* @matevzmihalic made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1478 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.30.1...v2.30.2 - -# v2.30.1, 2025-01-17 - -## What's Changed -### Enhancements 🎉 -* [improvement] Some performance related changes to evaluate by @mdonkers in https://github.com/ClickHouse/clickhouse-go/pull/1426 -* Add Variant Type by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1453 -* Add Dynamic Type by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1454 -* Add JSON Type by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1455 -* stdlib sql return precision for DateTime64 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1469 - -### Fixes 🐛 -* [FIX] Minor updates by @barkhayot in https://github.com/ClickHouse/clickhouse-go/pull/1451 -* Fix file descriptor leak in release utility script by @fengjun2016 in https://github.com/ClickHouse/clickhouse-go/pull/1460 -* Remove forced string conversions for Tuple by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1465 - -### Other Changes 🛠 -* [Chore] Use defer to close rows in examples by @hayotbisonai in https://github.com/ClickHouse/clickhouse-go/pull/1431 -* Regenerate certificates used in tests by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1441 - - -## New Contributors -* @hayotbisonai made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1431 -* @barkhayot made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1451 -* @fengjun2016 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1460 -* @SpencerTorres made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1453 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.30.0...v2.30.1 - -# v2.30.0, 2024-10-16 - -## What's Changed -### Enhancements 🎉 -* Extended support for HTTP proxy in driver options by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1424 -* Default implementation of column.IterableOrderedMap by @earwin in https://github.com/ClickHouse/clickhouse-go/pull/1417 -### Fixes 🐛 -* Fix serialization for slices of OrderedMap/IterableOrderedMap (#1365) by @earwin in https://github.com/ClickHouse/clickhouse-go/pull/1418 -* Retry on broken pipe in batch by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1423 -### Other Changes 🛠 -* Add 'clickhouse-go-rows-utils' to third-party libraries by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1413 - -## New Contributors -* @earwin made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1418 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.29.0...v2.30.0 - -# v2.29.0, 2024-09-24 - -## What's Changed -### Enhancements 🎉 -* Add ability to handle context cancellations for TCP protocol by @tinybit in https://github.com/ClickHouse/clickhouse-go/pull/1389 -### Other Changes 🛠 -* Add Examples for batch.Column(n).AppendRow in columnar_insert.go by @achmad-dev in https://github.com/ClickHouse/clickhouse-go/pull/1410 - -## New Contributors -* @achmad-dev made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1410 -* @tinybit made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1389 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.28.3...v2.29.0 - -# v2.28.3, 2024-09-12 - -## What's Changed -### Other Changes 🛠 -* Revert the minimum required Go version to 1.21 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1405 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.28.2...v2.28.3 - -# v2.28.2, 2024-08-30 - -## What's Changed -### Fixes 🐛 -* Validate connection in bad state before query execution in the stdlib database/sql driver by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1396 -### Other Changes 🛠 -* Update README with newer Go versions by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1393 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.28.1...v2.28.2 - -# v2.28.1, 2024-08-27 - -## What's Changed -### Fixes 🐛 -* Recognize empty strings as a valid enum key by @genzgd in https://github.com/ClickHouse/clickhouse-go/pull/1387 -### Other Changes 🛠 -* ClickHouse 24.8 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1385 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.28.0...v2.28.1 - -# v2.28.0, 2024-08-23 - -## What's Changed -### Fixes 🐛 -* Fix Enum column definition parse logic to match ClickHouse spec by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1380 -* Fix support custom serialization in Nested type by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1381 -* Fix panic on nil map append by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1383 -### Other Changes 🛠 -* Remove test coverage for deprecated Object('JSON') type by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1377 -* Remove JSON type use from a context use example by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1379 -* Make sure non-secure port is used during readiness check by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1382 -* Deprecate Go 1.21 ended support and require Go 1.22 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1378 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.27.2...v2.28.0 - -# v2.27.2, 2024-08-20 - -## What's Changed -### Enhancements 🎉 -* Optimize Date/Date32 scan by @ShoshinNikita in https://github.com/ClickHouse/clickhouse-go/pull/1374 -### Fixes 🐛 -* Fix column list parsing for multiline INSERT statements by @Fiery-Fenix in https://github.com/ClickHouse/clickhouse-go/pull/1373 - -## New Contributors -* @Fiery-Fenix made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1373 -* @ShoshinNikita made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1374 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.27.1...v2.27.2 - -# v2.27.1, 2024-08-05 - -## What's Changed -### Fixes 🐛 -* Fix INSERT statement normalization match backtick table name by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1366 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.27.0...v2.27.1 - -# v2.27.0, 2024-08-01 - -## Breaking change notice - -v2.25.0 was released with a breaking change in https://github.com/ClickHouse/clickhouse-go/pull/1306. Please review your implementation. - -## What's Changed -### Enhancements 🎉 -* Unpack value of indirect types in array column to support nested structures in interfaced slices/arrays by @jmaicher in https://github.com/ClickHouse/clickhouse-go/pull/1350 -### Fixes 🐛 -* Common HTTP insert query normalization by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1341 -### Other Changes 🛠 -* Update examples std json by @xjeway in https://github.com/ClickHouse/clickhouse-go/pull/1240 -* ClickHouse 24.6 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1352 -* ClickHouse 24.7 release by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1363 -* Update CHANGELOG with a breaking change note by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1364 - -## New Contributors -* @xjeway made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1240 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.26.0...v2.27.0 - -# v2.26.0, 2024-06-25 - -## What's Changed -### Enhancements 🎉 -* Reintroduce the random connection strategy by @larry-cdn77 in https://github.com/ClickHouse/clickhouse-go/pull/1313 -* Make custom debug log function on-par with the built-in one by @vespian in https://github.com/ClickHouse/clickhouse-go/pull/1317 -* Remove date overflow check as it's normalised by ClickHouse server by @gogingersnap777 in https://github.com/ClickHouse/clickhouse-go/pull/1315 -* Batch: impl `Columns() []column.Interface` method by @egsam98 in https://github.com/ClickHouse/clickhouse-go/pull/1277 -### Fixes 🐛 -* Fix rows.Close do not return too early by @yujiarista in https://github.com/ClickHouse/clickhouse-go/pull/1314 -* Setting `X-Clickhouse-SSL-Certificate-Auth` header correctly given `X-ClickHouse-Key` by @gogingersnap777 in https://github.com/ClickHouse/clickhouse-go/pull/1316 -* Retry on network errors and fix retries on async inserts with `database/sql` interface by @tommyzli in https://github.com/ClickHouse/clickhouse-go/pull/1330 -* BatchInsert parentheses issue fix by @ramzes642 in https://github.com/ClickHouse/clickhouse-go/pull/1327 -### Other Changes 🛠 -* ClickHouse 24.5 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1319 -* Align `allow_suspicious_low_cardinality_types` and `allow_suspicious_low_cardinality_types ` settings in tests due to ClickHouse Cloud incompatibility by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1331 -* Use HTTPs scheme in std connection failover tests by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1332 - -## New Contributors -* @larry-cdn77 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1313 -* @vespian made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1317 -* @gogingersnap777 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1315 -* @yujiarista made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1314 -* @egsam98 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1277 -* @tommyzli made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1330 -* @ramzes642 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1327 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.25.0...v2.26.0 - -# v2.25.0, 2024-05-28 - -## What's Changed -### Breaking Changes 🚨 -* Add a compatibility layer for a database/sql driver to work with sql.NullString and ClickHouse nullable column by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1306 -### Other Changes 🛠 -* Use Go 1.22 in head tests by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1305 -* Skip flaky 1127 test by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1307 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.24.0...v2.25.0 - -# v2.24.0, 2024-05-08 - -## What's Changed -### Enhancements 🎉 -* Always compress responses when the client compression is on by @zhkvia in https://github.com/ClickHouse/clickhouse-go/pull/1286 -* Optional flag to close query with flush by @hongker in https://github.com/ClickHouse/clickhouse-go/pull/1276 -### Fixes 🐛 -* Fix prepare batch does not break on `values` substring in table name by @Wang in https://github.com/ClickHouse/clickhouse-go/pull/1290 -* Fix nil checks when appending slices of pointers by @markandrus in https://github.com/ClickHouse/clickhouse-go/pull/1283 -### Other Changes 🛠 -* Don't recreate keys from LC columns from direct stream by @genzgd in https://github.com/ClickHouse/clickhouse-go/pull/1291 - -## New Contributors -* @zhkvia made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1286 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.23.2...v2.24.0 - -# v2.23.2, 2024-04-25 - -## What's Changed -### Fixes 🐛 -* Fixed panic on concurrent context key map write by @Wang in https://github.com/ClickHouse/clickhouse-go/pull/1284 -### Other Changes 🛠 -* Fix ClickHouse Terraform provider version by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1285 - -## New Contributors -* @Wang made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1284 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.23.1...v2.23.2 - -# v2.23.1, 2024-04-15 - -## What's Changed -### Fixes 🐛 -* Zero-value timestamp to be formatted as toDateTime(0) in bind by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1260 -### Other Changes 🛠 -* Update #1127 test case to reproduce a progress handle when exception is thrown by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1259 -* Set max parallel for GH jobs by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1261 -* Ensure test container termination by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1274 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.23.0...v2.23.1 - -# v2.23.0, 2024-03-27 - -## What's Changed -### Enhancements 🎉 -* Implement `ConnBeginTx` as replacement for deprecated `Begin` by @FelipeLema in https://github.com/ClickHouse/clickhouse-go/pull/1255 -### Other Changes 🛠 -* Align error message assertion to new missing custom setting error formatting by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1256 -* CI chores by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1258 - -## New Contributors -* @FelipeLema made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1255 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.4...v2.23.0 - -# v2.22.4, 2024-03-25 - -## What's Changed -### Fixes 🐛 -* Fix column name with parantheses handle in prepare batch by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1252 -### Other Changes 🛠 -* Fix TestBatchAppendRows work different on cloud by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1251 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.3...v2.22.4 - -# v2.22.3, 2024-03-25 - -## What's Changed -### Fixes 🐛 -* Fix panic on tuple scan on []any by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1249 -### Other Changes 🛠 -* Error channel deadlock fix test case by @threadedstream in https://github.com/ClickHouse/clickhouse-go/pull/1239 -* Add a test case for #1127 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1242 -* Run cloud/head jobs when label by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1250 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.2...v2.22.3 - -# v2.22.2, 2024-03-18 - -## What's Changed -### Fixes 🐛 -* Fix for Map columns with Enums by @leklund in https://github.com/ClickHouse/clickhouse-go/pull/1236 - -## New Contributors -* @leklund made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1236 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.1...v2.22.2 - -# v2.22.1, 2024-03-18 - -## What's Changed -### Fixes 🐛 -* Make errors channel buffered inside query() by @threadedstream in https://github.com/ClickHouse/clickhouse-go/pull/1237 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.0...v2.22.1 - -# v2.20.0, 2024-02-28 - -## What's Changed -### Enhancements 🎉 -* Support [n]byte/[]byte type Scan/Append to FixedString column by @rogeryk in https://github.com/ClickHouse/clickhouse-go/pull/1205 -### Other Changes 🛠 -* Enable cloud tests by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1202 -* Removed LowCardinality(UInt64) tests that caused allow_suspicious_low_cardinality_types related error by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1206 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.19.0...v2.20.0 - -# v2.19.0, 2024-02-26 - -## What's Changed -### Enhancements 🎉 -* handle ctx.Done() in acquire by @threadedstream in https://github.com/ClickHouse/clickhouse-go/pull/1199 -### Fixes 🐛 -* Fix panic on format nil *fmt.Stringer type value by @zaneli in https://github.com/ClickHouse/clickhouse-go/pull/1200 -### Other Changes 🛠 -* Update Go/ClickHouse versions by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1201 - -## New Contributors -* @threadedstream made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1199 -* @zaneli made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1200 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.18.0...v2.19.0 - -# v2.18.0, 2024-02-01 - -## What's Changed -### Enhancements 🎉 -* Add WithAllocBufferColStrProvider string column allocator for batch insert performance boost by @hongker in https://github.com/ClickHouse/clickhouse-go/pull/1181 -### Fixes 🐛 -* Fix bind for seconds scale DateTime by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1184 -### Other Changes 🛠 -* resolves #1163 debugF function is not respected by @omurbekjk in https://github.com/ClickHouse/clickhouse-go/pull/1166 - -## New Contributors -* @omurbekjk made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1166 -* @hongker made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1181 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.17.1...v2.18.0 - -# v2.17.1, 2023-12-27 - -## What's Changed -### Fixes 🐛 -* fix panic in contextWatchDog nil pointer check by @nityanandagohain in https://github.com/ClickHouse/clickhouse-go/pull/1168 - -## New Contributors -* @nityanandagohain made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1168 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.17.0...v2.17.1 - -# v2.17.0, 2023-12-21 - -## What's Changed -### Enhancements 🎉 -* Iterable ordered map alternative with improved performance by @hanjm in https://github.com/ClickHouse/clickhouse-go/pull/1152 -* Support bool alias type by @yogasw in https://github.com/ClickHouse/clickhouse-go/pull/1156 -### Fixes 🐛 -* Update README - mention HTTP protocol usable only with `database/sql` interface by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1160 -* Fix README example for Debugf by @aramperes in https://github.com/ClickHouse/clickhouse-go/pull/1153 - -## New Contributors -* @yogasw made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1156 -* @aramperes made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1153 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.16.0...v2.17.0 - -# v2.16.0, 2023-12-01 - -## What's Changed -### Enhancements 🎉 -* Add sql.Valuer support for all types by @deankarn in https://github.com/ClickHouse/clickhouse-go/pull/1144 -### Fixes 🐛 -* Fix DateTime64 range to actual supported range per ClickHouse documentation by @phil-schreiber in https://github.com/ClickHouse/clickhouse-go/pull/1148 - -## New Contributors -* @phil-schreiber made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1148 -* @deankarn made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1144 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.15.0...v2.16.0 - -# v2.14.3, 2023-10-12 - -## What's Changed -### Fixes 🐛 -* Fix insertion of empty map into JSON column by using _dummy subcolumn by @leodido in https://github.com/ClickHouse/clickhouse-go/pull/1116 -### Other Changes 🛠 -* chore: specify method field on compression in example by @rdaniels6813 in https://github.com/ClickHouse/clickhouse-go/pull/1111 -* chore: remove extra error checks by @rutaka-n in https://github.com/ClickHouse/clickhouse-go/pull/1095 - -## New Contributors -* @leodido made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1116 -* @rdaniels6813 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1111 -* @rutaka-n made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1095 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.14.2...v2.14.3 - -# v2.14.2, 2023-10-04 - -## What's Changed -### Fixes 🐛 -* Fix: Block stream read process would be terminated by empty block with zero rows by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/1104 -* Free compressor's buffer when FreeBufOnConnRelease enabled by @cergxx in https://github.com/ClickHouse/clickhouse-go/pull/1100 -* Fix truncate ` for HTTP adapter by @beck917 in https://github.com/ClickHouse/clickhouse-go/pull/1103 -### Other Changes 🛠 -* docs: update readme.md by @rfyiamcool in https://github.com/ClickHouse/clickhouse-go/pull/1068 -* Remove dependency on github.com/satori/go.uuid by @srikanthccv in https://github.com/ClickHouse/clickhouse-go/pull/1085 - -## New Contributors -* @rfyiamcool made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1068 -* @beck917 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1103 -* @srikanthccv made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1085 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.14.1...v2.14.2 - -# v2.14.1, 2023-09-14 - -## What's Changed -### Enhancements 🎉 -* parseDSN: support connection pool settings (#1082) by @hanjm in https://github.com/ClickHouse/clickhouse-go/pull/1084 - -## New Contributors -* @hanjm made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1084 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.14.0...v2.14.1 - -# v2.14.0, 2023-09-12 - -## What's Changed -### Enhancements 🎉 -* Add FreeBufOnConnRelease to clickhouse.Options by @cergxx in https://github.com/ClickHouse/clickhouse-go/pull/1091 -* Improving object allocation for (positional) parameter binding by @mdonkers in https://github.com/ClickHouse/clickhouse-go/pull/1092 -### Fixes 🐛 -* Fix escaping double quote in SQL statement in prepare batch by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1083 -### Other Changes 🛠 -* Update Go & ClickHouse versions by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1079 -* Return status code from any http error by @RoryCrispin in https://github.com/ClickHouse/clickhouse-go/pull/1090 -* tests: fix dropped error by @alrs in https://github.com/ClickHouse/clickhouse-go/pull/1081 -* chore: unnecessary use of fmt.Sprintf by @testwill in https://github.com/ClickHouse/clickhouse-go/pull/1080 -* Run CI on self hosted runner by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1094 - -## New Contributors -* @cergxx made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1091 -* @alrs made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1081 -* @testwill made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1080 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.4...v2.14 - -# v2.13.4, 2023-08-30 - -## What's Changed -### Fixes 🐛 -* fix(proto): add TCP protocol version in query packet by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1077 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.3...v2.13.4 - -# v2.13.3, 2023-08-23 - -## What's Changed -### Fixes 🐛 -* fix(column.json): fix bool type handling by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1073 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.2...v2.13.3 - -# v2.13.2, 2023-08-18 - -## What's Changed -### Fixes 🐛 -* fix: update ch-go to remove string length limit by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1071 -### Other Changes 🛠 -* Test against latest and head CH by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1060 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.1...v2.13.2 - -# v2.13.1, 2023-08-17 - -## What's Changed -### Fixes 🐛 -* fix: native format Date32 representation by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1069 - - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.0...v2.13.1 - -# v2.13.0, 2023-08-10 - -## What's Changed -### Enhancements 🎉 -* Support scan from uint8 to bool by @ValManP in https://github.com/ClickHouse/clickhouse-go/pull/1051 -* Binding arguments for AsyncInsert interface by @mdonkers in https://github.com/ClickHouse/clickhouse-go/pull/1052 -* Batch rows count API by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1063 -* Implement release connection in batch by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1062 -### Other Changes 🛠 -* Restore test against CH 23.7 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1059 - -## New Contributors -* @ValManP made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1051 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.12.1...v2.13.0 - -# v2.12.1, 2023-08-02 - -## What's Changed -### Fixes 🐛 -* Fix InsertAsync typo in docs by @et in https://github.com/ClickHouse/clickhouse-go/pull/1044 -* Fix panic and releasing in batch column by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1055 -* Docs/changelog fixes by @jmaicher in https://github.com/ClickHouse/clickhouse-go/pull/1046 -* Clarify error message re custom serializaion support by @RoryCrispin in https://github.com/ClickHouse/clickhouse-go/pull/1056 -* Fix send query on batch retry by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1045 -### Other Changes 🛠 -* Update ClickHouse versions by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1054 - -## New Contributors -* @et made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1044 -* @EpicStep made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1055 -* @jmaicher made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1046 -* @RoryCrispin made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1056 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.12.0...v2.12.1 - -# v2.12.0, 2023-07-27 - -## What's Changed -### Enhancements 🎉 -* Implement elapsed time in query progress by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1039 -### Fixes 🐛 -* Release connection slot on connection acquire timeout by @sentanos in https://github.com/ClickHouse/clickhouse-go/pull/1042 - -## New Contributors -* @sentanos made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1042 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.11.0...v2.12.0 - -# v2.11.0, 2023-07-20 - -## What's Changed -### Enhancements 🎉 -* Retry for batch API by @djosephsen in https://github.com/ClickHouse/clickhouse-go/pull/941 -### Fixes 🐛 -* Fix startAutoCloseIdleConnections cause goroutine leak by @YenchangChan in https://github.com/ClickHouse/clickhouse-go/pull/1011 -* Fix netip.Addr pointer panic by @anjmao in https://github.com/ClickHouse/clickhouse-go/pull/1029 -### Other Changes 🛠 -* Git actions terraform by @gingerwizard in https://github.com/ClickHouse/clickhouse-go/pull/1023 - -## New Contributors -* @YenchangChan made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1011 -* @djosephsen made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/941 -* @anjmao made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1029 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.10.1...v2.11.0 - -# v2.10.1, 2023-06-06 - -## What's Changed -### Other Changes 🛠 -* Update outdated README.md by @kokizzu in https://github.com/ClickHouse/clickhouse-go/pull/1006 -* Remove incorrect usage of KeepAlive in DialContext by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1009 - -## New Contributors -* @kokizzu made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1006 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.10.0...v2.10.1 - -# v2.10.0, 2023-05-17 - -## What's Changed -### Enhancements 🎉 -* Support [16]byte/[]byte typed scan/append for IPv6 column by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/996 -* Add custom dialer option to http protocol by @stephaniehingtgen in https://github.com/ClickHouse/clickhouse-go/pull/998 -### Fixes 🐛 -* Tuple scan respects both value and pointer variable by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/971 -* Auto close idle connections in native protocol in respect of ConnMaxLifetime option by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/999 - -## New Contributors -* @stephaniehingtgen made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/998 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.9.3...v2.10.0 - -# v2.9.2, 2023-05-08 - -## What's Changed -### Fixes 🐛 -* Pass http.ProxyFromEnvironment configuration to http.Transport by @slvrtrn in https://github.com/ClickHouse/clickhouse-go/pull/987 -### Other Changes 🛠 -* Use `any` instead of `interface{}` by @candiduslynx in https://github.com/ClickHouse/clickhouse-go/pull/984 - -## New Contributors -* @candiduslynx made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/984 -* @slvrtrn made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/987 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.9.1...v2.9.2 - -# v2.9.1, 2023-04-24 - -## What's Changed -### Enhancements 🎉 -* Do not return hard error on unparsable version in HTTP proto by @hexchain in https://github.com/ClickHouse/clickhouse-go/pull/975 -### Fixes 🐛 -* Return ErrBadConn in stdDriver Prepare if connection is broken by @czubocha in https://github.com/ClickHouse/clickhouse-go/pull/977 - -## New Contributors -* @czubocha made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/977 -* @hexchain made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/975 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.9.0...v2.9.1 - -# v2.9.0, 2023-04-13 - -## What's Changed -### Enhancements 🎉 -* External tables support for HTTP protocol by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/942 -* Support driver.Valuer in String and FixedString columns by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/946 -* Support boolean and pointer type parameter binding by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/963 -* Support insert/scan IPv4 using UInt32/*UInt32 types by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/966 -### Fixes 🐛 -* Reset the pointer to the nullable field by @xiaochaoren1 in https://github.com/ClickHouse/clickhouse-go/pull/964 -* Enable to use ternary operator with named arguments by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/965 -### Other Changes 🛠 -* chore: explain async insert in docs by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/969 - -## New Contributors -* @xiaochaoren1 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/964 - -**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.8.3...v2.9.0 - -## 2.8.3, 2023-04-03 - -### Bug fixes - -- Revert: Expire idle connections no longer acquired during lifetime [#958](https://github.com/ClickHouse/clickhouse-go/pull/958) by @jkaflik - -## 2.8.2, 2023-03-31 - -### Bug fixes - -- Expire idle connections no longer acquired during lifetime [#945](https://github.com/ClickHouse/clickhouse-go/pull/945) by @jkaflik - -## 2.8.1, 2023-03-29 - -### Bug fixes - -- Fix idle connection check for TLS connections [#951](https://github.com/ClickHouse/clickhouse-go/pull/951) by @jkaflik & @alekar - -## 2.8.0, 2023-03-27 - -### New features - -- Support customized "url path" in http connection [#938](https://github.com/ClickHouse/clickhouse-go/pull/938) by @crisismaple -- Allow Auth.Database option to be empty [#926](https://github.com/ClickHouse/clickhouse-go/pull/938) by @v4run - -### Chores - -- Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 [#933](https://github.com/ClickHouse/clickhouse-go/pull/933) -- fix: small typo in the text of an error [#936](https://github.com/ClickHouse/clickhouse-go/pull/936) by @lspgn -- Improved bug template [#916](https://github.com/ClickHouse/clickhouse-go/pull/916) by @mshustov - -## 2.7.0, 2023-03-08 - -### New features - -- Date type with user location [#923](https://github.com/ClickHouse/clickhouse-go/pull/923) by @jkaflik -- Add AppendRow function to BatchColumn [#927](https://github.com/ClickHouse/clickhouse-go/pull/927) by @pikot - -### Bug fixes - -- fix: fix connect.compression's format verb [#924](https://github.com/ClickHouse/clickhouse-go/pull/924) by @mind1949 -- Add extra padding for strings shorter than FixedColumn length [#910](https://github.com/ClickHouse/clickhouse-go/pull/910) by @jkaflik - -### Chore - -- Bump github.com/andybalholm/brotli from 1.0.4 to 1.0.5 [#911](https://github.com/ClickHouse/clickhouse-go/pull/911) -- Bump github.com/paulmach/orb from 0.8.0 to 0.9.0 [#912](https://github.com/ClickHouse/clickhouse-go/pull/912) -- Bump golang.org/x/net from 0.0.0-20220722155237-a158d28d115b to 0.7.0 [#928](https://github.com/ClickHouse/clickhouse-go/pull/928) - -## 2.6.5, 2023-02-28 - -### Bug fixes - -- Fix array parameter formatting in binding mechanism [#921](https://github.com/ClickHouse/clickhouse-go/pull/921) by @genzgd - -## 2.6.4, 2023-02-23 - -### Bug fixes - -- Fixed concurrency issue in stdConnOpener [#918](https://github.com/ClickHouse/clickhouse-go/pull/918) by @jkaflik - -## 2.6.3, 2023-02-22 - -### Bug fixes - -- Fixed `lib/binary/string_safe.go` for non 64bit arch [#914](https://github.com/ClickHouse/clickhouse-go/pull/914) by @atoulme - -## 2.6.2, 2023-02-20 - -### Bug fixes - -- Fix decimal encoding with non-standard exponential representation [#909](https://github.com/ClickHouse/clickhouse-go/pull/909) by @vogrelord -- Add extra padding for strings shorter than FixedColumn length [#910](https://github.com/ClickHouse/clickhouse-go/pull/910) by @jkaflik - -### Chore - -- Remove Yandex ClickHouse image from Makefile [#895](https://github.com/ClickHouse/clickhouse-go/pull/895) by @alexey-milovidov -- Remove duplicate of error handling [#898](https://github.com/ClickHouse/clickhouse-go/pull/898) by @Astemirdum -- Bump github.com/ClickHouse/ch-go from 0.51.2 to 0.52.1 [#901](https://github.com/ClickHouse/clickhouse-go/pull/901) - -## 2.6.1, 2023-02-13 - -### Bug fixes - -- Do not reuse expired connections (`ConnMaxLifetime`) [#892](https://github.com/ClickHouse/clickhouse-go/pull/892) by @iamluc -- Extend default dial timeout value to 30s [#893](https://github.com/ClickHouse/clickhouse-go/pull/893) by @jkaflik -- Compression name fixed in sendQuery log [#884](https://github.com/ClickHouse/clickhouse-go/pull/884) by @fredngr - -## 2.6.0, 2023-01-27 - -### New features - -- Client info specification implementation [#876](https://github.com/ClickHouse/clickhouse-go/pull/876) by @jkaflik - -### Bug fixes - -- Better handling for broken connection errors in the std interface [#879](https://github.com/ClickHouse/clickhouse-go/pull/879) by @n-oden - -### Chore - -- Document way to provide table or database identifier with query parameters [#875](https://github.com/ClickHouse/clickhouse-go/pull/875) by @jkaflik -- Bump github.com/ClickHouse/ch-go from 0.51.0 to 0.51.2 [#881](https://github.com/ClickHouse/clickhouse-go/pull/881) - -## 2.5.1, 2023-01-10 - -### Bug fixes - -- Flag connection as closed on broken pipe [#871](https://github.com/ClickHouse/clickhouse-go/pull/871) by @n-oden - -## 2.5.0, 2023-01-10 - -### New features - -- Buffered compression column by column for a native protocol. Introduces the `MaxCompressionBuffer` option - max size (bytes) of compression buffer during column-by-column compression (default 10MiB) [#808](https://github.com/ClickHouse/clickhouse-go/pull/808) by @gingerwizard and @jkaflik -- Support custom types that implement `sql.Scanner` interface (e.g. `type customString string`) [#850](https://github.com/ClickHouse/clickhouse-go/pull/850) by @DarkDrim -- Append query options to the context instead of overwriting [#860](https://github.com/ClickHouse/clickhouse-go/pull/860) by @aaron276h -- Query parameters support [#854](https://github.com/ClickHouse/clickhouse-go/pull/854) by @jkaflik -- Expose `DialStrategy` function to the user for custom connection routing. [#855](https://github.com/ClickHouse/clickhouse-go/pull/855) by @jkaflik - -### Bug fixes - -- Close connection on `Cancel`. This is to make sure context timed out/canceled connection is not reused further [#764](https://github.com/ClickHouse/clickhouse-go/pull/764) by @gingerwizard -- Fully parse `secure` and `skip_verify` in DSN query parameters. [#862](https://github.com/ClickHouse/clickhouse-go/pull/862) by @n-oden - -### Chore - -- Added tests covering read-only user queries [#837](https://github.com/ClickHouse/clickhouse-go/pull/837) by @jkaflik -- Agreed on a batch append fail semantics [#853](https://github.com/ClickHouse/clickhouse-go/pull/853) by @jkaflik - -## 2.4.3, 2022-11-30 -### Bug Fixes -* Fix in batch concurrency - batch could panic if used in separate go routines.
-The issue was originally detected due to the use of a batch in a go routine and Abort being called after the connection was released on the batch. This would invalidate the connection which had been subsequently reassigned.
-This issue could occur as soon as the conn is released (this can happen in a number of places e.g. after Send or an Append error), and it potentially returns to the pool for use in another go routine. Subsequent releases could then occur e.g., the user calls Abort mainly but also Send would do it. The result is the connection being closed in the release function while another batch or query potentially used it.
-This release includes a guard to prevent release from being called more than once on a batch. It assumes that batches are not thread-safe - they aren't (only connections are). -## 2.4.2, 2022-11-24 -### Bug Fixes -- Don't panic on `Send()` on batch after invalid `Append`. [#830](https://github.com/ClickHouse/clickhouse-go/pull/830) -- Fix JSON issue with `nil` if column order is inconsistent. [#824](https://github.com/ClickHouse/clickhouse-go/pull/824) - -## 2.4.1, 2022-11-23 -### Bug Fixes -- Patch release to fix "Regression - escape character was not considered when comparing column names". [#828](https://github.com/ClickHouse/clickhouse-go/issues/828) - -## 2.4.0, 2022-11-22 -### New Features -- Support for Nullables in Tuples. [#821](https://github.com/ClickHouse/clickhouse-go/pull/821) [#817](https://github.com/ClickHouse/clickhouse-go/pull/817) -- Use headers for auth and not url if SSL. [#811](https://github.com/ClickHouse/clickhouse-go/pull/811) -- Support additional headers. [#811](https://github.com/ClickHouse/clickhouse-go/pull/811) -- Support int64 for DateTime. [#807](https://github.com/ClickHouse/clickhouse-go/pull/807) -- Support inserting Enums as int8/int16/int. [#802](https://github.com/ClickHouse/clickhouse-go/pull/802) -- Print error if unsupported server. [#792](https://github.com/ClickHouse/clickhouse-go/pull/792) -- Allow block buffer size to tuned for performance - see `BlockBufferSize`. [#776](https://github.com/ClickHouse/clickhouse-go/pull/776) -- Support custom datetime in Scan. [#767](https://github.com/ClickHouse/clickhouse-go/pull/767) -- Support insertion of an orderedmap. [#763](https://github.com/ClickHouse/clickhouse-go/pull/763) - -### Bug Fixes -- Decompress errors over HTTP. [#792](https://github.com/ClickHouse/clickhouse-go/pull/792) -- Use `timezone` vs `timeZone` so we work on older versions. [#781](https://github.com/ClickHouse/clickhouse-go/pull/781) -- Ensure only columns specified in INSERT are required in batch. [#790](https://github.com/ClickHouse/clickhouse-go/pull/790) -- Respect order of columns in insert for batch. [#790](https://github.com/ClickHouse/clickhouse-go/pull/790) -- Handle double pointers for Nullable columns when batch inserting. [#774](https://github.com/ClickHouse/clickhouse-go/pull/774) -- Use nil for `LowCardinality(Nullable(X))`. [#768](https://github.com/ClickHouse/clickhouse-go/pull/768) - -### Breaking Changes -- Align timezone handling with spec. [#776](https://github.com/ClickHouse/clickhouse-go/pull/766), specifically: - - If parsing strings for datetime, datetime64 or dates we assume the locale is Local (i.e. the client) if not specified in the string. - - The server (or column tz) is used for datetime and datetime64 rendering. For date/date32, these have no tz info in the server. For now, they will be rendered as UTC - consistent with the clickhouse-client - - Addresses bind when no location is set +# v2.40.1, 2025-07-30 + +## What's Changed +### Bug fixes 🐛 +* fix: `database/sql` Nullable(JSON) string scan by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1625 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.40.0...v2.40.1 + +# v2.40.0, 2025-07-30 + +## What's Changed +### Enhancements 🎉 +* support `database/sql` scanning json into `string`/`[]byte`/`json.RawMessage` by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1623 +### Bug fixes 🐛 +* fix: json v1 encoding/decoding for prefixed types by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1622 +* fix: Nullable base types with prefix by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1624 +### Other Changes 🛠 +* Bump github.com/docker/docker from 28.3.2+incompatible to 28.3.3+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1621 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.39.0...v2.40.0 + +# v2.39.0, 2025-07-23 + +## What's Changed +### Bug fixes 🐛 +* Fix `ReadTimeout` so that it applies to each call to `conn.Read` not just the first read block by @GeorgeMac in https://github.com/ClickHouse/clickhouse-go/pull/1616, @SpencerTorres https://github.com/ClickHouse/clickhouse-go/pull/1617 + +## Read Timeout behavior changes +This bug fix has potential to affect longer running queries, ensure you're setting `clickhouse.Options` `ReadTimeout` to a reasonable value, and that your `context.WithDeadline` is also set to a reasonable value. The read timeout will now be applied to all blocks, previously it was only set for the first block. + +## New Contributors +* @GeorgeMac made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1616 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.38.1...v2.39.0 + +# v2.38.1, 2025-07-23 + +## What's Changed +### Bug fixes 🐛 +* fix: build failure due to 32-bit integer overflow on 386 arch by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1616 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.38.0...v2.38.1 + +# v2.38.0, 2025-07-22 + +## What's Changed +### Enhancements 🎉 +* `Dynamic` serialization version 3 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1588 +* `JSON` serialization version 3 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1589 +* Add `client_protocol_version` param for HTTP interface by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1594 +* Add missing interval types by @marcboeker in https://github.com/ClickHouse/clickhouse-go/pull/1613 +### Bug fixes 🐛 +* fix format function to handle pointer of time.Time by @KimMachineGun in https://github.com/ClickHouse/clickhouse-go/pull/1559 +* Fix variant prefix by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1591 +* fix(batch): nested column name parsing #1587 by @RuslanSibgatulin in https://github.com/ClickHouse/clickhouse-go/pull/1614 +### Other Changes 🛠 +* Bump github.com/andybalholm/brotli from 1.1.1 to 1.2.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1581 +* Bump github.com/docker/docker from 28.2.2+incompatible to 28.3.0+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1583 +* Bump go.opentelemetry.io/otel/trace from 1.36.0 to 1.37.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1584 +* Bump github.com/docker/docker from 28.3.0+incompatible to 28.3.1+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1585 +* Bump github.com/docker/docker from 28.3.1+incompatible to 28.3.2+incompatible by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1593 +* Bump golang.org/x/net from 0.41.0 to 0.42.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1595 +* add HTTP wait condition for container tests by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1604 +* include server revision in block/column parsing by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1605 +* Bump github.com/testcontainers/testcontainers-go from 0.37.0 to 0.38.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1603 +* docs: add client configuration options by @shivanshuraj1333 in https://github.com/ClickHouse/clickhouse-go/pull/1598 +* Bump github.com/ClickHouse/ch-go from 0.66.1 to 0.67.0 by @dependabot[bot] in https://github.com/ClickHouse/clickhouse-go/pull/1609 + +## Upgrades for Dynamic / JSON + +Dynamic and JSON were never fully functional in previous versions. If you exceeded the maximum types for `Dynamic`, the data would become unreadable since it was encoded as a single `SharedVariant` type. Same for JSON, if you exceeded the maximum dynamic paths the data would also become unreadable since it was stored in a `SharedData` structure. + +In ClickHouse 25.6, a setting was added that abstracts these structures away so that clients don't have to implement them. +To begin using Dynamic and JSON to their fullest ability, upgrade to ClickHouse 25.6 along with clickhouse-go v2.38.0, and enable `output_format_native_use_flattened_dynamic_and_json_serialization` in your connection settings. This will allow you to read all Dynamic and JSON data, even the portions that are stored in the SharedVariant and SharedData blobs on the server. + +If you are using older versions of ClickHouse, things will continue to work as before (with the previously mentioned limitations). + +Feel free to create an issue in the clickhouse-go repository to report any concerns or bugs with this change. + +## New Contributors +* @KimMachineGun made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1559 +* @shivanshuraj1333 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1598 +* @RuslanSibgatulin made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1614 +* @marcboeker made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1613 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.37.2...v2.38.0 + +# v2.37.2, 2025-06-23 + +## What's Changed +### Other Changes 🛠 +* remove dependency on v1, update ch-go by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1580 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.37.1...v2.37.2 + +# v2.37.1, 2025-06-17 + +## What's Changed +### Bug fixes 🐛 +* Fix Native API HTTP bugs by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1578 +* Fixed critical bug with the new HTTP Native API where connections were not being released. +* Also fixed random HTTP 400 errors with large batches over HTTP + + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.37.0...v2.37.1 + +# v2.37.0, 2025-06-16 + +## What's Changed +### Enhancements 🎉 +* Scanning Datetime and Datetime64 into int64 by @vaibhav-kt in https://github.com/ClickHouse/clickhouse-go/pull/1560 +* Supports scanning of Array, IPv4, IPv6, and Map types into Go values that implement the `sql.Scanner` interface. by @zapateo in https://github.com/ClickHouse/clickhouse-go/pull/1570 +* Support HTTP connnections in Native Go interface by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1577 (see details at bottom of release notes!) + +### Bug fixes 🐛 +* fix: Prevent panic on slice map keys by @disq in https://github.com/ClickHouse/clickhouse-go/pull/1567 +* object_json: split JSON tag to remove any trailing omitempty by @dschofie in https://github.com/ClickHouse/clickhouse-go/pull/1547 +* fix: namedValue namedDatevalue usage error by @tosolveit in https://github.com/ClickHouse/clickhouse-go/pull/1575 +* Fix false positives in TestInterfaceArray by @tosolveit in https://github.com/ClickHouse/clickhouse-go/pull/1572 + +### HTTP in ClickHouse API + +This release includes a bug fix / enhancement for the "ClickHouse API" interface. Previously the only way to use HTTP was through the `database/sql` interface, but now you can use `Protocol: clickhouse.HTTP` in your `clickhouse.Open` options. +HTTP still has some limitations to be aware of for things like batch flushing and session context, so be cautious when switching over code to this protocol. Please report any issues you may have with this change. Native protocol shouldn't be affected, but you can downgrade to v2.36.x if you notice any issues. + +## New Contributors +* @disq made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1567 +* @vaibhav-kt made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1560 +* @tosolveit made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1572 +* @dschofie made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1547 +* @zapateo made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1570 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.36.0...v2.37.0 + +# v2.36.0, 2025-06-03 + +## What's Changed +### Enhancements 🎉 +* Add `Close` function to batch interface by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1566 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.35.0...v2.36.0 + +# v2.35.0, 2025-05-22 + +## What's Changed +### Enhancements 🎉 +* JWT Authentication by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1538 +* Add support for overriding `database` in DSN URL by @kokizzu in https://github.com/ClickHouse/clickhouse-go/pull/1541 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.34.0...v2.35.0 + +# v2.34.0, 2025-04-01 + +## What's Changed + +### Enhancements 🎉 +* allow appending to Decimal column with `string` by @rutaka-n in https://github.com/ClickHouse/clickhouse-go/pull/1532 +* Enhancements for decimal strings by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1535 +### Bug fixes 🐛 +* Add length check to `FixedString` to prevent panic by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1534 +### Other Changes 🛠 +* chore: replace github.com/pkg/errors with stdlib by @hazzik in https://github.com/ClickHouse/clickhouse-go/pull/1530 + +## New Contributors +* @hazzik made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1530 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.33.1...v2.34.0 + +# v2.33.1, 2025-03-18 + +## What's Changed +### Bug fixes 🐛 +* fix concurrent map write errors with context by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1523 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.33.0...v2.33.1 + +# v2.33.0, 2025-03-07 + +## What's Changed +### Enhancements 🎉 +* Add handling for nested structs in named tuples by @Exca-DK in https://github.com/ClickHouse/clickhouse-go/pull/1500 +* Add option to control MaxConnsPerHost for http.Transport by @holycheater in https://github.com/ClickHouse/clickhouse-go/pull/1517 + +### Bug fixes 🐛 +* fix ConnOpenRandom strategy, issue: #1509 by @PalanQu in https://github.com/ClickHouse/clickhouse-go/pull/1510 +* fix: preserve nil elements in map by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1516 + + +## New Contributors +* @PalanQu made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1510 +* @Exca-DK made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1500 +* @holycheater made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1517 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.32.2...v2.33.0 + +# v2.32.2, 2025-02-20 + +## What's Changed +### Bug Fixes 🐛 +* fix: decode prefix of nested columns in Variant by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1506 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.32.1...v2.32.2 + +# v2.32.1, 2025-02-17 + +## What's Changed +### Bug Fixes 🐛 +* fix: enable Array() support for Variant, Dynamic, JSON by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1501 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.32.0...v2.32.1 + +# v2.32.0, 2025-02-14 + +## What's Changed + +### Enhancements 🎉 +* Add LZ4HC compression method by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1499 + +### Performance 🏎️ +* Removed ~1MB of memory usage in compressor by @pablomatiasgomez and @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1499 + +### Bug fixes 🐛 +* Fixed potential security vulnerability in compression block header length overflow by @santrancisco https://github.com/ClickHouse/clickhouse-go/pull/1499 + +### Other Changes 🛠 +* update compressor functions by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1499 +* change container provider, verify close conn error in tests by @pablomatiasgomez in https://github.com/ClickHouse/clickhouse-go/pull/1497 + +## New Contributors +* @pablomatiasgomez made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1497 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.31.0...v2.32.0 + +# v2.31.0, 2025-02-10 + +## What's Changed + +### Enhancements 🎉 +* `clickhouse.JSON` Serializer interface by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1491 +* use unsafe.Slice/unsafe.StringData by @serprex in https://github.com/ClickHouse/clickhouse-go/pull/1493 + +### Other Changes 🛠 +* JSON read/write benchmarks by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1490 + +## New Contributors +* @serprex made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1493 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.30.3...2.31.0 + +# v2.30.3, 2025-02-03 + +## What's Changed +### Other Changes 🛠 +* fix enum parse logic when its last index is zero by @lobachpavel in https://github.com/ClickHouse/clickhouse-go/pull/1487 + +## New Contributors +* @lobachpavel made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1487 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.30.2...v2.30.3 + +# v2.30.2, 2025-01-30 + +## What's Changed +### Bug fixes 🐛 +* Handle json tag without name override by @matevzmihalic in https://github.com/ClickHouse/clickhouse-go/pull/1478 +* fix: JSON NestedMap + add tests by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1482 + +## New Contributors +* @matevzmihalic made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1478 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.30.1...v2.30.2 + +# v2.30.1, 2025-01-17 + +## What's Changed +### Enhancements 🎉 +* [improvement] Some performance related changes to evaluate by @mdonkers in https://github.com/ClickHouse/clickhouse-go/pull/1426 +* Add Variant Type by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1453 +* Add Dynamic Type by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1454 +* Add JSON Type by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1455 +* stdlib sql return precision for DateTime64 by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1469 + +### Fixes 🐛 +* [FIX] Minor updates by @barkhayot in https://github.com/ClickHouse/clickhouse-go/pull/1451 +* Fix file descriptor leak in release utility script by @fengjun2016 in https://github.com/ClickHouse/clickhouse-go/pull/1460 +* Remove forced string conversions for Tuple by @SpencerTorres in https://github.com/ClickHouse/clickhouse-go/pull/1465 + +### Other Changes 🛠 +* [Chore] Use defer to close rows in examples by @hayotbisonai in https://github.com/ClickHouse/clickhouse-go/pull/1431 +* Regenerate certificates used in tests by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1441 + + +## New Contributors +* @hayotbisonai made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1431 +* @barkhayot made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1451 +* @fengjun2016 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1460 +* @SpencerTorres made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1453 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.30.0...v2.30.1 + +# v2.30.0, 2024-10-16 + +## What's Changed +### Enhancements 🎉 +* Extended support for HTTP proxy in driver options by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1424 +* Default implementation of column.IterableOrderedMap by @earwin in https://github.com/ClickHouse/clickhouse-go/pull/1417 +### Fixes 🐛 +* Fix serialization for slices of OrderedMap/IterableOrderedMap (#1365) by @earwin in https://github.com/ClickHouse/clickhouse-go/pull/1418 +* Retry on broken pipe in batch by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1423 +### Other Changes 🛠 +* Add 'clickhouse-go-rows-utils' to third-party libraries by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1413 + +## New Contributors +* @earwin made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1418 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.29.0...v2.30.0 + +# v2.29.0, 2024-09-24 + +## What's Changed +### Enhancements 🎉 +* Add ability to handle context cancellations for TCP protocol by @tinybit in https://github.com/ClickHouse/clickhouse-go/pull/1389 +### Other Changes 🛠 +* Add Examples for batch.Column(n).AppendRow in columnar_insert.go by @achmad-dev in https://github.com/ClickHouse/clickhouse-go/pull/1410 + +## New Contributors +* @achmad-dev made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1410 +* @tinybit made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1389 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.28.3...v2.29.0 + +# v2.28.3, 2024-09-12 + +## What's Changed +### Other Changes 🛠 +* Revert the minimum required Go version to 1.21 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1405 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.28.2...v2.28.3 + +# v2.28.2, 2024-08-30 + +## What's Changed +### Fixes 🐛 +* Validate connection in bad state before query execution in the stdlib database/sql driver by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1396 +### Other Changes 🛠 +* Update README with newer Go versions by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1393 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.28.1...v2.28.2 + +# v2.28.1, 2024-08-27 + +## What's Changed +### Fixes 🐛 +* Recognize empty strings as a valid enum key by @genzgd in https://github.com/ClickHouse/clickhouse-go/pull/1387 +### Other Changes 🛠 +* ClickHouse 24.8 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1385 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.28.0...v2.28.1 + +# v2.28.0, 2024-08-23 + +## What's Changed +### Fixes 🐛 +* Fix Enum column definition parse logic to match ClickHouse spec by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1380 +* Fix support custom serialization in Nested type by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1381 +* Fix panic on nil map append by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1383 +### Other Changes 🛠 +* Remove test coverage for deprecated Object('JSON') type by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1377 +* Remove JSON type use from a context use example by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1379 +* Make sure non-secure port is used during readiness check by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1382 +* Deprecate Go 1.21 ended support and require Go 1.22 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1378 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.27.2...v2.28.0 + +# v2.27.2, 2024-08-20 + +## What's Changed +### Enhancements 🎉 +* Optimize Date/Date32 scan by @ShoshinNikita in https://github.com/ClickHouse/clickhouse-go/pull/1374 +### Fixes 🐛 +* Fix column list parsing for multiline INSERT statements by @Fiery-Fenix in https://github.com/ClickHouse/clickhouse-go/pull/1373 + +## New Contributors +* @Fiery-Fenix made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1373 +* @ShoshinNikita made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1374 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.27.1...v2.27.2 + +# v2.27.1, 2024-08-05 + +## What's Changed +### Fixes 🐛 +* Fix INSERT statement normalization match backtick table name by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1366 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.27.0...v2.27.1 + +# v2.27.0, 2024-08-01 + +## Breaking change notice + +v2.25.0 was released with a breaking change in https://github.com/ClickHouse/clickhouse-go/pull/1306. Please review your implementation. + +## What's Changed +### Enhancements 🎉 +* Unpack value of indirect types in array column to support nested structures in interfaced slices/arrays by @jmaicher in https://github.com/ClickHouse/clickhouse-go/pull/1350 +### Fixes 🐛 +* Common HTTP insert query normalization by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1341 +### Other Changes 🛠 +* Update examples std json by @xjeway in https://github.com/ClickHouse/clickhouse-go/pull/1240 +* ClickHouse 24.6 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1352 +* ClickHouse 24.7 release by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1363 +* Update CHANGELOG with a breaking change note by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1364 + +## New Contributors +* @xjeway made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1240 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.26.0...v2.27.0 + +# v2.26.0, 2024-06-25 + +## What's Changed +### Enhancements 🎉 +* Reintroduce the random connection strategy by @larry-cdn77 in https://github.com/ClickHouse/clickhouse-go/pull/1313 +* Make custom debug log function on-par with the built-in one by @vespian in https://github.com/ClickHouse/clickhouse-go/pull/1317 +* Remove date overflow check as it's normalised by ClickHouse server by @gogingersnap777 in https://github.com/ClickHouse/clickhouse-go/pull/1315 +* Batch: impl `Columns() []column.Interface` method by @egsam98 in https://github.com/ClickHouse/clickhouse-go/pull/1277 +### Fixes 🐛 +* Fix rows.Close do not return too early by @yujiarista in https://github.com/ClickHouse/clickhouse-go/pull/1314 +* Setting `X-Clickhouse-SSL-Certificate-Auth` header correctly given `X-ClickHouse-Key` by @gogingersnap777 in https://github.com/ClickHouse/clickhouse-go/pull/1316 +* Retry on network errors and fix retries on async inserts with `database/sql` interface by @tommyzli in https://github.com/ClickHouse/clickhouse-go/pull/1330 +* BatchInsert parentheses issue fix by @ramzes642 in https://github.com/ClickHouse/clickhouse-go/pull/1327 +### Other Changes 🛠 +* ClickHouse 24.5 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1319 +* Align `allow_suspicious_low_cardinality_types` and `allow_suspicious_low_cardinality_types ` settings in tests due to ClickHouse Cloud incompatibility by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1331 +* Use HTTPs scheme in std connection failover tests by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1332 + +## New Contributors +* @larry-cdn77 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1313 +* @vespian made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1317 +* @gogingersnap777 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1315 +* @yujiarista made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1314 +* @egsam98 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1277 +* @tommyzli made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1330 +* @ramzes642 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1327 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.25.0...v2.26.0 + +# v2.25.0, 2024-05-28 + +## What's Changed +### Breaking Changes 🚨 +* Add a compatibility layer for a database/sql driver to work with sql.NullString and ClickHouse nullable column by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1306 +### Other Changes 🛠 +* Use Go 1.22 in head tests by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1305 +* Skip flaky 1127 test by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1307 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.24.0...v2.25.0 + +# v2.24.0, 2024-05-08 + +## What's Changed +### Enhancements 🎉 +* Always compress responses when the client compression is on by @zhkvia in https://github.com/ClickHouse/clickhouse-go/pull/1286 +* Optional flag to close query with flush by @hongker in https://github.com/ClickHouse/clickhouse-go/pull/1276 +### Fixes 🐛 +* Fix prepare batch does not break on `values` substring in table name by @Wang in https://github.com/ClickHouse/clickhouse-go/pull/1290 +* Fix nil checks when appending slices of pointers by @markandrus in https://github.com/ClickHouse/clickhouse-go/pull/1283 +### Other Changes 🛠 +* Don't recreate keys from LC columns from direct stream by @genzgd in https://github.com/ClickHouse/clickhouse-go/pull/1291 + +## New Contributors +* @zhkvia made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1286 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.23.2...v2.24.0 + +# v2.23.2, 2024-04-25 + +## What's Changed +### Fixes 🐛 +* Fixed panic on concurrent context key map write by @Wang in https://github.com/ClickHouse/clickhouse-go/pull/1284 +### Other Changes 🛠 +* Fix ClickHouse Terraform provider version by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1285 + +## New Contributors +* @Wang made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1284 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.23.1...v2.23.2 + +# v2.23.1, 2024-04-15 + +## What's Changed +### Fixes 🐛 +* Zero-value timestamp to be formatted as toDateTime(0) in bind by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1260 +### Other Changes 🛠 +* Update #1127 test case to reproduce a progress handle when exception is thrown by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1259 +* Set max parallel for GH jobs by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1261 +* Ensure test container termination by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1274 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.23.0...v2.23.1 + +# v2.23.0, 2024-03-27 + +## What's Changed +### Enhancements 🎉 +* Implement `ConnBeginTx` as replacement for deprecated `Begin` by @FelipeLema in https://github.com/ClickHouse/clickhouse-go/pull/1255 +### Other Changes 🛠 +* Align error message assertion to new missing custom setting error formatting by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1256 +* CI chores by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1258 + +## New Contributors +* @FelipeLema made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1255 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.4...v2.23.0 + +# v2.22.4, 2024-03-25 + +## What's Changed +### Fixes 🐛 +* Fix column name with parantheses handle in prepare batch by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1252 +### Other Changes 🛠 +* Fix TestBatchAppendRows work different on cloud by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1251 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.3...v2.22.4 + +# v2.22.3, 2024-03-25 + +## What's Changed +### Fixes 🐛 +* Fix panic on tuple scan on []any by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1249 +### Other Changes 🛠 +* Error channel deadlock fix test case by @threadedstream in https://github.com/ClickHouse/clickhouse-go/pull/1239 +* Add a test case for #1127 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1242 +* Run cloud/head jobs when label by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1250 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.2...v2.22.3 + +# v2.22.2, 2024-03-18 + +## What's Changed +### Fixes 🐛 +* Fix for Map columns with Enums by @leklund in https://github.com/ClickHouse/clickhouse-go/pull/1236 + +## New Contributors +* @leklund made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1236 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.1...v2.22.2 + +# v2.22.1, 2024-03-18 + +## What's Changed +### Fixes 🐛 +* Make errors channel buffered inside query() by @threadedstream in https://github.com/ClickHouse/clickhouse-go/pull/1237 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.22.0...v2.22.1 + +# v2.20.0, 2024-02-28 + +## What's Changed +### Enhancements 🎉 +* Support [n]byte/[]byte type Scan/Append to FixedString column by @rogeryk in https://github.com/ClickHouse/clickhouse-go/pull/1205 +### Other Changes 🛠 +* Enable cloud tests by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1202 +* Removed LowCardinality(UInt64) tests that caused allow_suspicious_low_cardinality_types related error by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1206 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.19.0...v2.20.0 + +# v2.19.0, 2024-02-26 + +## What's Changed +### Enhancements 🎉 +* handle ctx.Done() in acquire by @threadedstream in https://github.com/ClickHouse/clickhouse-go/pull/1199 +### Fixes 🐛 +* Fix panic on format nil *fmt.Stringer type value by @zaneli in https://github.com/ClickHouse/clickhouse-go/pull/1200 +### Other Changes 🛠 +* Update Go/ClickHouse versions by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1201 + +## New Contributors +* @threadedstream made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1199 +* @zaneli made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1200 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.18.0...v2.19.0 + +# v2.18.0, 2024-02-01 + +## What's Changed +### Enhancements 🎉 +* Add WithAllocBufferColStrProvider string column allocator for batch insert performance boost by @hongker in https://github.com/ClickHouse/clickhouse-go/pull/1181 +### Fixes 🐛 +* Fix bind for seconds scale DateTime by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1184 +### Other Changes 🛠 +* resolves #1163 debugF function is not respected by @omurbekjk in https://github.com/ClickHouse/clickhouse-go/pull/1166 + +## New Contributors +* @omurbekjk made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1166 +* @hongker made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1181 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.17.1...v2.18.0 + +# v2.17.1, 2023-12-27 + +## What's Changed +### Fixes 🐛 +* fix panic in contextWatchDog nil pointer check by @nityanandagohain in https://github.com/ClickHouse/clickhouse-go/pull/1168 + +## New Contributors +* @nityanandagohain made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1168 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.17.0...v2.17.1 + +# v2.17.0, 2023-12-21 + +## What's Changed +### Enhancements 🎉 +* Iterable ordered map alternative with improved performance by @hanjm in https://github.com/ClickHouse/clickhouse-go/pull/1152 +* Support bool alias type by @yogasw in https://github.com/ClickHouse/clickhouse-go/pull/1156 +### Fixes 🐛 +* Update README - mention HTTP protocol usable only with `database/sql` interface by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1160 +* Fix README example for Debugf by @aramperes in https://github.com/ClickHouse/clickhouse-go/pull/1153 + +## New Contributors +* @yogasw made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1156 +* @aramperes made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1153 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.16.0...v2.17.0 + +# v2.16.0, 2023-12-01 + +## What's Changed +### Enhancements 🎉 +* Add sql.Valuer support for all types by @deankarn in https://github.com/ClickHouse/clickhouse-go/pull/1144 +### Fixes 🐛 +* Fix DateTime64 range to actual supported range per ClickHouse documentation by @phil-schreiber in https://github.com/ClickHouse/clickhouse-go/pull/1148 + +## New Contributors +* @phil-schreiber made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1148 +* @deankarn made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1144 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.15.0...v2.16.0 + +# v2.14.3, 2023-10-12 + +## What's Changed +### Fixes 🐛 +* Fix insertion of empty map into JSON column by using _dummy subcolumn by @leodido in https://github.com/ClickHouse/clickhouse-go/pull/1116 +### Other Changes 🛠 +* chore: specify method field on compression in example by @rdaniels6813 in https://github.com/ClickHouse/clickhouse-go/pull/1111 +* chore: remove extra error checks by @rutaka-n in https://github.com/ClickHouse/clickhouse-go/pull/1095 + +## New Contributors +* @leodido made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1116 +* @rdaniels6813 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1111 +* @rutaka-n made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1095 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.14.2...v2.14.3 + +# v2.14.2, 2023-10-04 + +## What's Changed +### Fixes 🐛 +* Fix: Block stream read process would be terminated by empty block with zero rows by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/1104 +* Free compressor's buffer when FreeBufOnConnRelease enabled by @cergxx in https://github.com/ClickHouse/clickhouse-go/pull/1100 +* Fix truncate ` for HTTP adapter by @beck917 in https://github.com/ClickHouse/clickhouse-go/pull/1103 +### Other Changes 🛠 +* docs: update readme.md by @rfyiamcool in https://github.com/ClickHouse/clickhouse-go/pull/1068 +* Remove dependency on github.com/satori/go.uuid by @srikanthccv in https://github.com/ClickHouse/clickhouse-go/pull/1085 + +## New Contributors +* @rfyiamcool made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1068 +* @beck917 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1103 +* @srikanthccv made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1085 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.14.1...v2.14.2 + +# v2.14.1, 2023-09-14 + +## What's Changed +### Enhancements 🎉 +* parseDSN: support connection pool settings (#1082) by @hanjm in https://github.com/ClickHouse/clickhouse-go/pull/1084 + +## New Contributors +* @hanjm made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1084 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.14.0...v2.14.1 + +# v2.14.0, 2023-09-12 + +## What's Changed +### Enhancements 🎉 +* Add FreeBufOnConnRelease to clickhouse.Options by @cergxx in https://github.com/ClickHouse/clickhouse-go/pull/1091 +* Improving object allocation for (positional) parameter binding by @mdonkers in https://github.com/ClickHouse/clickhouse-go/pull/1092 +### Fixes 🐛 +* Fix escaping double quote in SQL statement in prepare batch by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1083 +### Other Changes 🛠 +* Update Go & ClickHouse versions by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1079 +* Return status code from any http error by @RoryCrispin in https://github.com/ClickHouse/clickhouse-go/pull/1090 +* tests: fix dropped error by @alrs in https://github.com/ClickHouse/clickhouse-go/pull/1081 +* chore: unnecessary use of fmt.Sprintf by @testwill in https://github.com/ClickHouse/clickhouse-go/pull/1080 +* Run CI on self hosted runner by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1094 + +## New Contributors +* @cergxx made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1091 +* @alrs made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1081 +* @testwill made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1080 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.4...v2.14 + +# v2.13.4, 2023-08-30 + +## What's Changed +### Fixes 🐛 +* fix(proto): add TCP protocol version in query packet by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1077 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.3...v2.13.4 + +# v2.13.3, 2023-08-23 + +## What's Changed +### Fixes 🐛 +* fix(column.json): fix bool type handling by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1073 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.2...v2.13.3 + +# v2.13.2, 2023-08-18 + +## What's Changed +### Fixes 🐛 +* fix: update ch-go to remove string length limit by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1071 +### Other Changes 🛠 +* Test against latest and head CH by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1060 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.1...v2.13.2 + +# v2.13.1, 2023-08-17 + +## What's Changed +### Fixes 🐛 +* fix: native format Date32 representation by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1069 + + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.13.0...v2.13.1 + +# v2.13.0, 2023-08-10 + +## What's Changed +### Enhancements 🎉 +* Support scan from uint8 to bool by @ValManP in https://github.com/ClickHouse/clickhouse-go/pull/1051 +* Binding arguments for AsyncInsert interface by @mdonkers in https://github.com/ClickHouse/clickhouse-go/pull/1052 +* Batch rows count API by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1063 +* Implement release connection in batch by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1062 +### Other Changes 🛠 +* Restore test against CH 23.7 by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1059 + +## New Contributors +* @ValManP made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1051 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.12.1...v2.13.0 + +# v2.12.1, 2023-08-02 + +## What's Changed +### Fixes 🐛 +* Fix InsertAsync typo in docs by @et in https://github.com/ClickHouse/clickhouse-go/pull/1044 +* Fix panic and releasing in batch column by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1055 +* Docs/changelog fixes by @jmaicher in https://github.com/ClickHouse/clickhouse-go/pull/1046 +* Clarify error message re custom serializaion support by @RoryCrispin in https://github.com/ClickHouse/clickhouse-go/pull/1056 +* Fix send query on batch retry by @EpicStep in https://github.com/ClickHouse/clickhouse-go/pull/1045 +### Other Changes 🛠 +* Update ClickHouse versions by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1054 + +## New Contributors +* @et made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1044 +* @EpicStep made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1055 +* @jmaicher made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1046 +* @RoryCrispin made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1056 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.12.0...v2.12.1 + +# v2.12.0, 2023-07-27 + +## What's Changed +### Enhancements 🎉 +* Implement elapsed time in query progress by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1039 +### Fixes 🐛 +* Release connection slot on connection acquire timeout by @sentanos in https://github.com/ClickHouse/clickhouse-go/pull/1042 + +## New Contributors +* @sentanos made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1042 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.11.0...v2.12.0 + +# v2.11.0, 2023-07-20 + +## What's Changed +### Enhancements 🎉 +* Retry for batch API by @djosephsen in https://github.com/ClickHouse/clickhouse-go/pull/941 +### Fixes 🐛 +* Fix startAutoCloseIdleConnections cause goroutine leak by @YenchangChan in https://github.com/ClickHouse/clickhouse-go/pull/1011 +* Fix netip.Addr pointer panic by @anjmao in https://github.com/ClickHouse/clickhouse-go/pull/1029 +### Other Changes 🛠 +* Git actions terraform by @gingerwizard in https://github.com/ClickHouse/clickhouse-go/pull/1023 + +## New Contributors +* @YenchangChan made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1011 +* @djosephsen made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/941 +* @anjmao made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1029 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.10.1...v2.11.0 + +# v2.10.1, 2023-06-06 + +## What's Changed +### Other Changes 🛠 +* Update outdated README.md by @kokizzu in https://github.com/ClickHouse/clickhouse-go/pull/1006 +* Remove incorrect usage of KeepAlive in DialContext by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/1009 + +## New Contributors +* @kokizzu made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/1006 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.10.0...v2.10.1 + +# v2.10.0, 2023-05-17 + +## What's Changed +### Enhancements 🎉 +* Support [16]byte/[]byte typed scan/append for IPv6 column by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/996 +* Add custom dialer option to http protocol by @stephaniehingtgen in https://github.com/ClickHouse/clickhouse-go/pull/998 +### Fixes 🐛 +* Tuple scan respects both value and pointer variable by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/971 +* Auto close idle connections in native protocol in respect of ConnMaxLifetime option by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/999 + +## New Contributors +* @stephaniehingtgen made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/998 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.9.3...v2.10.0 + +# v2.9.2, 2023-05-08 + +## What's Changed +### Fixes 🐛 +* Pass http.ProxyFromEnvironment configuration to http.Transport by @slvrtrn in https://github.com/ClickHouse/clickhouse-go/pull/987 +### Other Changes 🛠 +* Use `any` instead of `interface{}` by @candiduslynx in https://github.com/ClickHouse/clickhouse-go/pull/984 + +## New Contributors +* @candiduslynx made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/984 +* @slvrtrn made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/987 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.9.1...v2.9.2 + +# v2.9.1, 2023-04-24 + +## What's Changed +### Enhancements 🎉 +* Do not return hard error on unparsable version in HTTP proto by @hexchain in https://github.com/ClickHouse/clickhouse-go/pull/975 +### Fixes 🐛 +* Return ErrBadConn in stdDriver Prepare if connection is broken by @czubocha in https://github.com/ClickHouse/clickhouse-go/pull/977 + +## New Contributors +* @czubocha made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/977 +* @hexchain made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/975 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.9.0...v2.9.1 + +# v2.9.0, 2023-04-13 + +## What's Changed +### Enhancements 🎉 +* External tables support for HTTP protocol by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/942 +* Support driver.Valuer in String and FixedString columns by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/946 +* Support boolean and pointer type parameter binding by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/963 +* Support insert/scan IPv4 using UInt32/*UInt32 types by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/966 +### Fixes 🐛 +* Reset the pointer to the nullable field by @xiaochaoren1 in https://github.com/ClickHouse/clickhouse-go/pull/964 +* Enable to use ternary operator with named arguments by @crisismaple in https://github.com/ClickHouse/clickhouse-go/pull/965 +### Other Changes 🛠 +* chore: explain async insert in docs by @jkaflik in https://github.com/ClickHouse/clickhouse-go/pull/969 + +## New Contributors +* @xiaochaoren1 made their first contribution in https://github.com/ClickHouse/clickhouse-go/pull/964 + +**Full Changelog**: https://github.com/ClickHouse/clickhouse-go/compare/v2.8.3...v2.9.0 + +## 2.8.3, 2023-04-03 + +### Bug fixes + +- Revert: Expire idle connections no longer acquired during lifetime [#958](https://github.com/ClickHouse/clickhouse-go/pull/958) by @jkaflik + +## 2.8.2, 2023-03-31 + +### Bug fixes + +- Expire idle connections no longer acquired during lifetime [#945](https://github.com/ClickHouse/clickhouse-go/pull/945) by @jkaflik + +## 2.8.1, 2023-03-29 + +### Bug fixes + +- Fix idle connection check for TLS connections [#951](https://github.com/ClickHouse/clickhouse-go/pull/951) by @jkaflik & @alekar + +## 2.8.0, 2023-03-27 + +### New features + +- Support customized "url path" in http connection [#938](https://github.com/ClickHouse/clickhouse-go/pull/938) by @crisismaple +- Allow Auth.Database option to be empty [#926](https://github.com/ClickHouse/clickhouse-go/pull/938) by @v4run + +### Chores + +- Bump github.com/stretchr/testify from 1.8.1 to 1.8.2 [#933](https://github.com/ClickHouse/clickhouse-go/pull/933) +- fix: small typo in the text of an error [#936](https://github.com/ClickHouse/clickhouse-go/pull/936) by @lspgn +- Improved bug template [#916](https://github.com/ClickHouse/clickhouse-go/pull/916) by @mshustov + +## 2.7.0, 2023-03-08 + +### New features + +- Date type with user location [#923](https://github.com/ClickHouse/clickhouse-go/pull/923) by @jkaflik +- Add AppendRow function to BatchColumn [#927](https://github.com/ClickHouse/clickhouse-go/pull/927) by @pikot + +### Bug fixes + +- fix: fix connect.compression's format verb [#924](https://github.com/ClickHouse/clickhouse-go/pull/924) by @mind1949 +- Add extra padding for strings shorter than FixedColumn length [#910](https://github.com/ClickHouse/clickhouse-go/pull/910) by @jkaflik + +### Chore + +- Bump github.com/andybalholm/brotli from 1.0.4 to 1.0.5 [#911](https://github.com/ClickHouse/clickhouse-go/pull/911) +- Bump github.com/paulmach/orb from 0.8.0 to 0.9.0 [#912](https://github.com/ClickHouse/clickhouse-go/pull/912) +- Bump golang.org/x/net from 0.0.0-20220722155237-a158d28d115b to 0.7.0 [#928](https://github.com/ClickHouse/clickhouse-go/pull/928) + +## 2.6.5, 2023-02-28 + +### Bug fixes + +- Fix array parameter formatting in binding mechanism [#921](https://github.com/ClickHouse/clickhouse-go/pull/921) by @genzgd + +## 2.6.4, 2023-02-23 + +### Bug fixes + +- Fixed concurrency issue in stdConnOpener [#918](https://github.com/ClickHouse/clickhouse-go/pull/918) by @jkaflik + +## 2.6.3, 2023-02-22 + +### Bug fixes + +- Fixed `lib/binary/string_safe.go` for non 64bit arch [#914](https://github.com/ClickHouse/clickhouse-go/pull/914) by @atoulme + +## 2.6.2, 2023-02-20 + +### Bug fixes + +- Fix decimal encoding with non-standard exponential representation [#909](https://github.com/ClickHouse/clickhouse-go/pull/909) by @vogrelord +- Add extra padding for strings shorter than FixedColumn length [#910](https://github.com/ClickHouse/clickhouse-go/pull/910) by @jkaflik + +### Chore + +- Remove Yandex ClickHouse image from Makefile [#895](https://github.com/ClickHouse/clickhouse-go/pull/895) by @alexey-milovidov +- Remove duplicate of error handling [#898](https://github.com/ClickHouse/clickhouse-go/pull/898) by @Astemirdum +- Bump github.com/ClickHouse/ch-go from 0.51.2 to 0.52.1 [#901](https://github.com/ClickHouse/clickhouse-go/pull/901) + +## 2.6.1, 2023-02-13 + +### Bug fixes + +- Do not reuse expired connections (`ConnMaxLifetime`) [#892](https://github.com/ClickHouse/clickhouse-go/pull/892) by @iamluc +- Extend default dial timeout value to 30s [#893](https://github.com/ClickHouse/clickhouse-go/pull/893) by @jkaflik +- Compression name fixed in sendQuery log [#884](https://github.com/ClickHouse/clickhouse-go/pull/884) by @fredngr + +## 2.6.0, 2023-01-27 + +### New features + +- Client info specification implementation [#876](https://github.com/ClickHouse/clickhouse-go/pull/876) by @jkaflik + +### Bug fixes + +- Better handling for broken connection errors in the std interface [#879](https://github.com/ClickHouse/clickhouse-go/pull/879) by @n-oden + +### Chore + +- Document way to provide table or database identifier with query parameters [#875](https://github.com/ClickHouse/clickhouse-go/pull/875) by @jkaflik +- Bump github.com/ClickHouse/ch-go from 0.51.0 to 0.51.2 [#881](https://github.com/ClickHouse/clickhouse-go/pull/881) + +## 2.5.1, 2023-01-10 + +### Bug fixes + +- Flag connection as closed on broken pipe [#871](https://github.com/ClickHouse/clickhouse-go/pull/871) by @n-oden + +## 2.5.0, 2023-01-10 + +### New features + +- Buffered compression column by column for a native protocol. Introduces the `MaxCompressionBuffer` option - max size (bytes) of compression buffer during column-by-column compression (default 10MiB) [#808](https://github.com/ClickHouse/clickhouse-go/pull/808) by @gingerwizard and @jkaflik +- Support custom types that implement `sql.Scanner` interface (e.g. `type customString string`) [#850](https://github.com/ClickHouse/clickhouse-go/pull/850) by @DarkDrim +- Append query options to the context instead of overwriting [#860](https://github.com/ClickHouse/clickhouse-go/pull/860) by @aaron276h +- Query parameters support [#854](https://github.com/ClickHouse/clickhouse-go/pull/854) by @jkaflik +- Expose `DialStrategy` function to the user for custom connection routing. [#855](https://github.com/ClickHouse/clickhouse-go/pull/855) by @jkaflik + +### Bug fixes + +- Close connection on `Cancel`. This is to make sure context timed out/canceled connection is not reused further [#764](https://github.com/ClickHouse/clickhouse-go/pull/764) by @gingerwizard +- Fully parse `secure` and `skip_verify` in DSN query parameters. [#862](https://github.com/ClickHouse/clickhouse-go/pull/862) by @n-oden + +### Chore + +- Added tests covering read-only user queries [#837](https://github.com/ClickHouse/clickhouse-go/pull/837) by @jkaflik +- Agreed on a batch append fail semantics [#853](https://github.com/ClickHouse/clickhouse-go/pull/853) by @jkaflik + +## 2.4.3, 2022-11-30 +### Bug Fixes +* Fix in batch concurrency - batch could panic if used in separate go routines.
+The issue was originally detected due to the use of a batch in a go routine and Abort being called after the connection was released on the batch. This would invalidate the connection which had been subsequently reassigned.
+This issue could occur as soon as the conn is released (this can happen in a number of places e.g. after Send or an Append error), and it potentially returns to the pool for use in another go routine. Subsequent releases could then occur e.g., the user calls Abort mainly but also Send would do it. The result is the connection being closed in the release function while another batch or query potentially used it.
+This release includes a guard to prevent release from being called more than once on a batch. It assumes that batches are not thread-safe - they aren't (only connections are). +## 2.4.2, 2022-11-24 +### Bug Fixes +- Don't panic on `Send()` on batch after invalid `Append`. [#830](https://github.com/ClickHouse/clickhouse-go/pull/830) +- Fix JSON issue with `nil` if column order is inconsistent. [#824](https://github.com/ClickHouse/clickhouse-go/pull/824) + +## 2.4.1, 2022-11-23 +### Bug Fixes +- Patch release to fix "Regression - escape character was not considered when comparing column names". [#828](https://github.com/ClickHouse/clickhouse-go/issues/828) + +## 2.4.0, 2022-11-22 +### New Features +- Support for Nullables in Tuples. [#821](https://github.com/ClickHouse/clickhouse-go/pull/821) [#817](https://github.com/ClickHouse/clickhouse-go/pull/817) +- Use headers for auth and not url if SSL. [#811](https://github.com/ClickHouse/clickhouse-go/pull/811) +- Support additional headers. [#811](https://github.com/ClickHouse/clickhouse-go/pull/811) +- Support int64 for DateTime. [#807](https://github.com/ClickHouse/clickhouse-go/pull/807) +- Support inserting Enums as int8/int16/int. [#802](https://github.com/ClickHouse/clickhouse-go/pull/802) +- Print error if unsupported server. [#792](https://github.com/ClickHouse/clickhouse-go/pull/792) +- Allow block buffer size to tuned for performance - see `BlockBufferSize`. [#776](https://github.com/ClickHouse/clickhouse-go/pull/776) +- Support custom datetime in Scan. [#767](https://github.com/ClickHouse/clickhouse-go/pull/767) +- Support insertion of an orderedmap. [#763](https://github.com/ClickHouse/clickhouse-go/pull/763) + +### Bug Fixes +- Decompress errors over HTTP. [#792](https://github.com/ClickHouse/clickhouse-go/pull/792) +- Use `timezone` vs `timeZone` so we work on older versions. [#781](https://github.com/ClickHouse/clickhouse-go/pull/781) +- Ensure only columns specified in INSERT are required in batch. [#790](https://github.com/ClickHouse/clickhouse-go/pull/790) +- Respect order of columns in insert for batch. [#790](https://github.com/ClickHouse/clickhouse-go/pull/790) +- Handle double pointers for Nullable columns when batch inserting. [#774](https://github.com/ClickHouse/clickhouse-go/pull/774) +- Use nil for `LowCardinality(Nullable(X))`. [#768](https://github.com/ClickHouse/clickhouse-go/pull/768) + +### Breaking Changes +- Align timezone handling with spec. [#776](https://github.com/ClickHouse/clickhouse-go/pull/766), specifically: + - If parsing strings for datetime, datetime64 or dates we assume the locale is Local (i.e. the client) if not specified in the string. + - The server (or column tz) is used for datetime and datetime64 rendering. For date/date32, these have no tz info in the server. For now, they will be rendered as UTC - consistent with the clickhouse-client + - Addresses bind when no location is set diff --git a/vendor/github.com/awnumar/memguard/logo.svg b/vendor/github.com/awnumar/memguard/logo.svg index 03cdc2e5067cb..346bba3affa5a 100644 --- a/vendor/github.com/awnumar/memguard/logo.svg +++ b/vendor/github.com/awnumar/memguard/logo.svg @@ -1,2 +1,2 @@ - \ No newline at end of file diff --git a/vendor/github.com/dimchansky/utfbom/.travis.yml b/vendor/github.com/dimchansky/utfbom/.travis.yml index 77be8b3459c5b..19312ee35fc06 100644 --- a/vendor/github.com/dimchansky/utfbom/.travis.yml +++ b/vendor/github.com/dimchansky/utfbom/.travis.yml @@ -1,29 +1,29 @@ -language: go -sudo: false - -go: - - 1.10.x - - 1.11.x - - 1.12.x - - 1.13.x - - 1.14.x - - 1.15.x - -cache: - directories: - - $HOME/.cache/go-build - - $HOME/gopath/pkg/mod - -env: - global: - - GO111MODULE=on - -before_install: - - go get github.com/mattn/goveralls - - go get golang.org/x/tools/cmd/cover - - go get golang.org/x/tools/cmd/goimports - - go get golang.org/x/lint/golint -script: - - gofiles=$(find ./ -name '*.go') && [ -z "$gofiles" ] || unformatted=$(goimports -l $gofiles) && [ -z "$unformatted" ] || (echo >&2 "Go files must be formatted with gofmt. Following files has problem:\n $unformatted" && false) - - golint ./... # This won't break the build, just show warnings - - $HOME/gopath/bin/goveralls -service=travis-ci +language: go +sudo: false + +go: + - 1.10.x + - 1.11.x + - 1.12.x + - 1.13.x + - 1.14.x + - 1.15.x + +cache: + directories: + - $HOME/.cache/go-build + - $HOME/gopath/pkg/mod + +env: + global: + - GO111MODULE=on + +before_install: + - go get github.com/mattn/goveralls + - go get golang.org/x/tools/cmd/cover + - go get golang.org/x/tools/cmd/goimports + - go get golang.org/x/lint/golint +script: + - gofiles=$(find ./ -name '*.go') && [ -z "$gofiles" ] || unformatted=$(goimports -l $gofiles) && [ -z "$unformatted" ] || (echo >&2 "Go files must be formatted with gofmt. Following files has problem:\n $unformatted" && false) + - golint ./... # This won't break the build, just show warnings + - $HOME/gopath/bin/goveralls -service=travis-ci diff --git a/vendor/github.com/go-logfmt/logfmt/README.md b/vendor/github.com/go-logfmt/logfmt/README.md index 9794502f58be7..71c57944e23f8 100644 --- a/vendor/github.com/go-logfmt/logfmt/README.md +++ b/vendor/github.com/go-logfmt/logfmt/README.md @@ -1,41 +1,41 @@ -# logfmt - -[![Go Reference](https://pkg.go.dev/badge/github.com/go-logfmt/logfmt.svg)](https://pkg.go.dev/github.com/go-logfmt/logfmt) -[![Go Report Card](https://goreportcard.com/badge/go-logfmt/logfmt)](https://goreportcard.com/report/go-logfmt/logfmt) -[![Github Actions](https://github.com/go-logfmt/logfmt/actions/workflows/test.yml/badge.svg)](https://github.com/go-logfmt/logfmt/actions/workflows/test.yml) -[![Coverage Status](https://coveralls.io/repos/github/go-logfmt/logfmt/badge.svg?branch=master)](https://coveralls.io/github/go-logfmt/logfmt?branch=main) - -Package logfmt implements utilities to marshal and unmarshal data in the [logfmt -format][fmt]. It provides an API similar to [encoding/json][json] and -[encoding/xml][xml]. - -[fmt]: https://brandur.org/logfmt -[json]: https://pkg.go.dev/encoding/json -[xml]: https://pkg.go.dev/encoding/xml - -The logfmt format was first documented by Brandur Leach in [this -article][origin]. The format has not been formally standardized. The most -authoritative public specification to date has been the documentation of a Go -Language [package][parser] written by Blake Mizerany and Keith Rarick. - -[origin]: https://brandur.org/logfmt -[parser]: https://pkg.go.dev/github.com/kr/logfmt - -## Goals - -This project attempts to conform as closely as possible to the prior art, while -also removing ambiguity where necessary to provide well behaved encoder and -decoder implementations. - -## Non-goals - -This project does not attempt to formally standardize the logfmt format. In the -event that logfmt is standardized this project would take conforming to the -standard as a goal. - -## Versioning - -This project publishes releases according to the Go language guidelines for -[developing and publishing modules][pub]. - -[pub]: https://go.dev/doc/modules/developing +# logfmt + +[![Go Reference](https://pkg.go.dev/badge/github.com/go-logfmt/logfmt.svg)](https://pkg.go.dev/github.com/go-logfmt/logfmt) +[![Go Report Card](https://goreportcard.com/badge/go-logfmt/logfmt)](https://goreportcard.com/report/go-logfmt/logfmt) +[![Github Actions](https://github.com/go-logfmt/logfmt/actions/workflows/test.yml/badge.svg)](https://github.com/go-logfmt/logfmt/actions/workflows/test.yml) +[![Coverage Status](https://coveralls.io/repos/github/go-logfmt/logfmt/badge.svg?branch=master)](https://coveralls.io/github/go-logfmt/logfmt?branch=main) + +Package logfmt implements utilities to marshal and unmarshal data in the [logfmt +format][fmt]. It provides an API similar to [encoding/json][json] and +[encoding/xml][xml]. + +[fmt]: https://brandur.org/logfmt +[json]: https://pkg.go.dev/encoding/json +[xml]: https://pkg.go.dev/encoding/xml + +The logfmt format was first documented by Brandur Leach in [this +article][origin]. The format has not been formally standardized. The most +authoritative public specification to date has been the documentation of a Go +Language [package][parser] written by Blake Mizerany and Keith Rarick. + +[origin]: https://brandur.org/logfmt +[parser]: https://pkg.go.dev/github.com/kr/logfmt + +## Goals + +This project attempts to conform as closely as possible to the prior art, while +also removing ambiguity where necessary to provide well behaved encoder and +decoder implementations. + +## Non-goals + +This project does not attempt to formally standardize the logfmt format. In the +event that logfmt is standardized this project would take conforming to the +standard as a goal. + +## Versioning + +This project publishes releases according to the Go language guidelines for +[developing and publishing modules][pub]. + +[pub]: https://go.dev/doc/modules/developing diff --git a/vendor/github.com/intel/iaevents/LICENSE b/vendor/github.com/intel/iaevents/LICENSE index 6f756351aae24..462333dfbfbb2 100644 --- a/vendor/github.com/intel/iaevents/LICENSE +++ b/vendor/github.com/intel/iaevents/LICENSE @@ -1,201 +1,201 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "{}" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/vendor/github.com/intel/iaevents/LICENSE_OF_DEPENDENCIES.md b/vendor/github.com/intel/iaevents/LICENSE_OF_DEPENDENCIES.md index 313103b21f80f..5cd8b76b3c2af 100644 --- a/vendor/github.com/intel/iaevents/LICENSE_OF_DEPENDENCIES.md +++ b/vendor/github.com/intel/iaevents/LICENSE_OF_DEPENDENCIES.md @@ -1,11 +1,11 @@ -# Licenses of dependencies - -iaevents may contain portions of the following works: - -- github.com/davecgh/go-spew [ISC License](https://github.com/davecgh/go-spew/blob/master/LICENSE) -- github.com/kr/text [MIT License](https://github.com/kr/text/blob/main/License) -- github.com/niemeyer/pretty [MIT License](https://github.com/niemeyer/pretty/blob/master/License) -- github.com/stretchr/objx [MIT License](https://github.com/stretchr/objx/blob/master/LICENSE) -- github.com/stretchr/testify [MIT License](https://github.com/stretchr/testify/blob/master/LICENSE) -- golang.org/x/sys [BSD-3 License](https://pkg.go.dev/golang.org/x/sys?tab=licenses) -- gopkg.in/check.v1 [Simplified BSD License](https://github.com/go-check/check/blob/v1/LICENSE) +# Licenses of dependencies + +iaevents may contain portions of the following works: + +- github.com/davecgh/go-spew [ISC License](https://github.com/davecgh/go-spew/blob/master/LICENSE) +- github.com/kr/text [MIT License](https://github.com/kr/text/blob/main/License) +- github.com/niemeyer/pretty [MIT License](https://github.com/niemeyer/pretty/blob/master/License) +- github.com/stretchr/objx [MIT License](https://github.com/stretchr/objx/blob/master/LICENSE) +- github.com/stretchr/testify [MIT License](https://github.com/stretchr/testify/blob/master/LICENSE) +- golang.org/x/sys [BSD-3 License](https://pkg.go.dev/golang.org/x/sys?tab=licenses) +- gopkg.in/check.v1 [Simplified BSD License](https://github.com/go-check/check/blob/v1/LICENSE) diff --git a/vendor/github.com/klauspost/cpuid/v2/CONTRIBUTING.txt b/vendor/github.com/klauspost/cpuid/v2/CONTRIBUTING.txt index 452d28eda8eb8..2ef4714f7165b 100644 --- a/vendor/github.com/klauspost/cpuid/v2/CONTRIBUTING.txt +++ b/vendor/github.com/klauspost/cpuid/v2/CONTRIBUTING.txt @@ -1,35 +1,35 @@ -Developer Certificate of Origin -Version 1.1 - -Copyright (C) 2015- Klaus Post & Contributors. -Email: klauspost@gmail.com - -Everyone is permitted to copy and distribute verbatim copies of this -license document, but changing it is not allowed. - - -Developer's Certificate of Origin 1.1 - -By making a contribution to this project, I certify that: - -(a) The contribution was created in whole or in part by me and I - have the right to submit it under the open source license - indicated in the file; or - -(b) The contribution is based upon previous work that, to the best - of my knowledge, is covered under an appropriate open source - license and I have the right under that license to submit that - work with modifications, whether created in whole or in part - by me, under the same open source license (unless I am - permitted to submit under a different license), as indicated - in the file; or - -(c) The contribution was provided directly to me by some other - person who certified (a), (b) or (c) and I have not modified - it. - -(d) I understand and agree that this project and the contribution - are public and that a record of the contribution (including all - personal information I submit with it, including my sign-off) is - maintained indefinitely and may be redistributed consistent with - this project or the open source license(s) involved. +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2015- Klaus Post & Contributors. +Email: klauspost@gmail.com + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/LICENSE b/vendor/github.com/microsoft/ApplicationInsights-Go/LICENSE similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/LICENSE rename to vendor/github.com/microsoft/ApplicationInsights-Go/LICENSE diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/client.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/client.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/client.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/client.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/clock.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/clock.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/clock.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/clock.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/configuration.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/configuration.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/configuration.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/configuration.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/constants.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/constants.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/constants.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/constants.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/availabilitydata.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/availabilitydata.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/availabilitydata.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/availabilitydata.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/base.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/base.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/base.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/base.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/contexttagkeys.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/contexttagkeys.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/contexttagkeys.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/contexttagkeys.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/contexttags.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/contexttags.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/contexttags.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/contexttags.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/data.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/data.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/data.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/data.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/datapoint.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/datapoint.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/datapoint.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/datapoint.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/datapointtype.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/datapointtype.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/datapointtype.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/datapointtype.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/domain.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/domain.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/domain.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/domain.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/envelope.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/envelope.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/envelope.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/envelope.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/eventdata.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/eventdata.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/eventdata.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/eventdata.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/exceptiondata.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/exceptiondata.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/exceptiondata.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/exceptiondata.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/exceptiondetails.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/exceptiondetails.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/exceptiondetails.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/exceptiondetails.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/messagedata.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/messagedata.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/messagedata.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/messagedata.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/metricdata.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/metricdata.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/metricdata.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/metricdata.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/package.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/package.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/package.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/package.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/pageviewdata.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/pageviewdata.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/pageviewdata.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/pageviewdata.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/remotedependencydata.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/remotedependencydata.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/remotedependencydata.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/remotedependencydata.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/requestdata.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/requestdata.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/requestdata.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/requestdata.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/severitylevel.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/severitylevel.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/severitylevel.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/severitylevel.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/stackframe.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/stackframe.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/contracts/stackframe.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/contracts/stackframe.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/diagnostics.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/diagnostics.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/diagnostics.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/diagnostics.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/exception.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/exception.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/exception.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/exception.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/inmemorychannel.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/inmemorychannel.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/inmemorychannel.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/inmemorychannel.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/jsonserializer.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/jsonserializer.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/jsonserializer.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/jsonserializer.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/package.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/package.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/package.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/package.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/telemetry.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/telemetry.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/telemetry.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/telemetry.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/telemetrychannel.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/telemetrychannel.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/telemetrychannel.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/telemetrychannel.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/telemetrycontext.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/telemetrycontext.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/telemetrycontext.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/telemetrycontext.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/throttle.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/throttle.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/throttle.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/throttle.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/transmitter.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/transmitter.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/transmitter.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/transmitter.go diff --git a/vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/uuid.go b/vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/uuid.go similarity index 100% rename from vendor/github.com/Microsoft/ApplicationInsights-Go/appinsights/uuid.go rename to vendor/github.com/microsoft/ApplicationInsights-Go/appinsights/uuid.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/.gitignore b/vendor/github.com/microsoft/go-mssqldb/.gitignore similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/.gitignore rename to vendor/github.com/microsoft/go-mssqldb/.gitignore diff --git a/vendor/github.com/Microsoft/go-mssqldb/.golangci.yml b/vendor/github.com/microsoft/go-mssqldb/.golangci.yml similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/.golangci.yml rename to vendor/github.com/microsoft/go-mssqldb/.golangci.yml diff --git a/vendor/github.com/Microsoft/go-mssqldb/CHANGELOG.md b/vendor/github.com/microsoft/go-mssqldb/CHANGELOG.md similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/CHANGELOG.md rename to vendor/github.com/microsoft/go-mssqldb/CHANGELOG.md diff --git a/vendor/github.com/Microsoft/go-mssqldb/CONTRIBUTING.md b/vendor/github.com/microsoft/go-mssqldb/CONTRIBUTING.md similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/CONTRIBUTING.md rename to vendor/github.com/microsoft/go-mssqldb/CONTRIBUTING.md diff --git a/vendor/github.com/Microsoft/go-mssqldb/LICENSE.txt b/vendor/github.com/microsoft/go-mssqldb/LICENSE.txt similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/LICENSE.txt rename to vendor/github.com/microsoft/go-mssqldb/LICENSE.txt diff --git a/vendor/github.com/Microsoft/go-mssqldb/README.md b/vendor/github.com/microsoft/go-mssqldb/README.md similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/README.md rename to vendor/github.com/microsoft/go-mssqldb/README.md diff --git a/vendor/github.com/Microsoft/go-mssqldb/SECURITY.md b/vendor/github.com/microsoft/go-mssqldb/SECURITY.md similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/SECURITY.md rename to vendor/github.com/microsoft/go-mssqldb/SECURITY.md diff --git a/vendor/github.com/Microsoft/go-mssqldb/accesstokenconnector.go b/vendor/github.com/microsoft/go-mssqldb/accesstokenconnector.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/accesstokenconnector.go rename to vendor/github.com/microsoft/go-mssqldb/accesstokenconnector.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/aecmk/error.go b/vendor/github.com/microsoft/go-mssqldb/aecmk/error.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/aecmk/error.go rename to vendor/github.com/microsoft/go-mssqldb/aecmk/error.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/aecmk/keyprovider.go b/vendor/github.com/microsoft/go-mssqldb/aecmk/keyprovider.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/aecmk/keyprovider.go rename to vendor/github.com/microsoft/go-mssqldb/aecmk/keyprovider.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/appveyor.yml b/vendor/github.com/microsoft/go-mssqldb/appveyor.yml similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/appveyor.yml rename to vendor/github.com/microsoft/go-mssqldb/appveyor.yml diff --git a/vendor/github.com/Microsoft/go-mssqldb/auth_unix.go b/vendor/github.com/microsoft/go-mssqldb/auth_unix.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/auth_unix.go rename to vendor/github.com/microsoft/go-mssqldb/auth_unix.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/auth_windows.go b/vendor/github.com/microsoft/go-mssqldb/auth_windows.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/auth_windows.go rename to vendor/github.com/microsoft/go-mssqldb/auth_windows.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/buf.go b/vendor/github.com/microsoft/go-mssqldb/buf.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/buf.go rename to vendor/github.com/microsoft/go-mssqldb/buf.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/bulkcopy.go b/vendor/github.com/microsoft/go-mssqldb/bulkcopy.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/bulkcopy.go rename to vendor/github.com/microsoft/go-mssqldb/bulkcopy.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/bulkcopy_sql.go b/vendor/github.com/microsoft/go-mssqldb/bulkcopy_sql.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/bulkcopy_sql.go rename to vendor/github.com/microsoft/go-mssqldb/bulkcopy_sql.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/columnencryptionkey.go b/vendor/github.com/microsoft/go-mssqldb/columnencryptionkey.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/columnencryptionkey.go rename to vendor/github.com/microsoft/go-mssqldb/columnencryptionkey.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/convert.go b/vendor/github.com/microsoft/go-mssqldb/convert.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/convert.go rename to vendor/github.com/microsoft/go-mssqldb/convert.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/doc.go b/vendor/github.com/microsoft/go-mssqldb/doc.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/doc.go rename to vendor/github.com/microsoft/go-mssqldb/doc.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/encrypt.go b/vendor/github.com/microsoft/go-mssqldb/encrypt.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/encrypt.go rename to vendor/github.com/microsoft/go-mssqldb/encrypt.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/error.go b/vendor/github.com/microsoft/go-mssqldb/error.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/error.go rename to vendor/github.com/microsoft/go-mssqldb/error.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/fedauth.go b/vendor/github.com/microsoft/go-mssqldb/fedauth.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/fedauth.go rename to vendor/github.com/microsoft/go-mssqldb/fedauth.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/integratedauth/auth.go b/vendor/github.com/microsoft/go-mssqldb/integratedauth/auth.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/integratedauth/auth.go rename to vendor/github.com/microsoft/go-mssqldb/integratedauth/auth.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/integratedauth/integratedauthenticator.go b/vendor/github.com/microsoft/go-mssqldb/integratedauth/integratedauthenticator.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/integratedauth/integratedauthenticator.go rename to vendor/github.com/microsoft/go-mssqldb/integratedauth/integratedauthenticator.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/integratedauth/krb5/krb5.go b/vendor/github.com/microsoft/go-mssqldb/integratedauth/krb5/krb5.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/integratedauth/krb5/krb5.go rename to vendor/github.com/microsoft/go-mssqldb/integratedauth/krb5/krb5.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/integratedauth/ntlm/ntlm.go b/vendor/github.com/microsoft/go-mssqldb/integratedauth/ntlm/ntlm.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/integratedauth/ntlm/ntlm.go rename to vendor/github.com/microsoft/go-mssqldb/integratedauth/ntlm/ntlm.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/integratedauth/ntlm/provider.go b/vendor/github.com/microsoft/go-mssqldb/integratedauth/ntlm/provider.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/integratedauth/ntlm/provider.go rename to vendor/github.com/microsoft/go-mssqldb/integratedauth/ntlm/provider.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/integratedauth/winsspi/provider.go b/vendor/github.com/microsoft/go-mssqldb/integratedauth/winsspi/provider.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/integratedauth/winsspi/provider.go rename to vendor/github.com/microsoft/go-mssqldb/integratedauth/winsspi/provider.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/integratedauth/winsspi/winsspi.go b/vendor/github.com/microsoft/go-mssqldb/integratedauth/winsspi/winsspi.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/integratedauth/winsspi/winsspi.go rename to vendor/github.com/microsoft/go-mssqldb/integratedauth/winsspi/winsspi.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/charset.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/charset.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/charset.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/charset.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/collation.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/collation.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/collation.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/collation.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1250.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1250.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1250.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1250.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1251.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1251.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1251.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1251.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1252.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1252.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1252.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1252.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1253.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1253.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1253.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1253.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1254.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1254.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1254.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1254.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1255.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1255.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1255.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1255.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1256.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1256.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1256.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1256.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1257.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1257.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1257.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1257.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1258.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1258.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp1258.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp1258.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp437.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp437.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp437.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp437.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp850.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp850.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp850.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp850.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp874.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp874.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp874.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp874.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp932.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp932.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp932.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp932.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp936.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp936.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp936.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp936.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp949.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp949.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp949.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp949.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp950.go b/vendor/github.com/microsoft/go-mssqldb/internal/cp/cp950.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/cp/cp950.go rename to vendor/github.com/microsoft/go-mssqldb/internal/cp/cp950.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/decimal/decimal.go b/vendor/github.com/microsoft/go-mssqldb/internal/decimal/decimal.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/decimal/decimal.go rename to vendor/github.com/microsoft/go-mssqldb/internal/decimal/decimal.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/LICENSE.txt b/vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/LICENSE.txt similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/LICENSE.txt rename to vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/LICENSE.txt diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/algorithms/aead_aes_256_cbc_hmac_sha256.go b/vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/algorithms/aead_aes_256_cbc_hmac_sha256.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/algorithms/aead_aes_256_cbc_hmac_sha256.go rename to vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/algorithms/aead_aes_256_cbc_hmac_sha256.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/algorithms/algorithm.go b/vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/algorithms/algorithm.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/algorithms/algorithm.go rename to vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/algorithms/algorithm.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/crypto/aes_cbc_pkcs5.go b/vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/crypto/aes_cbc_pkcs5.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/crypto/aes_cbc_pkcs5.go rename to vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/crypto/aes_cbc_pkcs5.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/crypto/utils.go b/vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/crypto/utils.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/crypto/utils.go rename to vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/crypto/utils.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/encryption/type.go b/vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/encryption/type.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/encryption/type.go rename to vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/encryption/type.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/keys/aead_aes_256_cbc_hmac_256.go b/vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/keys/aead_aes_256_cbc_hmac_256.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/keys/aead_aes_256_cbc_hmac_256.go rename to vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/keys/aead_aes_256_cbc_hmac_256.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/keys/key.go b/vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/keys/key.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/keys/key.go rename to vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/keys/key.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/utils/utf16.go b/vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/utils/utf16.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/utils/utf16.go rename to vendor/github.com/microsoft/go-mssqldb/internal/github.com/swisscom/mssql-always-encrypted/pkg/utils/utf16.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/internal/querytext/parser.go b/vendor/github.com/microsoft/go-mssqldb/internal/querytext/parser.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/internal/querytext/parser.go rename to vendor/github.com/microsoft/go-mssqldb/internal/querytext/parser.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/log.go b/vendor/github.com/microsoft/go-mssqldb/log.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/log.go rename to vendor/github.com/microsoft/go-mssqldb/log.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str.go b/vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str.go rename to vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go112.go b/vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go112.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go112.go rename to vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go112.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go112pre.go b/vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go112pre.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go112pre.go rename to vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go112pre.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go115.go b/vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go115.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go115.go rename to vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go115.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go115pre.go b/vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go115pre.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go115pre.go rename to vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go115pre.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go118.go b/vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go118.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go118.go rename to vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go118.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go118pre.go b/vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go118pre.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/msdsn/conn_str_go118pre.go rename to vendor/github.com/microsoft/go-mssqldb/msdsn/conn_str_go118pre.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/msdsn/extensions.go b/vendor/github.com/microsoft/go-mssqldb/msdsn/extensions.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/msdsn/extensions.go rename to vendor/github.com/microsoft/go-mssqldb/msdsn/extensions.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/mssql.go b/vendor/github.com/microsoft/go-mssqldb/mssql.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/mssql.go rename to vendor/github.com/microsoft/go-mssqldb/mssql.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/mssql_go110.go b/vendor/github.com/microsoft/go-mssqldb/mssql_go110.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/mssql_go110.go rename to vendor/github.com/microsoft/go-mssqldb/mssql_go110.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/mssql_go110pre.go b/vendor/github.com/microsoft/go-mssqldb/mssql_go110pre.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/mssql_go110pre.go rename to vendor/github.com/microsoft/go-mssqldb/mssql_go110pre.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/mssql_go118.go b/vendor/github.com/microsoft/go-mssqldb/mssql_go118.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/mssql_go118.go rename to vendor/github.com/microsoft/go-mssqldb/mssql_go118.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/mssql_go118pre.go b/vendor/github.com/microsoft/go-mssqldb/mssql_go118pre.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/mssql_go118pre.go rename to vendor/github.com/microsoft/go-mssqldb/mssql_go118pre.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/mssql_go19.go b/vendor/github.com/microsoft/go-mssqldb/mssql_go19.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/mssql_go19.go rename to vendor/github.com/microsoft/go-mssqldb/mssql_go19.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/mssql_go19pre.go b/vendor/github.com/microsoft/go-mssqldb/mssql_go19pre.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/mssql_go19pre.go rename to vendor/github.com/microsoft/go-mssqldb/mssql_go19pre.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/net.go b/vendor/github.com/microsoft/go-mssqldb/net.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/net.go rename to vendor/github.com/microsoft/go-mssqldb/net.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/protocol.go b/vendor/github.com/microsoft/go-mssqldb/protocol.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/protocol.go rename to vendor/github.com/microsoft/go-mssqldb/protocol.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/protocol_go113.go b/vendor/github.com/microsoft/go-mssqldb/protocol_go113.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/protocol_go113.go rename to vendor/github.com/microsoft/go-mssqldb/protocol_go113.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/protocol_go113pre.go b/vendor/github.com/microsoft/go-mssqldb/protocol_go113pre.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/protocol_go113pre.go rename to vendor/github.com/microsoft/go-mssqldb/protocol_go113pre.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/quoter.go b/vendor/github.com/microsoft/go-mssqldb/quoter.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/quoter.go rename to vendor/github.com/microsoft/go-mssqldb/quoter.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/rpc.go b/vendor/github.com/microsoft/go-mssqldb/rpc.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/rpc.go rename to vendor/github.com/microsoft/go-mssqldb/rpc.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/session.go b/vendor/github.com/microsoft/go-mssqldb/session.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/session.go rename to vendor/github.com/microsoft/go-mssqldb/session.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/tds.go b/vendor/github.com/microsoft/go-mssqldb/tds.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/tds.go rename to vendor/github.com/microsoft/go-mssqldb/tds.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/timezone.go b/vendor/github.com/microsoft/go-mssqldb/timezone.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/timezone.go rename to vendor/github.com/microsoft/go-mssqldb/timezone.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/token.go b/vendor/github.com/microsoft/go-mssqldb/token.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/token.go rename to vendor/github.com/microsoft/go-mssqldb/token.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/token_string.go b/vendor/github.com/microsoft/go-mssqldb/token_string.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/token_string.go rename to vendor/github.com/microsoft/go-mssqldb/token_string.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/tran.go b/vendor/github.com/microsoft/go-mssqldb/tran.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/tran.go rename to vendor/github.com/microsoft/go-mssqldb/tran.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/tvp_go19.go b/vendor/github.com/microsoft/go-mssqldb/tvp_go19.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/tvp_go19.go rename to vendor/github.com/microsoft/go-mssqldb/tvp_go19.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/types.go b/vendor/github.com/microsoft/go-mssqldb/types.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/types.go rename to vendor/github.com/microsoft/go-mssqldb/types.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/ucs22str.go b/vendor/github.com/microsoft/go-mssqldb/ucs22str.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/ucs22str.go rename to vendor/github.com/microsoft/go-mssqldb/ucs22str.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/ucs22str_32bit.go b/vendor/github.com/microsoft/go-mssqldb/ucs22str_32bit.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/ucs22str_32bit.go rename to vendor/github.com/microsoft/go-mssqldb/ucs22str_32bit.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/uniqueidentifier.go b/vendor/github.com/microsoft/go-mssqldb/uniqueidentifier.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/uniqueidentifier.go rename to vendor/github.com/microsoft/go-mssqldb/uniqueidentifier.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/uniqueidentifier_null.go b/vendor/github.com/microsoft/go-mssqldb/uniqueidentifier_null.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/uniqueidentifier_null.go rename to vendor/github.com/microsoft/go-mssqldb/uniqueidentifier_null.go diff --git a/vendor/github.com/Microsoft/go-mssqldb/version.go b/vendor/github.com/microsoft/go-mssqldb/version.go similarity index 100% rename from vendor/github.com/Microsoft/go-mssqldb/version.go rename to vendor/github.com/microsoft/go-mssqldb/version.go diff --git a/vendor/github.com/testcontainers/testcontainers-go/.golangci.yml b/vendor/github.com/testcontainers/testcontainers-go/.golangci.yml index 8d668831def80..05ecd658ebd48 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/.golangci.yml +++ b/vendor/github.com/testcontainers/testcontainers-go/.golangci.yml @@ -12,10 +12,12 @@ linters: enable: - errorlint - gocritic + - govet - misspell - nakedret - nolintlint - perfsprint + - prealloc - revive - testifylint - thelper @@ -32,6 +34,11 @@ linters: comparison: true errorf: true errorf-multi: true + govet: + disable: + - fieldalignment + - shadow + enable-all: true revive: rules: - name: blank-imports @@ -85,5 +92,6 @@ output: formats: text: path: stdout - path-prefix: . +run: + relative-path-mode: gitroot version: "2" diff --git a/vendor/github.com/testcontainers/testcontainers-go/AI.md b/vendor/github.com/testcontainers/testcontainers-go/AI.md new file mode 100644 index 0000000000000..9d1e91d3213f3 --- /dev/null +++ b/vendor/github.com/testcontainers/testcontainers-go/AI.md @@ -0,0 +1,229 @@ +# AI Coding Agent Guidelines + +This document provides guidelines for AI coding agents working on the Testcontainers for Go repository. + +## Repository Overview + +This is a **Go monorepo** containing: +- **Core library**: Root directory contains the main testcontainers-go library +- **Modules**: `./modules/` directory with 50+ technology-specific modules (postgres, redis, kafka, etc.) +- **Examples**: `./examples/` directory with example implementations +- **Module generator**: `./modulegen/` directory with tools to generate new modules +- **Documentation**: `./docs/` directory with MkDocs-based documentation + +## Environment Setup + +### Go Version +- **Required**: Go 1.24.7 +- **Tool**: Use [gvm](https://github.com/andrewkroh/gvm) for version management +- **CRITICAL**: Always run this before ANY Go command: + ```bash + # For Apple Silicon (M1/M2/M3) + eval "$(gvm 1.24.7 --arch=arm64)" + + # For Intel/AMD (x86_64) + eval "$(gvm 1.24.7 --arch=amd64)" + ``` + +### Project Structure +Each module in `./modules/` is a separate Go module with: +- `go.mod` / `go.sum` - Module dependencies +- `{module}.go` - Main module implementation +- `{module}_test.go` - Unit tests +- `examples_test.go` - Testable examples for documentation +- `Makefile` - Standard targets: `pre-commit`, `test-unit` + +## Development Workflow + +### Before Making Changes +1. **Read existing code** in similar modules for patterns +2. **Check documentation** in `docs/modules/index.md` for best practices +3. **Run tests** to ensure baseline passes + +### Working with Modules +1. **Change to module directory**: `cd modules/{module-name}` +2. **Run pre-commit checks**: `make pre-commit` (linting, formatting, tidy) +3. **Run tests**: `make test-unit` +4. **Both together**: `make pre-commit test-unit` + +### Git Workflow +- **Branch naming**: Use descriptive names like `chore-module-use-run`, `feat-add-xyz`, `fix-module-issue` + - **NEVER** use `main` branch for PRs (they will be auto-closed) +- **Commit format**: Conventional commits (enforced by CI) + ```text + type(scope): description + + Longer explanation if needed. + + 🤖 Generated with [Claude Code](https://claude.com/claude-code) + + Co-Authored-By: Claude + ``` +- **Commit types** (enforced): `security`, `fix`, `feat`, `docs`, `chore`, `deps` +- **Scope rules**: + - Optional (can be omitted for repo-level changes) + - Must be lowercase (uppercase scopes are rejected) + - Examples: `feat(redis)`, `chore(kafka)`, `docs`, `fix(postgres)` +- **Subject rules**: + - Must NOT start with uppercase letter + - ✅ Good: `feat(redis): add support for clustering` + - ❌ Bad: `feat(redis): Add support for clustering` +- **Breaking changes**: Add `!` after type: `feat(redis)!: remove deprecated API` +- **Always include co-author footer** when AI assists with changes + +### Pull Requests +- **Title format**: Same as commit format (validated by CI) + - `type(scope): description` + - Examples: `feat(redis): add clustering support`, `docs: improve module guide`, `chore(kafka): update tests` +- **Title validation** enforced by `.github/workflows/conventions.yml` +- **Labels**: Use appropriate labels (`chore`, `breaking change`, `documentation`, etc.) +- **Body template**: + ```markdown + ## What does this PR do? + + Brief description of changes. + + ## Why is it important? + + Context and rationale. + + ## Related issues + + - Relates to #issue-number + ``` + +## Module Development Best Practices + +**📖 Detailed guide**: See [`docs/modules/index.md`](docs/modules/index.md) for comprehensive module development documentation. + +### Quick Reference + +#### Container Struct +- **Name**: Use `Container`, not module-specific names like `PostgresContainer` +- **Fields**: Use private fields for state management +- **Embedding**: Always embed `testcontainers.Container` + +```go +type Container struct { + testcontainers.Container + dbName string // private + user string // private +} +``` + +#### Run Function Pattern +Five-step implementation: +1. Process custom options (if using intermediate settings) +2. Build `moduleOpts` with defaults +3. Add conditional options based on settings +4. Append user options (allows overrides) +5. Call `testcontainers.Run` and return with proper error wrapping + +```go +func Run(ctx context.Context, img string, opts ...testcontainers.ContainerCustomizer) (*Container, error) { + // See docs/modules/index.md for complete implementation + moduleOpts := []testcontainers.ContainerCustomizer{ + testcontainers.WithExposedPorts("5432/tcp"), + // ... defaults + } + moduleOpts = append(moduleOpts, opts...) + + ctr, err := testcontainers.Run(ctx, img, moduleOpts...) + if err != nil { + return nil, fmt.Errorf("run modulename: %w", err) + } + return &Container{Container: ctr}, nil +} +``` + +#### Container Options +- **Simple config**: Use built-in `testcontainers.With*` options +- **Complex logic**: Use `testcontainers.CustomizeRequestOption` +- **State transfer**: Create custom `Option` type + +**Critical rules:** +- ✅ Return struct types (not interfaces) +- ✅ Call built-in options directly: `testcontainers.WithFiles(f)(req)` +- ❌ Don't use `.Customize()` method +- ❌ Don't pass slices to variadic functions + +#### Common Patterns +- **Env inspection**: Use `strings.CutPrefix` with early exit +- **Variadic args**: Pass directly, not as slices +- **Option order**: defaults → user options → post-processing +- **Error format**: `fmt.Errorf("run modulename: %w", err)` + +**For complete examples and detailed explanations**, see [`docs/modules/index.md`](docs/modules/index.md). + +## Testing Guidelines + +### Running Tests +- **From module directory**: `cd modules/{module} && make test-unit` +- **Pre-commit checks**: `make pre-commit` (run this first to catch lint issues) +- **Full check**: `make pre-commit test-unit` + +### Test Patterns +- Use testable examples in `examples_test.go` +- Follow existing test patterns in similar modules +- Test both success and error cases +- Use `t.Parallel()` when tests are independent + +### When Tests Fail +1. **Read the error message carefully** - it usually tells you exactly what's wrong +2. **Check if it's a lint issue** - run `make pre-commit` first +3. **Verify Go version** - ensure using Go 1.24.7 +4. **Check Docker** - some tests require Docker daemon running + +## Common Pitfalls to Avoid + +### Code Issues +- ❌ Using interface types as return values +- ❌ Forgetting to run `eval "$(gvm 1.24.7 --arch=arm64)"` +- ❌ Not handling errors from built-in options +- ❌ Using module-specific container names (`PostgresContainer`) +- ❌ Calling `.Customize()` method instead of direct function call + +### Git Issues +- ❌ Forgetting co-author footer in commits +- ❌ Not running tests before committing +- ❌ Committing files outside module scope (use `git add modules/{module}/`) +- ❌ Using uppercase in scope: `feat(Redis)` → use `feat(redis)` +- ❌ Starting subject with uppercase: `fix: Add feature` → use `fix: add feature` +- ❌ Using wrong commit type (only: `security`, `fix`, `feat`, `docs`, `chore`, `deps`) +- ❌ Creating PR from `main` branch (will be auto-closed) + +### Testing Issues +- ❌ Running tests without pre-commit checks first +- ❌ Not changing to module directory before running make +- ❌ Forgetting to set Go version before testing + +## Reference Documentation + +For detailed information, see: +- **Module development**: `docs/modules/index.md` - Comprehensive best practices +- **Contributing**: `docs/contributing.md` - General contribution guidelines +- **Modules catalog**: [testcontainers.com/modules](https://testcontainers.com/modules/?language=go) +- **API docs**: [pkg.go.dev/github.com/testcontainers/testcontainers-go](https://pkg.go.dev/github.com/testcontainers/testcontainers-go) + +## Module Generator + +To create a new module: + +```bash +cd modulegen +go run . new module --name mymodule --image "docker.io/myimage:tag" +``` + +This generates: +- Module scaffolding with proper structure +- Documentation template +- Test files with examples +- Makefile with standard targets + +The generator uses templates in `modulegen/_template/` that follow current best practices. + +## Need Help? + +- **Slack**: [testcontainers.slack.com](https://slack.testcontainers.org/) +- **GitHub Discussions**: [github.com/testcontainers/testcontainers-go/discussions](https://github.com/testcontainers/testcontainers-go/discussions) +- **Issues**: Check existing issues or create a new one with detailed context diff --git a/vendor/github.com/testcontainers/testcontainers-go/Pipfile b/vendor/github.com/testcontainers/testcontainers-go/Pipfile index 1360edfe0d338..a19469138983c 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/Pipfile +++ b/vendor/github.com/testcontainers/testcontainers-go/Pipfile @@ -8,7 +8,7 @@ verify_ssl = true [packages] mkdocs = "==1.5.3" mkdocs-codeinclude-plugin = "==0.2.1" -mkdocs-include-markdown-plugin = "==7.1.7" +mkdocs-include-markdown-plugin = "==7.2.0" mkdocs-material = "==9.5.18" mkdocs-markdownextradata-plugin = "==0.2.6" diff --git a/vendor/github.com/testcontainers/testcontainers-go/Pipfile.lock b/vendor/github.com/testcontainers/testcontainers-go/Pipfile.lock index 8c17f7a29e2a9..9c8839c944a74 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/Pipfile.lock +++ b/vendor/github.com/testcontainers/testcontainers-go/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "85cf0b145b1bf3625db055f19d76b73094afa3aa1e7283b348a814c0a294d1ed" + "sha256": "361ac26693514418dce9f92cca60528d549bd0b3f4710374cf77dafd399ae232" }, "pipfile-spec": 6, "requires": { @@ -140,11 +140,11 @@ }, "click": { "hashes": [ - "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202", - "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b" + "sha256:9b9f285302c6e3064f4330c05f05b81945b2a39544279343e6e7c5f27a9baddc", + "sha256:e7b8232224eba16f4ebe410c25ced9f7875cb5f3263ffc93cc3e8da705e229c4" ], "markers": "python_version >= '3.10'", - "version": "==8.2.1" + "version": "==8.3.0" }, "colorama": { "hashes": [ @@ -195,70 +195,98 @@ }, "markupsafe": { "hashes": [ - "sha256:0bff5e0ae4ef2e1ae4fdf2dfd5b76c75e5c2fa4132d05fc1b0dabcd20c7e28c4", - "sha256:0f4ca02bea9a23221c0182836703cbf8930c5e9454bacce27e767509fa286a30", - "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0", - "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", - "sha256:15ab75ef81add55874e7ab7055e9c397312385bd9ced94920f2802310c930396", - "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13", - "sha256:1c99d261bd2d5f6b59325c92c73df481e05e57f19837bdca8413b9eac4bd8028", - "sha256:1e084f686b92e5b83186b07e8a17fc09e38fff551f3602b249881fec658d3eca", - "sha256:2181e67807fc2fa785d0592dc2d6206c019b9502410671cc905d132a92866557", - "sha256:2cb8438c3cbb25e220c2ab33bb226559e7afb3baec11c4f218ffa7308603c832", - "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0", - "sha256:3809ede931876f5b2ec92eef964286840ed3540dadf803dd570c3b7e13141a3b", - "sha256:38a9ef736c01fccdd6600705b09dc574584b89bea478200c5fbf112a6b0d5579", - "sha256:3d79d162e7be8f996986c064d1c7c817f6df3a77fe3d6859f6f9e7be4b8c213a", - "sha256:444dcda765c8a838eaae23112db52f1efaf750daddb2d9ca300bcae1039adc5c", - "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff", - "sha256:4aa4e5faecf353ed117801a068ebab7b7e09ffb6e1d5e412dc852e0da018126c", - "sha256:52305740fe773d09cffb16f8ed0427942901f00adedac82ec8b67752f58a1b22", - "sha256:569511d3b58c8791ab4c2e1285575265991e6d8f8700c7be0e88f86cb0672094", - "sha256:57cb5a3cf367aeb1d316576250f65edec5bb3be939e9247ae594b4bcbc317dfb", - "sha256:5b02fb34468b6aaa40dfc198d813a641e3a63b98c2b05a16b9f80b7ec314185e", - "sha256:6381026f158fdb7c72a168278597a5e3a5222e83ea18f543112b2662a9b699c5", - "sha256:6af100e168aa82a50e186c82875a5893c5597a0c1ccdb0d8b40240b1f28b969a", - "sha256:6c89876f41da747c8d3677a2b540fb32ef5715f97b66eeb0c6b66f5e3ef6f59d", - "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a", - "sha256:70a87b411535ccad5ef2f1df5136506a10775d267e197e4cf531ced10537bd6b", - "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8", - "sha256:846ade7b71e3536c4e56b386c2a47adf5741d2d8b94ec9dc3e92e5e1ee1e2225", - "sha256:88416bd1e65dcea10bc7569faacb2c20ce071dd1f87539ca2ab364bf6231393c", - "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144", - "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f", - "sha256:8e06879fc22a25ca47312fbe7c8264eb0b662f6db27cb2d3bbbc74b1df4b9b87", - "sha256:9025b4018f3a1314059769c7bf15441064b2207cb3f065e6ea1e7359cb46db9d", - "sha256:93335ca3812df2f366e80509ae119189886b0f3c2b81325d39efdb84a1e2ae93", - "sha256:9778bd8ab0a994ebf6f84c2b949e65736d5575320a17ae8984a77fab08db94cf", - "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158", - "sha256:a123e330ef0853c6e822384873bef7507557d8e4a082961e1defa947aa59ba84", - "sha256:a904af0a6162c73e3edcb969eeeb53a63ceeb5d8cf642fade7d39e7963a22ddb", - "sha256:ad10d3ded218f1039f11a75f8091880239651b52e9bb592ca27de44eed242a48", - "sha256:b424c77b206d63d500bcb69fa55ed8d0e6a3774056bdc4839fc9298a7edca171", - "sha256:b5a6b3ada725cea8a5e634536b1b01c30bcdcd7f9c6fff4151548d5bf6b3a36c", - "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", - "sha256:ba9527cdd4c926ed0760bc301f6728ef34d841f405abf9d4f959c478421e4efd", - "sha256:bbcb445fa71794da8f178f0f6d66789a28d7319071af7a496d4d507ed566270d", - "sha256:bcf3e58998965654fdaff38e58584d8937aa3096ab5354d493c77d1fdd66d7a1", - "sha256:c0ef13eaeee5b615fb07c9a7dadb38eac06a0608b41570d8ade51c56539e509d", - "sha256:cabc348d87e913db6ab4aa100f01b08f481097838bdddf7c7a84b7575b7309ca", - "sha256:cdb82a876c47801bb54a690c5ae105a46b392ac6099881cdfb9f6e95e4014c6a", - "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29", - "sha256:d16a81a06776313e817c951135cf7340a3e91e8c1ff2fac444cfd75fffa04afe", - "sha256:d8213e09c917a951de9d09ecee036d5c7d36cb6cb7dbaece4c71a60d79fb9798", - "sha256:e07c3764494e3776c602c1e78e298937c3315ccc9043ead7e685b7f2b8d47b3c", - "sha256:e17c96c14e19278594aa4841ec148115f9c7615a47382ecb6b82bd8fea3ab0c8", - "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", - "sha256:e6a2a455bd412959b57a172ce6328d2dd1f01cb2135efda2e4576e8a23fa3b0f", - "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a", - "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178", - "sha256:ee55d3edf80167e48ea11a923c7386f4669df67d7994554387f84e7d8b0a2bf0", - "sha256:f3818cb119498c0678015754eba762e0d61e5b52d34c8b13d770f0719f7b1d79", - "sha256:f8b3d067f2e40fe93e1ccdd6b2e1d16c43140e76f02fb1319a05cf2b79d99430", - "sha256:fcabf5ff6eea076f859677f5f0b6b5c1a51e70a376b0579e0eadef8db48c6b50" + "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f", + "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", + "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", + "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", + "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", + "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c", + "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", + "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", + "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", + "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", + "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", + "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26", + "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1", + "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", + "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", + "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", + "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695", + "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", + "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", + "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", + "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", + "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa", + "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559", + "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", + "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", + "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758", + "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", + "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8", + "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", + "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", + "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", + "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", + "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", + "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", + "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", + "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", + "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2", + "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", + "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", + "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", + "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", + "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", + "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", + "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", + "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", + "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e", + "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", + "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", + "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", + "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", + "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", + "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", + "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b", + "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", + "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", + "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", + "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d", + "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", + "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", + "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", + "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", + "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", + "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", + "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", + "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c", + "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", + "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8", + "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", + "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6", + "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", + "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", + "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", + "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", + "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7", + "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419", + "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", + "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1", + "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", + "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", + "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42", + "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", + "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", + "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", + "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", + "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", + "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591", + "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc", + "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", + "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50" ], "markers": "python_version >= '3.9'", - "version": "==3.0.2" + "version": "==3.0.3" }, "mergedeep": { "hashes": [ @@ -288,12 +316,12 @@ }, "mkdocs-include-markdown-plugin": { "hashes": [ - "sha256:677637e04c2d3497c50340be522e2a7f614124f592c7982d88b859f88d527a4c", - "sha256:a0c13efe4f6b05a419c022e201055bf43145eed90de65f2353c33fb4005b6aa5" + "sha256:4a67a91ade680dc0e15f608e5b6343bec03372ffa112c40a4254c1bfb10f42f3", + "sha256:d56cdaeb2d113fb66ed0fe4fb7af1da889926b0b9872032be24e19bbb09c9f5b" ], "index": "pypi", "markers": "python_version >= '3.9'", - "version": "==7.1.7" + "version": "==7.2.0" }, "mkdocs-markdownextradata-plugin": { "hashes": [ @@ -345,11 +373,11 @@ }, "platformdirs": { "hashes": [ - "sha256:abd01743f24e5287cd7a5db3752faf1a2d65353f38ec26d98e25a6db65958c85", - "sha256:ca753cf4d81dc309bc67b0ea38fd15dc97bc30ce419a7f58d13eb3bf14c4febf" + "sha256:70ddccdd7c99fc5942e9fc25636a8b34d04c24b335100223152c2803e4063312", + "sha256:e578a81bb873cbb89a41fcc904c7ef523cc18284b7e3b3ccf06aca1403b7ebd3" ], - "markers": "python_version >= '3.9'", - "version": "==4.4.0" + "markers": "python_version >= '3.10'", + "version": "==4.5.0" }, "pygments": { "hashes": [ @@ -385,62 +413,82 @@ }, "pyyaml": { "hashes": [ - "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff", - "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48", - "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086", - "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", - "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133", - "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5", - "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484", - "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee", - "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5", - "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68", - "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a", - "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf", - "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99", - "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", - "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85", - "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", - "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc", - "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a", - "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1", - "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317", - "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c", - "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", - "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", - "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", - "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5", - "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e", - "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b", - "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8", - "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476", - "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706", - "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", - "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237", - "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b", - "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083", - "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180", - "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425", - "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e", - "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", - "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", - "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", - "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab", - "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774", - "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725", - "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e", - "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5", - "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d", - "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", - "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44", - "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed", - "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4", - "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba", - "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", - "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4" + "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", + "sha256:0150219816b6a1fa26fb4699fb7daa9caf09eb1999f3b70fb6e786805e80375a", + "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", + "sha256:02ea2dfa234451bbb8772601d7b8e426c2bfa197136796224e50e35a78777956", + "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", + "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", + "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", + "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", + "sha256:1ebe39cb5fc479422b83de611d14e2c0d3bb2a18bbcb01f229ab3cfbd8fee7a0", + "sha256:214ed4befebe12df36bcc8bc2b64b396ca31be9304b8f59e25c11cf94a4c033b", + "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", + "sha256:22ba7cfcad58ef3ecddc7ed1db3409af68d023b7f940da23c6c2a1890976eda6", + "sha256:27c0abcb4a5dac13684a37f76e701e054692a9b2d3064b70f5e4eb54810553d7", + "sha256:28c8d926f98f432f88adc23edf2e6d4921ac26fb084b028c733d01868d19007e", + "sha256:2e71d11abed7344e42a8849600193d15b6def118602c4c176f748e4583246007", + "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", + "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", + "sha256:3c5677e12444c15717b902a5798264fa7909e41153cdf9ef7ad571b704a63dd9", + "sha256:3ff07ec89bae51176c0549bc4c63aa6202991da2d9a6129d7aef7f1407d3f295", + "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", + "sha256:418cf3f2111bc80e0933b2cd8cd04f286338bb88bdc7bc8e6dd775ebde60b5e0", + "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", + "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", + "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", + "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", + "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", + "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", + "sha256:5cf4e27da7e3fbed4d6c3d8e797387aaad68102272f8f9752883bc32d61cb87b", + "sha256:5e0b74767e5f8c593e8c9b5912019159ed0533c70051e9cce3e8b6aa699fcd69", + "sha256:5ed875a24292240029e4483f9d4a4b8a1ae08843b9c54f43fcc11e404532a8a5", + "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", + "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", + "sha256:6344df0d5755a2c9a276d4473ae6b90647e216ab4757f8426893b5dd2ac3f369", + "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", + "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", + "sha256:66291b10affd76d76f54fad28e22e51719ef9ba22b29e1d7d03d6777a9174198", + "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", + "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", + "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", + "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", + "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", + "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", + "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", + "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", + "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", + "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", + "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", + "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", + "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", + "sha256:9c57bb8c96f6d1808c030b1687b9b5fb476abaa47f0db9c0101f5e9f394e97f4", + "sha256:9c7708761fccb9397fe64bbc0395abcae8c4bf7b0eac081e12b809bf47700d0b", + "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", + "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", + "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", + "sha256:b30236e45cf30d2b8e7b3e85881719e98507abed1011bf463a8fa23e9c3e98a8", + "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", + "sha256:b865addae83924361678b652338317d1bd7e79b1f4596f96b96c77a5a34b34da", + "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", + "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", + "sha256:bdb2c67c6c1390b63c6ff89f210c8fd09d9a1217a465701eac7316313c915e4c", + "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", + "sha256:c2514fceb77bc5e7a2f7adfaa1feb2fb311607c9cb518dbc378688ec73d8292f", + "sha256:c3355370a2c156cffb25e876646f149d5d68f5e0a3ce86a5084dd0b64a994917", + "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", + "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", + "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", + "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", + "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", + "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", + "sha256:efd7b85f94a6f21e4932043973a7ba2613b059c4a000551892ac9f1d11f5baf3", + "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", + "sha256:fa160448684b4e94d80416c0fa4aac48967a969efe22931448d853ada8baf926", + "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0" ], "markers": "python_version >= '3.8'", - "version": "==6.0.2" + "version": "==6.0.3" }, "pyyaml-env-tag": { "hashes": [ diff --git a/vendor/github.com/testcontainers/testcontainers-go/docker.go b/vendor/github.com/testcontainers/testcontainers-go/docker.go index fbb7298f74c16..9a2421485bc68 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/docker.go +++ b/vendor/github.com/testcontainers/testcontainers-go/docker.go @@ -311,6 +311,10 @@ func (c *DockerContainer) Stop(ctx context.Context, timeout *time.Duration) erro // // Default: timeout is 10 seconds. func (c *DockerContainer) Terminate(ctx context.Context, opts ...TerminateOption) error { + if c == nil { + return nil + } + options := NewTerminateOptions(ctx, opts...) err := c.Stop(options.Context(), options.StopTimeout()) if err != nil && !isCleanupSafe(err) { @@ -493,6 +497,7 @@ func (c *DockerContainer) ContainerIP(ctx context.Context) (string, error) { return "", err } + //nolint:staticcheck // SA1019: IPAddress is deprecated, but we need it for compatibility until v29 ip := inspect.NetworkSettings.IPAddress if ip == "" { // use IP from "Networks" if only single network defined @@ -509,14 +514,13 @@ func (c *DockerContainer) ContainerIP(ctx context.Context) (string, error) { // ContainerIPs gets the IP addresses of all the networks within the container. func (c *DockerContainer) ContainerIPs(ctx context.Context) ([]string, error) { - ips := make([]string, 0) - inspect, err := c.Inspect(ctx) if err != nil { return nil, err } networks := inspect.NetworkSettings.Networks + ips := make([]string, 0, len(networks)) for _, nw := range networks { ips = append(ips, nw.IPAddress) } diff --git a/vendor/github.com/testcontainers/testcontainers-go/internal/core/images.go b/vendor/github.com/testcontainers/testcontainers-go/internal/core/images.go index f073a907f283a..e00160262f946 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/internal/core/images.go +++ b/vendor/github.com/testcontainers/testcontainers-go/internal/core/images.go @@ -39,7 +39,6 @@ func ExtractImagesFromDockerfile(dockerfile string, buildArgs map[string]*string // ExtractImagesFromReader extracts images from the Dockerfile sourced from r. func ExtractImagesFromReader(r io.Reader, buildArgs map[string]*string) ([]string, error) { - var images []string var lines []string scanner := bufio.NewScanner(r) for scanner.Scan() { @@ -49,6 +48,8 @@ func ExtractImagesFromReader(r io.Reader, buildArgs map[string]*string) ([]strin return nil, scanner.Err() } + images := make([]string, 0, len(lines)) + // extract images from dockerfile for _, line := range lines { line = strings.TrimSpace(line) diff --git a/vendor/github.com/testcontainers/testcontainers-go/internal/version.go b/vendor/github.com/testcontainers/testcontainers-go/internal/version.go index 5f51f3d0a6781..4251b85b902e2 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/internal/version.go +++ b/vendor/github.com/testcontainers/testcontainers-go/internal/version.go @@ -1,4 +1,4 @@ package internal // Version is the next development version of the application -const Version = "0.39.0" +const Version = "0.40.0" diff --git a/vendor/github.com/testcontainers/testcontainers-go/lifecycle.go b/vendor/github.com/testcontainers/testcontainers-go/lifecycle.go index 7887ebedc4e2d..7aedd54f568fc 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/lifecycle.go +++ b/vendor/github.com/testcontainers/testcontainers-go/lifecycle.go @@ -219,11 +219,16 @@ var defaultReadinessHook = func() ContainerLifecycleHooks { // if a Wait Strategy has been specified, wait before returning if dockerContainer.WaitingFor != nil { + strategy := dockerContainer.WaitingFor + strategyDesc := "unknown strategy" + if s, ok := strategy.(fmt.Stringer); ok { + strategyDesc = s.String() + } dockerContainer.logger.Printf( "⏳ Waiting for container id %s image: %s. Waiting for: %+v", - dockerContainer.ID[:12], dockerContainer.Image, dockerContainer.WaitingFor, + dockerContainer.ID[:12], dockerContainer.Image, strategyDesc, ) - if err := dockerContainer.WaitingFor.WaitUntilReady(ctx, c); err != nil { + if err := strategy.WaitUntilReady(ctx, dockerContainer); err != nil { return fmt.Errorf("wait until ready: %w", err) } } @@ -608,6 +613,18 @@ func mergePortBindings(configPortMap, exposedPortMap nat.PortMap, exposedPorts [ exposedPortMap[k] = v } } + + // Fix: Ensure that ports with empty HostPort get "0" for automatic allocation + // This fixes the UDP port binding issue where ports were getting HostPort:0 instead of being allocated + for k, v := range exposedPortMap { + for i := range v { + if v[i].HostPort == "" { + v[i].HostPort = "0" // Tell Docker to allocate a random port + } + } + exposedPortMap[k] = v + } + return exposedPortMap } diff --git a/vendor/github.com/testcontainers/testcontainers-go/mkdocs.yml b/vendor/github.com/testcontainers/testcontainers-go/mkdocs.yml index 8d6ee9f469a06..ac77b5b3bcf29 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/mkdocs.yml +++ b/vendor/github.com/testcontainers/testcontainers-go/mkdocs.yml @@ -153,4 +153,4 @@ nav: - Getting help: getting_help.md edit_uri: edit/main/docs/ extra: - latest_version: v0.39.0 + latest_version: v0.40.0 diff --git a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/azurite.go b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/azurite.go index e58fb53b728ab..83a45303103f3 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/azurite.go +++ b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/azurite.go @@ -33,98 +33,97 @@ type Container struct { opts options } -// Deprecated: Use [azure.BlobServiceURL], [azure.QueueServiceURL], or [azure.TableServiceURL] methods instead. // ServiceURL returns the URL of the given service func (c *Container) ServiceURL(ctx context.Context, srv Service) (string, error) { - return c.serviceURL(ctx, srv) + port, err := servicePort(srv) + if err != nil { + return "", err + } + + return c.PortEndpoint(ctx, port, "http") } // BlobServiceURL returns the URL of the Blob service func (c *Container) BlobServiceURL(ctx context.Context) (string, error) { - return c.serviceURL(ctx, blobService) + return c.ServiceURL(ctx, BlobService) } // QueueServiceURL returns the URL of the Queue service func (c *Container) QueueServiceURL(ctx context.Context) (string, error) { - return c.serviceURL(ctx, queueService) + return c.ServiceURL(ctx, QueueService) } // TableServiceURL returns the URL of the Table service func (c *Container) TableServiceURL(ctx context.Context) (string, error) { - return c.serviceURL(ctx, tableService) + return c.ServiceURL(ctx, TableService) } -func (c *Container) serviceURL(ctx context.Context, srv service) (string, error) { - var port nat.Port +func servicePort(srv Service) (nat.Port, error) { switch srv { - case blobService: - port = BlobPort - case queueService: - port = QueuePort - case tableService: - port = TablePort + case BlobService: + return BlobPort, nil + case QueueService: + return QueuePort, nil + case TableService: + return TablePort, nil default: return "", fmt.Errorf("unknown service: %s", srv) } - - return c.PortEndpoint(ctx, port, "http") } // Run creates an instance of the Azurite container type func Run(ctx context.Context, img string, opts ...testcontainers.ContainerCustomizer) (*Container, error) { - req := testcontainers.ContainerRequest{ - Image: img, - ExposedPorts: []string{BlobPort, QueuePort, TablePort}, - Env: map[string]string{}, - Entrypoint: []string{"azurite"}, - Cmd: []string{}, - } - - genericContainerReq := testcontainers.GenericContainerRequest{ - ContainerRequest: req, - Started: true, - } - // 1. Gather all config options (defaults and then apply provided options) settings := defaultOptions() for _, opt := range opts { - if err := opt.Customize(&genericContainerReq); err != nil { - return nil, fmt.Errorf("customize: %w", err) + if o, ok := opt.(Option); ok { + if err := o(&settings); err != nil { + return nil, fmt.Errorf("azurite option: %w", err) + } } } + entrypoint := "azurite" + if len(settings.EnabledServices) == 1 && settings.EnabledServices[0] != TableService { + // Use azurite-table in future once it matures. Graceful shutdown is currently very slow. + entrypoint = fmt.Sprintf("%s-%s", entrypoint, settings.EnabledServices[0]) + } + moduleOpts := []testcontainers.ContainerCustomizer{testcontainers.WithEntrypoint(entrypoint)} + // 2. evaluate the enabled services to apply the right wait strategy and Cmd options if len(settings.EnabledServices) > 0 { + cmd := make([]string, 0, len(settings.EnabledServices)) + exposedPorts := make([]string, 0, len(settings.EnabledServices)) waitingFor := make([]wait.Strategy, 0, len(settings.EnabledServices)) + for _, srv := range settings.EnabledServices { - switch srv { - case BlobService: - genericContainerReq.Cmd = append(genericContainerReq.Cmd, "--blobHost", "0.0.0.0") - waitingFor = append(waitingFor, wait.ForListeningPort(BlobPort)) - case QueueService: - genericContainerReq.Cmd = append(genericContainerReq.Cmd, "--queueHost", "0.0.0.0") - waitingFor = append(waitingFor, wait.ForListeningPort(QueuePort)) - case TableService: - genericContainerReq.Cmd = append(genericContainerReq.Cmd, "--tableHost", "0.0.0.0") - waitingFor = append(waitingFor, wait.ForListeningPort(TablePort)) + port, err := servicePort(srv) + if err != nil { + return nil, err } - } - if genericContainerReq.WaitingFor != nil { - genericContainerReq.WaitingFor = wait.ForAll(genericContainerReq.WaitingFor, wait.ForAll(waitingFor...)) - } else { - genericContainerReq.WaitingFor = wait.ForAll(waitingFor...) + cmd = append(cmd, fmt.Sprintf("--%sHost", srv), "0.0.0.0", fmt.Sprintf("--%sPort", srv), port.Port()) + exposedPorts = append(exposedPorts, string(port)) + waitingFor = append(waitingFor, wait.ForListeningPort(port)) } + + moduleOpts = append(moduleOpts, + testcontainers.WithCmd(cmd...), + testcontainers.WithExposedPorts(exposedPorts...), + testcontainers.WithWaitStrategy(waitingFor...), + ) } - container, err := testcontainers.GenericContainer(ctx, genericContainerReq) + moduleOpts = append(moduleOpts, opts...) + + ctr, err := testcontainers.Run(ctx, img, moduleOpts...) var c *Container - if container != nil { - c = &Container{Container: container, opts: settings} + if ctr != nil { + c = &Container{Container: ctr, opts: settings} } if err != nil { - return c, fmt.Errorf("generic container: %w", err) + return c, fmt.Errorf("run azurite: %w", err) } return c, nil diff --git a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/options.go b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/options.go index 70f464fcff0a1..1666894c7cb24 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/options.go +++ b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/options.go @@ -8,27 +8,62 @@ import ( type options struct { // EnabledServices is a list of services that should be enabled - EnabledServices []service + EnabledServices []Service } func defaultOptions() options { return options{ - EnabledServices: []service{blobService, queueService, tableService}, + EnabledServices: []Service{BlobService, QueueService, TableService}, } } -// WithInMemoryPersistence is a custom option to enable in-memory persistence for Azurite. -// This option is only available for Azurite v3.28.0 and later. -func WithInMemoryPersistence(megabytes float64) testcontainers.CustomizeRequestOption { - return func(req *testcontainers.GenericContainerRequest) error { - cmd := []string{"--inMemoryPersistence"} +// Satisfy the testcontainers.ContainerCustomizer interface +var _ testcontainers.ContainerCustomizer = (Option)(nil) - if megabytes > 0 { - cmd = append(cmd, "--extentMemoryLimit", fmt.Sprintf("%f", megabytes)) - } +// Option is an option for the Azurite container. +type Option func(*options) error - req.Cmd = append(req.Cmd, cmd...) +// Customize is a NOOP. It's defined to satisfy the testcontainers.ContainerCustomizer interface. +func (o Option) Customize(*testcontainers.GenericContainerRequest) error { + // NOOP to satisfy interface. + return nil +} + +// WithEnabledServices is a custom option to specify which services should be enabled. +func WithEnabledServices(services ...Service) Option { + return func(o *options) error { + if len(services) == 0 { + services = []Service{BlobService, QueueService, TableService} + } else { + seen := make(map[Service]bool, len(services)) + for _, srv := range services { + if seen[srv] { + return fmt.Errorf("duplicate service: %s", srv) + } + seen[srv] = true + + switch srv { + case BlobService, QueueService, TableService: + // valid service, continue + default: + return fmt.Errorf("unknown service: %s", srv) + } + } + } + o.EnabledServices = services return nil } } + +// WithInMemoryPersistence is a custom option to enable in-memory persistence for Azurite. +// This option is only available for Azurite v3.28.0 and later. +func WithInMemoryPersistence(megabytes float64) testcontainers.CustomizeRequestOption { + cmd := []string{"--inMemoryPersistence"} + + if megabytes > 0 { + cmd = append(cmd, "--extentMemoryLimit", fmt.Sprintf("%f", megabytes)) + } + + return testcontainers.WithCmdArgs(cmd...) +} diff --git a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/services.go b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/services.go index 3b1fb5a23d5ae..69c9ade850a48 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/services.go +++ b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/azurite/services.go @@ -1,31 +1,15 @@ package azurite const ( - // blobService is the service name for the Blob service - blobService Service = "blob" - - // Deprecated: this constant is kept for backward compatibility, but it'll be removed in the next major version. // BlobService is the service name for the Blob service - BlobService Service = blobService - - // queueService is the service name for the Queue service - queueService Service = "queue" + BlobService Service = "blob" - // Deprecated: this constant is kept for backward compatibility, but it'll be removed in the next major version. // QueueService is the service name for the Queue service - QueueService Service = queueService + QueueService Service = "queue" - // tableService is the service name for the Table service - tableService Service = "table" - - // Deprecated: this constant is kept for backward compatibility, but it'll be removed in the next major version. // TableService is the service name for the Table service - TableService Service = tableService + TableService Service = "table" ) -// Deprecated: this type is kept for backward compatibility, but it'll be removed in the next major version. // Service is the type for the services that Azurite can provide -type Service = service - -// service is the type for the services that Azurite can provide -type service string +type Service string diff --git a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/eventhubs/eventhubs.go b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/eventhubs/eventhubs.go index d4b4fd4b201b5..c9118ba1da16c 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/eventhubs/eventhubs.go +++ b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/eventhubs/eventhubs.go @@ -5,7 +5,6 @@ import ( "errors" "fmt" "net/http" - "strings" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/azure/azurite" @@ -69,42 +68,30 @@ func (c *Container) Terminate(ctx context.Context, opts ...testcontainers.Termin // Run creates an instance of the Azure Event Hubs container type func Run(ctx context.Context, img string, opts ...testcontainers.ContainerCustomizer) (*Container, error) { - req := testcontainers.ContainerRequest{ - Image: img, - ExposedPorts: []string{defaultAMPQPort, defaultHTTPPort}, - Env: make(map[string]string), - WaitingFor: wait.ForAll( - wait.ForListeningPort(defaultAMPQPort), - wait.ForListeningPort(defaultHTTPPort), - wait.ForHTTP("/health").WithPort(defaultHTTPPort).WithStatusCodeMatcher(func(status int) bool { - return status == http.StatusOK - }), - ), - } - - genericContainerReq := testcontainers.GenericContainerRequest{ - ContainerRequest: req, - Started: true, - } - + // Process custom options first to extract settings defaultOptions := defaultOptions() for _, opt := range opts { - if err := opt.Customize(&genericContainerReq); err != nil { - return nil, fmt.Errorf("customize: %w", err) - } if o, ok := opt.(Option); ok { if err := o(&defaultOptions); err != nil { - return nil, fmt.Errorf("eventhubsoption: %w", err) + return nil, fmt.Errorf("eventhubs option: %w", err) } } } - if strings.ToUpper(genericContainerReq.Env["ACCEPT_EULA"]) != "Y" { - return nil, errors.New("EULA not accepted. Please use the WithAcceptEULA option to accept the EULA") - } - c := &Container{azuriteOptions: &defaultOptions} + // Build moduleOpts with defaults + moduleOpts := []testcontainers.ContainerCustomizer{ + testcontainers.WithExposedPorts(defaultAMPQPort, defaultHTTPPort), + testcontainers.WithWaitStrategy( + wait.ForListeningPort(defaultAMPQPort), + wait.ForListeningPort(defaultHTTPPort), + wait.ForHTTP("/health").WithPort(defaultHTTPPort).WithStatusCodeMatcher(func(status int) bool { + return status == http.StatusOK + }), + ), + } + if defaultOptions.azuriteContainer == nil { azuriteNetwork, err := network.New(ctx) if err != nil { @@ -124,20 +111,24 @@ func Run(ctx context.Context, img string, opts ...testcontainers.ContainerCustom } defaultOptions.azuriteContainer = azuriteContainer - genericContainerReq.Env["BLOB_SERVER"] = aliasAzurite - genericContainerReq.Env["METADATA_SERVER"] = aliasAzurite + moduleOpts = append(moduleOpts, testcontainers.WithEnv(map[string]string{ + "BLOB_SERVER": aliasAzurite, + "METADATA_SERVER": aliasAzurite, + })) // apply the network to the eventhubs container - err = network.WithNetwork([]string{aliasEventhubs}, azuriteNetwork)(&genericContainerReq) - if err != nil { - return c, fmt.Errorf("with network: %w", err) - } + moduleOpts = append(moduleOpts, network.WithNetwork([]string{aliasEventhubs}, azuriteNetwork)) } + moduleOpts = append(moduleOpts, opts...) + + // validate the EULA after all the options are applied + moduleOpts = append(moduleOpts, validateEula()) + var err error - c.Container, err = testcontainers.GenericContainer(ctx, genericContainerReq) + c.Container, err = testcontainers.Run(ctx, img, moduleOpts...) if err != nil { - return c, fmt.Errorf("generic container: %w", err) + return c, fmt.Errorf("run eventhubs: %w", err) } return c, nil diff --git a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/eventhubs/options.go b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/eventhubs/options.go index f439d3df2dfb8..e749996b6d423 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/modules/azure/eventhubs/options.go +++ b/vendor/github.com/testcontainers/testcontainers-go/modules/azure/eventhubs/options.go @@ -1,7 +1,9 @@ package eventhubs import ( + "errors" "io" + "strings" "github.com/testcontainers/testcontainers-go" "github.com/testcontainers/testcontainers-go/modules/azure/azurite" @@ -21,10 +23,10 @@ func defaultOptions() options { } } -// Satisfy the testcontainers.CustomizeRequestOption interface +// Satisfy the testcontainers.ContainerCustomizer interface var _ testcontainers.ContainerCustomizer = (Option)(nil) -// Option is an option for the Redpanda container. +// Option is an option for the EventHubs container. type Option func(*options) error // Customize is a NOOP. It's defined to satisfy the testcontainers.ContainerCustomizer interface. @@ -45,11 +47,9 @@ func WithAzurite(img string, opts ...testcontainers.ContainerCustomizer) Option // WithAcceptEULA sets the ACCEPT_EULA environment variable to "Y" for the eventhubs container. func WithAcceptEULA() testcontainers.CustomizeRequestOption { - return func(req *testcontainers.GenericContainerRequest) error { - req.Env["ACCEPT_EULA"] = "Y" - - return nil - } + return testcontainers.WithEnv(map[string]string{ + "ACCEPT_EULA": "Y", + }) } // WithConfig sets the eventhubs config file for the eventhubs container, @@ -66,3 +66,14 @@ func WithConfig(r io.Reader) testcontainers.CustomizeRequestOption { return nil } } + +// validateEula validates that the EULA is accepted for the eventhubs container. +func validateEula() testcontainers.CustomizeRequestOption { + return func(req *testcontainers.GenericContainerRequest) error { + if strings.ToUpper(req.Env["ACCEPT_EULA"]) != "Y" { + return errors.New("EULA not accepted. Please use the WithAcceptEULA option to accept the EULA") + } + + return nil + } +} diff --git a/vendor/github.com/testcontainers/testcontainers-go/options.go b/vendor/github.com/testcontainers/testcontainers-go/options.go index a930c54104dc3..007eaa774e86a 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/options.go +++ b/vendor/github.com/testcontainers/testcontainers-go/options.go @@ -5,7 +5,7 @@ import ( "errors" "fmt" "maps" - "net/url" + "path" "time" "dario.cat/mergo" @@ -196,12 +196,7 @@ func (c CustomHubSubstitutor) Substitute(image string) (string, error) { } } - result, err := url.JoinPath(c.hub, image) - if err != nil { - return "", err - } - - return result, nil + return path.Join(c.hub, image), nil } // prependHubRegistry represents a way to prepend a custom Hub registry to the image name, @@ -244,12 +239,7 @@ func (p prependHubRegistry) Substitute(image string) (string, error) { } } - result, err := url.JoinPath(p.prefix, image) - if err != nil { - return "", err - } - - return result, nil + return path.Join(p.prefix, image), nil } // WithImageSubstitutors sets the image substitutors for a container diff --git a/vendor/github.com/testcontainers/testcontainers-go/port_forwarding.go b/vendor/github.com/testcontainers/testcontainers-go/port_forwarding.go index 107bd42d1b968..9d4ec10f9a6bb 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/port_forwarding.go +++ b/vendor/github.com/testcontainers/testcontainers-go/port_forwarding.go @@ -108,6 +108,7 @@ func exposeHostPorts(ctx context.Context, req *ContainerRequest, ports ...int) ( } // TODO: remove once we have docker context support via #2810 + //nolint:staticcheck // SA1019: IPAddress is deprecated, but we need it for compatibility until v29 sshdIP := inspect.NetworkSettings.IPAddress if sshdIP == "" { single := len(inspect.NetworkSettings.Networks) == 1 @@ -176,30 +177,22 @@ func exposeHostPorts(ctx context.Context, req *ContainerRequest, ports ...int) ( // newSshdContainer creates a new SSHD container with the provided options. func newSshdContainer(ctx context.Context, opts ...ContainerCustomizer) (*sshdContainer, error) { - req := GenericContainerRequest{ - ContainerRequest: ContainerRequest{ - Image: sshdImage, - ExposedPorts: []string{sshPort}, - Env: map[string]string{"PASSWORD": sshPassword}, - WaitingFor: wait.ForListeningPort(sshPort), - }, - Started: true, + moduleOpts := []ContainerCustomizer{ + WithExposedPorts(sshPort), + WithEnv(map[string]string{"PASSWORD": sshPassword}), + WithWaitStrategy(wait.ForListeningPort(sshPort)), } - for _, opt := range opts { - if err := opt.Customize(&req); err != nil { - return nil, err - } - } + moduleOpts = append(moduleOpts, opts...) - c, err := GenericContainer(ctx, req) + c, err := Run(ctx, sshdImage, moduleOpts...) var sshd *sshdContainer if c != nil { sshd = &sshdContainer{Container: c} } if err != nil { - return sshd, fmt.Errorf("generic container: %w", err) + return sshd, fmt.Errorf("run sshd container: %w", err) } if err = sshd.clientConfig(ctx); err != nil { diff --git a/vendor/github.com/testcontainers/testcontainers-go/requirements.txt b/vendor/github.com/testcontainers/testcontainers-go/requirements.txt index 19aa2e5b73490..861bf7492c839 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/requirements.txt +++ b/vendor/github.com/testcontainers/testcontainers-go/requirements.txt @@ -1,5 +1,5 @@ mkdocs==1.5.3 mkdocs-codeinclude-plugin==0.2.1 -mkdocs-include-markdown-plugin==7.1.6 +mkdocs-include-markdown-plugin==7.2.0 mkdocs-material==9.5.18 mkdocs-markdownextradata-plugin==0.2.6 diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/all.go b/vendor/github.com/testcontainers/testcontainers-go/wait/all.go index 9bf4cbe8b28c1..e65033073f530 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/all.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/all.go @@ -3,7 +3,9 @@ package wait import ( "context" "errors" + "fmt" "reflect" + "strings" "time" ) @@ -51,6 +53,29 @@ func (ms *MultiStrategy) Timeout() *time.Duration { return ms.timeout } +// String returns a human-readable description of the wait strategy. +func (ms *MultiStrategy) String() string { + if len(ms.Strategies) == 0 { + return "all of: (none)" + } + + var strategies []string + for _, strategy := range ms.Strategies { + if strategy == nil || reflect.ValueOf(strategy).IsNil() { + continue + } + if s, ok := strategy.(fmt.Stringer); ok { + strategies = append(strategies, s.String()) + } else { + strategies = append(strategies, fmt.Sprintf("%T", strategy)) + } + } + + // Always include "all of:" prefix to make it clear this is a MultiStrategy + // even when there's only one strategy after filtering out nils + return "all of: [" + strings.Join(strategies, ", ") + "]" +} + func (ms *MultiStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) error { var cancel context.CancelFunc if ms.deadline != nil { diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/exec.go b/vendor/github.com/testcontainers/testcontainers-go/wait/exec.go index 72987c31a426f..5338eb8a7d8dd 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/exec.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/exec.go @@ -2,6 +2,7 @@ package wait import ( "context" + "fmt" "io" "time" @@ -76,6 +77,22 @@ func (ws *ExecStrategy) Timeout() *time.Duration { return ws.timeout } +// String returns a human-readable description of the wait strategy. +func (ws *ExecStrategy) String() string { + if len(ws.cmd) == 0 { + return "exec command" + } + // Only show the command name and argument count to avoid exposing sensitive data + argCount := len(ws.cmd) - 1 + if argCount == 0 { + return fmt.Sprintf("exec command %q", ws.cmd[0]) + } + if argCount == 1 { + return fmt.Sprintf("exec command %q with 1 argument", ws.cmd[0]) + } + return fmt.Sprintf("exec command %q with %d arguments", ws.cmd[0], argCount) +} + func (ws *ExecStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) error { timeout := defaultStartupTimeout() if ws.timeout != nil { diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/exit.go b/vendor/github.com/testcontainers/testcontainers-go/wait/exit.go index 670c8e2ce1ca2..6daf4c3fafa06 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/exit.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/exit.go @@ -59,6 +59,11 @@ func (ws *ExitStrategy) Timeout() *time.Duration { return ws.timeout } +// String returns a human-readable description of the wait strategy. +func (ws *ExitStrategy) String() string { + return "container to exit" +} + // WaitUntilReady implements Strategy.WaitUntilReady func (ws *ExitStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) error { if ws.timeout != nil { diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/file.go b/vendor/github.com/testcontainers/testcontainers-go/wait/file.go index 4f6d38c7c126d..5926b66a95703 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/file.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/file.go @@ -61,6 +61,14 @@ func (ws *FileStrategy) Timeout() *time.Duration { return ws.timeout } +// String returns a human-readable description of the wait strategy. +func (ws *FileStrategy) String() string { + if ws.matcher != nil { + return fmt.Sprintf("file %q to exist and match condition", ws.file) + } + return fmt.Sprintf("file %q to exist", ws.file) +} + // WaitUntilReady waits until the file exists in the container and copies it to the target. func (ws *FileStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) error { timeout := defaultStartupTimeout() diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/health.go b/vendor/github.com/testcontainers/testcontainers-go/wait/health.go index 06a9ad1e48286..c2a273830ca45 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/health.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/health.go @@ -60,6 +60,11 @@ func (ws *HealthStrategy) Timeout() *time.Duration { return ws.timeout } +// String returns a human-readable description of the wait strategy. +func (ws *HealthStrategy) String() string { + return "container to become healthy" +} + // WaitUntilReady implements Strategy.WaitUntilReady func (ws *HealthStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) error { timeout := defaultStartupTimeout() diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/host_port.go b/vendor/github.com/testcontainers/testcontainers-go/wait/host_port.go index 8d97ccbb17b2e..706e348967d3e 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/host_port.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/host_port.go @@ -114,6 +114,28 @@ func (hp *HostPortStrategy) Timeout() *time.Duration { return hp.timeout } +// String returns a human-readable description of the wait strategy. +func (hp *HostPortStrategy) String() string { + port := "first exposed port" + if hp.Port != "" { + port = fmt.Sprintf("port %s", hp.Port) + } + + var checks string + switch { + case hp.skipInternalCheck && hp.skipExternalCheck: + checks = " to be mapped" + case hp.skipInternalCheck: + checks = " to be accessible externally" + case hp.skipExternalCheck: + checks = " to be listening internally" + default: + checks = " to be listening" + } + + return fmt.Sprintf("%s%s", port, checks) +} + // detectInternalPort returns the lowest internal port that is currently bound. // If no internal port is found, it returns the zero nat.Port value which // can be checked against an empty string. diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/http.go b/vendor/github.com/testcontainers/testcontainers-go/wait/http.go index 32dc8778b7292..81f4c34bbee9c 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/http.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/http.go @@ -154,6 +154,21 @@ func (ws *HTTPStrategy) Timeout() *time.Duration { return ws.timeout } +// String returns a human-readable description of the wait strategy. +func (ws *HTTPStrategy) String() string { + proto := "HTTP" + if ws.UseTLS { + proto = "HTTPS" + } + + port := "default" + if ws.Port != "" { + port = ws.Port.Port() + } + + return fmt.Sprintf("%s %s request on port %s path %q", proto, ws.Method, port, ws.Path) +} + // WaitUntilReady implements Strategy.WaitUntilReady func (ws *HTTPStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) error { timeout := defaultStartupTimeout() diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/log.go b/vendor/github.com/testcontainers/testcontainers-go/wait/log.go index 41c96e3eb9adf..11113dc92c81c 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/log.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/log.go @@ -123,6 +123,21 @@ func (ws *LogStrategy) Timeout() *time.Duration { return ws.timeout } +// String returns a human-readable description of the wait strategy. +func (ws *LogStrategy) String() string { + logType := "log message" + if ws.IsRegexp { + logType = "log pattern" + } + + occurrence := "" + if ws.Occurrence > 1 { + occurrence = fmt.Sprintf(" (occurrence: %d)", ws.Occurrence) + } + + return fmt.Sprintf("%s %q%s", logType, ws.Log, occurrence) +} + // WaitUntilReady implements Strategy.WaitUntilReady func (ws *LogStrategy) WaitUntilReady(ctx context.Context, target StrategyTarget) error { timeout := defaultStartupTimeout() diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/nop.go b/vendor/github.com/testcontainers/testcontainers-go/wait/nop.go index c47d83d18b0ea..633a97cc5ea39 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/nop.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/nop.go @@ -33,6 +33,11 @@ func (ws *NopStrategy) Timeout() *time.Duration { return ws.timeout } +// String returns a human-readable description of the wait strategy. +func (ws *NopStrategy) String() string { + return "custom wait condition" +} + func (ws *NopStrategy) WithStartupTimeout(timeout time.Duration) *NopStrategy { ws.timeout = &timeout return ws diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/sql.go b/vendor/github.com/testcontainers/testcontainers-go/wait/sql.go index 1d09edafe9903..c9a9dbad3a9ff 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/sql.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/sql.go @@ -61,6 +61,21 @@ func (w *waitForSQL) Timeout() *time.Duration { return w.timeout } +// String returns a human-readable description of the wait strategy. +func (w *waitForSQL) String() string { + port := "default" + if w.Port != "" { + port = w.Port.Port() + } + + query := "" + if w.query != defaultForSQLQuery { + query = fmt.Sprintf(" with query %q", w.query) + } + + return fmt.Sprintf("SQL database on port %s using driver %q%s", port, w.Driver, query) +} + // WaitUntilReady repeatedly tries to run "SELECT 1" or user defined query on the given port using sql and driver. // // If it doesn't succeed until the timeout value which defaults to 60 seconds, it will return an error. diff --git a/vendor/github.com/testcontainers/testcontainers-go/wait/tls.go b/vendor/github.com/testcontainers/testcontainers-go/wait/tls.go index ab904b271e579..617f559400a59 100644 --- a/vendor/github.com/testcontainers/testcontainers-go/wait/tls.go +++ b/vendor/github.com/testcontainers/testcontainers-go/wait/tls.go @@ -6,6 +6,7 @@ import ( "crypto/x509" "fmt" "io" + "strings" "time" ) @@ -99,6 +100,25 @@ func (ws *TLSStrategy) TLSConfig() *tls.Config { return ws.tlsConfig } +// String returns a human-readable description of the wait strategy. +func (ws *TLSStrategy) String() string { + var parts []string + + if len(ws.rootFiles) > 0 { + parts = append(parts, fmt.Sprintf("root CAs %v", ws.rootFiles)) + } + + if ws.certFiles != nil { + parts = append(parts, fmt.Sprintf("cert %q and key %q", ws.certFiles.certPEMFile, ws.certFiles.keyPEMFile)) + } + + if len(parts) == 0 { + return "TLS certificates" + } + + return strings.Join(parts, " and ") +} + // WaitUntilReady implements the [Strategy] interface. // It waits for the CA, client cert and key files to be available in the container and // uses them to setup the TLS config. diff --git a/vendor/modules.txt b/vendor/modules.txt index 2d04db6b1d159..4462fc27970ed 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -2457,7 +2457,7 @@ github.com/tdrn-org/go-tr064/services/tr64desc/wancommonifconfig github.com/tdrn-org/go-tr064/services/tr64desc/wandslifconfig github.com/tdrn-org/go-tr064/services/tr64desc/wanpppconn github.com/tdrn-org/go-tr064/services/tr64desc/wlanconfig -# github.com/testcontainers/testcontainers-go v0.39.0 +# github.com/testcontainers/testcontainers-go v0.40.0 ## explicit; go 1.24.0 github.com/testcontainers/testcontainers-go github.com/testcontainers/testcontainers-go/exec @@ -2468,7 +2468,7 @@ github.com/testcontainers/testcontainers-go/internal/core/network github.com/testcontainers/testcontainers-go/log github.com/testcontainers/testcontainers-go/network github.com/testcontainers/testcontainers-go/wait -# github.com/testcontainers/testcontainers-go/modules/azure v0.39.0 +# github.com/testcontainers/testcontainers-go/modules/azure v0.40.0 ## explicit; go 1.24.0 github.com/testcontainers/testcontainers-go/modules/azure/azurite github.com/testcontainers/testcontainers-go/modules/azure/eventhubs