Hi, I opened MESOS-9360[^1] to improve the way we do linting in Mesos some time ago. I have put some polish on my private setup and now published it, and am asking for feedback as linting is an important part of working with Mesos for most of you. I have moved my workflow to pre-commit more than 6 months ago and prefer it so much that I will not go back to `support/mesos-style.py`.
* * * We use `support/mesos-style.py` to perform linting, most often triggered automatically when committing. This setup is powerful, but also hard to maintain and extend. pre-commit[^2] is a framework for managing Git commit hooks which has an exciting set of features, one can often enough configure it only with YAML and comes with a long list of existing linters[^3]. Should we go with this approach we could e.g., trivially enable linters for Markdown or HTML (after fixing the current, sometimes wild state of the sources). I would encourage you to play with the [chain] ending in r/71300[^4] on some fresh clone (as this modifies your Git hooks). You need to install pre-commit[^5] _before applying the chain_, and then run `support/setup_dev.sh`. This setup mirrors the existing functionality of `support/mesos-style.py`, but also has new linters activated. This should present a pretty streamlined workflow. I have also adjusted the Windows setup, but not tested it. I have also spent some time to make transitioning from our current linting setup easier. If you are feeling adventurous you can apply the chain up to r/71209/ on your existing setup and run `support/setup_dev.sh`. One noticeable change is that with pre-commit we will store (some) linters in `$XDG_CACHE_HOME` (default: `$HOME/.cache`). The existing setup stores some linter files in the build directory, so a "clean build" might require downloading linter files again. With pre-commit OTOH one needs to perform garbage-collection out of band (e.g., by executing `pre-commit gc`, or deleting the cache directory). * * * Please let me know whether we should move forward with this change, you think it needs important adjustments, or you see fundamental reasons that this is a bad idea. If you like what you see here I would be happy to know about that as well. Cheers, Benjamin [^1]: https://issues.apache.org/jira/browse/MESOS-9630 [^2]: https://pre-commit.com/ [^3]: https://pre-commit.com/hooks.html [^4]: https://reviews.apache.org/r/71300/ [^5]: https://pre-commit.com/#install [^6]: https://reviews.apache.org/r/71209