DAST Week 3 update

allisterbeharry's picture

This week I started coding on a Phing build file to implement the patch testing process I outlined in http://groups.drupal.org/node/4477 Right now I'm still punching out the code to get this working and I will commit it and release for testing by tomorrow. (June 20th)

I also worked on 2 stories - Diving into Phing II which wraps up the essential features of the Phing build system, and Setting up a Drupal dev environment using Eclipse. I'm using Eclipse PDT 0.7 with CVS. Using Eclipse had a terrific unexpected bonus - since the Phing XML format is a subset of the Ant format, all you have to do is open a Phing build file with the Eclipse Ant Editor to get code completion templates, a nice tree view, syntax error highlighting and other IDE goodness.



And since all this is completely configurable in Eclipse I can create a complete set of Phing-specific templates and get close to native support for Phing in Eclipse very cheaply. I plan on giving this back to the Phing community when I'm finished.

Phing uses a PHP DB library called Creole. Creole is very new school - PHP 5 only, completely object-oriented, real clean code and a full suite of PHPUnit tests thrown in. Phing, Creole and Propel are all related open-source projects with the same core coders, an in my n00b estimation really well done.

After I finish the patch use case, the second use case I want to implement is http://drupal.org/node/124661. I've been following Derek's work on automating updating a Drupal site with the CVS Deploy module and Update Status although he think's nobody listens to him ;) For people with shell access, a Phing build file could scan their list of modules and do the CVS wrangling to display the most up-to-date version information available for each module - basically there will be an interactive process where info from CVS could be displayed for each module and then you could decide if you want to update.

So the deliverables for week 4 are:
1. Finish and release for testing the dast-patch build file
2. Complete the GetModule task for pulling a module from the d.o project release system given a preferred release version, and the local Drupal source dir to untar to; and a UpdateModuleStatus task to get the version status of a specified set of modules from the d.o project system. UpdateModuleStaus is basically a CLI implementation of the [[http://drupal.org/project/update_status|Update Status]] module.
3. Complete the CVSGetModule and CVSUpdateModuleStatus tasks for pulling a module from CVS given a tag/branch and for determining each module file's version status wrt the CVS repository commits. CVSUpdateModuleStatus is basically a CLI version of Release Monitor
4. Write a build file for the following process
i. Deploy a complete Drupal site-directory with specified core and contrib modules and versions downloaded directly from CVS
ii. Interactively update core and contrib modules with version status information pulled from CVS. This is an implementation of http://drupal.org/node/124661

I will flesh out the steps in these use cases in later posts.

Groups:
Login to post comments