Preparing for Jira 9.2
This documentation is intended for Jira developers who want to ensure that their existing apps are compatible with Jira 9.2
Upgrading from 8.x to 9.x triggers full Jira reindex that causes some downtime during the process. If you’re on 8.x now, make sure you’ve estimated the downtime and set the best time for the upgrade.
Learn more about how to handle full reindex and estimate downtime
Quick info
Latest version
Here you can find information about the latest EAPs.
Application/Date | number | Version (Maven) | Downloads |
---|---|---|---|
Jira Core/Software
| 9.2.0-EAP03 | 9.2.0-m0004 | Source files (Core) Source files (Software) |
Jira Service Management
| 5.2.0-EAP03 | 5.2.0-m0004 |
Summary of changes
In this section we'll provide an overview of the changes we intend to make, so you can start thinking how it might impact your apps. Once they're ready, we'll indicate when a change has been implemented, and in which milestone.
OAuth 2.0 Outgoing mail (SMTP)
Status: IMPLEMENTED ( 01)
App: JIRA SERVICE MANAGEMENT, JIRA SOFTWARE
We’re introducing OAuth2 authorization for SMTP outgoing mail servers. We keep the support for Google and Microsoft as providers as well as the IMAP, POP3, and SMTP protocols for connection.
To find the feature, go to Administration > System > Outgoing mail. We’ve added two new fields and a new button to the form to allow the configuration of a proper authentication method or JNDI location:
- Authentication method field
- Enabled checkbox
- Authorize button
- Authentication method is a method that you want to use. It always has the Password (basic authentication) option. Other options depend on defined OAuth providers. When Password (basic authentication) is selected, the Password input is added below Username.
- The Enabled checkbox states if a JNDI location should be used. If you select the checkbox, the Server Details section of the form will be disabled.
- The Authorize button has the following behavior:
- The button is active and visible only when you select one of the OAuth providers as the authentication method. When you select the button, the flow for obtaining the OAuth token will be initiated. When the flow is completed, the Test Connection button will be enabled.
- The button is hidden and inactive when the Password (basic authentication) method is selected. In this case, the user can immediately select the Test Connection button. A successful connection test is necessary, as without it the Save button remains disabled.
The feature is enabled by default. But you can continue using your current outgoing mail configuration.
Diagnostic recording configuration with JFR
Status: IMPLEMENTED ( 01)
App: JIRA SERVICE MANAGEMENT, JIRA SOFTWARE
We’ve added the ability to configure diagnostic recording via the user interface and endpoints with Java Flight Recorder (JFR). Now, to get the desired information, you can configure the amount of recorded data for the sake of easier problem diagnostics. To do this, adjust the following JFR settings:
- Maximum recording age: the maximum snapshot file age threshold beyond which the snapshot is deleted.
- Maximum recording size: the maximum snapshot size threshold beyond which the snapshot is deleted.
- Thread dumps interval: the time interval for extracting thread dumps.
To find the feature, go to Administration > System > Troubleshooting and support tools. On the page, find the Java Flight Recorder settings section.
Learn more about how to use Java Flight Recorder in Diagnosing runtime issues using Java Flight Recorder.
Faster page load time for backlog and board views
Status: IN PROGRESS ( 01)
App: JIRA SOFTWARE
We’re started reducing the amount of code that’s shipped to the browser on Jira Software pages, aiming to speed up page loading time in the app. So far, we’ve optimized page performance for Jira Agile views: backlog and board.
What has changed?
Polyfills are removed from all Jira pages and reports resources are decoupled for backlog and board views. We’ve currently in the process of bundling the code with webpack.
Removing polyfills from Jira
We’ve removed the following polyfills provided by the atlassian-frontend-runtime-plugin
:
escape-css-selector-polyfill
and it'll be removed completely in Jira 9.3.0.atlassian-frontend-runtime-plugin
is regenerator-runtime
, and it will be removed in the next Jira version.
Decoupling of reports from Agile board and backlog views
We’ve reduced the sizes of Agile backlog and board views by ~700 kB. We’ve untangled and decoupled Agile reports resources from the rest by removing gh-chart-dependencies
and jira-agile-reports
from the gh-rapid
web resource. Instead of having these dependencies preloaded, we now load them only when a user transitions to reports-related views.
What do you need to know?
As part of already implemented and planned changes, we’ve modified multiple AMD module names, which start with jira-agile/
. If you’re using those in your apps, you’ll need to adjust module names to ensure that your applications work correctly. The updates mainly entail changing kebab-case to PascalCase convention. Global variables are left intact. However, as they are also non-API parts, we don’t recommend using them.
You can read more about the changes and why we decided to proceed with the current approach in Jira DC Front-end API Announcement.
We plan some changes to modules in the upcoming Jira versions. If there are any important modules that you think should remain unchanged, let us know about your use case and particular module here: JSWSERVER-21430 - Getting issue details... STATUS
We’ll take it into consideration while working on further changes.
Background processing performance improvements
Status: IMPLEMENTED ( 01)
App: JIRA SERVICE MANAGEMENT
The Pretty Simple Message Queue (PSMQ) comes with another performance improvement. This time we've optimized some code areas, which helps achieve better instance stability and application scaling.
The changes include:
- removed calls for the message queue property table to reduce the number of database calls.
- dropped message priority from the API and queries (this column is not being used in code.)
With the changes in place, we can observe the following improvements in PMSQ processing time for up to 100k messages in the queue:
- ~20% better performance in processing messages with 20 threads
- ~65% better performance in processing messages with 5 threads (default config)
Pickers improvements
Status: IMPLEMENTED ( 01)
App: JIRA SOFTWARE
Following the changes introduced in the project picker behavior in Jira 8.21, we’ve made adjustments to other dropdown menus in the app. Instead of initially loading all the available items for a particular picker, we now only display 100 items on the list. The search input is used to query the backend for the results matching the provided query.
This change improves rendering time when creating or editing an issue as well as using Component, Priority, and Version pickers in basic search mode. It also allows our customers to remain performant at scale even when the number of items to render is growing.
Changes and additions to the API
We’ve added new endpoints that allow querying versions, components, issue types, resolutions, statuses, and priorities. All new endpoints return paginated results to limit the response size of potentially large collections of items.
Check out the list of new endpoints:
Help Center announcement improvements
Status: IMPLEMENTED ( 01)
App: JIRA SERVICE MANAGEMENT
We’ve fixed the displaying behavior of the announcement banner in the cases where it’s translated or deleted on the help center and customer portal. So, you can be sure that your changes to the banner will be displayed correctly or that no banner will be displayed if you delete it.
Now, if at least one language—other than the default one—is enabled, you can manage announcement translations on the Project settings page in the Language support section. You’ll see a link to the page where you can manage translations when editing announcements.
When you delete the announcement banner for the help center or customer portal, the system will check if there are any translations attached to it. If there are any, the translations for deleted fields will be cleared and you’ll see a warning message to confirm the change.
When you update the announcement banner for the help center or customer portal, the system will keep the existing translations. However, if there are any translations attached to it, you’ll see a reminder warning message for reviewing existing translations.
This will prevent inconsistencies in the banner’s content or, if the banner is deleted, ensure that it isn’t displayed on the help center and customer portal.
This feature is enabled by default with the feature flag sd.help.center.announcement.improvements
.
Insight accessibility and enhancements
Status: IMPLEMENTED ( 01)
App: JIRA SERVICE MANAGEMENT
In Jira 5.2, we’ve fixed 15 critical accessibility bugs in Insight that are related to:
- Custom field rendering in the customer portal
- Object schema view
- IQL search component
- Activity (comments list) component
- Detail view (object list) component
- Related Jira issues component on the Overview tab
We’ve also fixed 11 issues pertaining to:
- Consistency improvements across buttons, headings, breadcrumbs, and badges for the object schema view
- Newly created objects are now automatically selected for custom fields in the Jira issue view
- Custom field rendered in customer portal is modernized with React
- Fixed page layout on smaller screens in the schema configuration view
- Graph dialog:
- On the Graph tab, moved the Lock force graph in place button to a toggle under the Configure section
- Changed checkboxes to toggles to better reflect states
What do you need to know?
We don’t have feature flags for the majority of fixes. Due to the pervasive nature of the accessibility issues and the small scope of most changes, adding feature flags would result in extra complexity.
So far, there’s only one new feature flag introduced: insight.cf.react.on.cp
. It’s used for the component that was rewritten from the legacy stack into React. See this ticket for details:
JSDSERVER-11439
-
Getting issue details...
STATUS
The insight.cf.react.on.cp
feature flag was introduced due to the potential risk from the rewrite and is turned on by default.
Insight database query batching
Status: IMPLEMENTED ( 01)
App: JIRA SERVICE MANAGEMENT
Database queries executed during imports to Insight are now batched to improve the health of your Jira instance and overall import performance. Batching means that all data for each query is retrieved at once, instead of many individual select queries.
- Batch queries save the history data.
- The delete operations are batched up instead of being done one by one for attribute values.
- The insert and update operations are batched up not to execute one query for every attribute change.
- This feature impacts all imports from all sources by optimizing the database queries that are being executed to batch them together for an object where possible.
The feature is disabled by default. You can enable it with the following feature flags: insight.attribute.bulk.delete
and insight.attribute.creation.optimisation
.