| Name | Documentation Staging |
|---|---|
| Author(s) | Charles Miller |
| Priority | High |
| Progress | In development, help welcome |
| Status | pre-alpha |
| Description | Support for staging documentation in one space, then publishing it into another |
Support a process where documentation can be collaborated on in one space, and then published into another space when ready.
Status
A reasonably feature complete demo of this plugin has been written:
The plugin is apache licensed, so feel free to send me patches if you want to see it finished sooner.
Use Cases
- A space administrator configures that one space (the Staging space) should publish changes to another space (the Public space). This person must also be an administrator of the Public space for the configuration to be successful.
- A space administrator configures which of the following have permission to publish changes:
- All Administrators of the staging space
- Everyone with "edit page" permission in the staging space
- Members of one or more specific groups
Viewers of a page in the staging space will see a visible indicator of whether it has never been published, whether the page has been modified since it was last published, or whether the page is 'up to date'.
Anyone with permissions to publish changes can, while viewing a page, trigger that page to be published. This will copy over the current version of the page, its metadata (including labels), the current versions of the page's attachments, and other related data into the Public space, overwriting any page already there with the same name.
Anyone who can label a page can add a "nopublish" label, which will prevent the page from being published, either individually or as part of a bulk publish
Anyone with permissions to view the staging space can see a space-wide report shows pages that have been modified since they were last published
Anyone with permissions to publish pages can trigger a "mass publish", which will cause all pages that have been modified since their last publish (or that have not been published at all) to be published.
Implementation details
- The publish status indicator / publish button can be the same thing - put it in the same set of web items where we currently have the favourite and watch icons.
- Store the version number of the last version of the page to be published in the page properties
- Use search extractors to add the publish status of a page to the Lucene index, this will make searching for unpublished/out of date pages a lot faster
- Bulk publish operation will need to be a long-running task of some kind, not sure how pluggable this is.
- Bulk publish should be done as a series of atomic single-page publishes, each in its own transaction.
- While not designed specifically for this purpose, you'll be able to copy the current contents of a space into another by configuring a new, empty Public space, then hitting "mass publish"

What about this plugin: http://confluence.atlassian.com/display/CONFEXT/Content+Publishing+Plugin