Code Monkey home page Code Monkey logo

Comments (4)

sargun avatar sargun commented on May 29, 2024 1

I've seen linting used in the following projects to enforce Code "policy":

It's not so much of a request, as more of a codification of the practices of the project.

from of-watchdog.

alexellis avatar alexellis commented on May 29, 2024

Derek add label: proposal

from of-watchdog.

alexellis avatar alexellis commented on May 29, 2024

@sargun thanks for writing up your proposal and for covering the points suggested in the contribution guide 👍

Linting and static code analysis is definitely something very widely used with OOP languages like Java and C# (sometimes with the Python community and PEPs), but I haven't encountered this much in the Go community. This is the first request for linting since the project started in 2016.

Cons: Sometimes linters can be annoying

This question is placed in the wrong repo - if linting is to be introduced and followed / honoured then it needs to be part of the overall contribution process for the whole project.

At this time I do not see linting as offering strong benefits but I may change my mind in the future if I see enough value for the cost to implement across the whole project. That said I tend to use a less strict linting implicitly through my IDE when making patches.

from of-watchdog.

mrwormhole avatar mrwormhole commented on May 29, 2024

well lucky me, if this is still in progress, might help with linter rules?

I use this for projects and I have scraped countless linter rules from golangci-lint configs because sometimes some rules are the same but maintained by 2 different projects. We can always customize linter settings but I prefer one config for one org that everyone agrees, it is super easy to customize but metalinters are painful to customize so we use defaults of these rulesets (gocritic/revive/govet/staticcheck)

https://gist.github.com/MrWormHole/250a8a1f78ca17c059b8ce075bbc28ec

I can see from @sargun 's list

    - golint (this is no longer valid, superceeded by revive of Grafana labs)
    - gosec (valid)
    - interfacer (deprecated no longer a good practice)
    - unconvert (valid)
    - dupl (valid but requires a config to ignore test files)
    - goconst (valid)
    - gocyclo (valid)
    - goimports (valid)
    - misspell (valid but UK and US folks fight for this a lot, we use UK setting for the language, I don't like this linter)
    - scopelint (absolute dead and no longer used, superceeded by [exportloopref](https://github.com/kyoh86/exportloopref))
    - gofmt (valid)

from of-watchdog.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.