-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Don't vendor dependencies #634
Comments
Related Use Case:
|
Not sure how widely supported it is, but the author of govendor has been maintaining a spec for dependency files in hopes to get it adopted by more of the tools. Something to consider https://github.com/kardianos/vendor-spec |
Thanks for contacting us. I'd like to learn more about the issues you are seeing with the SDK vendoring its dependancies? If there were a generic pattern the SDK could follow supported by the base Go tooling it would be great to investigate how the SDK could use this. Regrettably there is no champion pattern accepted by the community or Go tooling. This is why the SDK uses vendoring to ensure the upstream dependancies needed by the SDK will not cause users to break if the upstream dependancies makes a breaking change. Which has happened. |
Hi, thanks for the awesome fast reply. In the case of @juriii the problem is that even if this project vendors the code, the tool he's using is not aware of the the fact that the library already has the dependencies vendored and it tries to copy them from GOPATH (which will fail since they are not there, would be interesting to know how he go getted the package, by doing Maybe a simple fix could be to tell the users to do the later, with appending On the large side of the issues, this is still pretty much a yet to be solved problem in Go but the general consensus is to not vendor the dependencies in case the project is a library and not an application. Fortunately enough, you are doing the nice thing and not also rewriting the import path (which a bigger problem). Of course, you could use a tool which has a file in which it saves the revision for each dependency and have only that added to the repository (but that means a big transition and forcing users to use that specific tool + the tool should be aware of the vendor/aws/vendor revisions) This should also be asked / discussed on the mailing list / with the Go team as we can either have a community driven solution, like @StabbyCutyou mentioned vendor-spec, or we can have the Go team creating a standard for this. |
Thanks for your feedback, and suggestion of tools. We're taking a look at the options, but currently we don't think there is a good solution thats widely accepted by the Go community. With multiple competing solutions like Glide, Godep, and multiple vendor spec formats, we think its too soon to choose a specific format and be stuck with it. The The downside of Instead of requiring users of the SDK to use a non-standard tool, we'd prefer to provide the most generic support possible, while also providing dependency versioning locking. With the vendoring folder we can guarantee that the SDK will work out of the box when downloaded without worrying about vendoring conflicts. In addition, the SDK's README.md can use some updates to include more detailed information how retrieve the SDK, and what the different methods of retrieval will entail. |
@jasdel I completely agree with your points. Thank you! |
That shouldn't be the case. As far as I'm aware |
@e-dard I verified that retrieving the SDK with With that said the simplest way to retrieve the SDK with only decencies needed for runtime is: |
Thanks for the feedback, I've updated the README.md to be clearer on what to expect when retrieving the SDK. |
Updates the SDK's go-ini dependency from a pre 1.0 version to the latest 1.25.4 This fixes the old version of go-ini, but does not address the general desire to remove dependencies from the SDK. Lets continue discussion on #634 to determine how the SDK can improve its dependency references. Fix #1125
I created a PR #1544 which adds the I do not think we can safely remove the |
Adds the dep Go dependency management metadata files to the SDK. The Gopkg files allow your tools to detect the version of dependencies the SDK uses. Non-runtime dependencies such as test, example, and code generation packages are excluded from the Gopkg files as they are not needed to use the SDK. Fix #1451 Fix #634
Is this issue resolved? I am still getting the similar error with Go version 1.11.2. |
@roytanmoy Are you using the latest version of the SDK? v1.16.2 updated the SDK's dependency on go-jmespath to be the latest version. |
Adds the ContentLengthMiddleware to the operation's stack, and updates generated clients and protocol tests to use the content-length check. Depends on: * aws/smithy-go#108 * smithy-lang/smithy#491
Hi,
While it's a good practice to vendor dependencies, in case of libraries, this can result in headaches.
In this case, it would be ok to have a file with the revision / version of the libraries but let the users pull the dependencies manually / via a tool of their preference.
I know there's no agreed format just yet for Go but maybe this would also help the discussion around it and push things forward.
Thank you.
The text was updated successfully, but these errors were encountered: