Darrel O'Pry (darrel.o...@gmail.com) wrote: > On Thu, Nov 21, 2013 at 6:45 AM, Adam Spiers <aspi...@suse.com> wrote: > > Darrel O'Pry (darrel.o...@gmail.com) wrote: > > > I hear a lot of knee jerk throw everything out and start over undertones. > > > I > > > don't that that is a wise idea as it loses history. One of the things I > > > love about git is history. Also being an agile developer I focus on > > > continuous improvement and rarely like to start things over. > > > > Exactly Darrel! I understand where the instinct for "let's start > > afresh" comes from, but really it's only sweeping ugly stuff under the > > carpet. And it's not just git history we'd risk losing - it's issue > > history, wiki history ... > > It also doesn't address the workflow issues that created the current state > of things... It's more important to address a possible cause rather than a > symptom.
Strongly agree! > > > 2) On boarding new developers. > > <snip> > > > > Beyond that we go our of our way to make development across platforms > > > easy. > > > We typically use virtual box and vagrant as a starting point to normalize > > > everyone's development environment and share the git checkout with the > > > vagrant. This way everyone is building on the same build environment. We > > > typically share the git checkout from the VM host to the build VM. The > > > build, run, test within the VM. You just expand the number of vagrants you > > > use to test on other platforms. I tend toward veewee if I need to build > > > and > > > track any sort of super custom vagrant base boxes. > > > > Standardising the dev environment is a great idea. There's still some > > remaining work to do in order for this to be SUSE-friendly though. > > Most SUSE-oriented folk prefer KVM to VirtualBox, and last time I > > looked, vagrant's support for kvm / libvirt still needed work. This > > would be well worth completing. Secondly, building openSUSE-based > > ISOs is still a work in progress (I worked with John on this last > > weekend). > > This is a situation where I feel the needs of the project to be accessible > as a whole, should override the preferences of a few participants. > VirtualBox is a free cross platform desktop virtualization environment. It > is available to windows, mac, and linux developers. It is accessible for > both corporate teams and private hackers. The public shared project should > focus on the most accessible development tools possible. Try to cater to > kvm, vbox, vmware will just add unnecessary complexity to on boarding a new > developer. > > It's totally doable, but it means that new developers have more decisions > to make to get started on the project and someone has to spend time > planning, testing, and maintain support for multiple virtual box providers. > It means time will be spent debugging whether the problem is the > virtualization layer or crowbar. Time better spent making crowbar more > awesome. In principle I agree with all of this, but realistically widescale adoption of VirtualBox at SUSE is just not going to happen - too many of our existing workflows are already KVM-centric. > If the team at SUSE or any other team is really insistent on maintaining > another development environment, they should be welcome to fork and manage > their own tooling to convert the vboxes to kvm. Alternatively, get involved > in the vagrant and veewee communities to streamline the generation and > publishing of consistent virtual machines for multiple virtualization > providers. Yes, I think these are more realistic routes (hence my above comments about vagrant support for KVM / libvirt). Given the phonetic similarity between veewee and kiwi, I strongly suspect that the creator of veewee was aware of kiwi before they invented veewee. I'm not familiar with veewee, so I wonder what the high-level differences are, other than the obvious: Ruby vs. Perl, and the focus on building for VMs. > Even then tools like veewee don't make much sense in a developer's > workflow. I've tried fitting things like veewee into developer workflows > with the idea of letting everyone build images from preseed and > kickstart... Too much time is spent building images and drinking coffee for > simple package additions. > > The approach our teams use is to build minimal vboxes using veewee. We > mostly use debian/ubuntu so we switch the tasksel from standard/server to > minimal to reduce the OS footprint in the VMs. We also remove ruby, chef, > and puppet to avoid conflicts with whatever we'll be installing. We store > the veewee definitions in our code repositories so they're tracked with > code, but we don't require developers to build the vboxes. We build and > publish them to a private website where our team can access them. We don't > do any configuration via veewee except setting up ssh and public key access > (necessary for vagrant). We also use private keypairs in lieu of the public > vagrant keys for our private projects. That all sounds good. IIRC Judd is a big vagrant fan, but I'm not sure if anyone else is using it for Crowbar work currently. > All of the dev environment configuration is handled by vagrant provisioning > shell scripts.. typically config.vm.provision "shell", path: > "bootstrap.sh". > > There is of course a need to expand on this to build a dev environment for > a project like crowbar that needs multiple vm for building and needs to > setup a rather complex testing environment with mutiple vms. The nice thing > is you can also ship a testing environment with vagrant and the same boxes. > This makes it possible to > > vagrant up dev > vagrant up ubuntu12.10-admin > vagrant up bare-node1 > vagrant up bare-node2 > vagrant up bare-node3 > vagrant up bare-node4 > > Which could all be wrapped up in a grunt, make, rake, shell script task... > There could even have a grunt watcher kicking of environment re-builds and > test locally on commit. It would probably be wise to expand testing to KVM > and other virtualization providers and testing stacks... Right. Replacing a large chunk of ./dev with standard tools would make working on CI etc. more accessible to a wider audience. [snipped] > We actually use GitHub for everything. Jenkins is pretty easy to integrate > with GitHub and setup to update your pull requests with testing... We run a > Jenkins server per GitHub repository in the cloud and run our build agents > on physical hardware with virtual box and vagrant available so we can do > all of our unit testing inside the same development environment as the > developers without having to do a lot of customization in our build farm to > support projects. Actually we're currently working on setting up our Jenkins to do automatic smoke-testing of Crowbar pull requests. Watch this space ... _______________________________________________ Crowbar mailing list Crowbar@dell.com https://lists.us.dell.com/mailman/listinfo/crowbar For more information: http://crowbar.github.com/