Hey Allister,<br><br>I can't speak to Google SoC requirements, but your idea sounds great. I could see some code being written to automate setting up the environment, perhaps that could be the focus. I know there is a set of repetitive tasks that we go through whenever evaluating a new module or upgrading an existing one:
<br><br>1) Get the module from <a href="http://drupal.org">drupal.org</a><br>2) Stage our database and other contrib modules<br>3) Copy over the module code and enable it through the admin UI<br>4) Test expected behaviors
<br><br>A separate but somewhat related question/task/complicated activity is moving changes between environments, such as moving a discrete change from dev -> integration -> test -> production. There is a module called importexportapi that does some of this, but no real complete solution. Perhaps your project could include a methodology + utility to allow us to hot deploy drupal changes to a prod environment.
<br><br>Kevin<br><br><br><div><span class="gmail_quote">On 3/19/07, <b class="gmail_sendername">Allister Beharry</b> <<a href="mailto:allister.beharry@gmail.com">allister.beharry@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks for the heads-up Robert. I've been reading the SoC project<br>proposal for automating testing of patches, and also your posts on a<br>performance and scalability testing environment for Drupal. Virtual<br>machine images have been posited as part of an solution for both. So
<br>I'm going to channel Laskey wrt my original idea and propose a better<br>one. (I'm just punching this out before I race to class so it's gonna<br>be brief/fragmented with typos. I'll elaborate further when I get
<br>back.)<br><br>A key requirement of automated testing of Drupal is the ability to<br>create a Drupal site with a specific configuration. In the case of<br>unit testing patches and code and also regression testing, the Drupal
<br>site must be running specfic versions of core and module code. Now<br>automating tests is one thing but at the end-of-the day a human will<br>have to be able to eyeball a Drupal site with specific versions of<br>core and module code. There needs to be an automated way for a tester
<br>to create a complete Drupal sit by simply specifiying what code<br>versions he/she wants running<br><br>For performance and scalability testing,a human tester will want to<br>vary things like choice of web server - Apache, lightpd, IIS - choice
<br>of db - MySQL, PostgreSQL - PHP configuration - mod_pho, FastCGI, PHP<br>enhancements like APC, Zend optimizer, reverse proxies, as well as<br>varying load parameters for the Drupal site as you mentioned - number<br>of core/contrib modules, number of databases, memcache, database
<br>topography, so on.<br>You'll also need to populate the db with sample content and user<br>account. For testing on Amazon EC you'd need an AMI image<br><br>What is needed is some kind of interface or configuration script that
<br>a tester can use to quickly generate a Drupal site configured with<br>these parameters. The script interpreter would take a configuration<br>script and a designated target, and spit out:<br>1. A ready to run tarball with drupal
settings.php + php.ini +<br>database script thatcan be immediately deployed to an existing web +<br>database server setup<br>2. A virtual machine image in either VMWare or Xen or AMI format.<br><br>Well it sounds kind of ambitious, but even if done on a scaled back
<br>way, could have applications well outside Drupal. What do you think?<br><br>Allister.<br><br>On 19/03/07, Robert Douglass <<a href="mailto:rob@robshouse.net">rob@robshouse.net</a>> wrote:<br>> Allister,<br>>
<br>> before I discuss your idea, it should be noted that you can't propose a<br>> GSoC project which doesn't produce code. As you describe it, your idea<br>> is mostly a task for a sysadmin and doesn't produce code, therefore
<br>> wouldn't be eligible for the program.<br>><br>> Your idea, however, is very good. I had envisioned a similar use of<br>> virtual images here: <a href="http://groups.drupal.org/node/2742">http://groups.drupal.org/node/2742
</a> The problem with<br>> doing my idea as GSoC is that it is more than one person could<br>> reasonably manage, I think, and is dependent on infrastructure that<br>> we're not in a position to provide.<br>>
<br>> I think what is needed is some brainstorming that combines your software<br>> appliance with performance, scalability and regression testing. Please<br>> chew on these ideas and come up with an alternate proposal. We'd love to
<br>> have you apply to GSoC with a Drupal project.<br>><br>> cheers,<br>><br>> Robert<br>><br>> Allister Beharry wrote:<br>> > Hello all,<br>> > I'll be participating in SoC 07 and I'd appreciate it if I can get
<br>> > some feedback on my idea for a project with Drupal. Here is the<br>> > synopsis:<br>> ><br>> > My project idea for SoC 2007 is a Drupal software appliance – a<br>> > self-contained virtual image consisting of a minimal Linux
<br>> > environment, a LAMP stack, and Drupal 5.1 – which can be distributed<br>> > as a bootable LiveCD or virtual machine image which can be run on<br>> > virtualization software like VMware Player or MS Virtual PC.
<br>> ><br>> > At ~50Mb or less, a Drupal appliance is a perfect way for potential<br>> > users with no system administration experience to evaluate Drupal.<br>> > Advocacy for Drupal can be extended by distributing the Live CD with
<br>> > magazines and in trade shows. Drupal companies and consultants can<br>> > rapidly prototype and demonstrate a Drupal a solution to their clients<br>> > starting with the base appliance image. Drupal admins can easily test
<br>> > module patches before deployment to live sites. The virtual machine<br>> > image can also be part of an automated testing framework by utilizing<br>> > the scripting capabilities of virtualization software like VMware
<br>> > Server.<br>> ><br>> > This project can build on existing LiveDistro images from Knoppix or<br>> > Damn Small Linux, and virtual appliance images like those from Virtual<br>> > Appliance (
<a href="http://virtualappliances.net/products/lamp/">http://virtualappliances.net/products/lamp/</a>). The main<br>> > tasks will be:<br>> > 1.Collecting requirements from the Drupal community;<br>> > 2.Building
the target environment;<br>> > 3.Installing and integrating Drupal and necessary modules;<br>> > 4.Comprehensive testing of the entire appliance;<br>> > 5.Coding hooks in the virtualization software for use of the appliance
<br>> > by automated testing tools;<br>> > 6.Promotion and obtaining distribution channels for the release of the<br>> > appliance.<br>> ><br>> > Thanks a lot.<br>> > Allister<br>> >
<br>><br>><br>> --<br>> * * * * *<br>> Lullabot's First Ever Advanced Workshops Are Here!<br>> Drupal API & Module Building - Advanced Drupal Themeing<br>> April 9th-13th - Providence, RI<br>> Early Bird Discounts Available Now
<br>> <a href="http://www.lullabot.com/training">http://www.lullabot.com/training</a><br>> * * * * *<br>><br>><br></blockquote></div><br>