Skip to content

Releases: curioswitch/curiostack

CurioStack 0.9.1

14 Mar 04:09
af1a449
Compare
Choose a tag to compare

This release upgrades the build JDK to Java 17. The target Java for built artifacts is still currently Java 16 but will likely be raised in the next release. It also finally removes all references to jcenter from builds.

google-java-format has been raised and will likely require applying changes with ./gradlew spotlessApply after upgrading.

Java containers are now published to ghcr instead of docker hub.

  • ghcr.io/curioswitch/cloud-builder
  • ghcr.io/curioswitch/java-cloud-runner:java11 (and :java16)

CurioServerPlugin has been updated to reference the new location for java-cloud-runner.

Several other dependencies have been upgraded across minor versions with the intent of not requiring changes to codebases to update. A future release will likely include breaking changes to projects using the gradle jooq plugin at the least.

CurioStack 0.8.0

18 May 04:56
Compare
Choose a tag to compare

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

https://github.com/curioswitch/curiostack/blob/master/tools/gradle-plugins/gradle-curiostack-plugin/src/main/java/org/curioswitch/gradle/plugins/curiostack/CuriostackRootPlugin.java#L774

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 records, though Immutabes 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

CurioStack 0.7.4

24 Apr 06:19
Compare
Choose a tag to compare

Bugfixes

  • SimpleFlatMapper has been removed due to incompatibility with Java 15+

Breaking changes

  • DatabaseUtil.sfmRecordMapperProvider() has been removed

Improvements

  • DatabaseTestUtil.newDbContext now accepts a Clock which can be used for better assertions on timestamps

CurioStack 0.7.2

29 Mar 02:45
Compare
Choose a tag to compare

Bugfixes

  • Update Jib plugin to allow it to work with updated Jackson version

CurioStack 0.7.1

07 Mar 13:19
Compare
Choose a tag to compare

Bugfixes

  • setup task fixed by removing dependency on OpenJDK setup which was removed
  • MacOS X SDK min version raised to 10.12 to allow compiling with Go 1.16
  • curiostack-bom manages jgit and jgit ssh implementation versions

CurioStack 0.7.0

27 Feb 09:10
0aaacfe
Compare
Choose a tag to compare

This release makes significant changes to the supported versions of Java. Notably, the build now runs on Java 15, and baseline modules like curio-server-framework have been updated to target Java 11 - they previously targeted Java 8 mostly for Apache Beam compatibility but Java 11 has been confirmed to work now.

The biggest change is that Helm support has been removed from the plugin. It was based on Helm 2 which has been EoL since last year. Helm 3 does not use Tiller and therefore CurioStack's features are not needed anymore. If you are still using Helm 2, you will need to first migrate to Helm 3 (usually through the terraform helm provider).

Improvements

  • Binaries by default target Java 15
  • Gradle wrapper's Java is switched from Zulu to AdoptOpenJDK and the latest version of Java is determined by its API now
  • DependencyUpdates task is now configured with best practices by the plugin. If you configure the task yourself you should remove the configuration

Dependencies

Dependency updates are mostly minor versions and should not require any code changes.

Breaking changes

  • Framework libraries like curio-server-framework and google-cloud now target Java 11
  • Helm support has been removed as per Helm 2's EoL
  • OpenJDK 8 is no longer installed

protobuf-jackson 1.2.0

16 Jan 05:06
bebab29
Compare
Choose a tag to compare

Bugfixes

  • Use buildPartial for initializing prototypes of nested fields to allow working with required fields in proto2

Enhancements

  • Removed dependencies on protobuf-java-util and guava

CurioStack 0.6.0

30 Nov 08:39
63b4020
Compare
Choose a tag to compare

It has been a long time since the previous release of CurioStack. The most notable improvement is that Armeria is now 1.2.0, while the previous release was using pre-1.0. You should not have to worry about significant breaking changes going forward.

The target Java version has also been raised to Java 14 along with the release of new tooling to support the new versions.

Due to some changes and reverts in zulu's packaging of Java 14, this is required in gradle.properties for Mac OS X support

org.curioswitch.curiostack.tools.openjdk=zulu14.28.21-ca-jdk14.0.1

This limitation will be removed in the next release.

New Features

  • AWS CLI can now also be downloaded as part of CurioStack's tools. Stay tuned for more integration.
  • Pulumi can now also be downloaded as part of CurioStack's tools.

Improvements

  • Binaries by default target Java 14
  • Conda plugin now sets environment variables that are recognized by Conan for C++ builds
  • Download plugin can now download any file that looks like a zip, regardless of extension

Dependencies

In the long time since the previous release, there have been significant number of dependency updates. The only major version upgrade is Armeria, at 1.2.0. See the release notes for how to migrate.

Gradle has also been updated to 6.7. It is recommended to add org.gradle.vfs.watch=true to gradle.properties for improved performance.

Breaking changes

  • cloudbuild-github has finally been removed. You should be using GCP's native integration

protobuf-jackson-1.1.0

01 May 06:07
b91c726
Compare
Choose a tag to compare

Bug Fixes

  • MessageMarshaller contains methods to operate directly on JsonParser and JsonGenerator, similar to the normal ObjectMapper. This is primarily for registering protobuf marshalling into an ObjectMapper. Unlike ObjectMapper these methods were closing the input parser / generator, which breaks marshalling using ObjectMapper serialization. The methods have been changed to not close the input - this is being released as a minor release since all users should update to this version to fix the interaction with ObjectMapper. If your code created JsonParser or JsonGenerator and relied on the auto-closing, you may need to close manually now. Standard methods that operate on streams, arrays, and strings are unaffected. #543

curiostack-0.5.1

13 Apr 10:08
74ab94d
Compare
Choose a tag to compare

Improvements

  • Java 14 is now the default Java for CurioStack. Gradle will fetch Java 14 and the java-cloud-runner default has been switched to Java 14. Language target remains Java 11 until tools like google-java-format and error-prone catch up.

    • If you would like to continue to use Java 13-based runner, override the base image of server projects using server.baseImage.set("curiostack/java-cloud-runner:13")
  • FetchToolCacheTask now downloads a tool cache archive to a temporary file before extracting it. Previously, it used unix pipes to directly extract the downloaded stream but this can cause issues with retries and on failure, partially extracted folders cause problems with other parts of the build. Now, if a tool fails to fetch the build should continue to work by redownloading the tool.

    • With the ongoing pandemic, network infrastructure seems to be having capacity issues across all services. Expect to still see some build flakiness, e.g. when downloading a Java dependency artifact.