-
Notifications
You must be signed in to change notification settings - Fork 17.8k
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
Proposal: go/list adds another flag to support showing major upgrade available for module #38502
Comments
The presence of a new major version does not necessarily imply lack of support for the previous version. For example, if On the other hand, if a package author intends to signal that part or all of a particular API is unsupported and cannot be expressed as a wrapper around a supported API, they can already mark its contents CC @jayconrod @matloob @ianthehat @marwan-at-work @myitcv @stamblerre |
I agree with the above. However, the Go command should still provide a way to tell a user that a certain package has newer major versions. There two important use cases for this:
Therefore, I don't think upgrading from |
|
@stamblerre - this is really awesome, I am definitely going to keeping checking in on this! @marwan-at-work - I agree with both of your points. I don't necessarily know whether @bcmills - thanks for bringing in all of these other folks! RE: |
A project could quite reasonably stop providing minor + patch updates without deprecating the API, simply because they are not making further changes to the old API and have no important open bugs to fix. (For example, I would not be surprised if Moreover, there is no guarantee that a maintainer will stop providing minor + patch updates to So it really is important to explicitly deprecate a package when it is no longer suitable for new usage. |
Maybe? But we don't want to induce “upgrade fatigue” by signaling upgrades that aren't actually needed, especially when they require active intervention (as implied by a differing major version). “You could upgrade” is very different from “you should upgrade”: using an older version of that API is fine if that API is maintained, but dangerous if that API is no longer receiving security fixes. |
I very much agree with this. I think having a flag in The proposal doesn't go into how this flag operates, I want to come to agreement on the core idea of surfacing this information to users via the go tool so that they can take whatever meaningful action they see fit. |
I think a flag like this could make sense as part of a larger vision for upgrading across major versions. But I don't think we should start taking steps on that path until we know where we're going. The problem is there's not much a developer can usefully do with the Another question is whether the new major version can coexist with the old version. A developer may have dependencies that still require the old version, so if they upgrade, they'll have to link packages from both versions into the same project. If there's global state, that can be a problem. Ideally, the author of the new major version has taken care of that, but it's not always the case in practice. |
This is now deprecated in favor of a combine proposal that is linked to this issue |
Retracted. |
Please see the linked issue that has replaced this one.
Proposal
Currently, with SIV there isn't an automated way to understand that you may want to upgrade a package to a new major.
For example, if I have a mod that looks like this:
and I use
go list
like so:I am going to get output like this:
Now
github.com/peterbourgon/ff
as a module actually has av2
and av3
and I would likego list
to tell me of their existence sort of likepkg.go.dev
does now when I visit the versions page:Adding a flag to go list seems like a good step to signal to a user that they may want to upgrade their package to a newer major.
The text was updated successfully, but these errors were encountered: