Personal tools
You are here: Home Project Meta Releasing Grok

Releasing Grok

Steps to take to make a new release of Grok.

This how-to is an addendum to the more general "Releasing Software" document. When releasing Grok, the following steps should be taken:

  1. First and foremost follow the exact procedure described in the "Releasing Software" document. If you want to make it easy for yourself, use the zest.releaser tool that is included in the grok buildout. You can release Grok simply by invoking ./bin/fullrelease in the Grok buildout directory. Even with this tool it really helps to know what you're doing...

  2. After having tagged and released Grok itself, now it is time to tag the groktoolkit corresponding to this Grok release. This tag is important as it specifies exactly what versions of all of the dependencies of Grok are known to work. After having tagged the groktoolkit the grok.cfg for this version needs to be uploaded to grok.zope.org/releaseinfo and it needs to include all versions listed in the ztk.cfg and zopeapp.cfg as found in the zopetoolkit.

    Then copy grok.cfg to grok-[VERSION].cfg where [VERSION] needs to represent the released version. For example grok-0.13.cfg. Add grok's version to this file:

    [versions]
    grok = [VERSION]
    ...
    

    Then upload this file:

    $ scp ./grok-[VERSION].cfg grok.zope.org:/var/www/html/grok/releaseinfo/
    
  3. Grokproject generates a buildout.cfg that will extend a versions.cfg file that will be downloaded from http://grok.zope.org/releaseinfo. It determines what file to download exactly by reading http://grok.zope.org/releaseinfo/current. This file needs to be updated to point to the uploaded *.cfg file.

  4. Grokproject is able to download and use a tarball containing Grok and all packages Grok depends on. This will speed up the initial buildout run. To create this tarball use the bundlemaker command from the Grok buildout directory:

    $ ./bin/bundlemaker
    
  5. Then upload the created tarball to grok.zope.org/releaseinfo/:

    $ scp ./grok-eggs-[VERSION].tgz grok.zope.org:/var/www/html/grok/releaseinfo/
    
  6. Add a document with the release announcement in the releases folder Name it after the release version number. Summarize what is in CHANGES.txt. Make sure you move it to become the first item of the releases folder. You can move it up by using the contents view of the folder. The last column in that table presents a handle by which you can drag up the document in the folder.

  1. Update the upgrade notes with the latest version as in doc/upgrade.txt.
  1. Create a news item in the blog folder announcing the news. The text can be based on the release notes written at point 7.
  1. Make both the new release notes, the new news item, as well as the updated upgrade notes public.
  2. Update the sidebar in the site. You can edit it here: http://grok.zope.org/portal_skins/custom/portlet_download/manage_main
  3. Community Documentation: Update the Plone Help Center used for Grok Community Documentation so that the new Version is available. Important: you can select multiple "current" versions for community documentation, any documentation for a release which is not "current" gets a big nasty "outdated" header at the top of it. We only want to do this for documentation which is truly outdated and no longer best practice. Do this here: http://grok.zope.org/documentation/edit
  4. Official Documentation: Create a build of the docs from the tagged release and copy it to the server. Detailed steps are documented in the Updating the Official Grok Docuementation (OGD) page.
  5. Send out an email to at least zope-announce@zope.org as well as grok-dev@zope.org announcing the new release. The text can be based on the release notes written at point 7.
  6. Update the Grok Wikipedia article with the information about the latest release: http://en.wikipedia.org/wiki/Grok_(web_framework)