-
Notifications
You must be signed in to change notification settings - Fork 18.5k
Description
In #24301 (comment) I proposed in a comment:
We've been discussing some sort of
go releasecommand that both makes releases/tagging easy, but also checks API compatibility (like the Go-internalgo tool apichecker I wrote for Go releases). It might also be able to querygodoc.organd find callers of your package and run their tests against your new version too at pre-release time, before any tag is pushed. etc.
And later in that issue, I said:
With all the cloud providers starting to offer pay-by-the-second containers-as-a-service, I see no reason we couldn't provide this as an open source tool that anybody can run and pay the $0.57 or $1.34 they need to to run a bazillion tests over a bunch of hosts for a few minutes.
@SamWhited and @mattfarina had objections (#24301 (comment), #24301 (comment)) about the inclusivity of such a tool, so I'm opening this bug so we don't cause too much noise in the other issue.
Such a tool would involve:
- querying a service (such as godoc.org or anything implementing the "Go workspace abstraction") to find your callers
- running the tests (or a fraction thereof) either
- locally, possibly overnight
- on a cloud provider of your choice (AWS Fargate, Azure Container Service, Digital Ocean, GCP, etc)
... and telling you if they pass before your change, but fail after your change, so you can release a new version of your package with confidence.
In local mode, it'd use your local GOOS/GOARCH. On cloud, Linux containers are cheapest, but it could also spin up Windows VMs like we do with Go. (Each Go commit gets a fresh new Windows VM that boots in under a minute and runs a few tests and then the VM is destroyed).
None of this costs much, and the assumption is that this would be used by people (optionally) who are willing to pay for the extra assurance, and/or those whose time needed to fix regressions later is worth more than the cloud costs.
And maybe some cloud CI/CD company(s) could sponsor such builders.