Uploaded image for project: 'Beam'
  1. Beam
  2. BEAM-5379

Go Modules versioning support


    • Improvement
    • Status: Resolved
    • P3
    • Resolution: Fixed
    • None
    • 2.33.0
    • sdk-go
    • None


      This would make it easier for non-Go developers to update and test changes to the Go SDK without jumping through hoops to set up Go Paths at first.

      Right now, we us the gogradle plugin for gradle to handle re-producible builds. Without doing something with the GO_PATH relative to a user's local git repo though, changes made in the user's repo are not represented when gradle is invoked to test everything.

      One of at least the following needs to be accomplished:

      • gogradle moves to support the Go Modules experiment in Go 1.11, and the SDK migrates to that
      • or we re-implement our gradle go rules ourselves to use them,
      • or some third option, that moves away from the GO_PATH nit.

      This issue should be resolved after deciding and implementing a clear versioning story for the SDK, ideally along Go best practices.

      Edite June 2020: In particular for cross use with GoGradle, we can set options to avoid gradle's own locking system: See https://github.com/gogradle/gogradle/issues/304
      installDependencies.enabled = false
      resolveBuildDependencies.enabled = false

      And we'll likely need to ignore the advice for major versions past v2 adopting modules: https://github.com/golang/go/wiki/Modules#releasing-modules-v2-or-higher
      which recommends that we increment the major version. This is mitigated by such a move yielding that first Go Modules version to be in line with the first Non Experimental version of the SDK, so users should do a manual update step for that. Unfortunate, but it's a hard signal that something has happened.


        Issue Links



              danoliveira Daniel Oliveira
              lostluck Robert Burke
              0 Vote for this issue
              6 Start watching this issue



                Time Tracking

                  Original Estimate - Not Specified
                  Not Specified
                  Remaining Estimate - 0h
                  Time Spent - 16h 40m
                  16h 40m