Benjamin Bannier commented on MESOS-9630:

The following patches have landed on {{master}} (1.10-dev):
commit fb467a03cb8a5bde5147dc06ca6b73c9df04ff48
Author: Benjamin Bannier <bbann...@apache.org>
Date:   Wed Sep 18 11:37:19 2019 +0200

    Enabled a number of additional pre-commit checks.
    This patch enables checkers for well-formed YAML and JSON, and a linter
    which checks that all executable scripts have a valid shebang line.
    Review: https://reviews.apache.org/r/71209/

commit 2af339668fd90212999bae06a050a05824f2971e
Author: Benjamin Bannier <bbann...@apache.org>
Date:   Wed Sep 18 11:37:18 2019 +0200

    Revert "Updated cpplint to be compatible with Python 3."
    This reverts commit 89db66e3df831eaa50fffb4149a3894097505c14.
    This patch was necessary when we were running cpplint in the python3
    environment used e.g., also for bindings and other scripts. With
    pre-commit we have freedom to choose the Python environment needed so we
    can undo our adjustments here to stay closer to upstream.
    Review: https://reviews.apache.org/r/71208/

commit 3478e40c656160b8f08e0ad8c154289417bb6aaa
Author: Benjamin Bannier <bbann...@apache.org>
Date:   Wed Sep 18 11:37:17 2019 +0200

    Revert "Updated cpplint.py to be less verbose when there is no linting 
    This reverts commit c0f8f56d5a93f3fb870e448fedfd22f1491356ca.
    This patch was necessary when we were running cpplint via
    `support/mesos-style.py` to prevent it from cluttering up the hook
    output. When running under pre-commit linter output is not shown if no
    errors occur so we can undo our change to stay closer to upstream.
    Review: https://reviews.apache.org/r/71207/

commit 37d76fff124d28a0281b9231058bb1b92fc65abe
Author: Benjamin Bannier <bbann...@apache.org>
Date:   Wed Sep 18 11:37:15 2019 +0200

    Removed old mesos-style and references.
    This patch removes references to `support/mesos-style.py` which was
    replaced with a pre-commit setup in a previous commit. We also remove
    the tool itself.
    Review: https://reviews.apache.org/r/71206/

commit 454661dd0dcbb7a7bc87ac58ad74fd6dd04c5c15
Author: Benjamin Bannier <bbann...@apache.org>
Date:   Wed Sep 18 11:37:14 2019 +0200

    Switched commit hooks to pre-commit.
    This patch switches commit hooks to be orchestrated by the pre-commit
    tool mirroring the previous linters invoked through git commit
    hooks (orchestrated by `support/mesos-style.py` or standalone hooks).
    Using pre-commit removes the burden of maintaining
    `support/mesos-style.py`, making sure that hooks have the expected
    environment (e.g., Python version, Node installed). Additionally,
    upstream provides a number of additional linters which are not hard to
    add to Mesos' hooks.
    Review: https://reviews.apache.org/r/71205/

commit a138c2bd7cb3749f1dceb0e520e1138536abb531
Author: Benjamin Bannier <bbann...@apache.org>
Date:   Wed Sep 18 11:37:13 2019 +0200

    Added separate script to install developer setup.
    This patch breaks the installation of developer tools (i.e., linter
    configuration files and git hooks) out of `./bootstrap`. This not only
    simplifies and streamlines the setup, but will allow us to add
    developer-only features without breaking users who are just interested
    in building a distribution tarball.
    Review: https://reviews.apache.org/r/71299/

commit cbaca81a54720771662c119c80aec6101f120afc
Author: Benjamin Bannier <bbann...@apache.org>
Date:   Wed Sep 18 11:37:11 2019 +0200

    Added gitlint config.
    This patch adds a config for the gitlint tool which is slated to replace
    a custom commit-msg hook once we switch our hook infrastructure to the
    pre-commit tool.
    Review: https://reviews.apache.org/r/71204/

commit 526043b586da0201fd7e374197139e75b249e299
Author: Benjamin Bannier <bbann...@apache.org>
Date:   Wed Sep 18 11:37:10 2019 +0200

    Added check script to check for license headers.
    This check adds a script which validates that source files have valid
    license headers. This will allow us to reuse this functionality with
    e.g., the pre-commit tool.
    At the moment the code added here is not invoked from
    `support/mesos-style.py` since it will be removed in a follow-up commit.
    Review: https://reviews.apache.org/r/71203/

commit 2232d48ce5b07c4e094c6850cb28212495824110
Author: Benjamin Bannier <bbann...@apache.org>
Date:   Wed Sep 18 11:37:09 2019 +0200

    Moved cpplint configuration into dedicated file.
    With this change we not only reduce the amount of code in
    `support/mesos-style.py` in favor of a configuration supported by
    upstream, but we also make it easier to interoperate with editor
    integrations for cpplint.
    Review: https://reviews.apache.org/r/70096/

> Consider moving linter setup to pre-commit
> ------------------------------------------
>                 Key: MESOS-9630
>                 URL: https://issues.apache.org/jira/browse/MESOS-9630
>             Project: Mesos
>          Issue Type: Wish
>            Reporter: Benjamin Bannier
>            Assignee: Benjamin Bannier
>            Priority: Minor
> Mesos currently uses a mix of hand-crafted git commit hooks and mesos-style 
> to perform linting. While this has served us well our current approach also 
> has some drawbacks, e.g.,
>  * the linter setup is spread between hooks and {{support/mesos-style.py}}
>  * adding new linters can be cumbersome
>  * mesos-style.py uses a process where it creates a single virtualenv to 
> install linters in which is tie d to the source tree
>  * linter dependencies are only cached to an extent and it is easy to run 
> into a situation where one needs to update linter dependencies over the 
> network even though one has successfully linted a revision before
>  * {{support/mesos-style.py}} lacks a number of features, e.g., running over 
> only staged files, running linters in parallel for improved throughput, 
> running only specific linters or disabling certain linters, and the 
> parameterization of the linters is strongly coupled to implementation of the 
> style checker itself.
> The [pre-commit tool|https://pre-commit.com/] solves most of these issues and 
> using it in Mesos would not only allow us to get rid of tooling which is hard 
> to maintain, but also unlock other features. It is licensed under a MIT 
> license. We should consider moving our linting setup over to pre-commit.

This message was sent by Atlassian Jira

Reply via email to