[jira] [Commented] (MESOS-9630) Consider moving linter setup to pre-commit

2020-05-18 Thread Benjamin Bannier (Jira)


[ 
https://issues.apache.org/jira/browse/MESOS-9630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17110274#comment-17110274
 ] 

Benjamin Bannier commented on MESOS-9630:
-

{noformat}
commit 83359534cb1b3303fcbae34af3fadd81b7c8cb85
Author: Benjamin Bannier bbann...@apache.org
Date:   Wed May 6 17:47:37 2020 +0200

Removed mesos-style transition script.
Review: https://reviews.apache.org/r/71300/
{noformat}

> 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
> Fix For: 1.10.0
>
>
> 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
(v8.3.4#803005)


[jira] [Commented] (MESOS-9630) Consider moving linter setup to pre-commit

2019-09-18 Thread Benjamin Bannier (Jira)


[ 
https://issues.apache.org/jira/browse/MESOS-9630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16932300#comment-16932300
 ] 

Benjamin Bannier commented on MESOS-9630:
-

Moving r/71300 to MESOS-9974 so this ticket can be closed.

> 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
(v8.3.4#803005)


[jira] [Commented] (MESOS-9630) Consider moving linter setup to pre-commit

2019-09-18 Thread Benjamin Bannier (Jira)


[ 
https://issues.apache.org/jira/browse/MESOS-9630?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16932299#comment-16932299
 ] 

Benjamin Bannier commented on MESOS-9630:
-

The following patches have landed on {{master}} (1.10-dev):
{noformat}
commit fb467a03cb8a5bde5147dc06ca6b73c9df04ff48
Author: Benjamin Bannier 
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 
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 
Date:   Wed Sep 18 11:37:17 2019 +0200

Revert "Updated cpplint.py to be less verbose when there is no linting 
issue."

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 
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 
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 
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 
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 
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 
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/
{noformat}

> Consider moving linter setup to pre-commit
>