Skip to content

Releases: nesk/akkurate

Akkurate 0.10.0

25 Sep 21:29
Compare
Choose a tag to compare

Added

  • kotlinx-datetime integration to validate multiplatform date and time. (#42)
  • New akkurate-test artifact to test custom constraints.
  • New constraints to validate types of the kotlin.time package.

Fixed

  • Add a or equal to zero suffix to the default message for isNegativeOrZero and isPositiveOrZero constraints.

Akkurate 0.9.1

12 Sep 15:19
Compare
Choose a tag to compare

Fixed

  • Fix name clashes when generating validatable accessors from the common code.

Akkurate 0.9.0

30 Aug 16:22
Compare
Choose a tag to compare

Akkurate is now multiplatform 🎉

⚠️ Breaking changes

Added

  • Support Kotlin Multiplatform and all its targets (#33)

Changed

  • The default violation message of the isInstanceOf and isNotInstanceOf constraints now display the simple name of the type, instead of the qualified one.
  • The Validate annotation has been moved from the akkurate-ksp-plugin artifact to the akkurate-core one.

Akkurate 0.8.0

24 May 15:07
Compare
Choose a tag to compare

Added

  • Support transforming a value before validating it (#26)
  • New constraint to ensure a collection doesn't contain duplicated elements (#28)
  • New constraints to check if a value is an instance of some type (#27)
  • New accessors to easily validate a specific index of a collection (#29)

Akkurate 0.7.0

09 Feb 13:53
Compare
Choose a tag to compare

⚠️ Breaking changes

Fixed

  • Accessors for mutable properties are no longer improperly cast. (#22)

Akkurate 0.6.0

12 Dec 13:19
Compare
Choose a tag to compare

Added

  • Arrow integration to convert Akkurate validation results to typed errors (#20)

Akkurate 0.5.0

29 Nov 12:40
Compare
Choose a tag to compare

Added

  • New configuration option to fail on the first constraint violation (#19)

Akkurate 0.4.0

30 Oct 12:07
Compare
Choose a tag to compare

Summary: Easier validation for JVM dates and iterables. Also, the configuration of the validator got revamped.

⚠️ Breaking changes

  • The Configuration class is now instantiated through a builder DSL (#13)
  • Mark the API of the KSP plugin as experimental (#13)
  • Remove unused MutablePath type alias

Added

  • Support iterating over nullable iterables, like Validatable<Iterable<*>?>. (#16)
  • Add constraints to validate additional JVM types: LocalDate, Duration and Period (#7)

Akkurate 0.3.0

16 Oct 11:29
Compare
Choose a tag to compare

Summary: @Validate can be used on generic types, and many accessors are now provided for the basic Kotlin types.

In other news, we now have a dedicated #akkurate channel on Kotlin Slack 🎉 Come join us!

⚠️ Breaking changes

  • Validation accessors are generated only for public properties. (#11 #15)
  • Accessors are now generated for the properties of the implemented interface when possible, not for the implementation. (#11)

Added

  • Provide built-in accessors for kotlin and kotlin.collections packages (#11)
  • Support generating accessors for generic types (#10)
  • A KDoc is provided for each validatable accessor (#6)

Fixed

  • Validatable accessors are no longer generated for extension properties
  • Skip the generation of accessors in the kotlin package, avoiding compilation failures.

Changed

  • Propagate the @Validate annotation to the nested classes (#11)

Akkurate 0.2.0

26 Sep 11:07
Compare
Choose a tag to compare

⚠️ Breaking changes

  • Change visibility of ValidateAnnotationProcessor.validatableOfFunction to private. (#12)
  • Change visibility of ValidateAnnotationProcessor.validatableClass to private. (#12)

Added

  • Add new constraints (#3):
    • CharSequence
      • hasLengthEqualTo / hasLengthNotEqualTo
      • isBlank / isNotBlank
      • isMatching / isNotMatching
    • kotlin.collections
      • hasSizeNotEqualTo
      • isEmpty / isNotEmpty
      • isContaining / isNotContaining
    • Map
      • isContainingKey / isNotContainingKey
      • isContainingValue / isNotContainingValue

Changed