docker-archive / docker-registry

This is **DEPRECATED**! Please go to https://github.com/docker/distribution
Apache License 2.0
2.88k stars 876 forks source link

NG: development tools, style #657

Closed dmp42 closed 9 years ago

dmp42 commented 9 years ago

We need to get further gofmt.

@dmcgowan suggested we use https://github.com/golang/lint

Also, should we go with travis or circleci or ...?

I would like to minimize the ceremony around running tests / validation tools - also want to have a way to run only specific tests suites, list them, etc.

Are there any standard tools to do that? Or should we go with some (basic, please!) shell scripting?

wking commented 9 years ago

On Tue, Oct 28, 2014 at 02:15:55PM -0700, Olivier Gambier wrote:

I would like to minimize the ceremony around running tests / validation tools - also want to have a way to run only specific tests suites, list them, etc.

Are there any standard tools to do that? Or should we go with some (basic, please!) shell scripting?

TAP is nice [1,2,3]. Personally, I'd like the API specs and associated test suites in one place, and implementations with any unit tests the maintainers want in another. Then it's easy to test alternative implementations for compliance.

bacongobbler commented 9 years ago

At deis/deis we use very common tooling for our Go packages. Go gets the job done quite nicely for 99% of our use cases. This is a synopsis of our current infrastructure:

I'm not saying you have to use these tools, but this is our workflow and it has treated us very well. You can also write benchmark tests etc. with Go tests, which is another huge plus: http://golang.org/pkg/testing/

Hope this helps!

dmp42 commented 9 years ago

ping @dmcgowan @jlhawn @BrianBland

dmp42 commented 9 years ago

@bacongobbler @wking thanks a lot for the tips!

We want something like swagger on top of that. The rest sounds good to me.

visualphoenix commented 9 years ago

+1 for @bacongobbler 's recommendation.

dmp42 commented 9 years ago

Now using drone, along with golint, go fmt, go vet, go test + goverage. Documentation will be handled separately, so I believe this can be closed!