github robstoll/atrium v1.3.0

pre-release4 hours ago

Table of Content

  • New Features
    • API
    • Core aka write own expectation functions
  • Fixes
  • Improvements
  • Deprecation
  • Breaking Changes
  • Migrating deprecated functionality
  • Sponsors

Full Changelog: v1.2.0...v1.3.0

New Features

All APIs

api-fluent only

api-infx only

  • none this time

Caution

We will discontinue the api-infix, the usage is too low to justify the additional work. This was the last release, get in touch in case you would like to sponsor it.


Core

Fixes

Improvements

Deprecation

  • notToEqualOneOf/notToEqualOneIn was deprecated => use toBeIn/notToBeIn
  • We had to postpone the rewrite from Assertion to Proof initially planned for 1.3.0. This will now follow in 2.x, see the next section

Deprecations with v2.x

We will make a major refactoring on core and logic level (not before 2.1.0). Those changes should not affect most Atrium users. It might affect you if you:

  • created own expectation function based on assertionBuilder or other types which are defined in core or logic.
  • use an own expectation verb
  • everything related to Assertions
  • everything related to Translatable (Untranslatable, TranslatableWithArgs) => use Text
    • all Description...Expectation -> switch to Description...Proof => you can use the provided ReplaceWith (see also Migration for hints)
  • everything in atrium-logic, we move the functionality to core and will drop this module in the future (with 3.0.0 at the latest)
  • we will drop the support for internationalization with 3.0.0, all functions involving Translatable will be deprecated in v2.0.0

Migration steps/pointers will be provided in the release notes as usual.

The following changes are planned:

  • replace Assertion with Proof and along with it rename many types incorporating Assertion in its name or in its package's name => we will remove Assertion and co. with 3.0.0 at the latest)
  • re-write reporting entirely, a lot of types in ch.tutteli.atrium.reporting will be affected

Breaking Changes

Planned (previously deprecated or announced)

  • removed translations_de_CH

Unplanned

  • we updated kbox from 1.x to 3.x, should you use kbox as well, then you need to update to a 3.x version as well due to the removal of mapWithIndex (see https://github.com/robstoll/kbox/releases/tag/v2.0.0)
  • AtriumError now extends AssertionFailedError from opentest4j in JVM. Should most likely not be a concern but could require a re-compile.

Breaking Changes with 2.0.0

  • we drop the api-infix
  • we will drop the support for Kotlin 1.4 (most likely we will require Kotlin 2.0)
  • we will require jdk 17 and drop support for jdk 11
  • we will remove deprecated functionality in impl packages (sometimes without replacement). As always there are no backward compatibility guarantees for classes in impl packages, use at your own risk.
  • we will switch the CharSequence toContain searches from a non-disjoint search to a disjoint search. Please contact us if you really need a non-disjoint search, we might introduce an option in this case.
  • we most likely drop en_GB from package names
  • might be we move BulletPointProvider to another package

Breaking Changes with 3.0.0

  • we will remove everything deprecated in 2.x i.e. everything related to Assertions, Translations etc.

Migrating deprecated functionality

Use the ReplaceWith in the corresponding @Deprecated annotations.

Please have a look at older release-notes in case you don't migrate from 1.2.0

Sponsors

We would like to thank   Tegonal Genossenschaft (Tegonal Cooperative, Bern, Switzerland) for sponsoring the time @robstoll is working on Atrium.

Are you using Atrium at work?

Please consider to support the project as well by:

  • sponsoring robstoll (Author and main contributor)
  • share your expectation functions with others
  • report bugs
  • provide feedback in case you miss a feature

Don't miss a new atrium release

NewReleases is sending notifications on new releases.