Releases: cloudevents/sdk-go
First major release!
This SDK is still considered work in progress, but we are going to push for more compatibility for integrators.
Changes this release:
- The
panic
calls for the builder methods on cloudevents.Event have been removed and replaced with error collecting and reporting after event.Validate() is called. The errors list is exported if you need to edit it directly (for a mix of builder methods and direct setting to fix issues)
With v1.0.0:
The API that exists under pkg/cloudevents
will follow
semver rules. This applies to the root ./alias.go
file as well.
Even though pkg/cloudevents
is v1.0.0, there could still be minor bugs and
performance issues. We will continue to track and fix these issues as they come
up. Please file a pull request or issue if you experience problems.
The API that exists under pkg/bindings
is a new API that
will become SDK v2.x, and will replace pkg/cloudevents
. This area is still
under heavy development and will not be following the same semver rules as
pkg/cloudevents
. If a release is required to ship changes to pkg/bindings
, a
bug fix release will be issued (x.y.z+1).
We will target ~2 months of development to release v2 of this SDK with an end
date of March 27, 2020. You can read more about the plan for SDK v2 in the
SDK v2 planning doc.
HTTP Binary and PubSub speed improvements.
In this release we are giving two big changes:
- HTTP Binary to Binary speed/memory improvements.
- PubSub Receiver Improvements.
Huge thanks to Francesco (@slinkydeveloper) for the work on Binary to Binary memory improvements. See #270 (with graphs)!
Minor BugFix for HTTP convert
The HTTP transport had a typo with the wrong version set for v1, it was v03. This has been fixed.
Minor BugFix for intro of CloudEvents v1.0
- Make attribute name comparisons case-insensitive everywhere.
- Do string conversions in attribute Get/Set
package test: - Fix deadlock in test.SendRecieve if Send() returns error.
- Adding benchmark test.
v0.10.0 - Adding support for CloudEvents v1.0
Changes to support 1.0
- Added new types,
types.URI
andtypes.URIRef
- Lots of work into converting extensions in and out of canonical string forms.
- Deprecated DataContentEncoding, replaced with json property called data_base64.
This is accessed by setting a[]byte
as data and using structured encoding. - All currently supported Transports (soon to be called Bindings) support 1.0.
Bug Fixes:
- HTTP codec creation race condition has been fixed.
- Time is parsed only in the type converters now.
- Content-Type was assumed to always be Application/json. The sdk no longer
defaults. If you find issues, try setting the DataContentType toapplication/json
DataContentType
now supportstext/plain
.- Converter functions are now allowed to return
nil, nil
to mean nop/skip this
payload, which results in a 204 status code for HTTP.
Prep for SDKv2:
- AMQP binding has been rewritten in the internal details.
- New packages now exist,
pkg/binding
andpkg/bindings
exist as an attempt
to rewrite the SDK to be a bit more event-like, the plan is to standardize
some of the API and create Bindings (renamed from Transport) without assumed
responses. We will have two kinds of Bindings, unidirectional, and
bidirectional. More details to come as work continues.
Release 0.9.2, follow-up to 0.9.1 to fix a NPE.
A Null Pointer Exception was found and fixed for the 0.9 release in decoding timestamps.
This patch release fixes this issue.
Release v0.9.1 - Follow-up for fixing Pub/Sub transport.
Fix to double quote issue.
Fix to Pub/Sub transport blocking until the parent context ends to return child errors.
Release 0.9.0 - Context from Responses in HTTP, start of a new transport impl.
API BREAKING CHANGE: Send not returns back an extra context object to allow you to grab the http response code of a Send
. This is used in downstream projects to log the response code of a Send
call. It can be safely ignored.
Starting this release we will begin shipping a pivot to how the transports work, focusing on the eventing aspects and less around the client aspects of the lib. This work can be found in pkg/transports
. The original implementation continues to exist in pkg/cloudevents
. The plan is to migrate to a new transport impl now there have been a lot of lessons.
Release v0.8.0, PubSub Support, HTTP Improvements, and more!!
This release includes the following:
- PubSub has been added as a POC.
- Improvements to AMQP.
- cloudevents.Event now supports json marshaling and unmarshaling.
- Improvements to port handling for HTTP.
- Added a conversion function for second chance message conversion on error.
- Context based encoding overrides now supported in HTTP.
Release 0.7.0 - Adding AMQP; Fix Extensions.
Release 0.7.0 adds the following:
- Compliance with the CloudEvents spec for extensions in versions 0.2 and 0.3-wip.
- Adds AMQP 1.0 transport.
- Adds HTTP Middleware option.
- Fixes a zero-length body bug in HTTP transport.