Robert Burke created BEAM-5465:
----------------------------------
Summary: Have the sdks/go gradle tasks clean up the vendor
directories on clean
Key: BEAM-5465
URL: https://issues.apache.org/jira/browse/BEAM-5465
Project: Beam
Issue Type: Bug
Components: build-system, sdk-go
Reporter: Robert Burke
The sdks/go/\{test,examples,container} directories depend on the main beam
package, which cause gogradle to vendor the beam package in those directories.
The gogradle plugin doesn't clean up the [vendor
directories|https://golang.org/cmd/go/#hdr-Vendor_Directories] that it sets up
on builds, when clean is invoked.
This leads to stale copies of the Go SDK's beam package vendored in local
directories, which can lead to build failures of other tasks that invoke the
tests or similar, when the code in those directories uses a more recent version
of beam than what is cached.
This doesn't happen for users directly using the go tool, with their git repo
nested under Go PATH, since the go tool will correctly use the local repo copy
of beam.
A workaround on a Unix machine or similar, invoked from the beam repo root, is
to delete the vendor and gogradle directories, and retry the task.
rm -rf sdks/go/\{vendor,.gogradle}
sdks/go/\{test,examples,container}/\{vendor,.gogradle}
This cause gogradle to fetch a more recent copy of beam for vendoring.
Ideally we fix the clean tasks for the go directories to delete the vendor
directories as well, which will resolve the issue more reliably for those using
gradle to test their changes against the go sdk.
Related: BEAM-5379 is for avoiding the vendoring & cleaning cycle all together
and migrating to gomodules.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)