>
> I was just slightly worried because with every little thing that we add to
> the list of requirements for submitting a patch we will lose a small
> fraction of potential contributors, and wanted to make sure that this
> decisions was weighted against this.


Agreed. In that case I believe the best path forward is to not change the
requirements at all, and go with the second approach where we setup tox in
a tools-only virtualenv. I will work with Kevin and Armand on the patch.

For example, personally I'd rather receive a bugfix with linting errors
> than the author keeping it for himself.


Not quite sure I understood this part though, can you elaborate?

Eric

On Wed, Jan 17, 2018 at 4:55 AM, Benno Evers <bev...@mesosphere.com> wrote:

> Hi Eric,
>
> you know more about the requirements of the CLI build and the python
> environment than me, so if you think this is the best way forward I have no
> objections.
>
> I was just slightly worried because with every little thing that we add to
> the list of requirements for submitting a patch we will lose a small
> fraction of potential contributors, and wanted to make sure that this
> decisions was weighted against this. For example, personally I'd rather
> receive a bugfix with linting errors than the author keeping it for himself.
>
> Best regards,
> Benno
>
> On Fri, Jan 12, 2018 at 12:10 PM, Stephan Erb <stephan....@blue-yonder.com
> > wrote:
>
>> For the Apache Aurora project we solved the need for a virtualenv by
>> using a wrapper-script that will bootstrap a virtualenv on demand. It only
>> requires Python to be installed but no other packages. It works flawlessly
>> on Mac and Linux. Maybe this idea is also useful for Mesos.
>>
>> Virtualenv wrapper script:  https://github.com/apache/auro
>> ra/blob/master/build-support/virtualenv
>> Example usage: https://github.com/apache/auro
>> ra/blob/master/build-support/python/make-pycharm-virtualenv#L47-L48
>>
>> Best regards,
>> Stephan
>>
>> On 11.01.18, 19:55, "Eric Chung" <ech...@uber.com> wrote:
>>
>>     Hi Benno,
>>
>>     There are different ways to approach this:
>>
>>     1. Ideal case: instead of requiring the `virtualenv` package (e.g. on
>>     debian), require `tox` instead. Since virtualenv is a dependency of
>> tox, we
>>     will not break any existing code that requires virtualenv. The
>> benefit of
>>     this is that we will not need a "meta" virtaulenv for installing tox.
>>     Downside is that this might break if the user doesn't have enough
>>     permissions to install packages on the host.
>>
>>     2. More pragmatic case: setup a minimal "meta" virtualenv that
>> installs tox
>>     only. This can be done in the `support` dir and the rest of the code
>> that
>>     requires tox can call tox from there. Benefit is that this won't
>> require
>>     any dependency changes and should "just work" without any disruption.
>>     Downside is that we still will need some bash scripts to manage the
>> "meta"
>>     virtualenv.
>>
>>     To answer your last question, I don't think this will effect the
>> python
>>     bindings, at least initially. The tests that I aim to run with tox are
>>     mostly CLI-related. In the long term though, it may be worth
>> considering
>>     using tox to perform all python-related build/test tasks.
>>
>>     Eric
>>
>>     On Thu, Jan 11, 2018 at 6:33 AM, Benno Evers <bev...@mesosphere.com>
>> wrote:
>>
>>     > Hi Eric,
>>     >
>>     > Do I understand correctly that you want to require all developers to
>>     > install tox so that it can be called from a post-commit hook to
>> create a
>>     > virtualenv in which it will then install pylint with all its
>> dependencies
>>     > and use that to lint the changed python files? Would it be possible
>> to just
>>     > require all developers to install pylint instead?
>>     >
>>     > Also, since you mention that you want to use tox to run unit tests
>> in
>>     > src/python, do you plan to integrate this with the existing mesos
>> build
>>     > system(s)? E.g., would it respect the python-related configuration
>> settings
>>     > like `PYTHON`, `PYTHON_VERSION`, `--disable-python`,
>>     > `--disable-python-dependency-install`. Or is this change unrelated
>> to
>>     > building the python bindings?
>>     >
>>     > Best regards,
>>     > Benno
>>     >
>>     > On Tue, Jan 9, 2018 at 3:29 PM, Armand Grillet <
>> agril...@mesosphere.io>
>>     > wrote:
>>     >
>>     >> Having distributed tox.ini files and being able to run tests for
>>     >> multiple environments will be helpful to develop the new Mesos CLI
>> thus
>>     >> I support this change.
>>     >>
>>     >> Requiring developers to install tox is indeed the biggest concern
>> with
>>     >> this change; however, this process should be straightforward as it
>> uses pip.
>>     >>
>>     >> 2018-01-09 10:03 GMT+01:00 Kevin Klues <klue...@mesosphere.io>:
>>     >>
>>     >>> I'm the one who asked Eric to send this email. I've been meaning
>> to
>>     >>> comment on it and haven't gotten around to it. I support it. We
>> just need
>>     >>> to make sure and update our CI appropriately for the new
>> dependency (and
>>     >>> make devs aware of it).
>>     >>>
>>     >>>
>>     >>> On Tue, Jan 9, 2018 at 4:03 AM Benjamin Mahler <
>> bmah...@apache.org>
>>     >>> wrote:
>>     >>>
>>     >>>> +armand, benno, kevin
>>     >>>>
>>     >>>> On Fri, Jan 5, 2018 at 12:04 PM, Eric Chung <ech...@uber.com>
>> wrote:
>>     >>>>
>>     >>>>> Hello mesos devs,
>>     >>>>>
>>     >>>>> I'd like to propose that we replace some of our bash scripts for
>>     >>>>> building
>>     >>>>> ad hoc virtualenvs with tox <https://tox.readthedocs.io/en
>> /latest/>,
>>     >>>>> a tool
>>     >>>>> for automating lifecycle management of virtualenvs using
>> declarative
>>     >>>>> configuration files.
>>     >>>>>
>>     >>>>> Specifically, virtualenvs created for the purpose of linting
>>     >>>>> (support/.virtaulenv) and unit testing (in src/python) can be
>> managed
>>     >>>>> by
>>     >>>>> tox, which provide the following benefits:
>>     >>>>>
>>     >>>>> 1. Eliminate the need for maintaining shell scripts for managing
>>     >>>>> virtualenvs
>>     >>>>> 2. We will no longer need to install *ALL* dependencies into
>> the same
>>     >>>>> virtualenv for the purpose of linting -- we can have distributed
>>     >>>>> tox.ini
>>     >>>>> files in wherever python linting is required, and just run tox
>> there.
>>     >>>>> 3. Easily run tests for multiple environments, e.g. python3 vs
>> python2.
>>     >>>>> This will make migration to python3 much easier, which we are
>> facing
>>     >>>>> increasing pressure to address.
>>     >>>>>
>>     >>>>> The biggest concern here would probably the change in
>> dependencies,
>>     >>>>> since
>>     >>>>> it may seem like we're adding an additional dependency to mesos.
>>     >>>>> However
>>     >>>>> since virtualenv is a dependency of tox, we will not break any
>> existing
>>     >>>>> dependencies, as requiring tox will automatically require
>> virtualenv.
>>     >>>>> Otherwise I don't really see any downside in making the switch.
>>     >>>>>
>>     >>>>> Please let me know what you think!
>>     >>>>>
>>     >>>>> Eric
>>     >>>>>
>>     >>>>
>>     >>>>
>>     >>
>>     >>
>>     >> --
>>     >> Armand Grillet
>>     >> Software Engineer, Mesosphere
>>     >>
>>     >
>>     >
>>     >
>>     > --
>>     > Benno Evers
>>     > Software Engineer, Mesosphere
>>     >
>>
>>
>>
>
>
> --
> Benno Evers
> Software Engineer, Mesosphere
>

Reply via email to