CurioStack 0.8.0
This is a significant release that raises the version floors to Java 16 and Gradle 7. In addition, Bintray is completely removed and all artifacts are published to either Maven Central or Gradle Plugin Portal. Read these notes in detail as there are some steps you'll need to take to accommodate these.
Before upgrading, it is recommended to run your build with --scan
and check the Gradle Build Scan report for usages of Gradle deprecations in your code. Update them to not use deprecated patterns. You don't have to worry about deprecations issued from gradle-curiostack-plugin
components as they will be resolved when upgrading.
To allow Spotless to run on Java 16, you need to make sure to add --add-exports
as here. This will not be needed after diffplug/spotless#834 is addressed.
In addition, the License plugin that was previously used has been replaced by Spotless as it was not maintained for Gradle 7 support. The license configuration has changed somewhat, generally increasing coverage to files like Typescript. This means you will first want to run ./gradlew spotlessApply
to generate a large diff with the license changes. Unfortunately, spotless is not as sophisticated as the previous license plugin, so it does not parse the files - instead it just looks for a header line and assumes everything above it is supposed to be license. The definitions of headers is here
A best effort on recognizing the top of a file is made but it may not always work. All languages support a comment line such as // End License
to use as a last resort to prevent code under that line from being replaced with a license. In the case you have a file with two licenses, perhaps since it was copied from another project, it is recommended to use // Includes work from:
instead above the copied license.
Improvements
- Build language is now Java 16. Enjoy using
record
s, thoughImmutabes
is still preferred if a class needs to be serialized to JSON for now. - Gradle 7 support
- A Pulumi plugin for creating GPG keys (useful for signing Maven artifacts)
Breaking Changes
- License plugin has been replaced with Spotless. See above notes on how this may affect you
In addition, you may be interested in how we are managing Maven credentials and signing keys using Pulumi (the same can be done with Terraform).
https://github.com/curioswitch/curiostack/blob/master/cluster/pulumi/github/curiostack/index.ts#L66