[chef] Re: COOK-3084 CFV


Chronological Thread 
  • From: Mike < >
  • To: " " < >
  • Subject: [chef] Re: COOK-3084 CFV
  • Date: Fri, 14 Jun 2013 18:19:52 -0400

Hi Alex,

First off, awesome work, on all fronts.

I have reviewed all of the options you presented, and am now coming
around to realizing that option #2 (herein "avoidance") is most
probably the "best" thing to move forward with.

Concerns raised previously:

- Backwards compatibility
It looks as if a user has needed to use 'python26' on RHEL5-style in
previous versions of this cookbook, they would have handled it
themselves with a specific LWRP override.
This change means that their override will still work, but will
probably be unnecessary.

- Attribute re-use in provider
Steven had raised a concern about attributes being used in the
Provider, not used here.

I am now of the opinion that the "avoidance" method is the right way
to go, and this is possibly still in the realm of a Minor version.

So in short, that's +1 from me for avoidance (option #2).

-Mike


On Wed, Jun 12, 2013 at 4:28 AM, Alex Kiernan 
< >
 wrote:
> I want to move COOK-3084 on - I'll summarise then ask for a vote.
>
> To summarise, as it is today the virtualenv provider in the python cookbook
> when used on EL5 and the (default) package style installation requires you
> to set the interpreter attribute or it will use the wrong python, i.e. you
> must write something like:
>
> python_virtualenv "cook-3084" do
>   # on EL5 the default python we install is called python26
>   if !node['python']['install_method'].eql?("source") &&
>      platform_family?('rhel') &&
>      node['platform_version'].split('.').first.to_i < 6
>     interpreter '/usr/bin/python26'
>   end
> end
>
> If you want to portably consume the virtualenv provider. The reason this is
> the case is because the code today gratuitously passes in the --python
> argument to virtualenv and hardcodes it to `python' which is incorrect for
> the virtualenv which pip has previously installed.
>
> I've one branch - https://github.com/akiernan/python/tree/add-venv-tests
> which adds test kitchen tests which include exactly this test. In order to
> change the code so that a green test can be written as:
>
> python_virtualenv "cook-3084" do
> end
>
> I have three branches which allow this test to pass:
>
> 1. https://github.com/akiernan/python/tree/handle-rhel5
> (https://github.com/akiernan/python/compare/master...handle-rhel5)
> 2. https://github.com/akiernan/python/tree/avoid-venv-python
> (https://github.com/akiernan/python/compare/master...avoid-venv-python)
> 3. https://github.com/akiernan/python/tree/remove-interpreter
> (https://github.com/akiernan/python/compare/master...remove-interpreter)
>
> The first leaves almost everything as is, but ensures the same binary as was
> used to install pip is passed to the --python argument if the interpreter
> attribute is not specified.
>
> The second ensures that --python is only passed into the virtualenv
> invocation if the consumer has explicitly specified it.
>
> The third removes the interpreter attribute entirely and requires that if
> --python is required then it is passed in through the options attribute.
>
> I've no more code to push and have run all 4 branches through test kitchen
> successfully.
>
> Where I believe we are is:
>
> 1. https://github.com/akiernan/python/tree/handle-rhel5
> (https://github.com/akiernan/python/compare/master...handle-rhel5)
>
> -1 Noah
> -1 Steven
> +1 Mike
>
> 2. https://github.com/akiernan/python/tree/avoid-venv-python
> (https://github.com/akiernan/python/compare/master...avoid-venv-python)
>
> +1 Steven
>
> 3. https://github.com/akiernan/python/tree/remove-interpreter
> (https://github.com/akiernan/python/compare/master...remove-interpreter)
>
> -1 Mike
>
> Please can we vote across the three options?
>
> --
> Alex Kiernan



Archive powered by MHonArc 2.6.16.

§