All,
It’s been a while since my last update but here goes!
Edit Interface
I spent this weekend getting rather familiar with grok and KSS. I have to say I really enjoy working in Grok, and not having to write any Javascript to use AJAX is a huge benefit. I’ve nearly finished working on the basic edit interface for buildouts; it should be flexible enough for generic buildouts. I’m also hoping to be able to code in some nice drag and drop capabilities to make editing very smooth.
Pre-Configured buildouts
The earlier model for distributing buildouts only allowed one buildout per solution, which is fine for a simple buildout. Recently I’ve noticed that solutions like plone4artists use a number of hierarchal buildouts, which would be impossible to distribute with the previous model. Therefore I’ve modified the buildoutbuilder source code to read compressed tarballs containing all of the buildouts/files pertaining to a particular solution. The users are able to view all of the buildouts in the tarball, as well as download it. This is a very easy model for presentation and distribution.
Subversion thread
I’ve been thinking of writing a background thread that runs once a day or so, to automatically check listed repositories for the latest revs of common buildouts (like p4a), download them, and compress them for distribution/viewing. This should save us a lot of time, and work to keep the site concurrent without the need for human interference.
Git
I’ve migrated my source control to git after becoming completely frustrated with subversion. (I got really tired of typing “cd trunk”, you can read more about that here: http://xkenneth.blogspot.com/2008/06/goodbye-svn-hello-git.html)
The git repository is located here:
http://github.com/xkenneth/buildoutbuilder/tree/master
More to come!
Regards,
Ken
So my self-imposed date for phase 1 has come and past, but did I meet my requirements? Well let’s see….
May 26th: Discuss and finalize options for hosting the Buildout Builder. Begin initial code work. Phase one begins.
Check.
Week One (May 26th to June 1st): Familiarization with buildoutsystem. Hand pick selected stack configurations and test buildouts.
I didn’t get as far as I’d like in configuring and selecting the buildout deployments, but this looks like it might be a longer ongoing task for the entirety of the project.
Week Two (June 2nd to June 8th): Begin grok development, initiate website design.
Check.
Week Three (June 9th to June 15th): Develop a backend to thebuildout system inside of grok, complete with unit tests. Populate the site with selected stack configurations in an automated, extensible manner.
Check! The unit tests aren’t as nice as I’d like, but they’re there.
I’m working on getting a demo of the current version up on the slice provided by dennisharrison, I’ll update again when that’s ready.
Regards,
Kenneth Miller
So the PartManager seems to be working now, i was able to decompose a buildout into it’s representative objects, recompose it back into a file, and the build the buildout!
Everything was rearranged (sections appeared in a different order, as well as options, although multi-line options remained unaffected,) but the buildout worked fine! If anyone’s interested it was the plone4usergroups buildout.
You can download the source and give it a try, just hand PartManager.py a URI to a buildout.cfg as the first command line argument. If you want to play with the PartManager and it’s respective arguments you can just call a PDB.set_trace() before it spits it back out to a file.
Regards,
Ken
So I’m busy getting ready for the release of phase 1, and here’s what I’ve accomplished so far.
Hashed out a series of objects to compose and decompose buildouts.
Begun laying groundwork for the Grok App. I’m currently trying to get it to read in and generate a by section page of a buildout, not just simply displaying the available file. Something similar to what you get with auto-generated python documentation.
In order to be ready for the release of phase one I still need to catalog and test the collection of application specific plone buildouts. Any help on this is appreciated!
What I’m trying to achieve is a collection of plone buildouts where each buildout has products and configurations targeted at a specific application. For example the plone4usergroups (http://code.google.com/p/plone4usergroups/) buildout, includes products that usergroups might use.
My final go for the pre-configured as well as configured on the fly buildouts is a one command-line install on any system. This seems possible, although I’ve said that before…and it’s not always worked out, but we’ll see.
Regards,
Ken
The principle object, BuilldoutManager, is nearly complete. (r13) It will now take a buildout from any URI, and decompose it into representative objects, part, option, link, etc.
This code will serve as the principle back end for the modification of existing buildouts, and creation of new buildouts.
Regards,
Ken