Overview
Different events can be used to increment a composite version number.
The workflow uses the following trigger actions
- initialize a metadata version value using
set-metadata
macro - increment the metadata version value using the
increment-metadata
macro using different triggers for each element of a composite version number
You will need to refresh the page content to view changes in the metadata value if you use the get-metadata
macro on the page to display the metadata value.
Composite major-minor version content
{workflow:name=Increment a Metadata Version 1} {description} A simple approval workflow with use of increment-metadata macro to set the major and minor versions. Major version incremented on approval of content, minor version on any update on the approved content {description} {pageheader} ||Type|| Version||Version Number|| |Page metadata|content-version value|@currentversion@| |Confluence metadata|Confluence version value|@version@| {pageheader} {state:Review|approved=Approved|taskable=true} {approval:Review} {state} {state:Rejected|submit=Review|taskable=true} {state} {state:Approved|final=true|updated=Review|hideselection=true} {state} {trigger:pagecreated} {set-metadata:currentversion}0.1{set-metadata} {trigger} {trigger:statechanged|state=Review} {increment-metadata:currentversion|increment=0.1} {trigger} {trigger:pageapproved|approval=Review} {increment-metadata:currentversion|increment=1.0} {trigger} {workflow}
In our example, applying the space workflow to existing pages will not initialize the currentversion metadata value and subsequent use of the currentversion metadata in the
increment-metadata
macro will not work.
The
get-metadata
macro can be added to a page to retrieve and display the current metadata values.
Here's how each trigger action works.
Trigger Event | Action macro | Notes | Confluence and Metadata version displayed on content using get-metadata macro |
---|---|---|---|
pagecreated | set-metadata |
| Editing content in the Initial state updates the Confluence version value but not our metadata value. |
| |||
statechanged | increment-metadata |
| |
pageapproved | increment-metadata |
| Editing content in the Approved state
|
An individual reviewer rejection decision on its own does not impact the metadata content-version
value.
The metadata value is linked to a page not a Confluence page version so when viewing a previous page version this will show the current metadata value.
For example, viewing the final Approved state content whilst content is in a draft state would display the current metadata value NOT the metadata value when the content was published.
Content in draft state | Content in published state |
---|---|
Edit the Approved state, content updates and transitions to draft state Review. The displayed metadata would be
| Content in Approved state prior to editing. Using
|
Manage composite major-minor-patch version of the content
Additional triggers may be useful to initiate major-minor-patch value changes.
This second example below uses an increment-metadata
macro to support the custom versioning of a page using a composite numeric metadata value.
The elements of the composite version are incremented when different specific events occur.
{workflow:name=Composite Increment Metadata} {state:Draft|submit=Review} {state} {state:Review|approved=Approved} {approval:Review|assignable=true} {state} {state:Approved|final=true|submit=Draft} {state} {trigger:pagecreated} {set-metadata:comp-version} 0.0.1 {set-metadata} {trigger} {trigger:pageupdated} {increment-metadata:comp-version|increment=0.0.1} {trigger} {trigger:statechanged|state=Review} {increment-metadata:comp-version|increment=0.1.0} {trigger} {trigger:statechanged|state=Approved} {increment-metadata:comp-version|increment=1.0.0} {trigger} {workflow}
Only works if this example workflow is applied as a space workflow.
The metadata name and initial value are set on the creation of the page using a trigger
macro and the set-metadata
action macro.
{set-metadata:comp-version}0.0.1{set-metadata}
A version change will occur:
- for every page edit (a PATCH version change)
- on a state change to the Review state(a MINOR version change).
- on a state change to the Approved state (a MAJOR version change).
Metadata value initialization
Page creation creates the metadata comp-version
and sets the initial value as 0.0.1
{set-metadata:comp-version} 0.0.1 {set-metadata}
Minor element value update
A state change to the Review state will update the second numeric element (MINOR element)of the version by 1.
The workflow uses a trigger
macro on the statechanged
event for state=Review
and the increment-metadata
action macro.
{increment-metadata:comp-version|increment=0.1.0}
This also resets the final numeric element to zero e.g. a version value 2.1.3 will change to 2.2.0.
Major element value update
A state change to the Approved state will update the first numeric element (MAJOR element) of the version by 1
.
The workflow uses a trigger
macro on the statechanged
event for state=Approved
and the increment-metadata
action macro.
{increment-metadata:comp-version|increment=1.0.0}
This also resets the second numeric element and the final numeric element to zero e.g. version 2.2.5 will change to 3.0.0.
Patch element value update
A page edit will increase the final numeric element (PATCH element)of the version using a trigger
macro on the pageupdated
event and the increment-metadata
action macro.
{increment-metadata:comp-version|increment=0.0.1}
The final numeric element of the version will increment by 1
for a page edit in any of the workflow states.