Skip to content

v1.0.0 notToHaveElementsOr... and based on current Multiplatform Plugin

Compare
Choose a tag to compare
@robstoll robstoll released this 29 May 09:55
· 478 commits to main since this release
v1.0.0
cda7a53

Table of Content

Full Changelog: v0.18.0...v1.0.0

New Features

All APIs

  • notToHaveElementsOrAny
  • notToHaveElementsOrAll
  • notToHaveElementsOrNone
  • deprecate ChronoZonedDateTime.toBeLessThan etc. in favour of isBefore etc. #709 => thanks to @JordanllHarper
  • add asLocalDate for java.util.Date #1285 => thanks to @sajalverma17
  • add asLocalDateTime for java.util.Date #1286 => thanks to @Jujusp
  • undeprecate nested expect in preparation of #1330

api-fluent-en_GB

  • no fluent only additions this time

api-infx-en_GB

  • no infix only additions this time

Logic / Core

  • none this time

Fixes

  • stackBacktrace is removed in JS when the NoOpAtriumErrorAdjuster is used #1383
  • Kotlin (1.4, 1.5) bug: Result unwrapping affects Atrium #1234 => thanks to @JordanllHarper

Improvements

  • Hint for not to contain #1156
  • Add icon for JetBrains IDEA / Toolbox #1434 => thanks @vlsi for the idea
  • Add a version switcher to the Code Documentation: https://docs.atriumlib.org and and out-of-date warning

build

  • Redo Build Logic #744 (update MPP plugins from old to new plugins)
  • rewrite readme-examples/build.gradle to build.gradle.kts #1159 => thanks to @jakubriegel
  • rewrite misc/tools/atrium-js-sample-test/build.gradle to build.gradle.kts #1160 => thanks to @femialaka
  • rewrite misc/tools/atrium-samples-test/build.gradle to build.gradle.kts #1161 => thanks to @Stexxe
  • rewrite the root build.gradle to build.gradle.kts and update tutteli-gradle-plugin
  • update to new dokka plugin #641
  • Builds take too long #971

samples

  • Added SequenceSubjectChangerSamples.kt with samples #1179 => thanks to @JordanllHarper
  • add ResultExpectationSamples also to api-infix #1157
  • add samples for iterableSubjectChangers to api-fluent and api-infix #1038 => thanks to @simonNozaki
  • add samples for sequenceSubjectChangers also to api-infix #1046 => thanks to @JordanllHarper

migrations

Sadly, we had to move back to Spek for the moment as kotest is buggy in terms of the JS platform. Kotlin-test (i.e. all samples) where no longer run as soon as kotest was specified as dependency

Deprecation

  • none this time

Deprecations with 1.1.0

  • we will drop the support for internationalization with 1.2.0, all functions involving Translatable will be deprecated in v1.1.0
  • we will rename the package ch.tutteli.atrium.api.fluent.en_GB.creating.charsequence.contains to charsequence.toCtonain` and thus deprecated the existing packages (will be dropped with 1.5.0 latest) -- same same for the infix API
  • same same for iterable.toContain (fluent and infix API)
  • we will drop support for Kotlin 1.2 and deprecate the package ch.tutteli.atrium.api.fluent.en_GB.kotlin_1_3 as we move the functions to
    ch.tutteli.atrium.api.fluent.en_GB (same same for infix)
  • might be we drop en_GB from package names
  • might be we move BulletPointProvider to another package

Deprecations with 1.2.0

We will make a major refactoring on core and logic level. 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

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 1.5.0 at the latest)
  • re-write reporting entirely, a lot of types in ch.tutteli.atrium.reporting will be affected (could be we move this to 1.3.0)
  • rename StringBuilder.appendln() to appendLine (to follow kotlin)

Breaking Changes

Planned (previously deprecated or announced)

  • removed COULD_NOT_EVALUATE_DEFINED_ASSERTIONS => will be removed without replacement
  • removed VISIT_COULD_NOT_EVALUATE_ASSERTIONS => will be removed without replacement
  • removed ContainsAssertionCreator#getDescriptionContains => use descriptionToContain
  • removed InOrderOnlyReportingOptions.showOnlyFailingIfMoreElementsThan => use showOnlyFailingIfMoreElementsThan
  • removed InOrderOnlyReportingOptions.numberOfElementsInSummary => use maxNumberOfExpectedElementsForSummary
  • removed ErrorMessages enum entries which contained ASSERTION
  • removed maplike.contains.checkers.* => looks like they were introduced by accident, removed without replacement
  • removed all deprecated function/classes/interfaces/translations etc. which were marked to be removed with 1.0.0 latest

Unplanned

  • not really a breaking change but we already removed en_GB from artifact names.

Breaking Changes with 1.1.0

  • we will drop support for Kotlin 1.2 (might even drop support for kotlin 1.3)
  • we will switch from LEGACY compiler backend to IR backend for JS
  • we will use the IR compiler backend for JVM
  • we will drop support for jdk 14 (i.e. we no longer build against it, most likely it still works without problems) and officially support jdk 17
  • we will drop support for translating the output - API will persist until 1.2.0 but we might already only use UsingDefaultTranslator
  • we might introduce interface groups for ReporterBuilder - binary compatibility break

Breaking Changes with 1.2.0

  • we might drop support for kotlin 1.3 (if not already in 1.1.0)
  • BulletPointProvider will most likely use a BulletPointIdentifier from a different package

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 0.18.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