Hello everyone,
Our JIRA rules forbid the Subtask issue type. Currently, this also includes a “no umbrella issues” rule. But, we observed recently that some work does not fit in a single issue (e.g., migrating LT to LD, making the build reproducible, or enforcing required rights). Developers need a way to follow that work, and currently we don’t have a common practice to do so.
In this proposal I’ll try to find a practice that works for all of us.
Current practices
We either use some kind of tracking issue, or create design pages.
- Tracking issue are basically a bypass of subtask without the integration in Jira (see list below)
- Design pages are hard to keep in sync, especially are we are not allowed to create ad-hoc labels to track a specific task
Jira tracking issues
| Issue | Type | Linked issues | Open since |
|---|---|---|---|
| XWIKI-22666 Moving away from LESSCSS | Improvement | 6 | 2024-11 |
| XWIKI-22668 Migrate most of XWiki’s LESS files to native CSS | Task | 6 | 2024-11 |
| XWIKI-22847 Make possible to use XWiki without any persistent file storage | New Feature | 4 (in XWIKI and XCOMMONS) | 2025-02 |
| XWIKI-23339 Enforce required rights in all pages in XS | Improvement | 5 | 2025-06 |
| XWIKI-24698 Make the XWiki build fully reproducible | Improvement | 7 (in XWIKI and XCOMMONS) | 2026-08 |
| XINFRA-502 Migrate jira.xwiki.org to OpenProject | Task | 17 Subtasks | 2026-10 |
Design tracking pages
- https://design.xwiki.org/xwiki/bin/view/Proposal/WYSIWYGusabilityofXWikimacros/
- https://design.xwiki.org/xwiki/bin/view/Proposal/LivetabletoLiveDataMigration (for why I actually introduce a
livedatamigrationJira label, against our rules)
Existing discussions
Mainly Remove JIRA Epic & Story issue types and deprecate usage of the subtask type.
But also:
- Set a fix version for non-duplicate issues solved by another issue
- Allow creating JIRA issues not related to code in any JIRA project
Vocabulary
“Umbrella issue” is actually an ambiguous term, I suggest using the terms defined below to ease the discussion
- Subtask: the JIRA issue type that nests an issue under a parent (currently forbidden)
- Tracking issue: a regular issue whose only purpose is to group linked issues on one topic (I think they should be tasks, and we shouldn’t commit with their ID).
Needs
See bellow a list needs, that can be contradicting:
- Follow progress of a multi steps tasks (e.g., LD migration)
- Avoid issues that stay open forever / a list of open issues that means something
Options
A. Keep the rule and clarify it
Still no tracking issues, and we use only design pages to track progress.
Pro:
- No change, no new risk of open-forever issues.
Con:
- It does not match what we already do.
B. Allow tracking issues with new closing rules
We keep using regular issues and keep the “depends on” linking mechanism to connect issues together.
In addition, a few more information is required:
- A done criterion defined by the issue creator (e.g.,
Building xwiki-commons, xwiki-rendering and xwiki-platform twice, from different directories and as different users, produces identical JARs, WAR, Debian packages and XIP.for a reproducible build work) - The assignee is responsible for the respect of the closing rules
- Optionally, a dedicated
trackinglabel
We follow the closing rules below
- R1. Normal close. When the done criterion is reached, the issue can be closed with no fix version
- R2. Leftover steps. If some step issues are still open when the done criterion is met, replace their “depends on” links with “relates to”, in addition to R1.
- R3. Fixed scope. The done criterion cannot be extended/updated after creation. New issues can only be added if they match the existing definition.
- R4. Abandon. If after 6 months the issue did not progress, the issue must be closed as won’t fix with no fix version (yes it means closing some existing issues I listed above)
Pro:
- Allow linking to several projects (sub-tasks can’t do that)
- Easy to migrate to the parent/child hierarchy of OpenProject.
- Easy to query (e.g.,
issueFunction in linkedIssuesOfRecursive("issue = XWIKI-22666", "depends on")).
Con:
- More rules, needs discipline to apply them well.
C. Allow the Subtask type again
Pro:
- Natively supported by JIRA
- Easy to migrate to the parent/child hierarchy of OpenProject
Con:
- A subtask cannot have Subtasks (e.g., XWIKI-22666)
- A subtask cannot span several projects
Conclusion
I believe all the proposed option can easily be ported to OpenProject
Here’s my +1 for B.
I’ll align the existing “tracking issues” once a rule is validated. I’m not proposing the exact wording on the new rules to add to the documentation for now to not make the proposal bigger than it already is.
Thanks for reading this far.