Overview
Different events can be used to increment a composite version number.
The workflow uses the following trigger actions
- initialize a version value using set-metadata macro
- increment the 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 value for metadata.
o
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 |
| o Editing content in the Initial state updates the Confluence version value but not our metadata value. o |
Applying this workflow in ‘page mode’, the pagecreated trigger will never fire because the page is created before the workflow is applied. The metadata value would need to be initialized using a different event trigger. | |||
statechanged | increment-metadata |
| o |
pageapproved | increment-metadata |
| o 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 draft would display the current metadata value NOT the metadata value when the content was published.
Content in draft state | Content in published state |
---|---|
o | o |
Edit the Approved state, content updates and transitions to draft state Review. The displayed metadata would be
| Content in Approved state prior to editing. The get-metadata macros on the page retrieve and display
|
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 the 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}
o
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}
o
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}
o
This also resets the second numeric element and the final numeric element to zero e.g. the 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}
o
The final numeric element of the version will increment by 1 for a page edit in any of the workflow states.