← Back to team overview

launchpad-dev team mailing list archive

Re: Faster builds

 

On Nov 18, 2010, at 2:06 PM, Maris Fogels wrote:

> On 11/18/2010 01:12 PM, Jonathan Lange wrote:
>> On Thu, Nov 18, 2010 at 6:07 PM, Jeroen Vermeulen <jtv@xxxxxxxxxxxxx> wrote:
>>> On 2010-11-18 23:48, Jonathan Lange wrote:
>>> 
>>>> Also note that there's a 'make compile' step which builds practically
>>>> everything you need for most tests, and does *not* build wadl.
>>> 
>>> That does sound like it justifies what you said earlier.  Developers
>>> shouldn't have to predict such subtleties.  Is the WADL secretly a test
>>> resource that we set up too aggressively?
>>> 
>> 
>> To my mind, yes. However I believe it is also something that needs to
>> be present on a deployed production system.
>> 
>> I don't see how having a clear step "make deploy" that depends on
>> "make build" would invite hiccoughs in production.
>> 
>> jml
>> 
> 
> Jono, I think having a "make deploy" target is a great idea, and would help make
> the root Makefile more readable.

As you'd expect, this would need to be coordinated with the LOSAs, so their scripts are also updated.

Also, at that time it would probably be reasonable to reconsider the names we have for the LOSAs generally.  ``make compile`` is useful for deploying non-app-server boxes, for instance.

> 
> Different Makefile targets are owned by different groups, and right now there is
> no easy way to edit any target without risking a break in the deployment
> scripts.  "make deploy" is a good first step towards fixing that.

Except that even there, there's at least another target for the LOSAs, as I said.  I thought I had commented that in the Makefile, but I did not. :-(

> As to the operations impact, I think you will have to ask Gary and the LOSAs
> (I've sent this conversation to Gary to get his input).  We had a "build
> once/run everywhere" deployment system that I know little about, but Gary does,
> and he may be able to help us untangle which Makefile targets belong to whom.

I think build once/deploy everywhere is back in business, after a rough spot from the drawn-out Python 2.6/Lucid/PG 8.4 upgrade.

"build_eggs" is the target for the build machine.  It does have comments, happily.  It would not be affected by the proposed "deploy" target.

> I also like the idea of setting up the WADL as an on-demand test resource
> (either in the layer setup or as a fixture).  self.useFixture(Webservice()).
> You may have to solve the "make deploy" problem first though.

In addition to being a necessary part of a deployment build, as Jono said, the WADL is a legitimate part of a developers' system.  It is needed to run launchpadlib against launchpad.dev, which we do, much as other developers touch other LP dev processes that we do not.

The problem is that WADL is slow to generate.  Benji improved that.

If we add a "deploy" target, then I suppose we would need to add a "webservice_build" target too.  Maybe they would be the same as a "deploy" now, but semantically they are very different and I suspect they would diverge.

I myself would prefer to keep the current definition of the build target, myself.  If others change the Makefile for this, please do work with us to give us a target for our needs.

Thanks

Gary


Follow ups

References