[openstack-dev] bug 1203680 - fix requires doc

Ben Nemec openstack at nemebean.com
Tue Feb 25 18:01:20 UTC 2014


On 2014-02-24 14:51, Sean Dague wrote:
> On 02/24/2014 03:10 PM, Ben Nemec wrote:
>> On 2014-02-21 17:09, Sean Dague wrote:
>>> On 02/21/2014 05:28 PM, Clark Boylan wrote:
>>>> On Fri, Feb 21, 2014 at 1:00 PM, Ben Nemec <openstack at nemebean.com>
>>>> wrote:
>>>>> On 2014-02-21 13:01, Mike Spreitzer wrote:
>>>>> 
>>>>> https://bugs.launchpad.net/devstack/+bug/1203680 is literally about
>>>>> Glance
>>>>> but Nova has the same problem.  There is a fix released, but just
>>>>> merging
>>>>> that fix accomplishes nothing --- we need people who run DevStack 
>>>>> to
>>>>> set the
>>>>> new variable (INSTALL_TESTONLY_PACKAGES).  This is something that
>>>>> needs to
>>>>> be documented (in http://devstack.org/configuration.html and all 
>>>>> the
>>>>> places
>>>>> that tell people how to do unit testing, for examples), so that
>>>>> people know
>>>>> to do it, right?
>>>>> 
>>>>> 
>>>>> 
>>>>> IMHO, that should be enabled by default.  Every developer using
>>>>> devstack is
>>>>> going to want to run unit tests at some point (or should 
>>>>> anyway...),
>>>>> and if
>>>>> the gate doesn't want the extra install time for something like
>>>>> tempest that
>>>>> probably doesn't need these packages, then it's much simpler to
>>>>> disable it
>>>>> in that one config instead of every separate config used by every
>>>>> developer.
>>>>> 
>>>>> -Ben
>>>>> 
>>>> 
>>>> I would be wary of relying on devstack to configure your unittest
>>>> environments. Just like it takes over the node you run it on, 
>>>> devstack
>>>> takes full ownership of the repos it clones and will do potentially
>>>> lossy things like `git reset --hard` when you don't expect it to. +1
>>>> to documenting the requirements for unittesting, not sure I would
>>>> include devstack in that documentation.
>>> 
>>> Agreed, I never run unit tests in the devstack tree. I run them on my
>>> laptop or other non dedicated computers. That's why we do unit tests 
>>> in
>>> virtual envs, they don't need a full environment.
>>> 
>>> Also many of the unit tests can't be run when openstack services are
>>> actually running, because they try to bind to ports that openstack
>>> services use.
>>> 
>>> It's one of the reasons I've never considered that path a priority in
>>> devstack.
>>> 
>>>     -Sean
>>> 
>> 
>> What is the point of devstack if we can't use it for development?
> 
> I builds you a consistent cloud.
> 
>> Are
>> we really telling people that they shouldn't be altering the code in
>> /opt/stack because it's owned by devstack, and devstack reserves the
>> right to blow it away any time it feels the urge?
> 
> Actually, I tell people that all that time. Most of them don't listen 
> to
> me. :)
> 
> Devstack defaults to RECLONE=False, but that tends to break people in
> other ways (like having month old trees they are building against). But
> the reality is I've watched tons of people have their work reset on 
> them
> because they were developing in /opt/stack, so I tell people don't do
> that (and if they do it anyway, at least they realize it's dangerous).

How would you feel about doing a git stash before doing reclones?  
Granted, that still requires people to know that the changes were 
stashed, but at least if someone reclones, loses their changes, and 
freaks out on #openstack-dev or something we can tell them how to get 
the changes back. :-)

> 
>> And if that's not
>> what we're saying, aren't they going to want to run unit tests before
>> they push their changes from /opt/stack?  I don't think it's 
>> reasonable
>> to tell them that they have to copy their code to another system to 
>> run
>> unit tests on it.
> 
> Devstack can clone from alternate sources, and that's my approach on
> anything long running. For instance, keeping trees in ~/code/ and 
> adjust
> localrc to use those trees/branches that I'm using (with the added
> benefit of being able to easily reclone the rest of the tree).
> 
> Lots of people use devstack + vagrant, and do basically the same thing
> with their laptop repos being mounted up into the guest.

So is there some git magic that also keeps the repos in sync, or do you 
have to commit/pull/restart service every time you make changes?  I ask 
because experience tells me I would inevitably forget one of those steps 
at some point and be stymied by old code still running in my devstack.  
Heck, I occasionally forget just the "restart service" step. ;-)

> 
> And some people do it the way you are suggesting above.
> 
> The point is, for better or worse, what we have is a set of tools from
> which you can assemble a workflow that suits your needs. We don't have 
> a
> prescribed "this is the one way to develop" approach. There is some
> assumption that you'll pull together something from the tools provided.
> 
> 	-Sean



More information about the OpenStack-dev mailing list