-
Notifications
You must be signed in to change notification settings - Fork 21
Do not include v1 in package path #10
Do not include v1 in package path #10
Conversation
@Ramonza, thank you for the PR! I personally veto this change. While the new pragmatic advice from Go modules is for go packages and it makes sense that the first version shouldn't be tagged What you linked has an exception to the rule
This is code is for a large software project that we expect to change proto definitions and allow for breaking changes to happen. I'd currently rather wait until gomodules have matured and when I understand them fully to be able to make such a judgement. Many users will be using this project and I'd rather play it safe with the |
The version of the wire protocol is independent of the version of this module. You could imagine a future evolution of this module that supports multiple versions of the wire protocol without changing the module's Go API. You could also imagine the opposite scenario, where we would want to create a new major version of this module even though there hasn't been any protocol change (for example, if we decide to evolve the Exporter interface in an incompatible way). For these reasons, I believe we should stick with the recommendation for Go modules to not include a v1 in the module path. |
@rakyll would you like to weigh in here? |
/cc @bogdandrutu |
The initial version of a module should not include the version number. See: golang/go#24301 (comment)
6eb0db9
to
b52f1a0
Compare
I don't think the proto version should be in this ocagent version. These are 2 different things, if you do make a breaking change on the ocagent exporter you need to go to v2 and protos may not go to v2. Because of this I think we should use what the golang uses for versioning and not correlate this with the proto versions. Also most likely when we (if ever) add a proto/v2 we probably not completely drop the support for v1 and will have a transition point. Anyway I agree with Ramon that the proto version should not be reflected in the go package name. I don't know what is the right thing in terms of versions for Go but we should do what the language suggest. |
The initial version of a module should not include the version
number.
See: golang/go#24301 (comment)