The production code behavior hasn't changed here, but Assert.Equal used to pass when presented with an empty string and an empty byte array.
Signed-off-by: Jon Skeet <jonskeet@google.com>
Many of these are just build/test/packaging, but customer-relevant dependency updates are:
- AMQPNetLite and AMQPNetLite.Serialization: 2.4.2 => 2.4.11
- System.Text.Encodings.Web: 6.0.0 => 8.0.0 (only used in netstandard2.0 and netstandard2.1 targets)
- Apache.Avro: 1.11.1 => 1.11.3
- Newtonsoft.Json: 13.0.2 => 13.0.3
- Google.Protobuf: 3.22.0 => 3.27.3
- Confluent.Kafka: 1.6.3 => 1.9.3 (see #297 for consideration of a bump to 2.x)
Signed-off-by: Jon Skeet <jonskeet@google.com>
This more fine-grained way of referring to the versions will allow us to still only change Directory.Build.props just before a release, but have separate major versions flow from that.
Signed-off-by: Jon Skeet <jonskeet@google.com>
This just refers to the CNCF code of conduct instead of containing
the details directly, so that we don't need to change anything if
the CNCF document changes.
Signed-off-by: Jon Skeet <jonskeet@google.com>
This commit *just* adds .NET 8 to the target framework list, in all packages. The code will not build at this point, due to nullability checking. That will be fixed in a later commit, but separating the two makes it easier to review.
Later we may well decided to *build* a .NET 8 target, but not pack it - unless we see concrete benefits from doing so over letting .NET 8 use the existing netstandard2.1 target.
Signed-off-by: Jon Skeet <jonskeet@google.com>
This commit:
- Adds a global.json file to declare the required SDK version
- Updates CI to install both .NET 6 and .NET 8
- Updates the test projects to test with both .NET 6 and .NET 8
Signed-off-by: Jon Skeet <jonskeet@google.com>
(It can be hard to get these to show up without opening the code
file itself. I've opened all files within VS, so we *should* be
"clean" now.)
Signed-off-by: Jon Skeet <jonskeet@google.com>
These changes were generated automatically by running "Analyze and Code Cleanup".
Showing a diff ignoring whitespace shows the removal of the UTF-8 BOM from three files, but that's all.
Signed-off-by: Jon Skeet <jonskeet@google.com>
(This will be applied in subsequent commits.)
One potentially-controversial aspect of this editorconfig is the use of a space after casting. The code is currently very inconsistent, but has a space after the cast more often than not (the diff is smaller with it set to true than false)... it's also consistent with the style I personally use in multiple other repositories. While I'm the main contributor, it probably makes sense to stick to that.
Signed-off-by: Jon Skeet <jonskeet@google.com>
These use the test files from
https://github.com/cloudevents/conformance/tree/format-tests/format,
which is included via a submodule called conformance.
The XML tests are not included in this commit, as the C# XML formatter
has not been reviewed yet.
Signed-off-by: Jon Skeet <jonskeet@google.com>
Changes since 2.5.1:
- Dependencies: system-level dependencies updated
- The NuGet package now uses PackageLicenseExpression (but still
includes the licence file as well).
Fixes ([#252](https://github.com/cloudevents/sdk-csharp/issues/252)).
- Regenerated protobuf schema using the original filename of
cloudevents.proto instead of ProtoSchema.proto. An additional
ProtoSchemaReflection class has been added purely for compatibility.
Fixes ([#256](https://github.com/cloudevents/sdk-csharp/issues/256)).
Signed-off-by: Jon Skeet <jonskeet@google.com>
For some reason we were renaming cloudevents.proto as ProtoSchema.proto, which breaks compatibility with anyone using the original file.
Renaming the reflection class is a breaking change, so I've added an obsolete compatibility class to keep compatibility.
Also updated to Google.Protobuf 3.22.0 (of the general protobuf 22.0 release; protobuf versioning is complex).
Fixes#256
Signed-off-by: Jon Skeet <jonskeet@google.com>
Note that the license file is still embedded in the package (at the root) to conform with the requirement that it's delivered with the software.
Fixes#252
Signed-off-by: Jon Skeet <jonskeet@google.com>
Changes since 2.5.0:
- Dependencies: update dependencies in CloudNative.CloudEvents.Avro
- Add explicit dependency on Newtonsoft.Json 13.0.1 to avoid
transitive dependency on a version containing vulnerabilities
- Update Apache.Avro to 1.11.1
No APIs have changed. This is a patch release as the dependency
changes are very minor (but necessary to avoid vulnerabilities).
Signed-off-by: Jon Skeet <jonskeet@google.com>
- Updated to Apache.Avro 1.11.1 on general principle
- Added explicit dependency on Newtonsoft.Json 13.0.1 to avoid
taking a transitive dependency on a vulnerable version
Addresses short-term concerns of #245.
Signed-off-by: Jon Skeet <jonskeet@google.com>
Changes since 2.4.0:
- Dependencies: update dependencies in CloudNative.CloudEvents.AspNetCore:
- Remove dependency on Microsoft.AspNetCore.Mvc.Core (as we don't use it)
- Update dependency on Microsoft.AspNetCore.Http to 2.1.34
- Explicitly add dependency on System.Text.Encodings.Web 6.0.0 to avoid security issue in older version
No APIs have changed, but this is a minor release due to the significant dependency changes.
Signed-off-by: Jon Skeet <jonskeet@google.com>
The [binding
specification](https://github.com/cloudevents/spec/blob/main/cloudevents/bindings/amqp-protocol-binding.md)
has changed to prefer `cloudEvents_` over `cloudEvents:`. Previously
`cloudEvents_` wouldn't even have been valid.
With this change, users can either:
- Stick with the default prefix, which doesn't change immediately,
but which will change in the first release on or after March 1st 2023
- Explicitly use one or other prefix using the explicitly-named
methods
Other options considered:
- Changing the default now: that's too much of a breaking change. (I
don't want to take a major version bump for this, and with enough
time for the change, I think that's okay.)
- Adding a char or string parameter: that would invite using non-standard prefixes
- Adding a Boolean parameter: that would become problematic if we
ever end up with a third prefix. (Let's hope we don't, but still...)
- Adding an enum and then a parameter for it: feels like overkill
Signed-off-by: Jon Skeet <jonskeet@google.com>
The method names are consistent with the ones in
ProtobufEventFormatter and the Json.NET event formatter.
Currently batch conversion is not supported, but we can add that later if requested.
The ConvertToJsonElement method is horribly inefficient at the
moment (serialize then parse); we can consider how to make it more
efficient later if necessary.
Signed-off-by: Jon Skeet <jonskeet@google.com>
The method names are consistent with the ones in ProtobufEventFormatter.
Currently batch conversion is not supported, but we can add that later if requested.
Signed-off-by: Jon Skeet <jonskeet@google.com>
This is the Json.NET equivalent of #225.
Note that not every option in JsonTextWriter is supported; in the future we could potentially introduce some alternative approach to provide more flexibility.
Signed-off-by: Jon Skeet <jonskeet@google.com>