<commit_before>The Gradle team is excited to announce Gradle @version@.

This release features [1](), [2](), ... [n](), and more.

<!--
Include only their name, impactful features should be called out separately below.
 [Some person](https://github.com/some-person)

 THIS LIST SHOULD BE ALPHABETIZED BY [PERSON NAME] - the docs:updateContributorsInReleaseNotes task will enforce this ordering, which is case-insensitive.
 The list is rendered as is, so use commas after each contributor's name, and a period at the end.
-->
We would like to thank the following community members for their contributions to this release of Gradle:

[<NAME>](https://github.com/monosoul),
[<NAME>](https://github.com/Vampire),
[<NAME>](https://github.com/cguerreros),
[<NAME>](https://github.com/dmarin),
[<NAME>](https://github.com/bacecek),
[<NAME>](https://github.com/DmitryPogrebnoy),
[<NAME>](https://github.com/nevack),
[<NAME>](https://github.com/eygraber),
[<NAME>](https://github.com/Jeffset),
[<NAME>](https://github.com/gabrielrodriguez2746),
[<NAME>](https://github.com/prasad-333),
[<NAME>](https://github.com/HvB),
[<NAME>](https://github.com/3flex),
[<NAME>](https://github.com/torresmi),
[<NAME>](https://github.com/p1729),
[<NAME>](https://github.com/RicardoJiang),
[<NAME>](https://github.com/SidB3),
[<NAME>](https://github.com/stopley),
[<NAME>](https://github.com/vmmaldonadoz),
[<NAME>](https://github.com/vinaypotluri),
[<NAME>](https://github.com/mathjeff),
[<NAME>](https://github.com/codefish1).

## Upgrade instructions

Switch your build to use Gradle @version@ by updating your wrapper:

`./gradlew wrapper --gradle-version=@version@`

See the [Gradle 7.x upgrade guide](userguide/upgrading_version_7.html#changes_@baseVersion@) to learn about deprecations, breaking changes and other considerations when upgrading to Gradle @version@.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](userguide/compatibility.html).

## New features and usability improvements

<!-- Do not add breaking changes or deprecations here! Add them to the upgrade guide instead. -->

<!--

================== TEMPLATE ==============================

<a name="FILL-IN-KEY-AREA"></a>
### FILL-IN-KEY-AREA improvements

<<<FILL IN CONTEXT FOR KEY AREA>>>
Example:
> The [configuration cache](userguide/configuration_cache.html) improves build performance by caching the result of
> the configuration phase. Using the configuration cache, Gradle can skip the configuration phase entirely when
> nothing that affects the build configuration has changed.

#### FILL-IN-FEATURE
> HIGHLIGHT the usecase or existing problem the feature solves
> EXPLAIN how the new release addresses that problem or use case
> PROVIDE a screenshot or snippet illustrating the new feature, if applicable
> LINK to the full documentation for more details

================== END TEMPLATE ==========================


==========================================================
ADD RELEASE FEATURES BELOW
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -->

#### PMD and CodeNarc tasks execute in parallel by default
The [PMD](userguide/pmd_plugin.html) and [CodeNarc](userguide/codenarc_plugin.html) plugins now use the Gradle worker API and JVM toolchains. These tools now perform analysis via an external worker process and therefore their tasks may now run in parallel within one project.

In Java projects, these tools will use the same version of Java required by the project. In other types of projects, they will use the same version of Java that is used by the Gradle daemon.

#### CodeNarc Plugin automatically detects appropriate version for current Groovy runtime

The [CodeNarc](https://codenarc.org/) project now publishes separate versions for use with Groovy 4.
Gradle still currently ships with Groovy 3.
To ensure future compatibility, the [CodeNarcPlugin](userguide/codenarc_plugin.html) now automatically detects the appropriate version of CodeNarc for the current Groovy runtime.
You can still explicitly specify a CodeNarc version with the `toolVersion` property on the [CodeNarcExtension](dsl/org.gradle.api.plugins.quality.CodeNarcExtension.html#org.gradle.api.plugins.quality.CodeNarcExtension).

#### Introduced `projectInternalView()` dependency for test suites with access to project internals
The [JVM test suite](userguide/jvm_test_suite_plugin.html) `dependencies` block now
supports depending on the internal view of the current project at compile-time.
Previously it was only possible to depend on the current project's API. This allows
test suites to access project internals that are not declared on
the `api` or `compileOnlyApi` configurations. This functionality can be useful when
testing internal classes that use dependencies which are not exposed as part of a
project's API, like those declared on the `implementation` and `compileOnly` configurations.<commit_msg>Mention warning mode changes in reelase notes<commit_after>The Gradle team is excited to announce Gradle @version@.

This release features [1](), [2](), ... [n](), and more.

<!--
Include only their name, impactful features should be called out separately below.
 [Some person](https://github.com/some-person)

 THIS LIST SHOULD BE ALPHABETIZED BY [PERSON NAME] - the docs:updateContributorsInReleaseNotes task will enforce this ordering, which is case-insensitive.
 The list is rendered as is, so use commas after each contributor's name, and a period at the end.
-->
We would like to thank the following community members for their contributions to this release of Gradle:

[<NAME>](https://github.com/monosoul),
[<NAME>](https://github.com/Vampire),
[<NAME>](https://github.com/cguerreros),
[<NAME>](https://github.com/dmarin),
[<NAME>](https://github.com/bacecek),
[<NAME>](https://github.com/DmitryPogrebnoy),
[<NAME>](https://github.com/nevack),
[<NAME>](https://github.com/eygraber),
[<NAME>](https://github.com/Jeffset),
[<NAME>](https://github.com/gabrielrodriguez2746),
[<NAME>](https://github.com/prasad-333),
[<NAME>](https://github.com/HvB),
[<NAME>](https://github.com/3flex),
[<NAME>](https://github.com/torresmi),
[<NAME>](https://github.com/p1729),
[<NAME>](https://github.com/RicardoJiang),
[<NAME>](https://github.com/SidB3),
[<NAME>](https://github.com/stopley),
[<NAME>](https://github.com/vmmaldonadoz),
[<NAME>](https://github.com/vinaypotluri),
[<NAME>](https://github.com/mathjeff),
[<NAME>](https://github.com/codefish1).

## Upgrade instructions

Switch your build to use Gradle @version@ by updating your wrapper:

`./gradlew wrapper --gradle-version=@version@`

See the [Gradle 7.x upgrade guide](userguide/upgrading_version_7.html#changes_@baseVersion@) to learn about deprecations, breaking changes and other considerations when upgrading to Gradle @version@.

For Java, Groovy, Kotlin and Android compatibility, see the [full compatibility notes](userguide/compatibility.html).

## New features and usability improvements

<!-- Do not add breaking changes or deprecations here! Add them to the upgrade guide instead. -->

<!--

================== TEMPLATE ==============================

<a name="FILL-IN-KEY-AREA"></a>
### FILL-IN-KEY-AREA improvements

<<<FILL IN CONTEXT FOR KEY AREA>>>
Example:
> The [configuration cache](userguide/configuration_cache.html) improves build performance by caching the result of
> the configuration phase. Using the configuration cache, Gradle can skip the configuration phase entirely when
> nothing that affects the build configuration has changed.

#### FILL-IN-FEATURE
> HIGHLIGHT the usecase or existing problem the feature solves
> EXPLAIN how the new release addresses that problem or use case
> PROVIDE a screenshot or snippet illustrating the new feature, if applicable
> LINK to the full documentation for more details

================== END TEMPLATE ==========================


==========================================================
ADD RELEASE FEATURES BELOW
vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv -->

#### Warning modes `all` and `fail` are more verbose

Warning modes that are supposed to print all warnings were printing only one for each specific warning message.
If there were two warnings with the same message, but originating from different steps of the build process (i.e. different stack traces), only one of them was printed. 
Now one gets printed for each combination of message and stack trace.

#### PMD and CodeNarc tasks execute in parallel by default
The [PMD](userguide/pmd_plugin.html) and [CodeNarc](userguide/codenarc_plugin.html) plugins now use the Gradle worker API and JVM toolchains. These tools now perform analysis via an external worker process and therefore their tasks may now run in parallel within one project.

In Java projects, these tools will use the same version of Java required by the project. In other types of projects, they will use the same version of Java that is used by the Gradle daemon.

#### CodeNarc Plugin automatically detects appropriate version for current Groovy runtime

The [CodeNarc](https://codenarc.org/) project now publishes separate versions for use with Groovy 4.
Gradle still currently ships with Groovy 3.
To ensure future compatibility, the [CodeNarcPlugin](userguide/codenarc_plugin.html) now automatically detects the appropriate version of CodeNarc for the current Groovy runtime.
You can still explicitly specify a CodeNarc version with the `toolVersion` property on the [CodeNarcExtension](dsl/org.gradle.api.plugins.quality.CodeNarcExtension.html#org.gradle.api.plugins.quality.CodeNarcExtension).

#### Introduced `projectInternalView()` dependency for test suites with access to project internals
The [JVM test suite](userguide/jvm_test_suite_plugin.html) `dependencies` block now
supports depending on the internal view of the current project at compile-time.
Previously it was only possible to depend on the current project's API. This allows
test suites to access project internals that are not declared on
the `api` or `compileOnlyApi` configurations. This functionality can be useful when
testing internal classes that use dependencies which are not exposed as part of a
project's API, like those declared on the `implementation` and `compileOnly` configurations.
{'fraction_non_alphanumeric': 0.13261229659943485, 'fraction_numerical': 0.00389749585891065, 'mean_word_length': 5.604890604890605, 'pattern_counts': {'":': 0, '<': 63, '<?xml version=': 0, '>': 77, 'https://': 48, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 2, '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': '241292', 'n_tokens_mistral': 2917, 'n_tokens_neox': 2840, 'n_words': 1077}