Release notes

Features

  • #140 - Make grolifant tasks configuration cache-safe.

  • #141 - XZ, MSI & DMG are provided as separate SPIs.

  • #146 - Add provideValues(Provider), providesValuesDropNull(Map), provideValuesDropNull(Provider), stringizeValuesDropNull(Map) methods.

  • #152 - Add ability to control output to ProvisionedExecMethods.

  • #153 - Allow role-focused configurations to be marked visible or invisible.

  • #154 - StringTools.patternize is not compatible with configuration cache.

  • #156 - Make Transform utility public.

  • #157 - Add conversion tools for byte arrays.

Bugs

  • #145 - Fix ExecTools on Gradle 7.x.

  • #147 - Make ProvisionedExecMethods CC-safe.

  • #148 - Make ProviderTools.getVersionProvider CC-safe.

  • #149 - Only update versionProvider in afterEvaluate if the subproject has the plugin applied.

  • #150 - Forward output in JVM processes even if there is an error.

  • #151 - API docs are incorrectly linked in index.

Breaking changes

  • Support for Gradle 4,5,6 dropped.

  • Top-level package is now called org.ysb33r.grolifant5. When upgrading to this, please rename all org.ysb33r.grolifant to the new package name.

  • All methods in ProjectOperations that were deprecated in v.x or earlier have been removed.

  • All task classes now implement GrolifantTaskComponents and direct ProjectOperations access is now not allowed within a task. Methods from GrolifantTaskComponents should be used. This can be achieved by extending GrilfantDefaultTask instead of DefaultTask. Alternatively GrolifantTaskComponents.from can be used to create an instance to be placed within a task.

  • ProvisionedExecMethods.getProjectOperations has been dropped in favour of ProvisionedExecMethods.getConfigCacheSafeOperations.

  • All exec methods on ProvisionedExecMethods and ExecMethods now return Grolifant’s ExecOutput instead of Gradle’s ExecResult.

  • It is now longer possible to set streams on ProcessExecutionSpec. Use new methods forwardOutput, forwardErrorOutput and afterExecute instead.

  • xz, dmg and msi are no longer supported out of the box. Only .gz, .bz2, .zip, .tar, .tar.bz2, and tar.gzip is supported in core. Implementors that require these formats should place the appropriate grolifant5-unpacker-<EXT> on the runtimn classpath of their plugins. Adding grolifant5-unpacker-xz as a runtime dependency will support .tar.xz as well.

  • Adds an extension called grolifantOps rather than grolifant.

  • SimplePasswordCredentials now implements org.gradle.api.credentials.PasswordCredentials, rather than org.gradle.api.artifacts.repositories.PasswordCredentials. If you need the latter then use SimpleRepositoryCredentials. You can convert from SimplePasswordCredentials to SimpleRepositoryCredentials using the asRepositoryCredentials method.