[Grok-dev] the notion of "next Grok"

Martin Aspeli optilude+lists at gmail.com
Thu Apr 16 11:22:39 EDT 2009


Jan-Wijbrand Kolman wrote:
> Hi,
> 
> On Wed, Apr 15, 2009 at 5:07 PM, Martijn Faassen <faassen at startifact.com> wrote:
>> Once we got it working for Grok we might want to push this down into the
>> Zope Toolkit, but I think Grok will have to pick up the ball here for
>> now, make it work for Grok. We can approach Plone developers on this
>> list too (or directly). I got nobody interested in this topic over on
>> zope-dev...
> 
> Just to note: I do find this interesting. I'm not sure though I
> already understand exactly what mr.developer accomplishes. I should
> play with first.

Look at http://pypi.python.org/pypi/mr.developer

Basically, it will maintain your src/ directory for you. It acts as a 
buildout extension to automatically include in 'develop' all the 
packages in src/ that it manages. It also knows the svn location and 
name of each package. So, you can:

  - set certain packages to auto-checkout (you always want these in 
'develop' mode)

  - use a develop version of a certain package on the fly by doing:

   ./bin/develop checkout my.package
   ./bin/buildout

The idea is that if you find a bug or need to change my.package, you can 
switch to a develop version. When you're done, you can remove it it 
again with ./bin/develop deactivate (or just remove the directory) and 
switch to the new release.

For tracking 'next' grok, you basically keep a versions file of the 
current version, and then update to new versions as they become 
available. If things don't have a release yet, you can add them to the 
auto-checkout list. If you are a Grok developer and you start working on 
a particular package, you can do a local develop checkout while you're 
working on it, and check in the updated version for a new release or add 
the auto-checkout to the shared buildout.

Look at the plone-coredev buildout for an example: 
http://svn.plone.org/svn/plone/buildouts/plone-coredev/trunk - see 
sources.cfg, versions.cfg and buildout.cfg. Developers will update 
sources.cfg and versions.cfg as the 'next' target moves forward. The 
release manager re-baselines them after a release so that there're 
basically no auto-checkout dependencies.

Martin

-- 
Author of `Professional Plone Development`, a book for developers who
want to work with Plone. See http://martinaspeli.net/plone-book



More information about the Grok-dev mailing list