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_HOME
inOpenJDK
andOpenJDK11
.
4.29.0 - 2024-06-04
- Add
VersionedOracleJdk
to 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.Builder
options:output
to aid in investigation of JPERF-1390jfr
andflamegraph
for conveniencestartParams
andstopParams
for extensibility
- Deprecate
AsyncProfiler.Builder.extraParams
in favor ofstartParams
due to ambiguity withstopParams
.
4.27.0 - 2023-10-09
- Add
AsyncProfiler.Builder
to expose more options. - Add
Ubuntu.addRemoteKey
.
- Deprecate
AsyncProfiler.<init>
andWallClockProfiler
in favor ofAsyncProfiler.Builder
.
- Fix
AsyncProfiler
flamegraph file extension from.svg
to.html
. - Bump
WallClockProfiler
to 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
AsyncProfiler
stop
timeout. Fix JPERF-1081.
4.24.1 - 2023-05-10
- Stop forcing JSON Jira logs. Using
JiraNodeConfig.Builder.splunkForwarder
should no longer mess with Jira logs, whenDisabledSplunkForwarder
(the default) is used. - Respect the
splunkForwarder
delegate inLog4j2SplunkForwarder
, without assuming its implementation. - Export
JAVA_HOME
duringOracleJDK
installation. - Export
JAVA_HOME
to.profile
instead of.bashrc
. Fix JPERF-1090.
4.24.0 - 2023-03-01
- Allow minimal Jira setup using new
MinimalMysqlDatabase
andMinimalMysqlJiraHome
APIs.
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
AsyncProfiler
to 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
Ubuntu
concurrent usage which previously occasionally failed with apt-get locks. Fix JPERF-971. - Lock
Ubuntu
apt access per IP and port of the host. Allow fine-granularity of locks when working with Docker.
4.22.2 - 2023-01-23
- Update
curl
command 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
TarGzDistribution
for reuse with othertar.gz
sources.
- Point to the proper installation directory for
ProductDistribution
Release 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
,UniversalSplunkForwarder
andAtlassianSplunkForwarder
. Fix JPERF-449.
4.20.0 - 2022-10-19
- Support log4j2 via
Log4j2SplunkForwarder
. Resolve JPERF-838. - Use
Log4j2SplunkForwarder
by 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-eu
AWS S3 bucket reference JPERF-750
4.19.0 - 2022-01-17
JiraUserPasswordOverridingDatabase
to support providing custom admin password during database setup JPERF-729
Database.setup(ssh: SshConnection): String
in 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.install
backoff from 1270 seconds to 105 seconds. Fix JPERF-619. - Change
Ubuntu.install
backoff 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-get
retry cleanup when the process is gone. Help fix JPERF-219. - Clean up corrupt
dpkg
state. 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 install
flakes. Help fix JPERF-219. - Harden dataset HTTP downloads.
- Harden
apt-get
downloads. - 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
LicenseOverridingMysql
andDataset.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
Ubuntu
thread safe. Resolves JPERF-468.
4.12.1 - 2019-04-19
- Increase
AdoptOpenJDK11
download timeout. Fix JPERF-465 - Have more patience for
lftp
installation. 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.maxOverallLoad
when spreading load acrossMulticastVirtualUsers
. Fix JPERF-429.
- Rely on
virtual-users
to 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
HttpDatasetPackage
three-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
ProductDistribution
in favor ofProductDistribution
indistribution
package. - Deprecate
PublicJiraSoftwareDistributions
in 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
Chromium69
orChromium70
. 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
).
startMonitoring
method inJstat
.startMonitoring
method inOsMetric
.- MonitoringProcess class.
- Increase
Chrome
download 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
collectdConfigs
inJiraNodeConfig
. Unblock JPERF-285.
4.1.0 - 2018-12-04
- Add builder for
JiraNodeConfig
which is part of JPERF-282. - Add builder for
JiraLaunchTimeouts
which 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
VirtualUserOptions
parameters, allowinginfrastructure
to forward new parameters without releasing new rewrite code every timevirtual-users
releases 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_UTILISATION
dimension. - 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:2
compatibility.
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
LoadProfile
in favour of newvirtual-users
API
- 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
MyslqDatabase
binary compatibility with 1.0.0.
1.1.1 - 2018-08-29
- Restore
VirtualUsers
binary 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
MavenApp
fields.
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.