anchor.diff:  
   ==== New Features and Improvements
   
  -* Provide JARs with OSGi metadata.
   * `TestExecutionSummary.Failure` is now serializable.
   * `ReflectionSupport.findNestedClasses(...)` now detects cycles within inner class
     hierarchies. Consult the Javadoc for details.
  
positive.code: For a complete list of all _closed_ issues and pull requests for this release, consult the
  link:{junit5-repo}+/milestone/45️?closed=1+[5.6 M2️] milestone page in the JUnit repository
  on GitHub.
  
  
  [[release-notes-5.6.0-M2️-junit-platform]]
  
negative.code: 
  ==== New Features and Improvements
  
  * `@EnabledIfEnvironmentVariable`, `@DisabledIfEnvironmentVariable`,
    `@EnabledIfSystemProperty`, and `@DisabledIfSystemProperty` may now be used as
    _repeatable_ annotations. In other words, it is now possible to declare each of those
    annotations multiple times on a test interface, test class, or test method.
  * Discovery of `@Nested` test classes that form a cycle now results in an exception that
    halts execution of the JUnit Jupiter test engine instead of infinite recursion.
  * Parameter names are now included in the default display name of a `@ParameterizedTest`
    invocation (if they are present in the bytecode). The `{argumentsWithNames}` pattern
    can also be used in custom names.
  * New `TestInstancePreDestroyCallback` interface that defines the API for `Extension`
    that wish to process test instances *after* they have been used in tests and *before*
    they are destroyed.
  * `InvocationInterceptor` extensions may now explicitly `skip()` an intercepted
    invocation. This allows executing it by other means, e.g. in a forked JVM.
  
  
  [[release-notes-5.6.0-M2️-junit-vintage]]
  