As a Go noob, I defer to the experts...

On Mon, Sep 30, 2019 at 9:05 PM Dan Kirkwood <dang...@gmail.com> wrote:

> Having used golangci-lint a bit,  I can tell you that it's configurable to
> disable individual checkers via a config file and is quite fast.   I'm of
> the opinion that having the redundancy might be an issue if it were
> inefficient, but it's not and these linters are likely to evolve over a
> short time..
>
> I'm definitely +1 on at least exploring this tool for ATC.
>
> -dan
>
> On Mon, Sep 30, 2019 at 3:10 PM Hoppal, Michael <
> michael_hop...@comcast.com>
> wrote:
>
> > Great input! I think the beauty of golangci-lint is we can organically
> > iterate overtime and easily define the right set of linters that we want
> to
> > use all while keeping consistent output formatting that is easily
> > consumable by Jenkins.
> >
> > If we think there is too much overlap in the defaults we could pair it
> > down to something more like:
> >
> > * govet
> > * errcheck
> > * ineffassign
> > * gofmt
> >
> > Thanks,
> >
> > Michael
> >
> > On 9/30/19, 2:29 PM, "ocket 8888" <ocket8...@gmail.com> wrote:
> >
> >     Let me start by saying I'm all for a linter for the Go codebase(s).
> >
> >     This collection of linters seems to have a lot of redundancy, and be
> > built
> >     with using their specific CI platform in mind. In just the default
> > linters
> >     it lists, it has four or five different linters to check for unused
> > code,
> >     something that is performed already by the compiler (type checking),
> > and
> >     both "govet" and something that describes itself as "govet on
> > steroids". So
> >     I wonder if maybe we want to pick something smaller and less
> redundant.
> >
> >     On Mon, Sep 30, 2019 at 8:28 AM Hoppal, Michael <
> > michael_hop...@comcast.com>
> >     wrote:
> >
> >     > Hi,
> >     >
> >     > As we grow our Golang footprint within ATC we should consider the
> > addition
> >     > of a linter for our CI.
> >     >
> >     > As with any linter it provides a lot of benefits including
> enforcing
> > a
> >     > consistent style, early detection of potential bugs and speed up of
> > PR
> >     > reviews.
> >     >
> >     > That being said I propose that we add the linter GoLangCI-Lint<
> >     > https://github.com/golangci/golangci-lint> to our CI. It wraps
> many
> >     > widely used linters in the Golang opensource community with the
> > ability to
> >     > turn on which ones are run. It also supports outputting results in
> >     > checkstyle which is consumable via Jenkins for a visual report.
> >     >
> >     > To start I would recommend to stay with the default enabled
> linters<
> >     >
> https://github.com/golangci/golangci-lint#enabled-by-default-linters>
> > on
> >     > the tool with the addition of Gofmt.
> >     >
> >     > The roll out path (up for discussion of course) would be:
> >     >
> >     >
> >     >   *   Makefile target within the source code to allow developers to
> > run
> >     > the linting locally as they develop
> >     >   *   Inclusion of GolangCI-Lint within CI as a non-voting
> component
> > on
> >     > every PR (as to not block development when turned on)
> >     >   *   Fixing of the current lint violations
> >     >   *   Make the linting a blocking voting component of CI
> >     >
> >     > What are peoples thoughts on the inclusion of linting in general,
> > choice
> >     > of linter and the outlined rollout plan?
> >     >
> >     > Thanks,
> >     >
> >     > Michael Hoppal
> >     >
> >     >
> >     >
> >
> >
> >
>

Reply via email to