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 consists of all public Java types from com.atlassian.performance.tools.report.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.
4.5.0 - 2024-07-01
- Add
MutableJvmSymbol
,JfrFilter.Builder.symbolModifier
andMultiJfrFilter.Builder.symbolModifier
. They allow for mutating JVM symbols in JFR files, e.g. to normalize dynamic proxy names or lambda names. This way, the same JVM code can be profiled multiple times and resulting JFRs can be merged or diffed. - Add
DynamicProxyNormalization
.
4.4.0 - 2024-01-18
It was a botched 4.4.0 release. Don't use new APIs from this version, switch to 4.4.0 instead.
- Add
ActionMetricExplainer
andDurationDrilldown
for explainingActionMetric.duration
. Unblock JPERF-1454.
4.3.0 - 2023-12-13
- Add
MultiJfrFilter
to process input once and create multiple outputs. Aid JPERF-1409.
4.2.0 - 2023-12-11
- Expose
RawCohortResult.cohort
.
4.1.0 - 2023-11-30
- Link to
EdibleResult.raw
, which can include useful artifacts for reports and analysis (e.g. JFR). Aid JPERF-1409.
4.0.0 - 2023-10-31
- Add JfrFilter to allow finding bottlenecks of slow requests in JFR profile. Resolve JPERF-1409.
- Drop support for java 1.8.
3.16.3 - 2023-10-09
- Speed up all JSON code, by reusing a
JsonProvider
instance. Fix JPERF-1401.
3.16.2 - 2023-10-06
- Make
LatencyImpactClassifier
thread safe. Unblock JPERF-1263.
3.16.1 - 2023-08-23
- Don't throw when asking for shifts in
ShiftedDistributionRegressionTest
. Fix JPERF-1256.
3.16.0 - 2023-08-10
- Add
LatencyImpactClassifier
to offerClassifiedLatencyImpact
withImpactClassification
s and confidence without having to parse markdown files. - Add
api.impact.LatencyImpactMarkdownTable
, a replacement forapi.LatencyImpactMarkdownTable
, which can integrate with the newLatencyImpactClassifier
.
- Deprecate
api.LatencyImpactMarkdownTable
in favor ofapi.impact.LatencyImpactMarkdownTable
.
- Sort impact tables by action alphabetically.
3.15.0 - 2023-07-03
- Add
LatencyImpact
andLatencyImpact.Builder
. Unblock JPERF-1160. - Add
RelativeNonparametricPerformanceJudge.Builder
. - Add
RelativeTypicalPerformanceJudge.Builder
. - Emit
LatencyImpact
events fromRelativeNonparametricPerformanceJudge
. Unblock JPERF-1160. - Emit
LatencyImpact
events fromRelativeTypicalPerformanceJudge
. Unblock JPERF-1160. - Render
LatencyImpactMarkdownTable
. Unblock JPERF-1160.
- Deprecate
RelativeNonparametricPerformanceJudge
constructors in favor of itsBuilder
. - Deprecate
RelativeTypicalPerformanceJudge
constructor in favor of itsBuilder
.
- Fix
RelativeNonparametricPerformanceJudge
andRelativeTypicalPerformanceJudge
treating improvements as irrelevant.
3.14.0 - 2023-04-03
- Add
JqlReport
, which can handle multiple JQLActionType
s. Fix JPERF-1059.
- Support
SEARCH_JQL_CHANGELOG
,SEARCH_WITH_JQL_WILDCARD
,SEARCH_JQL_SIMPLE
inSearchJqlReport
.
- Deprecate
SearchJqlReport
in favor of more flexibleJqlReport
.
3.13.1 - 2023-03-14
- Fix missing waterfall highlights. Fix JPERF-1021.
3.13.0 - 2022-12-16
- Mark
RelativeNonparametricStabilityJudge
as deprecated.
3.12.0 - 2022-10-27
- Add
Verdict.Builder
for easierVerdict
assembly andfailedActions
injection.
- Mark
Verdict
constructor as deprecated.
- Fix
Verdict.plus
dropping thefailedActions
.
3.11.5 - 2022-10-20
- Restore missing label for failed report's assertion message in
RelativeNonparametricPerformanceJudge
JPERF-832. - Reword failed report's assertion message in
RelativeNonparametricPerformanceJudge
so it looks better in logs JPERF-832.
3.11.4 - 2022-10-14
- Make log message for failed regression test more user friendly JPERF-832.
3.11.3 - 2022-06-23
Empty release to test changes in release process.
3.11.2 - 2022-04-07
- Bump log4j dependency to 2.17.2
3.11.1 - 2021-07-12
- Prevent waterfall chart from failing when drilldown performance measurement lists are empty. Unblock JPERF-747.
3.11.0 - 2021-06-08
- Produce CSV report alongside plaintext version.
3.10.1 - 2020-12-09
Test release, no important changes here.
3.10.0 - 2020-12-04
- Expose Verdict reports.
3.9.0 - 2020-12-02
- Expose Verdict result.
- Expose IndependentCohortsJudge method that judges a single result.
3.8.2 - 2020-04-06
- The tooltips shown on hover in timeline chart are now correct. Resolve JPERF-614.
3.8.1 - 2020-03-03
- Emit useful errors from
RelativePerformanceStabilityJudge
.
3.8.0 - 2019-09-30
- Parametrize
RawCohortResult.Factory
withMetricJsonFormat
to avoid drilldown parsing. Work around JPERF-395.
3.7.1 - 2019-09-20
- Remove the confusing histogram from the distribution comparison in the
FullReport
. Resolve JPERF-475. - Explain what the quantile function is.
- Sort the action labels on the distribution comparison.
3.7.0 - 2019-09-16
- Show the entire cohort latency distribution. Resolve JPERF-575.
3.6.1 - 2019-08-09
- Make nonparametric judges more specific about the failure type. Resolve JPERF-551.
3.6.0 - 2019-07-25
- Add
failedActions
property toVerdict
. Resolve [JPERF-537].
3.5.0 - 2019-07-05
- Inform about over-cropping action metric timelines. Fix [JPERF-152].
- Stop ignoring OutlierTrimming in MaximumCoverageJudge. Fix JPERF-443.
- Deprecate
EdibleResult.actionStats
in favour ofEdibleResult.stats
field. - Deprecate
StatsMeter
in favour ofEdibleResult
.
3.4.0 - 2019-06-13
- Add second constructor with significance parameter to
RelativeNonparametricStabilityJudge
andRelativeNonparametricPerformanceJudge
. Resolve [JPERF-500].
3.3.1 - 2019-06-10
- Use SuanShu's Kolmogorov-Smirnov implementation. Fix [JPERF-495].
3.3.0 - 2019-06-06
- Add
ShiftedDistributionRegressionTest
,RelativeNonparametricPerformanceJudge
andRelativePerformanceStabilityJudge
which are necessary for [JPERF-493].
3.2.2 - 2019-05-30
- Trim outliers properly. Fix [JPERF-490].
3.2.1 - 2019-05-10
- Do not fail Waterfall chart creation when resource URL contains data URI scheme. Fix [JPERF-481].
3.2.0 - 2019-04-30
- Add
TableReporter
for HTML table reports. Resolve JPERF-452. - Expose detailed performance stats. Resolve JPERF-455.
- Read
jstat
logs in any order. Fix JPERF-462. - Include HTML table report in
FullReport
. - Make
Jstat Converter
idempotent. Fix JPERF-464. - Fix intensive logging in
WaterfallChart
. Resolve JPREF-369.
- Deprecate
BaselineComparingJuge.judge
in favour of an overloaded method. - Deprecate
ErrorsJudge.judge
in favour of an overloaded method. - Deprecate
IndependentCohortsJudge.judge
in favour of an overloaded method. - Deprecate
RelativeTypicalPerformanceJudge.judge
in favour of an overloaded method. - Deprecate
SampleSizeJudge.judge
in favour of an overloaded method. - Deprecate
InteractionStats
in favour ofStats
. - Deprecate
StatsMeter.measure
in favour ofStatsMeter.measurePerformance
- Deprecate
DataReporter
in favour ofCohortsSummaryTable
It was a botched 3.2.0 release. Don't use new APIs from this version, switch to 3.2.0 instead.
3.1.3 - 2019-03-20
- Replace '-' character to prevent java.lang.NumberFormatException. Resolve JPERF-426.
3.1.2 - 2019-03-15
- Do not throw negative phase exception in
WaterfallChart
whenresponseEnd
is beforeresponseStart
. Fix JPERF-416. - Move the legend on the distribution chart to the side. Resolve JPERF-421.
- Group labels in distribution chart by cohort. Resolve JPERF-421.
3.1.1 - 2019-01-23
- Fix nullability issue in
WaterfallChart
. Resolve JPERF-365.
3.1.0 - 2019-01-22
- Expose failure and results in
CohortResult
. - Add
RawCohortResult
. Unblock JPERF-363.
- Deprecate
CohortResult
in favour ofRawCohortResult
. - Deprecate
FullCohortResult
in favour ofRawCohortResult.Factory
. - Deprecate
FailedCohortResult
in favour ofRawCohortResult.Factory
.
3.0.0 - 2019-01-17
- Add
WaterfallHighlightReport
. - Enable
WaterfallHighlightReport
inFullReport
. Resolve JPERF-316.
- Drop support for
jira-actions:2
. - Remove Kotlin data-class generated methods from API for
Verdict
,DurationData
,EdibleResult
,InteractionStats
,PerformanceCriteria
. - Remove all deprecated API: primary constructor of
EdibleResult
,HistoricalCohortsReporter#report(report: Path)
.
2.6.0 - 2019-01-11
- Remove
WaterfallHighlightReport
in order to restore compatibility withjira-actions:[2.0.0,3.1.0)
.
This is not a breaking change, because the API from 2.5.0 was not stable.
2.5.0 is botched.
Don't use new APIs from this version. It's not compatible with jira-actions:[2.0.0,3.1.0)
.
Roll back to 2.4.0 or roll forward to 2.6.0 or later to restore this compatibility.
- Add
WaterfallHighlightReport
. - Enable
WaterfallHighlightReport
inFullReport
. Resolve JPERF-316.
2.4.0 - 2019-01-08
- Provide builder for EdibleResult.
- Provide API to perform calculations on action metrics. Resolves JPERF-338.
2.3.1 - 2019-01-08
- Create a JUnit report from exceptions containing '%' character. Fix JPERF-339.
2.3.0 - 2018-11-29
- Add support for
infrastructure:3
. - Add support for
infrastructure:4
. - Add support for
jira-actions:3
. - Add support for
virtual-users:3
.
2.2.3 - 2018-10-31
- Fix NPE in
RelativeTypicalPerformanceJudge
when action results are missing. Fix JPERF-248.
2.2.2 - 2018-10-23
- Restore original column ordering in
IndependentCohortsJudge
. Fix JPERF-192.
2.2.1 - 2018-09-21
- Skip secondary verdicts if failure verdict is negative. Fix JPERF-106.
2.2.0 - 2018-09-13
- Log test errors in
EdibleResult
.
- Fix date conversion in
MeanLatencyChart
. Fix JPERF-77.
2.1.0 - 2018-09-11
- Add mean latency chart. Resolve JPERF-65.
- Abbreviate action names in plain text report.
- Fix SampleSizeJudge when sample size is missing. Fix JPERF-59.
- Deprecate
HistoricalCohortsReporter#report(report: Path)
.
2.0.0 - 2018-09-06
- Use stable APT APIs.
- Require APT
infrastructure:2
. - Require APT
virtual-users:1
. - API of
Timelines
.
- Add APT
virtual-users:2
compatibility.
- Sort plain text report's actions alphabetically.
- Linear interpolation on charts.
1.0.0 - 2018-08-24
- Define the public API.
- Include the plain text report in the full report.
- Extract reports from judges.
- Depend on a stable APT
infrastructure
version.
0.0.3 - 2018-08-22
- Add plain text report.
0.0.2 - 2018-08-21
- Add missing CHANGELOG.md.
- Depend on a stable version of APT
workspace
.
0.0.1 - 2018-08-06
- Migrate performance reporting from JPT submodule.
- Add README.md.
- Configure Bitbucket Pipelines.