...
...
...
...
...
...
...
...
...
...
...
...
This Guideline is being drafted at the moment.
...
| Action | Example | Assumptions |
---|
1 | Create Versions in Jira: - Navigate to your Jira project and
- go to Project Administration OR
- go to Manage Versions on Releases page
In the Project Administration menu click on Versions Fill in Version name, Version Description and Start date, and click Add - Use Drag&Drop to rearrange order of Versions in the list
| Image Modified OR Image Modified Image Modified | - Scrum Master is accountable for creation of required Versions in Jira projects corresponding to the modules and other FOLIO software components (plugins, libraries, etc.) owned by their team (see Team vs module responsibility matrix).
- Dev Lead can be responsible for creation of required Versions in a team's Jira projects if agreed within a team, but Scrum Master remains accountable for making sure required Versions are created in Jira projects.
|
---|
...
- Permissions to create and manage Versions in Jira
|
...
...
|
2 | I. Make sure three required Versions are created for each Jira project corresponding to the modules and other FOLIO software components (plugins, libraries, etc.) owned by a team and meaningful Version Descriptions are added: - Next Patch Version - version (x.y.Z) with Z incremented
- Next Minor Version - version (x.Y.z) with Y incremented
- Next Major Version - version (X.y.z) with X incremented
Note: The above mentioned Versions must be increments based on the Version of the latest Quarterly Release delivered (created in GitHub). II. For a module to support updates into the last two quarterly releases |
---|
...
...
...
might be required: - QX Next Patch Version - version (x.y.Z) with Z incremented
- QX Next Minor Version - version (x.Y.z) with Y
|
...
- incremented
Note: The above mentioned Versions must be increments based on the Version of second-to-latest Quarterly Release delivered (created in GitHub). | Image Modified | - Three required Versions should be created for every Jira project, so that an appropriate Version can be selected by any developer based on the nature of their task. Most developers do not have permissions to add Versions to Jira projects, thus three required Versions should be created in advance to be available for developers when needed.
- For modules where support of the last two quarterly releases is often required it makes sense to add an additional set of
|
...
- versions for second-to-latest Quarterly Release to be available at any time.
- There can be cases with more
|
...
- Versions available because of requirements to create additional Hotfix releases for some previously delivered quarterly releases - such Versions can be added when needed.
|
3 | Update Fix Version field in a Story/Task/Bug selecting an appropriate Version after code changes have been merged: - On View Issue screen update Fix Version field by selecting an appropriate Version from unreleased versions available in the dropdown;
- OR from Backlog view select a story/task/bag and use Drag&Drop to associate it with a proper Version in Versions left side bar;
- OR from Edit Issue screen update Fix Version field by selecting an appropriate Version from unreleased versions available in the dropdown
There should be at least three unreleased Versions available: - Next Patch Version - version (x.y.Z) with Z incremented
- Next Minor Version - version (x.Y.z) with Y incremented
- Next Major Version - version (X.y.z) with X incremented
If changes are implemented for second-to-latest Quarterly Release, there should be corresponding unreleased Versions available (or they must be created ad-hoc): - QX Next Patch Version - version (x.y.Z) with Z incremented
- QX Next Minor Version - version (x.Y.z) with Y incremented
Note: If a fix is to be backported to previous quarterly releases and delivered as Bugfix/Hotfix release, it is necessary to specify several Fix Versions to identify in which Version of every quarterly release the fix was introduced. | |
---|
...
Patch Version (x.y.Z) - if only backwards compatible bug fixes are introduced to fix incorrect behavior
- if changes that do not affect the interface, have no changes in API, have no any new functionality added
Minor |
...
Version Y (x.Y.z) - if new, backwards compatible functionality is introduced
- if any public API functionality is marked as deprecated
Major |
...
Version X (X.y.z) - if any backwards incompatible changes are introduced
For more details on Versioning see: Example of several Fix versions specified for an issue: Quarterly release | Latest version released | Version to include a fix |
---|
Q1 | 1.5.1 | 1.5.2 | Q2 | 1.6.3 | 1.6.4 | Q3 | 2.1.0 | 2.1.1 |
Three Fix Versions should be specified (1.5.2, 1.6.4, 2.1.1) to indicate that the fix: - is included into Q3 v2.1.1 and onwards
- is backported to Q2 in v1.6.4
- is backported to Q1 in v1.5.2
- is not available in any Q1 versions before v1.5.2, any Q2 versions before 1.6.4, and any Q3 versions before 2.1.1
| - Developer is accountable for updating Fix Version field and selecting an appropriate Version based on the nature of implemented changes after code changes have been merged.
- Scrum Master is responsible for reviewing closed issues on regular basis (after every sprint closure) to make sure Fix Versions are not missed (go to Jira Sprint Report → View in Issue Navigator → Review Fix version column in List View mode). If missing Fix Versions are observed (and there were code changes associated with those items), Scrum Master should work with their team to fill in the gaps.
- Fix Version should not be specified for any stories/tasks having no code changes merged. For example, spikes, investigations, POCs, tasks closed with resolution Won't Do/Duplicate/Cannot Reproduce and other tasks having no code changes impacting production release artifacts.
|
4 | 3 weeks prior established module release deadline Update Fix Version field in an incomplete Story/Task/Bug being not yet merged, if it is confirmed to be a release must-have item. When Fix Version added to incomplete must-have items: - Incomplete release must-have items will be added to the scope of corresponding
|
---|
...
- Versions on Releases page of a Project
- Details on the incomplete release must-have items and their current statuses can be viewed on Version details page and used for understanding of module readiness for release
Note: If some incomplete item is not assigned to an appropriate Version in Jira in time, there is a great chance it won't get into Release as the team owning a module can start Release procedure earlier than the item is completed.
| Image Modified Image Modified | - Product Owner is accountable for reviewing Release progress and identifying incomplete release must-have items 3 weeks prior established module release deadline.
- Developer is accountable for updating Fix Version field and selecting an appropriate Version based on the nature of code changes planned to be implemented for the items confirmed to be release must-haves.
- Scrum Master is responsible to make sure release progress review is done by a team and Fix versions are added for incomplete release must-have items.
- Release Coordinator is responsible to add this action to Release timeline.
|
5 |
---|
...
While creating a release during Release sprint I. Confirm the Version to be released and Delete unnecessary Versions: 1. if there are items |
...
in Patch Version only, Patch Version to be released: |
...
→ Patch Version is planned for release → No need to delete any Versions 2. if there are items in Minor |
...
...
...
Version AND no items in Major |
...
Version: → Minor Version is planned for release → |
...
Patch Version must be deleted; while deleting - all issues assigned to |
...
Patch Version must be moved to Minor |
...
Version planned for release to be included into corresponding Release notes 3. if there are items in Major Release (and Minor/ |
...
Patch) version: → Major Version is planned for release → |
...
Patch and Minor Release versions must be deleted, while deleting - all issues assigned to |
...
Patch/Minor release versions must be moved to Major Version planned for release to be included into corresponding Release notes II. Proceed with Release Procedure for a module |
...
: a. if all items assigned to a Version are |
...
completed → Proceed with Release Procedures b. if 4 days before release deadline there are still some incomplete items assigned to a Version → Proceed with Release Procedures → Incomplete items won't be included into release and Fix Version field should be cleared for them. Note: Relevant POs should be informed that release procedures are going to be started and some incomplete items should be planned for next quarterly/Bugfix/Hotfix releases. In case it is not possible to defer incomplete items to next quarterly/Bugfix/Hotfix release and the decision is to postpone release creation to get critical items completed and included, the risk of delay of a module release (and any dependent modules' releases) should be explicitly raised. Note: Before releasing - double-check if there are any items completed with Fix Version missed in Jira. If there are any - Fix versions should be added to get the items included into Release Notes in Jira. (see Template Filter → update "project" and "resolved" date (=Start date of |
...
a Version to be released) to see items |
...
Closed without Fix Version since |
...
the work on that Version had been started) | Image Modified
Image ModifiedImage ModifiedImage Modified
Image Modified
For more details on Release Procedures see: |
...
- Before starting release procedure for a module, all completed issues planned for next quarterly release
|
...
- for a certain module must be reviewed to confirm which Version is going to be released (patch/minor/major).
- Deleting unnecessary
|
...
...
- necessary if they are not going to be released separately, so that all issues completed and assigned to
|
...
- Patch/Minor Versions are moved to a Version
|
...
- to be released and are included into its Release Notes in Jira.
- Having a cut-off day (4 days prior release deadline) is necessary to avoid postponing release procedures until the very last day and thus having delays in releases of interdependent modules.
- Scrum Master is accountable for deletion of unnecessary Versions in Jira and moving issues to a Version planned for
|
...
- release as well as clearing Fix Version field for the incomplete items, not included into release.
- Dev Lead can be responsible for deletion of unnecessary Versions in Jira and moving issues to a Version planned for release as well as for clearing Fix Version field for the incomplete items, not included into release, if agreed within a team, but Scrum Master remains accountable for making sure the Version to be released is confirmed
|
...
- , unnecessary Versions are deleted and Fix Version field is cleared for the incomplete items not included onto release.
- Release Coordinator is responsible for regular monitoring release readiness status across FOLIO and sharing the updates via Slack channel and while Release Weekly Status Review meetings. (the report can be fetched based on incomplete items assigned to Version planned for release + blockers/dependencies linked to release stories)
- Release Coordinator is responsible for double-checking the release readiness status on the agreed cut-off date and informing about the modules still having incomplete items, so that all parties involved can clearly understand that release procedures are going to be started and some incomplete items won't be included into release.
|
6 | After Release in GitHub is created I. Release corresponding Version in Jira: 1. Release Version in Jira 2. Add Release date while releasing Version in Jira 3. Update released version description to easily identify relevance to a certain quarterly release → [QX yyyy (Hotfix/Bugfix) Release: GitHub Release URL] II. Update/add required Versions for next releases: a. if |
---|
...
Patch Version was released → Add next |
...
...
No updates for Start date for Minor and Major |
...
Versions b. if Minor Version was released: → Add next |
...
...
Versions → Update Start date for Major |
...
Version c. if Major Version was released: → Add next |
...
...
Versions | Image Modified Image Modified Image Modified | - Scrum Master is accountable for releasing and updating Versions in Jira as soon as corresponding modules are released.
- Dev Lead can be responsible for releasing and updating Versions in Jira, if agreed within a team, but Scrum Master remains accountable for making sure the Version are released and updated.
- Release Coordinator is responsible for monitoring the number of unreleased Versions per Jira project across FOLIO and sharing the updates via Slack channel.
|