Great graphs Luke!

Related note: with this migration the project no longer uses the GoGradle
plugin to build or test any Go source. They have been replaced with shell
script that bootstrap to a set version of go.  This is tracked in
BEAM-12830 [1].

This touches all portable builds as the project uses small Go programs for
portable container bootstrap.

The following are the consequences of this change and known issues:

* The project requires a minimum of Go 1.16 to bootstrap to arbitrary Go
versions going forward.
  * Presently Nightly Snapshots are broken since the shared infra machine
is on Go 1.10. Beam tracking for this issue is at BEAM-13540 [2]. See that
for the paired ticket to Infra for upgrading.

* OSX users can't currently run the Go integration tests locally, due to
the scripts not currently building both the local host platform version and
the container required version of pipelines.
  * This is a small inconvenience as it only prevents using the gradle
scripts, and not using beam by using Go directly.

If there are any other issues related to the removal of GoGradle, or either
of these limitations become urgent, please let me know so a fix can be
expedited.

Cheers,
Robert Burke
Beam Go Busybody

1: https://issues.apache.org/jira/browse/BEAM-12830

2: https://issues.apache.org/jira/browse/BEAM-13540



On Thu, Dec 30, 2021, 9:45 AM Luke Cwik <lc...@google.com> wrote:

> The migration to gradle 7[1] happened in the past two weeks. As part of
> that migration many plugins had to be updated or replaced if a newer gradle
> 7 compatible version couldn't be found and dependencies were moved away
> from the removed configurations such as "compile" and "testCompile" (more
> on this below). If you experience issues during your development process
> that you suspect is due to the migration, feel free to reach out.
>
> For the removed configurations (boxes with light gray text), the gradle
> migration guide[2] suggested that existing usages of "compile" be replaced
> with "implementation" and "testCompile" with "testImplementation". Usages
> of "runtime" and "testRuntime" are more complicated since Gradle 7 forced
> the split of configurations used to declare dependencies (light green) and
> configurations that are consumed by tasks (blue gray). A new configuration
> called "testRuntimeMigration" was created for the purpose of migrating the
> widely used "testRuntime" configuration. The "testRuntimeConfiguration"
> contains the current modules test jar and extends the "testRuntimeOnly" and
> "testImplementation" configurations effectively creating something similar
> to the "testRuntimeClasspath" which can be consumed by tasks and used to
> declare dependencies to other modules tests. This seems to be working at
> the moment but open to suggestions on how to re-organize this cleanly (e.g.
> should jar also add to "testRuntimeMigration").
>
> For the main source set:
> [image: image.png]
>
> For the test source set (forgive my paint skills):
> [image: image.png]
>
>
> 1: https://issues.apache.org/jira/browse/BEAM-13430
> 2:
> https://docs.gradle.org/current/userguide/upgrading_version_6.html#sec:configuration_removal
>

Reply via email to