← Back to team overview

vmbuilder team mailing list archive

Re: VMBuilder plans

 

Hi guys,

It's good to see things "waking up" a bit. I second the motion to
start spit-balling on wiki pages somewhere about how to re-org stuff.
WRT unit testing, I have quite a bit of experience in that area (I
have been running teams doing TDD for the past 5 years) and would
suggest that we get some good code coverage tools in place (I'll try
to hack a bit on this this weekend and throw a strawman branch up at
the beginning of next week) so we can identify problem areas and try
to work on those. I also suggest that we use the "nose" tool for unit
testing since it gives us a lot of flexibility in how we write our
tests; the unittest module in the basic Python libs is a bit
feature-poor.

I agree with Andreas that testing stuff that shells out all over the
place can be difficult. One idea would be to isolate all the
shelling-out behind some kind of facade module that we could mock out
when writing tests. That way we can establish expectations and feed
back data from the facade that allows us to verify our assumptions. If
you guys think this could be a good idea, I'll see about tackling this
once I put up some code coverage stuff you can bang on.

Either way, I'm looking forward to adding tests, refactoring the arch
a bit and (hopefully) finishing up the ISO stuff I'm doing at the
moment.

Iain

On Fri, Sep 11, 2009 at 5:02 PM, Andreas Heck <aheck@xxxxxx> wrote:
> Hi Soren,
>
> this is fantastic news :)
> I'm quite optimistic that with the procedure changes you plan this great
> project will finally get the attention it deserves.
>
> Do you have any specific ideas for the new architecture of vmbuilder?
> Maybe we could use a wiki page to explore and discuss such possible
> architectures in more detail.
>
> What I think to be very important is to kind of negotiate the build
> capabilities of the host operating system and the capabilities and
> requirements of the distribution plugins somehow at startup. vmbuilder
> needs to check which filesystems, bootmanagers and other tools the
> plugins require, which the host system can satisfy and which could be
> satisfied by installing what packages.
>
> As I noted when I stumbled over the grub2 bug it could also become
> necessary to repackage some certain tools for use with vmbuilder. I may
> err but as I understand grub2 you need to install different packages if
> you use bios, efi 32/64Bit etc. and you can only have installed one at a
> time because the maintainers only think about people who install a boot
> manager to use them on the machine they install it on but don't think
> about us VM builders.
>
> But negotiation and special vmbuilder tool packages also appear very
> interesting to me since apart from seeming necessary to allow
> conceptional clean building of Ubuntu VMs they could also open the door
> to create VM images of every operating system imaginable from within
> Ubuntu, at least as long as there are the right tools available to
> vmbuilder.
>
> I think I could aid the design of the new architecture by stress testing
> it against vmbuilder-gui (which is kind of experimental but works quite
> well in my opinion) to see if the new architecture is flexible enough to
> handle other use cases than cli, gracefully. It would also be a good
> idea to not forget about suitability for a web gui although we don't
> have one at the time.
>
> I'm a big fan of TDD, too. But I could also need some more experience
> with more complex testing scenarios. I think vmbuilder could be hard to
> unit test because tests are easiest to write when your code is loosely
> coupled and functional style at best while vmbuilder is all about
> side-effects (calling command-line programs). Nevertheless I believe
> that we could improve the code quality of vmbuilder considerably with
> some well written tests.
>
>
> Best regards,
>
> Andreas
>
>
> _______________________________________________
> Mailing list: https://launchpad.net/~vmbuilder
> Post to     : vmbuilder@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~vmbuilder
> More help   : https://help.launchpad.net/ListHelp
>



References