Breaking Changes
Version 10.4.0+
Bitbucket was updated to version 10
For details, see the Atlassian Bitbucket 10 release notes. For more information on compatibility and how to upgrade, see the Upgrade page.
UI Fragments updates: Client Web Fragments removal and the transition to Client Side Extensions (CSEs)
With Bitbucket 10, Atlassian removed several Client Web Fragments in favor of Client Side Extensions (CSEs). If you use ScriptRunner UI fragments with any of these removed Client Web Fragments, you will need to update your configuration by re-implementing these UI Fragments as CSEs.
For a comprehensive list of the removed Client Web Fragments and their corresponding new extension points, consult Atlassian's removal guide.
ScriptRunner already supports CSEs through custom web resources. We recommend you review our documentation for detailed implementation guidance on using CSEs with ScriptRunner.
Spring and Jakarta upgrade
Jira has upgraded to Spring 6.x and Jakarta EE 10, which introduces changes to core Java EE technologies. This upgrade affects various components including servlets, REST APIs, dependency injection, and annotations. See Atlassian's documentation for more details.
If any of your scripts, such as Web Items and REST endpoints refer to old package names (for example servlet, REST, dependency injection), or depend on libraries that assume older versions, they may fail. It's important to review and update these references. See below for examples of packages that have migrated from javax to jakarta:
In some cases it may be as simple as replacing javax with jakarta in your imports.
JavaX xml
groovyimport javax.xml.bind.JAXBContext import javax.xml.bind.Marshaller import javax.xml.bind.annotation.XmlRootElement @XmlRootElement class Person { String name }
New Jakarta xml
groovyimport jakarta.xml.bind.JAXBContext import jakarta.xml.bind.Marshaller import jakarta.xml.bind.annotation.XmlRootElement @XmlRootElement class Person { String name }
Java X Java Mail
groovyimport javax.mail.internet.MimeBodyPart import javax.mail.internet.MimeMultipart import javax.mail.internet.MimeMessage import javax.mail.Session import javax.mail.Transport import javax.mail.internet.InternetAddress def session = Session.getDefaultInstance(new Properties(), null) def message = new MimeMessage(session) message.setFrom(new InternetAddress("no-reply@example.com")) message.addRecipient(Message.RecipientType.TO, new InternetAddress("user@example.com")) message.setSubject("Attachment test") def bodyPart = new MimeBodyPart() bodyPart.setText("Please see attached") def attachment = new MimeBodyPart() attachment.attachFile(new File("/tmp/test.txt")) def multipart = new MimeMultipart() multipart.addBodyPart(bodyPart) multipart.addBodyPart(attachment) message.setContent(multipart) Transport.send(message)
New Jakarta Java Mail
groovyimport jakarta.mail.internet.MimeBodyPart import jakarta.mail.internet.MimeMultipart import jakarta.mail.internet.MimeMessage import jakarta.mail.Session import jakarta.mail.Transport import jakarta.mail.internet.InternetAddress def session = Session.getDefaultInstance(new Properties(), null) def message = new MimeMessage(session) message.setFrom(new InternetAddress("no-reply@example.com")) message.addRecipient(Message.RecipientType.TO, new InternetAddress("user@example.com")) message.setSubject("Attachment test") def bodyPart = new MimeBodyPart() bodyPart.setText("Please see attached") def attachment = new MimeBodyPart() attachment.attachFile(new File("/tmp/test.txt")) def multipart = new MimeMultipart() multipart.addBodyPart(bodyPart) multipart.addBodyPart(attachment) message.setContent(multipart) Transport.send(message)
jQuery 3 upgrade
Jira upgraded to jQuery3 from version 2. If any of your scripts refer to old package names, or depend on libraries that assume older versions, they may fail. It's important to review and update these references. See Atlassian's documentation for more details. You can also refer to the jQuery Core 1.9 upgrade guide and jQuery Core 3.0 upgrade guide.
Version 9.0.0+
Bitbucket was updated to version 9
See the Atlassian Bitbucket 9 release notes for details. See the Upgrade page for more information on compatibility and how to upgrade.
Gray API removal
Previously, apps could access code from third-party libraries. If you are using any third-party APIs (or Gray APIs), your scripts could break. Please review Atlassian documentation for the full list of removed APIs.
Other API changes
Atlassian has made other API changes you should be aware of, see the API changelog for further details.
Fragments updates
Please check out these pages to see what's changed with our UI Fragments:
- Raw XML Module Breaking Change for Bitbucket 9
- The formats for
condition classandprovider classhave changed.
- The formats for
- Web Resource Breaking Change for Bitbucket 9
- If you have files in
plugin.resource.directoriesyou will have to move them toweb-resources/com.onresolve.stash.groovy.groovyrunner.
- If you have files in
- Web Panel Breaking Change/Deprecation for Bitbucket 9
- The
writeHtmlmethod will now be ignored. - Atlassian's
WebPanelinterface has moved to a new location.
- The
Version 8.0.0+
Groovy was updated to 4.0.7
See Groovy 4 Update section for details.
Deprecated SrSpecification class removed
Authors of Script Plugins may be used to writing tests which extend the deprecated com.onresolve.scriptrunner.canned.common.admin.SrSpecification class. This class has been removed. Authors of tests for their scripts should extend the spock.lang.Specification class directly. The Test Runner Built-in Script should still pick up tests as normal.
Version 7.0.0+
Groovy Updated to 3.0.12
See Groovy 3 Update section for details.
Spock Updated to 2.0
As part of upgrading to Groovy 3 we had to update Spock, because there is no Groovy 3 compatible version of Spock 1.3, which was used in ScriptRunner 6.
Spock can be used to write and run unit tests within ScriptRunner. It is unlikely that tests written by ScriptRunner users would use parts of Spock 2.0 that contain breaking changes. However, if you maintain tests for your scripts you should explore the breaking changes listed in the release notes for Spock 2.0.
JUnit 4 Removed
Although it wasn't advertised in the documentation, it was possible to write and run unit tests using JUnit 4 in ScriptRunner 6. Spock 2.0 is based on JUnit Platform, not JUnit 4, so JUnit 4 tests will no longer work inside ScriptRunner.
If you wrote any tests using JUnit 4, then you will need to rewrite them using Spock.
Version 6.17.0+
IE11
The last ScriptRunner for Jira version compatible with IE11 is 6.17.0. Do not update ScriptRunner past this version if using IE11.