- Add support for Avro 1.12.
- Add support for Ruby 3.2.
- Drop support for Ruby 2.6.
- Add support for Avro 1.11
- Add support for decimal logical types.
- Bug fix: Fix pretty formatting of schemas for Rails applications that don't use oj or yajl by removing the dependency on multi_json.
- Drop support for Avro < 1.9.
- Drop support for Ruby < 2.6.
- Add Ruby 3.0 support.
- Bug fix: Use multi_json to encode schemas and ensure that a JSON encoder is always present.
- Add support for enum defaults introduced in Avro v1.10.0.
- Allow avro version up to v1.10.x. Support will be added for new functionality in Avro v1.10 in a later release.
- Require avro version prior to v1.10.0.
- Add support for providing an explicit
namespace
onextend
. - Default lookup to current namespace before falling back on global search.
- Add support for declaring types as abstract.
- File handling fixes.
- Allow
filetype
to be specified in rake task to generate Avro JSON schema files.
- Add support for type macros.
- Allow methods for complex and primitive types to be used at the top-level and anywhere that a type name is accepted.
- Add support for generating schemas that contain logical types. The official
Ruby
avro
gem does not yet support logical types. Theavro-salsify-fork
gem can be used to encode and decode logical types. - Add support for
union
,map
, andarray
methods to embed those types within other complex types. - Add methods for primitives types (
string
,int
,long
,float
, etc) that allow those types, including a logical type attribute, to be embedded within complex types.
- Include DSL file line numbers in stack traces.
- Add optional
filename
keyword argument toAvro::Builder.build
and.build_schema
. Filename can now be used instead of a DSL string to build schemas. When a filename is used, the file location of any error is included in the stack trace.
- Add rake task to generate Avro JSON schema files for all DSL files under a configurable root directory.
- Add Railtie to configure
#{Rails.root}/avro/dsl
as a load path, and defineavro:generate
rake task.
- Add
Avro::Builder::SchemaStore
to load DSL files and return schema objects.
- Only allow
type_name
andtype_namespace
options for naming named types defined inline. - Only allow first argument to set name, and
namespace
option for top-level types. - Only allow
aliases
attribute to set aliases for top-level types.
- Support recursive definitions.
- Coerce aliases to be represented as an array.
- Only allow name and namespace to be set via options, not via a block, for record, enum, and fixed types.
- Allow
doc
andaliases
to be set on both a field and a type defined inline for the field. To set these attributes on the inline typetype_doc
andtype_aliases
must be used in the DSL.
- Support references to named types that are defined inline.
- Raise an error for duplicate definitions with the same fullname.
- Add validation for required DSL attributes that are not specified.
- Allow name to be configured via a block for top-level record, enum, and fixed types.
- Fix a bug that allowed the partial matching of filenames.
- Fix a bug that prevented namespace from being specified as an option on records.
- Fix a bug that prevented loading references qualified by namespace.
- Do not attempt to import schema files for builtin types.
- A
null
default should automatically be added for optional fields to match the:null
first member of the union.
- Add support for nested records. This includes the ability to reference a previously defined record as a type.
- Add support for
:union
type. - Make
fixed
syntax more flexible. Bothfixed :f, 7
andfixed :f, size: 7
are now supported and equivalent.
- Initial release