From d3f8e4ad9e43b12741c3614451daba496bc35323 Mon Sep 17 00:00:00 2001 From: Marc Philipp Date: Tue, 26 Jul 2022 21:00:52 +0200 Subject: [PATCH] Prepare 5.9 release notes --- .../release-notes/release-notes-5.9.0-M1.adoc | 111 ---------------- .../release-notes-5.9.0-RC1.adoc | 73 ----------- .../release-notes/release-notes-5.9.0.adoc | 118 +++++++++++++++--- 3 files changed, 102 insertions(+), 200 deletions(-) delete mode 100644 documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0-M1.adoc delete mode 100644 documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0-RC1.adoc diff --git a/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0-M1.adoc b/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0-M1.adoc deleted file mode 100644 index 3be365ceacb8..000000000000 --- a/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0-M1.adoc +++ /dev/null @@ -1,111 +0,0 @@ -[[release-notes-5.9.0-M1]] -== 5.9.0-M1 - -*Date of Release:* May 15, 2022 - -*Scope:* - -* XML reports in new https://github.com/ota4j-team/open-test-reporting[Open Test Reporting] - format -* Configurable cleanup mode for `@TempDir` -* New `TestInstancePreConstructCallback` extension API -* Reusable parameter resolution for custom extension methods via `ExecutableInvoker` -* New `IterationSelector` -* Various improvements to `ConsoleLauncher` - -For a complete list of all _closed_ issues and pull requests for this release, consult the -link:{junit5-repo}+/milestone/58?closed=1+[5.9 M1] milestone page in the JUnit repository -on GitHub. - - -[[release-notes-5.9.0-M1-junit-platform]] -=== JUnit Platform - -==== Bug Fixes - -* Fixed handling of global post-discovery filters that apply to `@Suite` classes. -* Since the Turkish language has special characters such as 'ı' and 'İ', the uppercase - conversion in `DefaultParallelExecutionConfigurationStrategy#getStrategy` previously - caused all tests to finish with exit code -1. This has been fixed by using the root - locale instead of the default one. - -==== Deprecations and Breaking Changes - -* `ConfigurationParameters.size()` has been deprecated in favor of the new `keySet()` - method. - -==== New Features and Improvements - -* Support for the https://github.com/ota4j-team/open-test-reporting[Open Test Reporting] - format which supports all features of the JUnit Platform such as hierarchical test - structures, display names, tags, etc. Please refer to the - <<../user-guide/index.adoc#junit-platform-reporting-open-test-reporting, User Guide>> - for instructions on how to enable such reports in your build. -* `ConfigurationParameters` has a new `keySet()` method which allows you to retrieve all - configuration parameter keys. -* New `IterationSelector` for selecting a subset of a test's or container's iterations. -* `ParallelExecutionConfiguration` allows configuring the `saturate` predicate of the - `ForkJoinPool` used for parallel test execution. -* JUnit OSGi bundles now contain `engine` and `launcher` requirements ensuring that at - resolution time a fully running set of dependencies is calculated, avoiding the need for - these to be manually specified. -* JUnit Platform Standalone Console JAR now also includes the JUnit Platform Suite Engine. -* New `failIfNoTests` attribute added to `@Suite`. This will fail the suite if no tests - are discovered. -* The output color for the `ConsoleLauncher` can now be customized. The option - `--single-color` will apply a built-in monochrome style, while `--color-palette` will - accept a properties file. See the - <<../user-guide/index.adoc#running-tests-console-launcher-color-customization, - User Guide>> for details. -* The default theme for the `ConsoleLauncher` is now determined by the charset reported by - the system console on Java 17 and later. -* New `--list-engines` option added to the `ConsoleLauncher` which displays all registered - test engine implementations. -* Configuring included `EngineFilters` that do not match any registered `TestEngine` - results in an error to avoid misconfiguration – for example, due to typos. - - -[[release-notes-5.9.0-M1-junit-jupiter]] -=== JUnit Jupiter - -==== Bug Fixes - -* When cleaning up a `@TempDir`, only one retry attempt will be made to delete directories. -* Since the Turkish language has special characters such as 'ı' and 'İ', the uppercase - conversion in `DefaultParallelExecutionConfigurationStrategy#getStrategy` previously - caused all tests to finish with exit code -1. This has been fixed by using the root - locale instead of the default one. - -==== Deprecations and Breaking Changes - -* `@TempDir` fields are no longer allowed to be declared as `final`. - - This improves diagnostics for failures resulting from a user-declared `static final` - `@TempDir` field by throwing an exception with an informative error message. - -==== New Features and Improvements - -* `@TempDir` now includes a `cleanup` mode attribute for preventing a temporary directory - from being deleted after a test. The default cleanup mode can be configured via a - configuration parameter. -* Support for FreeBSD and OpenBSD operating systems in `@EnabledOnOs` and `@DisabledOnOs`. -* New `MATCH_NONE` mode for `@EnumSource` that selects only those enum constants whose - names match none of the supplied patterns. -* The `@Order` annotation is now a `STABLE` API. -* New `TestInstancePreConstructCallback` extension API that is called prior to test - instance construction – symmetric to the existing `TestInstancePreDestroyCallback` - extension API. -* Extensions can now leverage registered `ParameterResolver` extensions when invoking - methods and constructors via the new `ExecutableInvoker` API available in the - `ExtensionContext`. -* A subset of the invocations of parameterized or dynamic tests can now be selected via - the new `IterationSelector` discovery selector when launching the JUnit Platform. -* `JAVA_19` and `JAVA_20` have been added to the `JRE` enum for use with JRE-based - execution conditions. -* `@MethodSource` factory methods can now accept arguments resolved by registered - `ParameterResolver` extensions. - - -[[release-notes-5.9.0-M1-junit-vintage]] -=== JUnit Vintage - -No changes. diff --git a/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0-RC1.adoc b/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0-RC1.adoc deleted file mode 100644 index cdef20e54d11..000000000000 --- a/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0-RC1.adoc +++ /dev/null @@ -1,73 +0,0 @@ -[[release-notes-5.9.0-RC1]] -== 5.9.0-RC1 - -*Date of Release:* July 4, 2022 - -*Scope:* - -* XML reports in new https://github.com/ota4j-team/open-test-reporting[Open Test Reporting] -format -* Configurable cleanup mode for `@TempDir` -* Configurable thread mode for `@Timeout` -* Conditional execution based on OS architectures -* New `TestInstancePreConstructCallback` extension API -* Reusable parameter resolution for custom extension methods via `ExecutableInvoker` -* Parameter injection for `@MethodSource` methods -* New `IterationSelector` -* Various improvements to `ConsoleLauncher` - -For a complete list of all _closed_ issues and pull requests for this release, consult the -link:{junit5-repo}+/milestone/61?closed=1+[5.9 RC1] milestone page in the JUnit repository -on GitHub. - - -[[release-notes-5.9.0-RC1-junit-platform]] -=== JUnit Platform - -==== Bug Fixes - -* Absolute path entries are now supported in JUnit's Platform Console Launcher on Windows. -* Attempts to load a `Class` for an invalid class name representing an extremely large - multidimensional array now fail within a reasonable amount of time. -* Fix concurrency issue in classpath scanning. - -==== New Features and Improvements - -* New public factory method to instantiate an `ExecutionRequest`. -* Documentation for overriding the JUnit version used in Spring Boot applications. See the - <<../user-guide/index.adoc#running-tests-build-spring-boot, User Guide>> for details. - - -[[release-notes-5.9.0-RC1-junit-jupiter]] -=== JUnit Jupiter - -==== Deprecations and Breaking Changes - -* Private lifecycle methods (annotated with `@BeforeAll`, `@AfterAll`, `@BeforeEach`, or - `@AfterEach`) now correctly lead to an exception. Although this is a bug fix, it is - technically also a breaking change since there might be existing user code with - `private` lifecycle methods which will now start to fail. - -==== New Features and Improvements - -* Three new `abort` methods have been added to the `Assumptions` class. These are - analogous to the `fail` methods in the `Assertions` class, but instead of failing they - abort the test or container. -* Support for enabling/disabling tests based on the system's hardware architecture via new - `architectures` attributes in `@EnabledOnOs` and `@DisabledOnOs`. -* Default `@MethodSource` factory methods can now accept arguments. A _default_ factory - method is a method declared in the test class with the same name as the - `@ParameterizedTest` method that is inferred as the factory method when no explicit - factory method is specified in the `@MethodSource` annotation. -* Thread mode can be set on `@Timeout` annotation. It allows to configure whether test - code is executed in the thread of the calling code or in a separate thread. The three - modes are: `INFERRED` (default) which resolves the thread mode configured via the - property `junit.jupiter.execution.timeout.thread.mode.default`, `SAME_THREAD` that - executes the test code in the same thread as the calling code, and `SEPARATE_THREAD` - which executes it in a separate thread. - - -[[release-notes-5.9.0-RC1-junit-vintage]] -=== JUnit Vintage - -No changes. diff --git a/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0.adoc b/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0.adoc index 320a2643e515..06c77728fa2b 100644 --- a/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0.adoc +++ b/documentation/src/docs/asciidoc/release-notes/release-notes-5.9.0.adoc @@ -1,9 +1,20 @@ [[release-notes-5.9.0]] == 5.9.0 -*Date of Release:* ❓ +*Date of Release:* July 26, 2022 -*Scope:* ❓ +*Scope:* + +* XML reports in new https://github.com/ota4j-team/open-test-reporting[Open Test Reporting] +format +* Configurable cleanup mode for `@TempDir` +* Configurable thread mode for `@Timeout` +* Conditional execution based on OS architectures +* New `TestInstancePreConstructCallback` extension API +* Reusable parameter resolution for custom extension methods via `ExecutableInvoker` +* Parameter injection for `@MethodSource` methods +* New `IterationSelector` +* Various improvements to `ConsoleLauncher` For a complete list of all _closed_ issues and pull requests for this release, consult the link:{junit5-repo}+/milestone/62?closed=1+[5.9.0] milestone page in the JUnit repository on @@ -15,15 +26,53 @@ GitHub. ==== Bug Fixes -* ❓ +* Fixed handling of global post-discovery filters that apply to `@Suite` classes. +* Since the Turkish language has special characters such as 'ı' and 'İ', the uppercase + conversion in `DefaultParallelExecutionConfigurationStrategy#getStrategy` previously + caused all tests to finish with exit code -1. This has been fixed by using the root + locale instead of the default one. +* Absolute path entries are now supported in JUnit's Platform Console Launcher on Windows. +* Attempts to load a `Class` for an invalid class name representing an extremely large + multidimensional array now fail within a reasonable amount of time. +* Fix concurrency issue in classpath scanning. ==== Deprecations and Breaking Changes -* ❓ +* `ConfigurationParameters.size()` has been deprecated in favor of the new `keySet()` + method. ==== New Features and Improvements -* ❓ +* Support for the https://github.com/ota4j-team/open-test-reporting[Open Test Reporting] + format which supports all features of the JUnit Platform such as hierarchical test + structures, display names, tags, etc. Please refer to the + <<../user-guide/index.adoc#junit-platform-reporting-open-test-reporting, User Guide>> + for instructions on how to enable such reports in your build. +* `ConfigurationParameters` has a new `keySet()` method which allows you to retrieve all + configuration parameter keys. +* New `IterationSelector` for selecting a subset of a test's or container's iterations. +* `ParallelExecutionConfiguration` allows configuring the `saturate` predicate of the + `ForkJoinPool` used for parallel test execution. +* JUnit OSGi bundles now contain `engine` and `launcher` requirements ensuring that at + resolution time a fully running set of dependencies is calculated, avoiding the need for + these to be manually specified. +* JUnit Platform Standalone Console JAR now also includes the JUnit Platform Suite Engine. +* New `failIfNoTests` attribute added to `@Suite`. This will fail the suite if no tests + are discovered. +* The output color for the `ConsoleLauncher` can now be customized. The option + `--single-color` will apply a built-in monochrome style, while `--color-palette` will + accept a properties file. See the + <<../user-guide/index.adoc#running-tests-console-launcher-color-customization, + User Guide>> for details. +* The default theme for the `ConsoleLauncher` is now determined by the charset reported by + the system console on Java 17 and later. +* New `--list-engines` option added to the `ConsoleLauncher` which displays all registered + test engine implementations. +* Configuring included `EngineFilters` that do not match any registered `TestEngine` + results in an error to avoid misconfiguration – for example, due to typos. +* New public factory method to instantiate an `ExecutionRequest`. +* Documentation for overriding the JUnit version used in Spring Boot applications. See the + <<../user-guide/index.adoc#running-tests-build-spring-boot, User Guide>> for details. [[release-notes-5.9.0-junit-jupiter]] @@ -31,30 +80,67 @@ GitHub. ==== Bug Fixes -* ❓ +* When cleaning up a `@TempDir`, only one retry attempt will be made to delete directories. +* Since the Turkish language has special characters such as 'ı' and 'İ', the uppercase + conversion in `DefaultParallelExecutionConfigurationStrategy#getStrategy` previously + caused all tests to finish with exit code -1. This has been fixed by using the root + locale instead of the default one. ==== Deprecations and Breaking Changes -* ❓ +* `@TempDir` fields are no longer allowed to be declared as `final`. + - This improves diagnostics for failures resulting from a user-declared `static final` + `@TempDir` field by throwing an exception with an informative error message. +* Private lifecycle methods (annotated with `@BeforeAll`, `@AfterAll`, `@BeforeEach`, or + `@AfterEach`) now correctly lead to an exception. Although this is a bug fix, it is + technically also a breaking change since there might be existing user code with + `private` lifecycle methods which will now start to fail. ==== New Features and Improvements +* `@TempDir` now includes a `cleanup` mode attribute for preventing a temporary directory + from being deleted after a test. The default cleanup mode can be configured via a + configuration parameter. +* Support for FreeBSD and OpenBSD operating systems in `@EnabledOnOs` and `@DisabledOnOs`. +* New `MATCH_NONE` mode for `@EnumSource` that selects only those enum constants whose + names match none of the supplied patterns. +* The `@Order` annotation is now a `STABLE` API. +* New `TestInstancePreConstructCallback` extension API that is called prior to test + instance construction – symmetric to the existing `TestInstancePreDestroyCallback` + extension API. +* Extensions can now leverage registered `ParameterResolver` extensions when invoking + methods and constructors via the new `ExecutableInvoker` API available in the + `ExtensionContext`. +* A subset of the invocations of parameterized or dynamic tests can now be selected via + the new `IterationSelector` discovery selector when launching the JUnit Platform. +* `JAVA_19` and `JAVA_20` have been added to the `JRE` enum for use with JRE-based + execution conditions. +* `@MethodSource` factory methods can now accept arguments resolved by registered + `ParameterResolver` extensions. * `AssertionFailureBuilder` allows reusing Jupiter's logic for creating failure messages to assist in writing custom assertion methods. +* Three new `abort` methods have been added to the `Assumptions` class. These are + analogous to the `fail` methods in the `Assertions` class, but instead of failing they + abort the test or container. +* Support for enabling/disabling tests based on the system's hardware architecture via new + `architectures` attributes in `@EnabledOnOs` and `@DisabledOnOs`. +* Default `@MethodSource` factory methods can now accept arguments. A _default_ factory + method is a method declared in the test class with the same name as the + `@ParameterizedTest` method that is inferred as the factory method when no explicit + factory method is specified in the `@MethodSource` annotation. +* Thread mode can be set on `@Timeout` annotation. It allows to configure whether test + code is executed in the thread of the calling code or in a separate thread. The three + modes are: `INFERRED` (default) which resolves the thread mode configured via the + property `junit.jupiter.execution.timeout.thread.mode.default`, `SAME_THREAD` that + executes the test code in the same thread as the calling code, and `SEPARATE_THREAD` + which executes it in a separate thread. [[release-notes-5.9.0-junit-vintage]] === JUnit Vintage -==== Bug Fixes - -* ❓ - -==== Deprecations and Breaking Changes - -* ❓ - ==== New Features and Improvements * More accurate reporting of intermediate start/finish events, e.g. iterations of the - `Parameterized` runner and classes executed indirectly via the `Suite` runner. + `Parameterized` runner and classes executed indirectly via the `Suite` runner, when + running with JUnit 4.13 or later.