<commit_before>[[release-notes-5.7.0-M2]]
== 5.7.0-M2

*Date of Release:* ❓

*Scope:* ❓

For a complete list of all _closed_ issues and pull requests for this release, consult the
link:{junit5-repo}+/milestone/49?closed=1+[5.7 M2] milestone page in the JUnit repository
on GitHub.


[[release-notes-5.7.0-M2-overall-improvements]]
=== Overall Improvements

* Javadoc JARs now contain `package-list` in addition to `element-list` for compatibility
  with tools like NetBeans 11.


[[release-notes-5.7.0-M2-junit-platform]]
=== JUnit Platform

==== Promoted Features

* The following APIs have been promoted from "experimental":
  - `LauncherConstants` is now "stable"
  - `LauncherConfig` (except for methods introduced in 5.7) is now "stable"
  - `LegacyXmlReportGeneratingListener` is now "stable"
  - `org.junit.platform.testkit.engine` is now "maintained"

==== Bug Fixes

* Characters in exception messages and other user-supplied values that are not allowed in
  XML are now replaced with their character reference – for example, `\0` becomes `&#0;`.

==== Deprecations and Breaking Changes

* `EngineTestKit` no longer takes into account implicit configuration parameters (i.e.
  system properties and the `junit-platform.properties` classpath resource) by default.
  This change makes tests executed via `EngineTestKit` independent of the environment they
  are executed in.

==== New Features and Improvements

* When using `ConsoleLauncher`, explicitly selected classes from `--select-class` and
  `--select-method` are now always executed regardless of class name patterns provided
  with `--include-classname` or the default class name pattern.
* The `ConsoleLauncher` now honors the `--disable-ansi-colors` option when printing usage
  help.
* New `FilePosition` support in `FileSelector` and `ClasspathResourceSelector`.
* Custom `PostDiscoveryFilter` implementations can now be registered via Java’s
  `ServiceLoader` mechanism.
* New `getJavaClass()` and `getJavaMethod()` methods in
  `org.junit.platform.engine.support.descriptor.MethodSource`.
* New module `org.junit.platform.jfr` added. When running on Java 11 or later, it
  provides and registers a `TestExecutionListener` that generates Java Flight Recorder
  events.
* `ExecutionRecorder` in junit-platform-testkit is now public for fine-grained testing of
  classes that use `EngineExecutionListener`.
* `ForkJoinPoolHierarchicalTestExecutorService` can now be constructed by supplying a
  `ParallelExecutionConfiguration`.

[[release-notes-5.7.0-M2-junit-jupiter]]
=== JUnit Jupiter

==== Promoted Features

* The following APIs have been promoted from "experimental" to "stable":
  - `junit-jupiter-migrationsupport`
  - `junit-jupiter-params` (i.e. `@ParameterizedTest` etc.)
  - `@TestMethodOrder`, `MethodOrderer`, and its pre-5.7 implementations
  - `@DisplayNameGeneration`, `DisplayNameGenerator`, and its pre-5.7 implementations
  - `@Timeout`
  - `TestInstanceFactory`
  - `TestInstancePreDestroyCallback`
  - `TestInstances` and corresponding `ExtensionContext` methods
  - `TestWatcher`
  - Kotlin-specific assertions that were introduced in 5.1

==== Bug Fixes

* Registered `TestInstancePreDestroyCallback` extensions are now always called if an
  instance of a test class was created, regardless whether any registered
  `TestInstancePostProcessor` extension threw an exception.
* Disabled `@TestTemplate` methods (e.g. `@ParameterizedTest` and `@RepeatedTest` methods)
  are now reported to registered `TestWatcher` extensions.
* Inherited @BeforeEach methods are now executed on correct instances for @Nested classes.

==== Deprecations and Breaking Changes

* `MethodOrderer.Alphanumeric` has been deprecated in favor of `MethodOrderer.MethodName`
  which provides the exact same functionality but has a more descriptive name.

==== New Features and Improvements

* All `@Enabled*`/`@Disabled*` annotations now have an optional `disabledReason` attribute
  that can be used to provide and additional explanation as to why a test or container
  might be disabled.
* New `assertLinesMatch()` method overloads in `Assertions` that accept two
  `Stream<String>` instances for comparison.
* `@CsvFileSource` now allows one to specify file paths as an alternative to classpath
  resources.
* New `junit.jupiter.testmethod.order.default` configuration parameter to set the default
  `MethodOrderer` that will be used unless `@TestMethodOrder` is present.
* `JAVA_16` has been added to the `JRE` enum for use with JRE-based execution conditions.
* Add `MethodOrderer.MethodName` to replace `MethodOrderer.Alphanumeric` with the exact
  same functionality but a more descriptive name.
* `assertTimeoutPreemptively` in `Assertions` now reports the stacktrace of the timed out
  thread in the cause of the `AssertionFailedError`.
* `assertTimeoutPreemptively` now uses threads with a specific name, conveying their use
  by the framework, to facilitate debugging and stack trace analysis.
* New `TypedArgumentConverter` for converting one specific type to another, therefore
  reducing boilerplate type checks compared to implementing `ArgumentConverter` directly.
* Added `ExtensionContext.getConfigurationParameter(String, Function<String, T>)`
  convenience method for reading transformed configuration parameters from extensions.
* Arguments in display names of parameterized test invocations are now truncated if
  they exceed a configurable maximum length (defaults to 512 characters).

[[release-notes-5.7.0-M2-junit-vintage]]
=== JUnit Vintage

==== Bug Fixes

* ❓

==== Deprecations and Breaking Changes<commit_msg>Polish 5.7 M2 release notes<commit_after>[[release-notes-5.7.0-M2]]
== 5.7.0-M2

*Date of Release:* ❓

*Scope:* ❓

For a complete list of all _closed_ issues and pull requests for this release, consult the
link:{junit5-repo}+/milestone/49?closed=1+[5.7 M2] milestone page in the JUnit repository
on GitHub.


[[release-notes-5.7.0-M2-overall-improvements]]
=== Overall Improvements

* Javadoc JARs now contain `package-list` in addition to `element-list` for compatibility
  with tools like NetBeans 11.


[[release-notes-5.7.0-M2-junit-platform]]
=== JUnit Platform

==== Promoted Features

* The following APIs have been promoted from "experimental":
  - `LauncherConstants` is now "stable"
  - `LauncherConfig` (except for methods introduced in 5.7) is now "stable"
  - `LegacyXmlReportGeneratingListener` is now "stable"
  - `org.junit.platform.testkit.engine` is now "maintained"

==== Bug Fixes

* Characters in exception messages and other user-supplied values that are not allowed in
  XML are now replaced with their character reference – for example, `\0` becomes `&#0;`.

==== Deprecations and Breaking Changes

* `EngineTestKit` no longer takes into account implicit configuration parameters (i.e.
  system properties and the `junit-platform.properties` classpath resource) by default.
  This change makes tests executed via `EngineTestKit` independent of the environment they
  are executed in.

==== New Features and Improvements

* When using `ConsoleLauncher`, explicitly selected classes from `--select-class` and
  `--select-method` are now always executed regardless of class name patterns provided
  with `--include-classname` or the default class name pattern.
* The `ConsoleLauncher` now honors the `--disable-ansi-colors` option when printing usage
  help.
* New `FilePosition` support in `FileSelector` and `ClasspathResourceSelector`.
* Custom `PostDiscoveryFilter` implementations can now be registered via Java’s
  `ServiceLoader` mechanism.
* New `getJavaClass()` and `getJavaMethod()` methods in
  `org.junit.platform.engine.support.descriptor.MethodSource`.
* New module `org.junit.platform.jfr` added. When running on Java 11 or later, it
  provides and registers a `TestExecutionListener` that generates Java Flight Recorder
  events.
* `ExecutionRecorder` in junit-platform-testkit is now public for fine-grained testing of
  classes that use `EngineExecutionListener`.
* `ForkJoinPoolHierarchicalTestExecutorService` can now be constructed by supplying a
  `ParallelExecutionConfiguration`.


[[release-notes-5.7.0-M2-junit-jupiter]]
=== JUnit Jupiter

==== Promoted Features

* The following APIs have been promoted from "experimental" to "stable":
  - `junit-jupiter-migrationsupport`
  - `junit-jupiter-params` (i.e. `@ParameterizedTest` etc.)
  - `@TestMethodOrder`, `MethodOrderer`, and its pre-5.7 implementations
  - `@DisplayNameGeneration`, `DisplayNameGenerator`, and its pre-5.7 implementations
  - `@Timeout`
  - `TestInstanceFactory`
  - `TestInstancePreDestroyCallback`
  - `TestInstances` and corresponding `ExtensionContext` methods
  - `TestWatcher`
  - Kotlin-specific assertions that were introduced in 5.1

==== Bug Fixes

* Registered `TestInstancePreDestroyCallback` extensions are now always called if an
  instance of a test class was created, regardless whether any registered
  `TestInstancePostProcessor` extension threw an exception.
* Disabled `@TestTemplate` methods (e.g. `@ParameterizedTest` and `@RepeatedTest` methods)
  are now reported to registered `TestWatcher` extensions.
* Inherited `@BeforeEach` methods are now executed on correct instances for `@Nested`
  classes.

==== Deprecations and Breaking Changes

* `MethodOrderer.Alphanumeric` has been deprecated in favor of `MethodOrderer.MethodName`
  which provides the exact same functionality but has a more descriptive name.

==== New Features and Improvements

* New `assertLinesMatch()` method overloads in `Assertions` that accept two
  `Stream<String>` instances for comparison.
* `assertTimeoutPreemptively()` in `Assertions` now reports the stack trace of the timed
  out thread in the cause of the `AssertionFailedError`.
* `assertTimeoutPreemptively()` now uses threads with a specific name, conveying their use
  by the framework, to facilitate debugging and stack trace analysis.
* All `@Enabled*`/`@Disabled*` annotations now have an optional `disabledReason` attribute
  that can be used to provide and additional explanation as to why a test or container
  might be disabled.
* `JAVA_16` has been added to the `JRE` enum for use with JRE-based execution conditions.
* New `MethodOrderer.MethodName` to replace `MethodOrderer.Alphanumeric` with the exact
  same functionality but a more descriptive name.
* New `junit.jupiter.testmethod.order.default` configuration parameter to set the default
  `MethodOrderer` that will be used unless `@TestMethodOrder` is present.
* `@CsvFileSource` now allows one to specify file paths as an alternative to classpath
  resources.
* Arguments in display names of parameterized test invocations are now truncated if
  they exceed a configurable maximum length (defaults to 512 characters).
* New `TypedArgumentConverter` for converting one specific type to another, therefore
  reducing boilerplate type checks compared to implementing `ArgumentConverter` directly.
* New `ExtensionContext.getConfigurationParameter(String, Function<String, T>)`
  convenience method for reading transformed configuration parameters from extensions.


[[release-notes-5.7.0-M2-junit-vintage]]
=== JUnit Vintage

==== Bug Fixes

* ❓

==== Deprecations and Breaking Changes
{'fraction_non_alphanumeric': 0.08783483136068346, 'fraction_numerical': 0.00916614754827801, 'mean_word_length': 5.05822102425876, 'pattern_counts': {'":': 4, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7591780', 'n_tokens_mistral': 3117, 'n_tokens_neox': 3012, 'n_words': 1210}