-
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: cmd/go: list deprecations to include abandoned packages, as well #68316
Comments
Related Issues
(Emoji vote if this was helpful or unhelpful; more detailed feedback welcome in this discussion.) |
As mentioned in google/deps.dev#99 this could be something that's worth surfacing in deps.dev for wider use-cases, and then integrating the I'm not sure if it'd make sense for us to do that (i.e. would this be the first time we add an external integration as part of the toolchain?) or if it's something we would want to implement separately here. I +1 that this information is incredibly useful (having built tooling to do this myself) and that if we can have this surfaced in a central manner, this can make it easier for teams to respond to unofficial deprecations/abandonment of projects |
If maintainers want to push developers away, they already have such a mechanism: the Deprecated comment in packages and modules. This leaves the "trusted outsider" view, but that seems to push software development towards an endless treadmill of changes, rather than allowing for something to be "complete" and stable. I feel like we already have that for when it's important: when a vulnerability is discovered, reported, and verified, it gets picked up by security tooling like |
Very true - but for instance even the Google Go team haven't done so with https://github.com/golang/mock and there are a number of other popular libraries doing the same.
Interesting - how would a case i.e. the Gorilla Toolkit archiving, and subsequent unarchiving look? I.e. a new |
I understood the idea of using the vulnerability system for this as a response to the idea of "trusted third-parties" providing opt in checking for unmaintained packages, which I think would mean:
This seems like it would technically work, though it does seem a little awkward to model "unmaintained" as a vulnerability because it's typically a property of a module as a whole rather than a specific version of a module, whereas vulnerabilities are treated as applying to a subset of available versions. I guess in cases like the (If I misunderstood what that idea was aiming at then I apologize.) |
It may seem slightly awkward, but modules do exist where they are fundamentally broken, or have had a vulnerability since its conception. Vulnerabilities are exposed in OSV format, there's a field for |
cc @ianthehat This really seems out of the scope of the go command, but perhaps other tooling might want to check for modules in archived repos and advise users about them? |
Proposal Details
This is a proposal lifted from our discussions over at Cup o' Go, and is a direct follow-up of cmd/go: list deprecations and newer available major, minor versions by mitar.
Proposal: Highlight Deprecated & Abandoned Packages
This proposal aims to implement a system to highlight packages that have been marked as abandoned by their maintainers, and/or marked as such by a trusted third party. The goal is to improve package discovery and maintenance by clearly indicating modules that you can't really rely on anymore and suggesting potential alternatives.
Key Features
Marking "repo archived" on GitHub, GitLab, etc.:
Third-party registry for deprecated packages (Allow for the third party - not necessarily maintain it within the Go team):
--package-fork-follow-server=https://somewhere/on/the/web
Benefits
Example Workflow
go mod outdated
(or whatever subcommand we end up choosing in the original proposal), perhaps with a flag e.g.go mod outdated -include-abandoned
.The text was updated successfully, but these errors were encountered: