All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
The library offers compatibility contracts on the Java API and the POM.
The API covers all public Java types from com.atlassian.performance.tools.infrastructure.api and its subpackages:
- source compatibility
- binary compatibility
- behavioral compatibility with behavioral contracts expressed via Javadoc
Changing the license is breaking a contract. Adding a requirement of a major version of a dependency is breaking a contract. Dropping a requirement of a major version of a dependency is a new contract.
- Install fonts required by
AdoptOpenJDK,AdoptOpenJDK11,OracleJDK,VersionedOracleJdk. Aid DCPERF-432.
- Fix remote JVM debugger setup for Jira. Aid DCPERF-432.
4.29.1 - 2024-06-17
- Fix
JAVA_HOMEinOpenJDKandOpenJDK11.
4.29.0 - 2024-06-04
- Add
VersionedOracleJdkto support Oracle JDK 11+.
4.28.3 - 2024-02-08
- Start collecting metrics of SshVirtualUsers node. Aid with JPERF-1457.
- Work around docker 25.0.0 breaking usage of 'ulimits' command.
4.28.2 - 2023-12-15
- Bump Virtual Users JDK to 11. Old Java 8 VU JARs should still work.
4.28.1 - 2023-12-06
- Bump async-profiler to v2.10.
- Provide a default interval for async-profiler. Workaround for IDEA-320011. Help fix JPERF-1409.
4.28.0 - 2023-10-11
- Add
AsyncProfiler.Builderoptions:outputto aid in investigation of JPERF-1390jfrandflamegraphfor conveniencestartParamsandstopParamsfor extensibility
- Deprecate
AsyncProfiler.Builder.extraParamsin favor ofstartParamsdue to ambiguity withstopParams.
4.27.0 - 2023-10-09
- Add
AsyncProfiler.Builderto expose more options. - Add
Ubuntu.addRemoteKey.
- Deprecate
AsyncProfiler.<init>andWallClockProfilerin favor ofAsyncProfiler.Builder.
- Fix
AsyncProfilerflamegraph file extension from.svgto.html. - Bump
WallClockProfilerto async-profiler v2.9.
4.26.1 - 2023-07-20
- Adapt to new ChromeDriver release process. Fix JPERF-1217.
4.26.0 - 2023-06-21
- Add
FailSafeProfiler. Work around JPERF-1117.
4.25.0 - 2023-05-26
- Add
ResetCaptcha.Builder.
4.24.3 - 2023-05-26
Accidentally released a patch version instead of a minor version. Use 4.25.0 to get the new API reliably.
4.24.2 - 2023-05-24
- Wait until Docker is started before pulling images. Fix JPERF-1104.
- Extend
AsyncProfilerstoptimeout. Fix JPERF-1081.
4.24.1 - 2023-05-10
- Stop forcing JSON Jira logs. Using
JiraNodeConfig.Builder.splunkForwardershould no longer mess with Jira logs, whenDisabledSplunkForwarder(the default) is used. - Respect the
splunkForwarderdelegate inLog4j2SplunkForwarder, without assuming its implementation. - Export
JAVA_HOMEduringOracleJDKinstallation. - Export
JAVA_HOMEto.profileinstead of.bashrc. Fix JPERF-1090.
4.24.0 - 2023-03-01
- Allow minimal Jira setup using new
MinimalMysqlDatabaseandMinimalMysqlJiraHomeAPIs.
4.23.0 - 2023-02-27
- Expose
DockerContainer.
4.22.5 - 2023-02-22
- Fix fresh dataset compatibility by adding MySQL arguments from Jira documentation. Unblock JPERF-996.
4.22.4 - 2023-02-15
- Bump
AsyncProfilerto v2.9. - Retry starting the
AsyncProfiler. Fix JPERF-969 flakiness. - Prefer IPv4 in
HttpResource. It fixes running tests on Github CI. Fix JPERF-969.
4.22.3 - 2023-02-07
- Fix
Ubuntuconcurrent usage which previously occasionally failed with apt-get locks. Fix JPERF-971. - Lock
Ubuntuapt access per IP and port of the host. Allow fine-granularity of locks when working with Docker.
4.22.2 - 2023-01-23
- Update
curlcommand used for downloading Oracle JDK. Unblocks JPERF-917.
4.22.1 - 2022-12-07
The 4.22.0 release was accidentally skipped. The new APIs and fixes are available in 4.22.1.
- Extract
TarGzDistributionfor reuse with othertar.gzsources.
- Point to the proper installation directory for
ProductDistributionRelease Candidates. Fix JPERF-896. - Silence SSH logs when failing to extract a non-existent tar.gz.
4.21.0 - 2022-11-08
- Support multiple Ubuntu versions at once: 16.04, 18.04, 20.04 and 22.04.
Cover
MySqlDatabase,UniversalSplunkForwarderandAtlassianSplunkForwarder. Fix JPERF-449.
4.20.0 - 2022-10-19
- Support log4j2 via
Log4j2SplunkForwarder. Resolve JPERF-838. - Use
Log4j2SplunkForwarderby default inJiraNodeConfig.Builder.
4.19.3 - 2022-06-23
Empty release to test changes in release process.
4.19.2 - 2022-04-07
- Bump log4j dependency to 2.17.2 JPERF-774
4.19.1 - 2022-04-04
- Remove
jira-soke-tests-euAWS S3 bucket reference JPERF-750
4.19.0 - 2022-01-17
JiraUserPasswordOverridingDatabaseto support providing custom admin password during database setup JPERF-729
Database.setup(ssh: SshConnection): Stringin favor ofDatabase.performSetup(ssh: SshConnection): DatabaseSetup
4.18.0 - 2021-04-14
- Point to remote files on SSH hosts via
RemotePath.
- Increase network-level retries for Jira/browser downloads. Decrease flakiness of such downloads on Ubuntu on WSL2.
- Download ChromeDriver version that matches installed Chrome version. Fix JPERF-732.
4.17.5 - 2020-12-15
- Increase timeout for logstash Docker image installation.
4.17.4 - 2020-12-14
- Bump version of the docker to
5:19.03.13. Fix JPERF-664.
4.17.3 - 2020-11-25
- Bump MySQL version to 5.7.32. Address JPERF-671.
4.17.2 - 2020-11-05
- Reduce max
Ubuntu.installbackoff from 1270 seconds to 105 seconds. Fix JPERF-619. - Change
Ubuntu.installbackoff from exponential to static + jitter.
4.17.1 - 2020-08-27
This is just a technical, test release that contains CI-related changes only.
4.17.0 - 2020-06-03
- Fix Ubuntu codename detection.
- Add
Ubuntu.getDistributionCodename.
4.16.1 - 2020-06-03
This is an erroneous release. Don't use new APIs from this version, switch to 4.17.0 instead.
4.16.0 - 2020-06-02
- Eliminate spurious apt warnings. Fix JPERF-642.
- Add a new recommended method to add new repositories to Ubuntu:
com.atlassian.performance.tools.infrastructure.api.os.Ubuntu.addRepository(com.atlassian.performance.tools.ssh.api.SshConnection, java.lang.String, java.lang.String).
4.15.1 - 2020-05-13
- Fix compatibility with Ubuntu Eoan (JPERF-625).
- Upgrade Docker to 19.03, which works with Ubuntu 16-19.
- Fix dataset location generation.
4.15.0 - 2020-03-03
- Added parametrized
CustomChromium.
4.14.5 - 2020-03-03
- Use non-deprecated Kotlin stdlib. Fix JPERF-466.
4.14.4 - 2019-12-09
- Harden
apt-getretry cleanup when the process is gone. Help fix JPERF-219. - Clean up corrupt
dpkgstate. Help fix JPERF-219. - Have more patience for
OpenJDK.install.
4.14.3 - 2019-11-27
- Quote VU CLI args. Fix JPERF-569.
- Clean up after
apt-get installflakes. Help fix JPERF-219. - Harden dataset HTTP downloads.
- Harden
apt-getdownloads. - Detect VU -> Jira connectivity early.
4.14.2 - 2019-08-23
- Increase timeout of apt-get. Fix JPERF-552.
- Add support for wall-clock profiler. Resolve JPERF-531.
4.14.1 - 2019-07-24
- Respect the overhead declared by virtual users. Fix JPERF-530.
4.14.0 - 2019-07-17
- Deprecate the handling of licenses as strings within
LicenseOverridingMysql. Avoid JPERF-523.
- Handle Jira license data as files within
LicenseOverridingMysql. Fix JPERF-523.
4.13.0 - 2019-07-05
- Facilitate Jira license overrides via
LicenseOverridingMysqlandDataset.Builder. Unblock JPERF-519.
4.12.6 - 2019-06-26
- Fix dataset unzipping permissions problem. Fix JPERF-504.
4.12.5 - 2019-06-25
- Fix dataset unzipping performance. Fix JPERF-504.
4.12.4 - 2019-06-25
- Fix race condition when downloading HTTP package. Fix JPERF-496.
4.12.3 - 2019-05-09
- Parallelize Ubuntu installs across SSH connections. Fix JPERF-478.
4.12.2 - 2019-04-23
- Make
Ubuntuthread safe. Resolves JPERF-468.
4.12.1 - 2019-04-19
- Increase
AdoptOpenJDK11download timeout. Fix JPERF-465 - Have more patience for
lftpinstallation. Fix JPERF-460. - Fix Docker install failures. Fix JPERF-446.
- Quiet down the multicast VU log context. Resolve JPERF-453.
4.12.0 - 2019-03-22
- Respect
VirtualUserLoad.maxOverallLoadwhen spreading load acrossMulticastVirtualUsers. Fix JPERF-429.
- Rely on
virtual-usersto slice the load. Transparently support any future sliceable VU load features.
4.11.0 - 2019-03-12
- Set GC params based on Java version. Resolve JPERF-408.
4.10.0 - 2019-03-07
- Deprecate
HttpDatasetPackagethree-parameter constructor in favor of two-parameter constructor.
- Download HTTP resources in parallel instead of on a single thread. Resolve JPERF-412.
- Unzip tar.bz2 archive files in parallel. Resolve JPERF-413.
4.9.0 - 2019-02-28
- A way to gather thread dumps over ssh. Resolve JPERF-405.
- Download HTTP resources in parallel instead of on a single thread. Resolve JPERF-412.
4.8.0 - 2019-02-22
- Support for Jira Service Desk installer. Unlocks JPERF-277.
- Deprecate
ProductDistributionin favor ofProductDistributionindistributionpackage. - Deprecate
PublicJiraSoftwareDistributionsin favor ofPublicJiraSoftwareDistribution.
4.7.0 - 2019-01-29
- Support for OpenJDK 11. Resolve JPERF-370.
4.6.1 - 2019-01-28
- Bump Oracle JDK download timeout. Fix JPERF-374.
4.6.0 - 2019-01-18
- Bump MySQL to 5.6.42. Resolve JPERF-345.
- Set up VUs only once per node in
MulticastVirtualUsers. Fix JPERF-346. - Chromedriver continues to work after a page load timeout. Fix JPERF-249.
- Separate Chromium implementations, like
Chromium69orChromium70. Resolve JPERF-350. - Install Chromium with a compatible chromedriver. Resolve JPERF-352.
- Add a way to specify how to download an archive.
- Add a way to download a public Jira Software tar.gz distribution. Resolve JPERF-277.
- Deprecate Chromium in favor of specific implementations like Chromium69 or Chromium70.
4.5.1 - 2019-01-04
- Use latest chromedriver for Chrome Browser. Resolve JPERF-331.
4.5.0 - 2018-12-20
- Expose SPI for profiler. Resolve JPERF-318.
- Add profiler implementation (
AsyncProfiler).
startMonitoringmethod inJstat.startMonitoringmethod inOsMetric.- MonitoringProcess class.
- Increase
Chromedownload timeout.
4.4.0 - 2018-12-19
- Expose API for choosing JDK Jira will run on. Resolve JPERF-305.
4.3.0 - 2018-12-18
- Jstat support for every JavaDevelopmentKit.
- Support for provisioning Jira on AdoptOpenJDK. Resolve JPERF-305.
4.2.0 - 2018-12-04
- Support providing collectd configurations via
collectdConfigsinJiraNodeConfig. Unblock JPERF-285.
4.1.0 - 2018-12-04
- Add builder for
JiraNodeConfigwhich is part of JPERF-282. - Add builder for
JiraLaunchTimeoutswhich is part of JPERF-282.
4.0.0 - 2018-11-28
- Drop support of
virtual-users:1. - Drop support of
virtual-users:2.
- Cease to rewrite
VirtualUserOptionsparameters, allowinginfrastructureto forward new parameters without releasing new rewrite code every timevirtual-usersreleases a new parameter. Resolve JPERF-252.
3.1.0 - 2018-11-26
- Add support for jira-actions:3
- Add support for virtual-users:3
3.0.0 - 2018-11-20
- Customisable status timeout for Jira upgrades endpoint which is required for JPERF-271.
- Support
ssh:2
- Increase pull timeout for MySQL docker image. Fix JPERF-265.
- Increase Docker install timeout. Fix JPERF-264.
- Drop support of
ssh:1 - Remove Kotlin data-class generated methods from API.
- Remove all deprecated API.
2.4.1 - 2018-11-02
2.4.0 - 2018-10-31
- Customisable timeouts for Jira launch which is required for JPERF-216.
2.3.1 - 2018-10-30
- Download chromium v69. Fix JPERF-242.
2.3.0 - 2018-10-26
- Chromium support which resolves JPERF-238.
2.2.0 - 2018-09-21
- Add the
CPU_UTILISATIONdimension. - Parametrize the log path for Splunk forwarding.
- Parametrize the Atlassian Splunk forwarder log fields.
- Parametrize the Atlassian Splunk forwarder Kinesis ARN.
2.1.1 - 2018-09-11
- Respect customer's log configuration. Fix JPERF-11.
2.1.0 - 2018-09-06
- Add
virtual-users:2compatibility.
2.0.0 - 2018-09-04
- Require APT
io:1. - Require APT
concurrency:1. - Require APT
jvm-tasks:1. - Require APT
ssh:1. - Require APT
jira-actions:2. - Require APT
virtual-users:1 - Remove
LoadProfilein favour of newvirtual-usersAPI
- Include the POM in the compatibility contract.
- License via POM.
- Gain freedom from APT
io:0. - Gain freedom from APT
concurrency:0. - Gain freedom from APT
jvm-tasks:0. - Gain freedom from APT
ssh:0. - Gain freedom from APT
jira-actions:0. - Added means to run load test locally.
1.1.2 - 2018-08-30
- Restore
MyslqDatabasebinary compatibility with 1.0.0.
1.1.1 - 2018-08-29
- Restore
VirtualUsersbinary compatibility with 1.0.0.
1.1.0 - 2018-08-28
Break binary compatibility for com.atlassian.performance.tools.infrastructure.api.virtualusers.VirtualUsers.
Switch to 1.1.1 to restore this compatibility.
See JPERF-39 for details.
Break binary compatibility for com.atlassian.performance.tools.infrastructure.api.database.MysqlDatabase.
Switch to 1.1.2 to restore this compatibility.
See JPERF-40 for details.
- Add diagnosticsLimit parameter to limit how many times diagnostics can be executed.
- Add maxConnections parameter to override MySQL max_connections value.
- Explain contribution guidelines.
1.0.0 - 2018-08-24
- Define the public API.
0.2.0 - 2018-08-24
- Grant access to
MavenAppfields.
0.1.0 - 2018-08-21
- License.
- Use the latest Marketplace version of an app.
- Add CHANGELOG.md.
- Run Jira without any apps installed.
0.0.2 - 2018-08-03
- Specify module name.
0.0.1 - 2018-08-03
- Add README.md.
- Enable Bitbucket Pipelines.