Skip to content

Releases: amazon-ion/ion-schema-kotlin

Release 1.1.0

14 Jul 21:26
Compare
Choose a tag to compare

This release includes the following enhancements:

  • adds Schema.isl and Type.isl, enabling access to the ISL underlying Schema and top-level Type objects (#143)
  • enables custom schema caching logic (#144) via a new SchemaCache interface, SchemaCacheDefault implementation, and IonSchemaSystemBuilder.withSchemaCache(SchemaCache) method
  • adds support in the regex constraint for compound character classes such as [A-Za-z0-9] (#147)
  • adds Schema.getImports(), Schema.getImport(String), and a new Import interface to allow retrieval of the types imported by a schema (#148)
  • provides graceful handling of redundant imports (#149); if schema A imports schemas B and C, which both import the same type from schema D, this is no longer results in an exception

Additionally, the following bugs have been fixed:

  • Schema objects are now cached successfully (#141)
  • AuthorityFilesystem now restricts file access to be within the specified basePath only (#142)
  • all top-level type definitions are now required to have a name (#145)
    • IonSchemaSystemBuilder.allowAnonymousTopLevelTypes() may be used if the previous behavior is helpful until existing anonymous top-level type definitions are named (or removed)

Full list of changes: v1.0.1...v1.1.0

Release 1.0.1

05 Feb 21:23
Compare
Choose a tag to compare
  • fixes the javadoc link in README.md (#130)
  • improves performance of the Occurs constraint (#128)
  • removes "alpha software" text from README.md
  • updates the sonatype URL (used for publishing the library) (#127)

Full list of changes: v1.0.0...v1.0.1

Release 1.0.0

12 Jul 21:01
Compare
Choose a tag to compare

This release is a complete implementation of the Ion Schema Specification, and includes the following changes since the previous release:

  • re-implements the regex constraint with java.util.regex.Pattern while not exposing Pattern's extra features (#119)
    • NOTE: with this change, the use of regex features not explicitly defined in the Ion Schema Specification should no longer work, and may produce an error
  • adds test to verify inline type import behavior (and absence of type name conflicts) (#124)

Bugs fixed:

  • adds correct propagation of type aliases when importing a schema (#123)

Associated milestone: M4

Full list of changes: v0.8.0-alpha...v1.0.0

Release 0.8.0

15 May 16:04
Compare
Choose a tag to compare
Release 0.8.0 Pre-release
Pre-release
  • changes maven groupId from software.amazon.ion to com.amazon.ion to be consistent with other Ion-related open source projects (#105)
  • changes java package names from software.amazon.ionschema to com.amazon.ionschema (#105)
  • updates ion-java dependency to version 1.4 (and use of the com.amazon.ion namespace)
  • adds Schema.plusType() (#73)
  • adds support for schema import (#1)
  • adds support for the document type (#11)
  • adds support for using an import as a type reference (#66)
  • adds support for escaping / and " chars in regexes (#77)
  • adds support for regex multiline mode (m flag) (#78)
  • allows a type to reference a type defined beneath it (#59)
  • defines a schema for ISL using ISL (#10)
  • updates the ordered_elements constraint to follow multiple solution paths (#108)
  • various documentation, testing, and code quality improvements

Bugs fixed:

  • confusing error when creating type definition referencing undefined type (#55)

Associated milestone: M3

Full list of changes: v0.7.0-alpha...v0.8.0-alpha

Release 0.7.0

26 Feb 19:29
Compare
Choose a tag to compare
Release 0.7.0 Pre-release
Pre-release
  • implements the annotation, timestamp_offset, and timestamp_precision constraints
  • adds valid_values support for timestamp ranges
  • API changes:
    • adds methods for instantiating ad-hoc schemas and types, specifically: IonSchemaSystem.newSchema() and Schema.newType()
  • bugfix: schema import ids were incorrectly expected to be symbols; now properly handles them as strings

Release 0.6.0

25 Jan 22:38
Compare
Choose a tag to compare
Release 0.6.0 Pre-release
Pre-release
  • added Type.validate(), which returns validation details
  • added support for content: closed
  • file-based tests to assert validation details
  • API changes:
    • updated Authority.readerFor(): Reader to iteratorFor(): Iterator<IonValue>
    • Schema.getType(name) now returns null when a type isn't found (instead of throwing)
    • removed IonSchemaSystem.getIonSystem()
    • removed IonSchemaSystem.loadSchema(Reader)
    • removed Schema.getType(IonSymbol)

Release 0.5.0-alpha

15 Nov 02:00
Compare
Choose a tag to compare
Release 0.5.0-alpha Pre-release
Pre-release

Initial alpha release.