Avro 1.11.1

The Apache Avro community is pleased to announce the release of Avro 1.11.1!

All signed release artifacts, signatures and verification instructions can be found here

Most interesting

This release includes 256 Jira issues, including some interesting features:

Avro specification

  • AVRO-3436 Clarify which names are allowed to be qualified with namespaces
  • AVRO-3370 Inconsistent behaviour on types as invalid names
  • AVRO-3275 Clarify how fullnames are created, with example
  • AVRO-3257 IDL: add syntax to create optional fields
  • AVRO-2019 Improve docs for logical type annotation

C++

  • AVRO-2722 Use of boost::mt19937 is not thread safe

C#

  • AVRO-3383 Many completed subtasks for modernizing C# coding style
  • AVRO-3481 Input and output variable type mismatch
  • AVRO-3475 Enforce time-millis and time-micros specification
  • AVRO-3469 Build and test using .NET SDK 7.0
  • AVRO-3468 Default values for logical types not supported
  • AVRO-3467 Use oracle-actions to test with Early Access JDKs
  • AVRO-3453 Avrogen Add Generated Code Attribute
  • AVRO-3432 Add command line option to skip creation of directories
  • AVRO-3411 Add Visual Studio Code Devcontainer support
  • AVRO-3388 Implement extra codecs for C# as seperate nuget packages
  • AVRO-3265 avrogen generates uncompilable code when namespace ends with “.Avro”
  • AVRO-3219 Support nullable enum type fields

Java

  • AVRO-3531 GenericDatumReader in multithread lead to infinite loop
  • AVRO-3482 Reuse MAGIC in DataFileReader
  • AVRO-3586 Make Avro Build Reproducible
  • AVRO-3441 Automatically register LogicalTypeFactory classes
  • AVRO-3375 Add union branch, array index and map key “path” information to serialization errors
  • AVRO-3374 Fully qualified type reference “ns.int” loses namespace
  • AVRO-3294 IDL parsing allows doc comments in strange places
  • AVRO-3273 avro-maven-plugin breaks on old versions of Maven
  • AVRO-3266 Output stream incompatible with MagicS3GuardCommitter
  • AVRO-3243 Lock conflicts when using computeIfAbsent
  • AVRO-3120 Support Next Java LTS (Java 17)
  • AVRO-2498 UUID generation is not working

Javascript

  • AVRO-3489 Replace istanbul with nyc for code coverage
  • AVRO-3322 Buffer is not defined in browser environment
  • AVRO-3084 Fix JavaScript interop test to work with other languages on CI

Perl

  • AVRO-3263 Schema validation warning on invalid schema with a long field

Python

  • AVRO-3542 Scale assignment optimization
  • AVRO-3521 “Scale” property from decimal object
  • AVRO-3380 Byte reading in avro.io does not assert bytes read
  • AVRO-3229 validate the default value of an enum field
  • AVRO-3218 Pass LogicalType to BytesDecimalSchema

Ruby

Rust

  • AVRO-3558 Add a demo crate that shows usage as WebAssembly
  • AVRO-3526 Improve resolving Bytes and Fixed from string
  • AVRO-3506 Implement Single Object Writer
  • AVRO-3507 Implement Single Object Reader
  • AVRO-3405 Add API for user-provided metadata to file
  • AVRO-3339 Rename crate from avro-rs to apache-avro
  • AVRO-3479 Derive Avro Schema macro

Website

Rust

This is the first release that provides the apache-avro crate at crates.io!

JIRA

A list of all JIRA tickets fixed in 1.11.1 could be found here

Language repositories

In addition, language-specific release artifacts are available:

Thanks to everyone for contributing!