tag:github.com,2008:https://github.com/assertj/assertj/releases Release notes from assertj 2026-01-24T19:05:24Z tag:github.com,2008:Repository/8779606/assertj-build-3.27.7 2026-01-27T21:15:56Z v3.27.7 <h2>🔒 Security</h2> <h3>Core</h3> <ul> <li>Fix XXE vulnerability in <code>isXmlEqualTo</code> assertion (<a title="CVE-2026-24400" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-rqfh-9r24-8c9r/hovercard" href="https://github.com/advisories/GHSA-rqfh-9r24-8c9r">CVE-2026-24400</a>) <ul> <li>See <a title="GHSA-rqfh-9r24-8c9r" data-hovercard-type="advisory" data-hovercard-url="/advisories/GHSA-rqfh-9r24-8c9r/hovercard" href="https://github.com/advisories/GHSA-rqfh-9r24-8c9r">GHSA-rqfh-9r24-8c9r</a> for details; many thanks to <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/wxt201/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wxt201">@wxt201</a> and <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Song-Li/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Song-Li">@Song-Li</a> for responsibly reporting it!</li> </ul> </li> </ul> <h2>🚫 Deprecated</h2> <h3>Core</h3> <ul> <li>Deprecate <code>XmlStringPrettyFormatter</code> with no replacement</li> </ul> <h2>🐛 Bug Fixes</h2> <h3>Guava</h3> <ul> <li>Navigation to <code>assertj-core</code> or <code>guava</code> types from <code>assertj-guava</code> Javadoc site has unnecessary header <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2299577200" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3478" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3478/hovercard" href="https://github.com/assertj/assertj/issues/3478">#3478</a></li> </ul> <h2>🔨 Dependency Upgrades</h2> <h3>Core</h3> <ul> <li>Upgrade to Byte Buddy 1.18.3</li> <li>Upgrade to JUnit BOM 5.14.1</li> </ul> <h3>Guava</h3> <ul> <li>Upgrade to Guava 33.5.0-jre</li> </ul> scordio tag:github.com,2008:Repository/8779606/assertj-build-3.27.6 2025-09-22T17:02:13Z v3.27.6 <h2>🐛 Bug Fixes</h2> <h3>Core</h3> <ul> <li>Add missing export for <code>org.assertj.core.annotation</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3441111458" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3951" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3951/hovercard" href="https://github.com/assertj/assertj/pull/3951">#3951</a></li> </ul> <h2>❤️ Contributors</h2> <p>Thanks to all the contributors who worked on this release:</p> <p><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/duponter/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/duponter">@duponter</a></p> scordio tag:github.com,2008:Repository/8779606/assertj-build-3.27.5 2025-09-18T22:27:22Z v3.27.5 <h2>⚡ Improvements</h2> <h3>Core</h3> <ul> <li>ByteBuddy in AssertJ 3.27.4 not compatible with Java 25 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3425390697" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3946" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3946/hovercard" href="https://github.com/assertj/assertj/issues/3946">#3946</a></li> </ul> <h2>🔨 Dependency Upgrades</h2> <h3>Core</h3> <ul> <li>Upgrade to Byte Buddy 1.17.7 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3426896327" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3947" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3947/hovercard" href="https://github.com/assertj/assertj/pull/3947">#3947</a></li> <li>Upgrade to JUnit BOM 5.13.4 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3426896327" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3947" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3947/hovercard" href="https://github.com/assertj/assertj/pull/3947">#3947</a></li> </ul> <h3>Guava</h3> <ul> <li>Upgrade to Guava 33.4.8-jre <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3426896327" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3947" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3947/hovercard" href="https://github.com/assertj/assertj/pull/3947">#3947</a></li> </ul> scordio tag:github.com,2008:Repository/8779606/assertj-build-3.27.4 2025-08-07T14:18:53Z v3.27.4 <h2>🚫 Deprecated</h2> <h3>Core</h3> <ul> <li>Deprecate <code>org.assertj.core.annotations.Beta</code> in favor of <code>org.assertj.core.annotation.Beta</code></li> <li>Deprecate <code>org.assertj.core.util.CanIgnoreReturnValue</code> in favor of <code>org.assertj.core.annotation.CanIgnoreReturnValue</code></li> <li>Deprecate <code>org.assertj.core.util.CheckReturnValue</code> in favor of <code>org.assertj.core.annotation.CheckReturnValue</code></li> </ul> <h2>🐛 Bug Fixes</h2> <h3>Core</h3> <ul> <li>Fix thread-safety in <code>AbstractDateAssert</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3271403400" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3874" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3874/hovercard" href="https://github.com/assertj/assertj/pull/3874">#3874</a></li> </ul> <h2>⚡ Improvements</h2> <ul> <li>Migrate to the Central Publisher Portal, enable snapshot publishing <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3287230771" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3881" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3881/hovercard" href="https://github.com/assertj/assertj/pull/3881">#3881</a></li> </ul> <h3>Core</h3> <ul> <li>Annotate <code>fail</code> methods with custom <code>@Contract</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="3289407973" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3882" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3882/hovercard" href="https://github.com/assertj/assertj/pull/3882">#3882</a></li> </ul> <h2>❤️ Contributors</h2> <p>Thanks to all the contributors who worked on this release:</p> <p><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kelunik/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/kelunik">@kelunik</a></p> scordio tag:github.com,2008:Repository/8779606/assertj-build-4.0.0-M1 2025-03-09T23:27:53Z v4.0.0-M1 <h2>🧩 Binary Compatibility</h2> <p>This release is binary incompatible with the previous major version.</p> <h2>💥 Breaking Changes</h2> <ul> <li>Raise required Java version to 17 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2264351139" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3447" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3447/hovercard" href="https://github.com/assertj/assertj/pull/3447">#3447</a></li> </ul> <h2>🚫 Deprecated</h2> <ul> <li>Set <code>since = "3"</code> and <code>forRemoval = true</code> for all deprecations <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2822199288" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3762" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3762/hovercard" href="https://github.com/assertj/assertj/issues/3762">#3762</a></li> </ul> <h3>Core</h3> <ul> <li>Deprecate <code>@VisibleForTesting</code> for removal <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2811841197" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3755" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3755/hovercard" href="https://github.com/assertj/assertj/issues/3755">#3755</a></li> </ul> <h2>⚡ Improvements</h2> <ul> <li>Run OpenRewrite Java 17 recipe <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2821674175" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3759" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3759/hovercard" href="https://github.com/assertj/assertj/pull/3759">#3759</a></li> <li>Add missing module descriptor to <code>assertj-guava</code>, adopt module-only build <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2856101826" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3771" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3771/hovercard" href="https://github.com/assertj/assertj/pull/3771">#3771</a></li> <li>Centralize <code>maven-enforcer-plugin</code> execution, append configurations</li> </ul> <h3>Core</h3> <ul> <li>Replace <code>isSealed</code> reflection-based implementation with JDK built-in implementation <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1752463014" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3081" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3081/hovercard" href="https://github.com/assertj/assertj/issues/3081">#3081</a></li> <li>Replace <code>isRecord</code> reflection-based implementation with JDK built-in implementation <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1752014495" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3079" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3079/hovercard" href="https://github.com/assertj/assertj/issues/3079">#3079</a></li> <li>Add missing <code>java.sql</code> module dependency</li> <li>Fix typo in <code>TemporalUnitLessThanOffset</code> Javadoc <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2886255926" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3783" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3783/hovercard" href="https://github.com/assertj/assertj/pull/3783">#3783</a></li> <li>Move script testing to separate module, improve test portability <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2889425255" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3785" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3785/hovercard" href="https://github.com/assertj/assertj/pull/3785">#3785</a></li> <li>Abort tests when symbolic links cannot be created <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2895550010" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3788" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3788/hovercard" href="https://github.com/assertj/assertj/pull/3788">#3788</a></li> </ul> <h2>🔨 Dependency Upgrades</h2> <h3>Core</h3> <ul> <li>Upgrade to Byte Buddy 1.17.1 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2858792243" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3773" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3773/hovercard" href="https://github.com/assertj/assertj/pull/3773">#3773</a></li> <li>Upgrade to JUnit BOM 5.12.0 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2870016856" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3779" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3779/hovercard" href="https://github.com/assertj/assertj/pull/3779">#3779</a></li> </ul> <h2>❤️ Contributors</h2> <p>Thanks to all the contributors who worked on this release:</p> <p><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/aalmiray/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/aalmiray">@aalmiray</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/RaphaelJenni/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/RaphaelJenni">@RaphaelJenni</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SimonHarte/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/SimonHarte">@SimonHarte</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/etrandafir93/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/etrandafir93">@etrandafir93</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fml2/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fml2">@fml2</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bananeweizen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bananeweizen">@Bananeweizen</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/lobaorn/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/lobaorn">@lobaorn</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sormuras/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sormuras">@sormuras</a></p> joel-costigliola tag:github.com,2008:Repository/8779606/assertj-build-3.27.3 2025-01-18T11:28:35Z v3.27.3 <h2>💥 Breaking Changes</h2> <h3>Core</h3> <ul> <li> <p>Revert "Propagate common basetype for the extracting method" <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2778531180" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3737" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3737/hovercard" href="https://github.com/assertj/assertj/pull/3737">#3737</a></p> <details><summary>Details</summary> <p>The enhancement introduced with <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2685860083" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3673" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3673/hovercard" href="https://github.com/assertj/assertj/pull/3673">#3673</a> breaks existing code on Kotlin 1.9; therefore, it has been reverted.</p> <p>As Spring Boot 3.4 currently supports Kotlin 1.9, we want to keep the same compatibility on AssertJ 3.x, while AssertJ 4.x will require Kotlin 2.x.</p> <p>Existing code relying on the changes introduced with <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2685860083" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3673" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3673/hovercard" href="https://github.com/assertj/assertj/pull/3673">#3673</a> will no longer compile and should be refactored.</p> </details> </li> </ul> <h2>🐛 Bug Fixes</h2> <h3>Core</h3> <ul> <li>Fix <code>StandardRepresentation</code> regression for unquoted strings <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2776484970" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3735" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3735/hovercard" href="https://github.com/assertj/assertj/pull/3735">#3735</a></li> </ul> <h2>⚡ Improvements</h2> <h3>Core</h3> <ul> <li>Add <code>Class</code> info to class loading strategy failures <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2793234233" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3746" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3746/hovercard" href="https://github.com/assertj/assertj/pull/3746">#3746</a></li> </ul> <h2>❤️ Contributors</h2> <p>Thanks to all the contributors who worked on this release:</p> <p><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ccrvincent/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/ccrvincent">@ccrvincent</a></p> scordio tag:github.com,2008:Repository/8779606/assertj-build-3.27.2 2025-01-04T11:08:41Z v3.27.2 <h2>🐛 Bug Fixes</h2> <h3>Core</h3> <ul> <li>Restore support for null-valued maps when ignoring fields <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2766680333" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3723" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3723/hovercard" href="https://github.com/assertj/assertj/pull/3723">#3723</a></li> </ul> scordio tag:github.com,2008:Repository/8779606/assertj-build-3.27.1 2025-01-02T13:55:23Z v3.27.1 <h2>🚫 Deprecated</h2> <h3>Core</h3> <ul> <li>Deprecate <code>usingComparatorForFields</code> and remove deprecated assertions from <code>usingComparatorForType</code> documentation <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2754870515" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3711" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3711/hovercard" href="https://github.com/assertj/assertj/issues/3711">#3711</a></li> <li>Deprecate <code>hasCauseReference(Throwable)</code> from <code>Throwable</code> assertions <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2760214605" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3715" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3715/hovercard" href="https://github.com/assertj/assertj/issues/3715">#3715</a></li> </ul> <h2>🐛 Bug Fixes</h2> <h3>Core</h3> <ul> <li>Fix missing introspection for record accessors <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2754764241" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3710" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3710/hovercard" href="https://github.com/assertj/assertj/pull/3710">#3710</a></li> <li>Honor assertion description in <code>asString()</code></li> <li>Avoid <code>InputStream</code> manipulation when <code>mark</code> / <code>reset</code> are supported <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2759953980" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3713" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3713/hovercard" href="https://github.com/assertj/assertj/pull/3713">#3713</a></li> <li>NPE with custom <code>RecursiveComparisonConfiguration</code> on <code>usingRecursiveFieldByFieldElementComparator</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2762929646" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3719" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3719/hovercard" href="https://github.com/assertj/assertj/issues/3719">#3719</a></li> </ul> <h2>⚡ Improvements</h2> <ul> <li>Declare license using SPDX identifier <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2760664039" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3718" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3718/hovercard" href="https://github.com/assertj/assertj/pull/3718">#3718</a></li> </ul> <h2>❤️ Contributors</h2> <p>Thanks to all the contributors who worked on this release:</p> <p><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Bananeweizen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Bananeweizen">@Bananeweizen</a> @jessicant <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/nith2001/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/nith2001">@nith2001</a></p> scordio tag:github.com,2008:Repository/8779606/assertj-build-3.27.0 2025-01-11T10:51:59Z v3.27.0 <h2>💥 Breaking Changes</h2> <h3>Core</h3> <ul> <li> <p>Propagate common basetype for <code>extracting(Function...)</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2685860083" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3673" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3673/hovercard" href="https://github.com/assertj/assertj/pull/3673">#3673</a></p> <details><summary>Details</summary> <p>Before this change, <code>extracting(Function...)</code> changed <code>actual</code> to a list of <code>Object</code> instances, even in cases where the resulting objects could have had a more specific common supertype. With this change, the element type of the returned list is narrowed down to the common supertype of the resulting elements, allowing the compiler to accept chained assertions specific to the common supertype.</p> <p>However, this can break existing code, like in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2753862186" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3709" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3709/hovercard" href="https://github.com/assertj/assertj/issues/3709">#3709</a>. Such cases do not justify reverting the change. Therefore, the affected code should be refactored accordingly, given that <code>contains</code> for list assertions already follows the same semantic.</p> <p>In addition, this can break existing code based on Kotlin 1.9, like in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2771140345" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3728" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3728/hovercard" href="https://github.com/assertj/assertj/issues/3728">#3728</a>. In such cases, either upgrade Kotlin to 2.x or upgrade AssertJ to 3.27.3, which restores compatibility with Kotlin 1.9.</p> </details> </li> </ul> <h2>🚫 Deprecated</h2> <h3>Core</h3> <ul> <li>Deprecate <code>ClassBasedNavigableIterableAssert</code> and <code>ClassBasedNavigableListAssert</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2393964973" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3529" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3529/hovercard" href="https://github.com/assertj/assertj/issues/3529">#3529</a></li> </ul> <h2>✨ New Features</h2> <h3>Core</h3> <ul> <li>Add <code>actual()</code> to access the object under test <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2317624439" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3489" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3489/hovercard" href="https://github.com/assertj/assertj/issues/3489">#3489</a></li> <li>Add <code>isCompletedWithValueMatchingWithin</code> to <code>CompletableFuture</code> assertions <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2353547268" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3506" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3506/hovercard" href="https://github.com/assertj/assertj/pull/3506">#3506</a></li> <li>Add <code>completesExceptionallyWithin</code> to <code>CompletableFuture</code> assertions <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2501620401" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3597" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3597/hovercard" href="https://github.com/assertj/assertj/pull/3597">#3597</a></li> <li>Add <code>inBinary</code> to <code>CharSequence</code> assertions <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2512233793" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3600" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3600/hovercard" href="https://github.com/assertj/assertj/pull/3600">#3600</a></li> <li>Support for <code>Assertions.byLessThan(Duration)</code> and <code>Assertions.within(Duration)</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2311239647" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3486" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3486/hovercard" href="https://github.com/assertj/assertj/issues/3486">#3486</a></li> <li>Add standard representation for <code>CharSequence</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2543041858" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3617" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3617/hovercard" href="https://github.com/assertj/assertj/pull/3617">#3617</a></li> <li>Add predicate descriptions overloads to <code>anyMatch</code> and <code>noneMatch</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2594937540" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3639" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3639/hovercard" href="https://github.com/assertj/assertj/pull/3639">#3639</a></li> <li>Add <code>doesNotMatch(Predicate)</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2708988274" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3684" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3684/hovercard" href="https://github.com/assertj/assertj/pull/3684">#3684</a></li> <li>Add <code>usingEquals</code> accepting a <code>BiPredicate</code> and an optional description to provide a custom comparison in assertions <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2700168592" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3678" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3678/hovercard" href="https://github.com/assertj/assertj/issues/3678">#3678</a></li> </ul> <h3>Guava</h3> <ul> <li>Add <code>isNotEmpty</code> to <code>Table</code> assertions <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2451549774" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3559" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3559/hovercard" href="https://github.com/assertj/assertj/pull/3559">#3559</a></li> </ul> <h2>🐛 Bug Fixes</h2> <h3>Core</h3> <ul> <li>Recursive assertion <code>hasNoNullFields</code> throws NPE with fields of anonymous and local types <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2397771137" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3534" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3534/hovercard" href="https://github.com/assertj/assertj/issues/3534">#3534</a></li> <li>Fix incorrect mutation of <code>actualElementsGroupedByHashCode</code> in recursive comparison</li> <li>Recursive comparison <code>ignoringFields</code> not working properly with maps <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1628979149" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/2988" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/2988/hovercard" href="https://github.com/assertj/assertj/issues/2988">#2988</a></li> <li>Custom representation ignored when describing expected items not in the actual list <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2632800356" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3646" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3646/hovercard" href="https://github.com/assertj/assertj/issues/3646">#3646</a></li> <li><code>hasFieldOrPropertyWithValue</code> swallows exceptions thrown by getters, and reports non-existent property instead <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2453822882" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3563" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3563/hovercard" href="https://github.com/assertj/assertj/issues/3563">#3563</a></li> <li><code>satisfies()</code> with nested assertions obscures stack trace <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1180521945" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/2542" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/2542/hovercard" href="https://github.com/assertj/assertj/issues/2542">#2542</a></li> <li>Recursive comparison fails if ignored fields are not found in <code>expected</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1947246208" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3226" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3226/hovercard" href="https://github.com/assertj/assertj/issues/3226">#3226</a></li> </ul> <h2>⚡ Improvements</h2> <h3>Core</h3> <ul> <li>Report all failing conditions when using <code>satisfies(allOf(Condition...))</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2407599547" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3537" data-hovercard-type="issue" data-hovercard-url="/assertj/assertj/issues/3537/hovercard" href="https://github.com/assertj/assertj/issues/3537">#3537</a></li> <li>Fix Unicode escapes in <code>inUnicode()</code> Javadoc</li> <li>Show error differences if values were compared with <code>equals</code> in recursive comparison <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1928330657" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3209" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3209/hovercard" href="https://github.com/assertj/assertj/pull/3209">#3209</a></li> <li>Add throwable stacktrace to <code>ShouldNotContainCharSequence</code></li> <li>Remove unused code and other minor cleanup <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2708100599" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3683" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3683/hovercard" href="https://github.com/assertj/assertj/pull/3683">#3683</a></li> <li>Simplify comparison strategy <code>isLessThan</code> and <code>isLessThanOrEqualTo</code> in <code>AbstractComparisonStrategy</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2725242467" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3694" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3694/hovercard" href="https://github.com/assertj/assertj/pull/3694">#3694</a></li> <li>Update <code>AbstractCharSequenceAssert.java</code> reference <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2740660989" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3700" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3700/hovercard" href="https://github.com/assertj/assertj/pull/3700">#3700</a></li> <li>Include stack trace of internal errors in all/any satisfy assertions</li> </ul> <h2>🔨 Dependency Upgrades</h2> <h3>Core</h3> <ul> <li>Upgrade to Byte Buddy 1.15.11 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2743418226" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3703" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3703/hovercard" href="https://github.com/assertj/assertj/pull/3703">#3703</a></li> <li>Upgrade to JUnit BOM 5.11.4 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2743418013" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3702" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3702/hovercard" href="https://github.com/assertj/assertj/pull/3702">#3702</a></li> </ul> <h3>Guava</h3> <ul> <li>Upgrade to Guava 33.4.0-jre <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2746174210" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3705" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3705/hovercard" href="https://github.com/assertj/assertj/pull/3705">#3705</a></li> </ul> <h2>❤️ Contributors</h2> <p>Thanks to all the contributors who worked on this release:</p> <p><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/JunHyungJang/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/JunHyungJang">@JunHyungJang</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mipo256/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mipo256">@mipo256</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/vladykin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/vladykin">@vladykin</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/Marcono1234/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/Marcono1234">@Marcono1234</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/sunaleed/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/sunaleed">@sunaleed</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/etrandafir93/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/etrandafir93">@etrandafir93</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/FlorianCousin/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/FlorianCousin">@FlorianCousin</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/OlivierCavadenti/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/OlivierCavadenti">@OlivierCavadenti</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jh-instant/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/jh-instant">@jh-instant</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/patrickuhlmann/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/patrickuhlmann">@patrickuhlmann</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/IvoHD/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/IvoHD">@IvoHD</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/alexandra-junghans/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/alexandra-junghans">@alexandra-junghans</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/fmbenhassine/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/fmbenhassine">@fmbenhassine</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/etrandafir93/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/etrandafir93">@etrandafir93</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/shaikhu/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/shaikhu">@shaikhu</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/cookieMr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/cookieMr">@cookieMr</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/emmanuel-ferdman/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/emmanuel-ferdman">@emmanuel-ferdman</a> <a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/mk868/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/mk868">@mk868</a></p> scordio tag:github.com,2008:Repository/8779606/assertj-build-3.26.3 2024-07-09T18:07:47Z v3.26.3 <h2>🧩 Binary Compatibility</h2> <p>The release is:</p> <ul> <li>Binary compatible with the previous minor version.</li> <li>Binary incompatible with the previous patch version.</li> </ul> <h2>💥 Breaking Changes</h2> <h3>Core</h3> <ul> <li>Replace <code>assertThat(Temporal)</code> with <code>assertThatTemporal(Temporal)</code> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2367797963" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3519" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3519/hovercard" href="https://github.com/assertj/assertj/pull/3519">#3519</a></li> </ul> <h2>🐛 Bug Fixes</h2> <h3>Core</h3> <ul> <li>Fix Javadoc rendering on <code>FactoryBasedNavigableListAssert::assertThat</code></li> <li>Allow <code>ComparingNormalizedFields</code> instances to be reused across different assertions <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2320600564" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3493" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3493/hovercard" href="https://github.com/assertj/assertj/pull/3493">#3493</a></li> </ul> <h2>🔨 Dependency Upgrades</h2> <h3>Core</h3> <ul> <li>Upgrade to Byte Buddy 1.14.18 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2396572203" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3531" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3531/hovercard" href="https://github.com/assertj/assertj/pull/3531">#3531</a></li> <li>Upgrade to JUnit BOM 5.10.3 <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2379127150" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3525" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3525/hovercard" href="https://github.com/assertj/assertj/pull/3525">#3525</a></li> </ul> <h3>Guava</h3> <ul> <li>Upgrade to Guava 33.2.1-jre <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="2328592020" data-permission-text="Title is private" data-url="https://github.com/assertj/assertj/issues/3499" data-hovercard-type="pull_request" data-hovercard-url="/assertj/assertj/pull/3499/hovercard" href="https://github.com/assertj/assertj/pull/3499">#3499</a></li> </ul> <h2>❤️ Contributors</h2> <p>Thanks to all the contributors who worked on this release:</p> <p><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/genuss/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/genuss">@genuss</a></p> scordio