Package: zest.stabilizer
Zest buildout stabilizerGoal of this product: zest.stabilizer helps moving the trunk checkouts in
your development buildout to tag checkouts in your production buildout. It
detects the latest tag and changes stable.cfg accordingly.It is at the moment quiteZest softwarespecific
in the sense that it is hardcoded to two assumptions/requirements that are
true for us.Requirement 1: split buildout configsAt Zest software, we’ve settled on a specific buildout.cfg setup that
separates the buildout.cfg into five files:unstable.cfgTrunk checkouts, development eggs, development settings.stable.cfgTag checkouts, released eggs. No development products.devel.cfg/preview.cfg/production.cfgSymlinked as production.cfg. The parts of the configuration that differ on
development laptops, the preview and the production system. Port numbers,
varnish installation, etc. Devel extends unstable, preview and production
extend stable.zest.stabilizer thus moves the trunk checkouts in unstable.cfg to tag
checkouts in stable.cfg.Requirement 2: infrae.subversion instead of svn:externalsOur internal policy is to keep as much configuration in the buildout
config. So we’ve switched from svn:externals insrc/to
infrae.subversion.  We extended infrae.subversion to support development eggs
and to support placement in a different directory from the defaultparts/[partname]/.Zest.stabilizer expects a specific name (“ourpackages”). Such a part looks
like this:[ourpackages]
recipe = infrae.subversion >= 1.4
urls =
    https://svn.vanrees.org/svn/reinout/anker/anker.theme/trunk anker.theme
    http://codespeak.net/svn/z3/deliverance/trunk Deliverance
as_eggs = true
location = srcWhat zest.stabilizer doesWhen you runstabilize, zest.stabilizer does the following:Detect the[ourpackages]section in unstable.cfg and read in the urls.Remove “trunk” from each url and add “tags” and look up the available tags in
svn.Grab the highest number for each.Remove existing[ourpackages]in stable.cfg if it exists.Add[ourpackages]part into stable.cfg with those highest available tag
checkouts in it.Show the “svn diff” and ask you whether to commit the change.Helper command:needreleaseBefore stabilization, often a set of products first needs to be released. If
you have multiple packages, it is a chore to check all the svn logs to see if
there’s a change since the last release.Runneedreleaseand you’ll get the last svn log message of every detected package.InstallationInstallation is a simpleeasy_install zest.stabilizer.zest.stabilizer requires zest.releaser, which is installed automatically as a
dependency. Wow, more goodies!Included programsTwo programs are installed globally:unstable_fixupwhich currently only assists with movingsrc/*development eggs to an infrae.subversion part. At the end it prints
instructions for further work that you have to do manually.stabilizewhich takes the infrae.subversion part ofunstable.cfgand finds out the latest tags for each of those development packages. It
then adds a similar part tostable.cfg.The development version of zest.stabilizer can be found athttps://svn.plone.org/svn/collective/zest.stabilizer/trunk.Changelog zest.stabilizer1.4 (2009-04-01)Depend on zest.releaser 2.0 or higher.  [maurits]1.3 (2009-04-01)Fixed our code to work with the refactored zest.releaser (with more
vcs support).  [maurits]1.2.2 (2009-02-16)Typo fixed. [reinout]1.2.1 (2009-02-16)Moved to the collective svn.  [reinout]1.2 (2009-02-16)Logging changes in history file now. [reinout]1.1.1 (2009-02-11)Small fix. -l doesn’t exist everywhere, but –limit does. [reinout]1.1 (2009-02-11)Addedneedreleasecommand that shows the last log message of every
detected development package. Easy to see if one or more still need
releasing.  [reinout]1.0 (2009-02-08)First release on pypi. [reinout]Fixed up documentation to make the product usable outside Zest. [reinout]0.2 (2008-11-06)Change the lines that are added in stable.cfg now that
infrae.subversion 1.4 has been released.  [maurits+reinout]Add newline at end of contents before saving stable.cfg or
unstable.cfg.  [maurits]0.1 (2008-10-23)Extracting unstable eggs from [ourpackages] instead of develop section now.
[reinout]unstable_fixup adds [ourpackages] section in place of ‘develop =’ section.
[reinout]Added unstable_fixup script to check/perform common fixups that need to
happen in unstable.cfg.  [reinout]Copied stabilize script out of zest.releaser.  [reinout]CreditsReinout van Rees(Zest software) is the
originator and main author.Maurits van Rees(Zest software) added
several fixes and the unstable_fixup utility.TODO tasksGet a prettier message to add to the history file.