StagingAddOn
Category: Versioning, Staging and Deployment
—
Other products by this author
Current release: StagingAddOn 1.7.1
Released Jul 13, 2007 — tested with Plone 2.5, Plone 2.1
Bugfix release.
Experimental releases
Upcoming and alpha/beta/candidate releases
- Alpha releases should only be used for testing and development.
- Beta releases and Release Candidates are normally released for production testing, but should not be used on mission-critical sites.
- Always install on a separate test server first, and make sure you have proper backups before installing.
Project Description
- Project resources
Introduction
StagingAddOn is a simple staging and versioning product. This products aims to be an easy-to-install and easy-to-use solution. It allows:
- to have a published version of an item, while working on a new version (located in the same folder). When this new version is published, the old one can be automatically archived or expired;
- to list versions of an item;
- to compare two versions of an item, if CMFDiffTool is installed.
Usage
Suppose that you have installed StagingAddOn and that your portal has a folder at /folder and a document at /folder/document whose title is "Document v1".
- "Document v1" is published.
- The user decides to create a new version of this item. But (s)he also wants to keep a published, accessible version, during the edition of this new version. To do that, (s)he selects the "create new version" workflow action. This duplicates "Document v1" in the current folder (
/folder/document-new-version) and redirects the user to this new item. - This new item is in the initial state of the workflow ("visible", for the default Plone workflow). The user can modify it, rename it as "Document v2" for example. The user can also submit if (s)he has permission to.
- When the new item is published, the product:
- renames the original document ("Document v1") as
/folder/document-old-version-replaced-15042006-161234. The product can be configured to automatically trigger a workflow transition ("archive" for example) and/or expire the item; - publishes the new version and renames it as '/folder/document' to replace the previously published version.
- renames the original document ("Document v1") as
- The user has now two items:
/folder/document: "Document v2";/folder/document-old-version-replaced-15042006-161234: "Document v1".
For further informations, see tests/testUsage.py: the included tests explains (in Python and in English) what StagingAddOn really does, and how to interact with its API.
Other products
Staging and versioning are very important features that Plone is aiming to provide out of the box in the upcoming 3.0 release. Until it is released, you probably want to use the right product. StagingAddOn may not be the right tool to use. I strongly suggest to read a bit more about other products which might better fit your own needs.
Note that I have tried to be objective but, still, these are not the definitive description of the products. These are (only) my opinion, which I drew from tests I have done a few months ago (end of 2005, actually). You _really_ want to try them out to decide which one is yours.
- CMFEditions
- as of this writing, this is the preferred way of having multiple versions of a single item in CMF (and thus Plone). Unfortunately, it does not provide any staging feature: it is not possible to work on a version of an item while having another version published. I tend to dislike CMFEditions because of its UI. You do not really "create" a new version: you rather mark the current item as a new version. I am not sure this is all that easy to understand for end-users.
- iterate
- Kapil Thangavelu recently "put together a product for simple staging and collaborative document editing [...] it builds on top of cmfeditions to offer explicit checkin and checkout functionality with locking" (from his email on plone-developers mailing list). It is a great product on top of CMFEditions. If you like CMFEditions, you might want to give 'iterate' a try. It does not invade your workflow (contrary to StagingAddOn) and you should be able to implement StagingAddOn features (e.g. automatic replacement of the current version when the new version is published) without too much hassle.
- EnSimpleStaging
- as of this writing, this product provides advanced staging features, with separate workspaces: a staging area, where changes are done, and a "public" area where the visitors can actually view items. This might be overkill and/or not suitable for your own need (specifically if your use case is an intranet portal). Also note that the configuration of the product can be uneasy: you should take a look at the 'README' in the product and the tutorial on plone.org. In short: this is probably a great product which is worth using it, if it suits your use case and if you succeed in configuring it.
There may be other products, but either they do not work with Plone 2.1 (or later) or I am not aware of them.
Note that "CMFEditions" and "iterate" will be part of the upcoming 3.0 release of Plone. But still, if you use Plone 2, these products might not yet be integrated enough with Plone, so this is not necessarily the way to go. Anyway, StagingAddOn will work with Plone 3.0, so you can be sure that the migration to Plone 3.0 is guaranteed and will be as smooth as possible.
Dependencies
StagingAddOn has the following dependencies:- Zope 2.8.x or Zope 2.9.x
- Plone 2.1.x or Plone 2.5.x
Installation
- Read the right documentation if you have never installed any product.
- Install the product in the file system.
- Install the product in your Plone portal, via the Plone control panel.
- Click on the "Configuration of StagingAddOn" configlet on the left column of the Plone control panel.
- Add a new "StagingAddOn configuration" item and fill the edit forms.
Other informations
Other insightful informations are in the README.txt file. Do read it before installing this software.
Credits
The development of this product has been initially (up to version 0.9) sponsored by Materis. Thanks to them! It has then been developed by Pilot Systems (http://www.pilotsystems.net).
- Damien Baty (Pilot Systems)
- maintainer, original concept, code, tests, documentation.
- Sylvain Viollon (Pilot Systems)
- various bug fixes and insightful ideas.
- Souheil Chelfouh (Pilot Systems)
- insightful ideas.
- Gaël Pasgrimaud (Pilot Systems)
- insightful ideas.
- Sune B. Woeller
- bug reports and comments about references-related issues in Archetypes and StagingAddOn.
- Sven Deichmann
- translation in German.
- Piotr Furman (WebService.pl)
- translation in Polish.
- Luca Fabbri (luca DOT fabbri AT redturtle DOT net - RedTurtle)
- translation in Italian.