Latest release

4.9

@eriwen eriwen released this Jul 16, 2018 · 1 commit to release since this release

The Gradle team is pleased to announce Gradle 4.9.

First, publishing tools get some more love: projects that publish auxiliary publications (e.g. test fixtures) through maven-publish and ivy-publish can now be depended upon by other projects in the same build. There is also a new Publishing Overview chapter in the user manual and updates throughout the documentation regarding publishing artifacts using Maven and Ivy.

In addition to lazy tasks use, Kotlin DSL build scripts are evaluated faster with version 0.18.4, included in this version of Gradle. IntelliJ IDEA and Android Studio user experience is also improved.
See details in the Kotlin DSL v0.18.x release notes.

You can now pass arguments to JavaExec tasks directly from the command-line using --args:

❯ gradle run --args 'foo --bar'

No more need to hard-code arguments in your build scripts. Consult the documentation for the Application Plugin for more information.

Last but not least, this version of Gradle has an improved dependency insight report. Read the details further on.

We hope you will build happiness with Gradle 4.9, and we look forward to your feedback via Twitter or on GitHub.

Upgrade Instructions

Switch your build to use Gradle 4.9 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=4.9

Standalone downloads are available at gradle.org/install.

Pre-release

4.9 RC2

@bigdaz bigdaz released this Jul 11, 2018 · 423 commits to master since this release

This release candidate contains fixes for the following issues reported against 4.9 RC1:

  • #5925 Resolution result ordering is non-deterministic in the presence of capability conflicts
  • #5909 Ignore dependency locking during build dependency resolution phase
  • #5856 Emit build operations for early executed artifact transforms
  • #5876 Console sometimes shows WAITING as the build status just prior to starting task execution
  • #5871 Composite builds Kotlin DSL sample hangs with 4.9-rc-1
  • #5848 NPE during incremental annotations processing with error-prone plugin
  • #5882 Cannot inject a RepositoryResourceAccessor for flatdir repositories
  • #5853 Allow ProjectBuilder tests when classpath contains relative paths

Check the release notes for more information. If no regressions are reported, a final release will follow on Monday, July 16th.

Upgrade Instructions

Switch your build to use Gradle 4.9 RC2 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=4.9-rc-2

Standalone downloads are available at https://gradle.org/release-candidate/.

Reporting Problems

If you find a problem with Gradle 4.9 RC2, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

Pre-release

4.9 RC1

@lacasseio lacasseio released this Jul 3, 2018 · 452 commits to master since this release

The Gradle team is pleased to announce Gradle 4.9 RC1.

First and foremost, this version of Gradle features experimental new lazy task API.
In a nutshell, the new API allows builds to avoid the cost of creating and configuring tasks during Gradle's configuration phase when those tasks will never be executed.
This makes every Gradle invocation faster, including IDE syncs.

Gradle projects that have adopted these new APIs have seen 10-15% faster configuration times. This chart shows the performance impact for a few projects.

lazy task perf chart

You will see configuration times reduced more and more as Gradle tasks are converted to use them.
Gradle task and plugin authors: we need your feedback on this new API!
Please read the documentation, try it out in non-production environments, and file issues on GitHub or discuss on the forum.

Next, publishing tools get some more love: projects that publish auxiliary publications (e.g. test fixtures) through maven-publish and ivy-publish can now be depended upon by other projects in the same build.
There is also a new Publishing Overview chapter in the user manual and updates throughout the documentation regarding publishing artifacts using Maven and Ivy.

In addition to lazy tasks use, Kotlin DSL build scripts are evaluated faster with version 0.18.4, included in this version of Gradle.
IntelliJ IDEA and Android Studio user experience is also improved.
See details in the Kotlin DSL v0.18.x release notes.

You can now pass arguments to JavaExec tasks directly from the command-line using --args:

❯ gradle run --args 'foo --bar'

No more need to hard-code arguments in your build scripts.
Consult the documentation for the Application Plugin for more information.

Last but not least, this version of Gradle has an improved dependency insight report. Read the details further on.

We hope you will build happiness with Gradle 4.9, and we look forward to your feedback via Twitter or on GitHub.

Upgrade Instructions

Switch your build to use Gradle 4.9 RC1 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=4.9-rc-1

Standalone downloads are available at gradle.org/release-candidate.

4.8.1

@donat donat released this Jun 21, 2018 · 1135 commits to master since this release

This bug-fix release addresses 6 regressions in Gradle 4.8:

  • #5740: Maven Central dropped support for older TLS implementations. This makes the dependency resolution fail if the Gradle build runs on JDK 7.
  • #5701: Gradle 4.8 broke compatibility with the artifactory and bintray publishing plugins.
  • #5708: Gradle 4.8 sometimes fails with ConcurrentModificationException when project.tasks.withType() is used.
  • #5729: The dependency resolution engine sometimes fails with "Unexpected parent dependency" message, which became more apparent in Gradle 4.8.
  • #5722: Gradle 4.8 broke the ability of the SourceSet to override the compile tasks' destination directory.
  • #5692: Gradle 4.8 doesn't consider versions equal when using dependencySubstitution and failOnVersionConflict.

Upgrade Instructions

Switch your build to use Gradle 4.8.1 by updating your wrapper properties:

./gradlew wrapper --gradle-version=4.8.1

Standalone downloads are available at https://gradle.org/install.

Reporting Problems

If you find a problem with Gradle 4.8.1, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

4.8

@lacasseio lacasseio released this Jun 4, 2018 · 1149 commits to master since this release

The Gradle team is pleased to announce Gradle 4.8.

First and foremost, this release of Gradle features dependency locking: a mechanism for locking dependency versions which allows builds to become reproducible in the face of dynamic versions or version ranges.
Read the user manual chapter on dependency locking to learn how to take advantage of this exciting new feature.

The publishing plugins get some highly-anticipated improvements in this release:

The maven-publish and ivy-publish plugins are now considered stable and use of the maven plugin is discouraged as it will eventually be deprecated — please migrate.

User experience for incremental annotation processing is improved.
Compilation will no longer fail when a processor does something that Gradle detects will not work incrementally.
Unused non-incremental processors no longer prevent incremental compilation.
Finally, annotation processors are now able to decide dynamically if they are incremental or not.
This allows processors with extension mechanisms to check extensions for incrementality before enabling incremental annotation processing.

New native plugins continue to improve with better control over system include path for native compilation and other improvements.

Gradle 4.8 includes Kotlin DSL 0.17.5, bringing the latest Kotlin 1.2.41 release and many improvements to the user experience including location aware runtime error reporting, convenient configuration of nested extensions, faster and leaner configuration time, and TestKit support.
At the same time the IntelliJ IDEA Kotlin Plugin fixed many long standing build script editing related issues.
See details and examples in the Kotlin DSL v0.17 release notes.

We hope you build happiness with Gradle 4.8, and we look forward to your feedback via Twitter or on GitHub.

Upgrade instructions

Switch your build to use Gradle 4.8 quickly by updating your wrapper properties:

gradle wrapper --gradle-version=4.8

Standalone downloads are available at gradle.org/releases.

Reporting Problems

If you find a problem with Gradle 4.8, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

Pre-release

4.8 RC3

@donat donat released this May 31, 2018 · 1151 commits to master since this release

This release candidate contains fixes for the following issues reported against 4.8 RC2:

  • #5570 Revert behavior around task removal from the container
  • #5564 Nag users only once about stable_publishing flag
  • #5550 Put DeferredConfigurable back in place
  • #5552 Do not run the action provided to tasks.all() more than once

Check the release notes for more information. If no regressions are reported, a final release will follow on Monday, June 4th.

Upgrade Instructions

Switch your build to use Gradle 4.8 RC3 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=4.8-rc-3

Standalone downloads are available at https://gradle.org/release-candidate/.

Reporting Problems

If you find a problem with Gradle 4.8 RC3, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

Pre-release

4.8 RC2

@donat donat released this May 24, 2018 · 1165 commits to master since this release

This release candidate contains fixes for the following issues reported against 4.8 RC1:

  • #5413 Dependency locking does not work with unique SNAPSHOT modules
  • #5415 FinalizedBy ordering rule is not enforced in Gradle 4.8-rc-1
  • #5424 Gradle 4.8-rc-1 does not allow abbreviations of model rule based tasks
  • #5448 Annotation processing heavily fails builds with Gradle 4.8+ comparing to 4.7
  • #5450 GRADLE_METADATA feature preview: task generateMetadataFileForMyIvyPublication failed with NullPointerException
  • #5497 4.8 RC1 breaks Dagger (and possibly other processors)
  • #5494 Dependency locking not taken in account for configurations without dependencies

Check the release notes for more information. If no regressions are reported, a final release will follow on Tuesday, May 29th.

Upgrade Instructions

Switch your build to use Gradle 4.8 RC2 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=4.8-rc-2

Standalone downloads are available at https://gradle.org/release-candidate/.

Reporting Problems

If you find a problem with Gradle 4.8 RC2, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

Pre-release

4.8 RC1

@marcphilipp marcphilipp released this May 15, 2018 · 1193 commits to master since this release

The Gradle team is pleased to announce Gradle 4.8 RC1.

First and foremost, this release of Gradle features dependency locking: a mechanism for locking dependency versions which allows builds to become reproducible in the face of dynamic versions or version ranges. Read the user manual chapter on dependency locking to learn how to take advantage of this exciting new feature.

The publishing plugins get some much-needed improvements in this release:

The maven-publish and ivy-publish plugins are now considered stable and use of the maven plugin is discouraged as it will eventually be deprecated — please migrate.

User experience for incremental annotation processing is improved. Compilation will no longer fail when a processor does something that Gradle detects will not work incrementally. Unused non-incremental processors no longer prevent incremental compilation. Finally, annotation processors are now able to decide dynamically if they are incremental or not. This allows processors with extension mechanisms to check extensions for incrementality before enabling incremental annotation processing.

New native plugins continue to improve with better control over system include path for native compilation and other improvements.

This release introduces 2 new APIs that facilitate configuring tasks at creation time: APIs to create tasks with constructor arguments and immutable file collections.

Gradle 4.8 includes Kotlin DSL 0.17.4 bringing the latest Kotlin 1.2.41 release and many improvements to the user experience including location aware runtime error reporting, convenient configuration of nested extensions, faster and leaner configuration time and TestKit support. At the same time the IntelliJ IDEA Kotlin Plugin fixed many long standing build script editing related issues. See details and examples in the Kotlin DSL v0.17 release notes.

We hope you build happiness with Gradle 4.8, and we look forward to your feedback via Twitter or on GitHub.

Upgrade Instructions

Switch your build to use Gradle 4.8 RC1 quickly by updating your wrapper properties:

gradle wrapper --gradle-version=4.8-rc-1

Standalone downloads are available at gradle.org/release-candidate.

Reporting Problems

If you find a problem with Gradle 4.8 RC1, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

4.7

@marcphilipp marcphilipp released this Apr 18, 2018 · 1767 commits to release since this release

The Gradle team is pleased to announce Gradle 4.7.

First and foremost, Gradle's incremental Java compiler can now run annotation processing incrementally. No user-facing configuration is necessary, but processor authors need to opt-in. We request annotation processor authors read the documentation for this feature and contact the Gradle team via the forum for assistance.

Java enthusiasts will be happy to read that this release supports running Gradle builds with JDK 10.

Gradle log output is now grouped by task for non-interactive executions, making interleaved logs a thing of the past on CI. It also enables build scan plugin v1.13 to show logs per task:

buildscan

Moving on to other areas of user experience: running tests is further improved as failed tests now run first. Together with the --fail-fast option it provides the quickest possible feedback loop.

This release introduces an incubating new capability for Kotlin DSL users: precompiled script plugins. This means that you can create a Kotlin DSL script within a regular Kotlin source set and get the benefits of binary plugins. For example, src/main/kotlin/nyan.gradle.kts could be used as plugins { id("nyan") }.

Kotlin DSL v0.16 also includes Kotlin 1.2.31, a more consistent API, better IDE support, and more. See details and examples in the Kotlin DSL v0.16 release notes.

We hope you will build happiness with Gradle 4.7, and we look forward to your feedback via Twitter or on GitHub.

Upgrade Instructions

Switch your build to use Gradle 4.7 quickly by updating your wrapper properties:

gradle wrapper --gradle-version=4.7

Standalone downloads are available at gradle.org/releases.

Reporting Problems

If you find a problem with Gradle 4.7, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.

Pre-release

4.7 RC2

@ghale ghale released this Apr 13, 2018 · 2189 commits to master since this release

Gradle 4.7 RC2 is now available for testing

This release candidate contains fixes for the following issues reported against 4.7 RC1:

  • #4973 NPE starting the daemon with 4.7-rc-1, Java 10 and user locale without a region
  • #2635 Output of exec/javaexec tasks can sometimes be lost

Check the release notes for more information. If no regressions are reported, a final release will follow on Wednesday, April 18th.

Upgrade Instructions

Switch your build to use Gradle 4.7 RC2 quickly by updating your wrapper properties:

./gradlew wrapper --gradle-version=4.7-rc-2

Standalone downloads are available at https://gradle.org/release-candidate/.

Reporting Problems

If you find a problem with Gradle 4.7 RC2, please file a bug on GitHub Issues adhering to our issue guidelines. If you're not sure you're encountering a bug, please use the forum.