Skip to content
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

x/exp/cmd/gorelease: split release, diff functionality and prepare to merge into GOROOT #46371

Open
5 of 8 tasks
jayconrod opened this issue May 25, 2021 · 0 comments
Open
5 of 8 tasks
Labels
modules NeedsDecision Tools
Milestone

Comments

@jayconrod
Copy link
Contributor

@jayconrod jayconrod commented May 25, 2021

@jadekler and I spent some time talking today about the future of gorelease. Here's what we're thinking.

  • There seem to be two diverging use cases: 1) checking whether the module in the current directory is ready to be released as a new version, and 2) find what changed between two existing versions, either of the same module, different major versions, or different modules (forks, renames). The code that serves these use cases in nearly the same, but we should think about splitting the CLI.
  • We eventually want to make gorelease part of the go command. Like go doc, it will run a separate binary (cmd/doc in that case). As part of this, I propose we name the command go mod vet to make it clear this is module-related, and it analyzes something like go vet. The name go release makes it sound like it's performing a release (uploading something), and the GoReleaser project has a similar name.
  • Comparing APIs of existing versions doesn't seem like it should be part of go mod vet, though it's an important use case. We should move this into a new command, say golang.org/x/tools/cmd/gomoddiff.

To move forward, let's do the following:

  • Confirm via proposal process in #26420 or a new issue that this is the right approach forward.
  • Fix release blocking bugs and add core features:
  • Refactor most of the core code into a library in x/tools that can be used to implement go mod vet and gomoddiff.
  • Move the CLI into cmd/gomodvet and golang.org/x/tools/cmd/gomoddiff.
  • Add go mod vet that invokes cmd/gomodvet.
@jayconrod jayconrod added NeedsDecision modules Tools labels May 25, 2021
@jayconrod jayconrod added this to the gorelease milestone May 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
modules NeedsDecision Tools
Projects
None yet
Development

No branches or pull requests

1 participant