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

Go Modules versioning support

Details

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

    Description

      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.

      Attachments

        Issue Links

          Activity

            People

              danoliveira Daniel Oliveira
              lostluck Robert Burke
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Time Tracking

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