Benjamin figured this out for me. For posterity, I needed to:

$ pyenv install 2.7.17
$ pyenv global 3.7.4 2.7.17

On Tue, Jan 14, 2020 at 2:37 PM Benjamin Mahler <bmah...@apache.org> wrote:

>  Have folks been able to set this up successfully on macOS? Is my python
> virtual env screwed up?
>
> ./support/setup-dev.sh
> [INFO] Installing environment for local.
> [INFO] Once installed this environment will be reused.
> [INFO] This may take a few minutes...
> An unexpected error has occurred: CalledProcessError: command:
> ('/usr/local/Cellar/pre-commit/1.21.0_1/libexec/bin/python3.8',
> '-mvirtualenv',
> '/Users/bmahler/.cache/pre-commit/repoxm_szyol/py_env-python2', '-p',
> 'python2')
> return code: 3
> expected return code: 0
> stdout:
>     The path python2 (from --python=python2) does not exist
>
> stderr: (none)
> Check the log at /Users/bmahler/.cache/pre-commit/pre-commit.log
>
> On Wed, Sep 18, 2019 at 7:04 AM Benjamin Bannier <bbann...@apache.org>
> wrote:
>
>> Hello again,
>>
>> I have landed the patches for MESOS-9630 on the `master` branch, so we now
>> use pre-commit as linting framework.
>>
>> pre-commit primer
>> =================
>>
>> 0. Install pre-commit, https://pre-commit.com/#install.
>>
>> 1. Run `./support/setup-dev.sh` to install hooks. We have broken
>> developer-related setup out of `./bootstrap` which by now only bootstraps
>> the autotools project while `support/setup-dev.sh` sets up developer
>> configuration files and git hooks.
>>
>> 2. As git hooks are global to a checkout and not tied to branches, you
>> might run into issues with the linter setup on older branches since
>> configuration files or scripts might not be present. You either should
>> setup that branch's linters with e.g., `./bootstrap`, or could silence
>> warnings from the missing linter setup with e.g.,
>>
>>        $ PRE_COMMIT_ALLOW_NO_CONFIG=1 git commit
>>
>> 3. You can use the `SKIP` environment variable to disable certain linters,
>> e.g.,
>>
>>        # git-revert(1) often produces titles longer than 72 characters.
>>        $ SKIP=gitlint git revert HEAD
>>
>>    `SKIP` takes a linter `id` which you can look up in
>> `.pre-commit-config.yaml`.
>>
>> 4. We still use git hooks, but To explicitly lint your staged changes
>> before a commit execute
>>
>>        # Run all applicable linters,
>>        $ pre-commit
>>
>>        # or a certain linter, e.g., `cpplint`.
>>        $ pre-commit run cpplint
>>
>>    pre-commit runs only on staged changes.
>>
>> 5. To run a full linting of the whole codebase execute
>>
>>        $ SKIP=split pre-commit run -a
>>
>>    We need to skip the `split` linter as it would complain about a mix of
>> files from stout, libprocess, and Mesos proper (it could be rewritten to
>> lift this preexisting condition).
>>
>> 6. pre-commit caches linter environments in `$XDG_CACHE_HOME/.pre-commit`
>> where `XDG_CACHE_HOME` is most often `$HOME/.cache`. While pre-commit
>> automatically sets up linter environments, cleanup is manual
>>
>>        # gc unused linter environments, e.g., after linter updates.
>>        $ pre-commit gc
>>
>>        # Remove all cached environments.
>>        $ pre-commit clean
>>
>> 7. To make changes to your local linting setup replace the symlink
>> `.pre-commit-config.yaml` with a copy of `support/pre-commit-config.yaml`
>> and adjust as needed. pre-commit maintains a listing of hooks of varying
>> quality, https://pre-commit.com/hooks.html and other linters can be added
>> pretty easily (see e.g., the `local` linters `split`, `license`, and
>> `cpplint` in our setup). Consider upstreaming whatever you found useful.
>>
>>
>>
>> Happy linting,
>>
>> Benjamin
>>
>> On Sat, Aug 17, 2019 at 2:12 PM Benjamin Bannier <bbann...@apache.org>
>> wrote:
>>
>> > 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
>> >
>>
>

Reply via email to