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/ > aurora/blob/master/build-support/virtualenv > Example usage: https://github.com/apache/aurora/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