On 06/12/2012 09:10 AM, Abner Silva wrote:
Hi Michael,
On Tue, 2012-06-12 at 17:07 +1200, Michael Hudson-Doyle wrote:
Those of you who have been around for a while will know that we used to package LAVA as Debian packages. This had its problems and we switched over to the world of pip and virtualenv and lava-deployment-tool.
Unfortunately, pip and virtualenv have not really given us the control we need to be confident in our deployments, and so I'm proposing to change again, this time to zc.buildout. This is less of a change than the switch away from debs -- instances of LAVA will still be a concept and the lava-deployment-tool script will still be used, at least for now.
The way buildout works is that there is a config file that specifies how -- reproducibly! -- to assemble various pieces into a deployment. I have a branch of lava-server at lp:~mwhudson/lava-server/use-buildout that contains such a config file (and various other related bits and pieces), and a branch of lava-deployment-tool that creates a buildout-based deployment.
An instance on disk in the new world is similar to but not the same as an instance is today. In particular it is not a virtual environment -- although for compatibility, it looks like one. There is still a $LAVA_INSTANCE/bin/activate script that you can source in bash to put that instance's scripts at the front of your $PATH. Inside an instance, the etc, run, tmp and var directories server the same function as they do today. There is also a new directory, code. The code directory contains a number of subdirectories, one for each revno of lava-server that has been installed into that instance, and a symlink 'current' that points to the currently active one.
There are now two merge proposals on LP:
https://code.launchpad.net/~mwhudson/lava-server/use-buildout/+merge/109768 https://code.launchpad.net/~mwhudson/lava-deployment-tool/use-buildout/+merg...
I've made an effort to update the documentation in l-d-t's README, and I've put an htmlified version of this file online at http://people.linaro.org/~mwh/ldt.html so that might be a good place to start.
As I never worked with buildout before I was wondering if there was a discussion around this topic before deciding to adopt this new deployment approach. I would like to read that and see what was discussed and what are the main advantages of changing how to deploy Lava once again. Is it available somewhere?
There hasn't been a big dialog. Michael and I had been talking about how our current pip/virtualenv has been a ticking time bomb and isn't very reproducible. Michael looked at buildout because its used by the Launchpad team who has similar but more complex requirements.
As per the discussion - I think this is the place to have it and is why Michael sent this email.
In case this change really happen, I believe that would be nice to have some sort of tutorial teaching how to migrate your current setup and deploy it with buildout, without loosing your database, etc.
We'll get there, one requirement Michael has is to make this still work with a "lava-deployment-tool upgrade".
Also, I remember to have long conversations on IRC with you guys and IIRC there was an agreement that Lava would also be released as deb packages again, so we would have an option to use pip or debs. How is that going?
I don't think we've ever agreed to release the server components as .debs. For the client stuff, we have and will continue to release them this way.
Please, forgive me if I missed any important discussion.
Thanks in advance.
BR,
-Abner
Cheers, mwh
linaro-validation mailing list linaro-validation@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-validation
linaro-validation@lists.linaro.org