|
| 1 | +# Use UI Kit 2 (and Node 22 Runtime) |
| 2 | + |
| 3 | +- Status: Accepted |
| 4 | + |
| 5 | +## Context and Problem Statement |
| 6 | + |
| 7 | +Need to choose a new JavaScript runtime that provides libraries for Jira and Flagsmith REST API |
| 8 | +calls, storage, authorisation, etc. |
| 9 | + |
| 10 | +Need to choose a new JavaScript library for UI components (text, tables, inputs, buttons, etc) and Jira UI (app settings, |
| 11 | +project settings, issue panel, etc). |
| 12 | + |
| 13 | +## Decision Drivers |
| 14 | + |
| 15 | +- Forge Legacy Runtime reached end-of-life in Feb 2024 |
| 16 | +- UI Kit 1 reached end-of-life in Feb 2024 |
| 17 | +- Overall requirement for fastest route to maintain service |
| 18 | + |
| 19 | +## Considered Options |
| 20 | + |
| 21 | +- Forge Node Runtime 20 and 22 (generally available) |
| 22 | +- UI Kit 2 (updated library, generally available) |
| 23 | +- Custom UI (provide own UI components, use bridge to Jira components) |
| 24 | + |
| 25 | +## Decision Outcome |
| 26 | + |
| 27 | +Chosen option: "UI Kit 2", because it offers the least worst route to upgrading the existing UI. "Node 22 Runtime" because it is the current LTS, probably supported by Forge (documentation is contradictory but intention is there), and found to work in testing. |
| 28 | + |
| 29 | +### Positive Consequences |
| 30 | + |
| 31 | +- Reduced effort compared to Custom UI as UI Kit 2 provides pre-built UI components, similar to those currently used, styled to fit with Jira |
| 32 | +- Greater compatibility as UI Kit 2 is expected to work well with Jira styling features such as dark mode, while providing finer style control than UI Kit 1 |
| 33 | +- UI Kit 2 uses real React (16) rather than React-like hooks, so can use more standard techniques |
| 34 | + |
| 35 | +### Negative Consequences |
| 36 | + |
| 37 | +- Some quite painful changes from UI Kit 1 in terms of component changes, React hook changes, and bridging between frontend and backend execution, but this is unavoidable |
| 38 | + |
| 39 | +## Links |
| 40 | + |
| 41 | +- <https://developer.atlassian.com/platform/forge/function-reference/nodejs-runtime/> |
| 42 | +- <https://developer.atlassian.com/platform/forge/ui-kit/components/> |
| 43 | +- <https://developer.atlassian.com/platform/forge/custom-ui/iframe/> |
| 44 | +- <https://ecosystem.atlassian.net/jira/polaris/projects/ROADMAP/ideas> |
0 commit comments