5b887ea874fcb1dcb069ee5de7753d47e7bff777
[WebKit.git] / Websites / perf.webkit.org / ChangeLog
1 2018-01-19  Dewei Zhu  <dewei_zhu@apple.com>
2
3         Should reject updating a build request which has an associated build.
4         https://bugs.webkit.org/show_bug.cgi?id=181893
5
6         Reviewed by Ryosuke Niwa.
7
8         Current code does not prevent submitting to same build request multiple times.
9         This could lead to a build losing its associated build request.
10         As a result, this build will be visible in charts which is not right.
11         Added a check when a build request is reported.
12         Addressed a 'FIXME' for the race condition inside ReportProcessor->resolve_build_id by surrounding
13         it with a database transaction.
14
15         * public/include/report-processor.php:
16         Wrap adding platform and resolve_build_id with a database transaction.
17         Add a check to make sure only a build request has no associated build can be updated.
18         * server-tests/api-report-tests.js: Added unit tests accordingly.
19
20 2018-01-18  Dewei Zhu  <dewei_zhu@apple.com>
21
22         Should allow updating a build-request to 'canceled'.
23         https://bugs.webkit.org/show_bug.cgi?id=181819
24
25         Reviewed by Ryosuke Niwa.
26
27         It's possible syncing script update a build-request to 'canceled' state.
28
29         * public/api/build-requests.php: Added 'canceled' as an acceptable update state.
30         * server-tests/api-build-requests-tests.js: Added a unit test to update a build-request to 'canceled'.
31
32 2018-01-18  Aakash Jain  <aakash_jain@apple.com>
33
34         Add support for builderNameToIDMap in BuildbotSyncer
35         https://bugs.webkit.org/show_bug.cgi?id=176526
36
37         Reviewed by Ryosuke Niwa.
38
39         * tools/js/buildbot-syncer.js:
40         (BuildbotSyncer._loadConfig): Added builderNameToIDMap parameter. It would be used later on.
41         (BuildbotSyncer._resolveBuildersWithPlatforms): Ditto.
42         (BuildbotSyncer._validateAndMergeConfig): Added builderID as a valid config parameter.
43         * tools/js/buildbot-triggerable.js:
44         (BuildbotTriggerable.prototype.getBuilderNameToIDMap): Method to fetch BuilderNameToIDMap from Buildbot 0.9.
45         (BuildbotTriggerable.prototype.getBuilderNameToIDMapDeprecated): Method to fetch BuilderNameToIDMap from Buildbot 0.8.
46         (BuildbotTriggerable.prototype.initSyncers): Updated to use getBuilderNameToIDMap.
47         * unit-tests/buildbot-syncer-tests.js: Updated unit-tests.
48         * server-tests/resources/mock-data.js:
49         (MockData.buildbotBuildersURLDeprecated): URL for fetching Builders list.
50         (MockData.buildbotBuildersURL): Ditto for Buildbot 0.9
51         (MockData.mockBuildbotBuildersDeprecated): Sample builders data for Buildbot 0.8
52         (MockData.mockBuildbotBuilders): Ditto for Buildbot 0.9
53         * server-tests/tools-buildbot-triggerable-tests.js: Added test for getBuilderNameToIDMap. Updated tests to handle
54         newly added promise for fetching builders list from Buildbot.
55         * server-tests/tools-sync-buildbot-integration-tests.js: Ditto.
56
57 2018-01-18  Ryosuke Niwa  <rniwa@webkit.org>
58
59         Charts can be empty when values are all identical
60         https://bugs.webkit.org/show_bug.cgi?id=181828
61
62         Reviewed by Alexey Proskuryakov.
63
64         Fixed the bug that when SampleVarianceUpperTriangularMatrix can store -Infinity as the initial cost
65         of some entries when the sample standard deviation between two points turns out to be 0,
66         and cause splitIntoSegmentsUntilGoodEnough to return undefiend because no segmentation has a finite cost.
67
68         Also fixed the bug that the time series chart fails to show any data points when all data points have
69         identical values as the entire y-coordinate gets collapsed to an empty value range by adjusting the max value
70         when min & max values are identical.
71
72         * public/v3/components/time-series-chart.js:
73         (TimeSeriesChart.prototype._ensureValueRangeCache): Raise the max slightly when min & max are identical
74         to avoid the chart becoming empty. Otherwise valueDiff in _computeVerticalRenderingMetrics becomes 0
75         and value-to-y-coordinate conversion always results in NaN.
76         * public/shared/statistics.js:
77         (Statistics..SampleVarianceUpperTriangularMatrix):
78         * unit-tests/statistics-tests.js: Added a test case.
79
80 2018-01-18  Ryosuke Niwa  <rniwa@webkit.org>
81
82         Don't fetch more than two builds to check duplicity of builds in ReportProcessor
83         https://bugs.webkit.org/show_bug.cgi?id=181786
84
85         Reviewed by Wenson Hsieh.
86
87         Limit the number of builds to check to avoid using a lot of memory with a long delay.
88
89         * public/include/report-processor.php:
90         (ReportProcessor::resolve_build_id): 
91
92 2018-01-17  Ryosuke Niwa  <rniwa@webkit.org>
93
94         Rename config.json to config.json.sample
95         https://bugs.webkit.org/show_bug.cgi?id=181785
96
97         Reviewed by Wenson Hsieh.
98
99         * .gitignore: Added config.json.
100         * ReadMe.md: Updated the instruction.
101         * config.json.sample: Renamed from config.json.
102
103 2018-01-17  Ryosuke Niwa  <rniwa@webkit.org>
104
105         Unreviewed build fixes in TestGroupResultsViewer.
106
107         * public/v3/components/test-group-results-viewer.js:
108         (TestGroupResultsViewer.prototype.render): _renderCurrentMetricsLazily was never called.
109         (TestGroupResultsViewer.prototype._buildRowForMetric): Don't try to render null or NaN.
110
111 2018-01-17  Ryosuke Niwa  <rniwa@webkit.org>
112
113         Fix perf dashboard tests for node v8
114         https://bugs.webkit.org/show_bug.cgi?id=181782
115
116         Reviewed by Wenson Hsieh.
117
118         Fixed the various tests for node.js v8, which is the latest LTS version.
119
120         * server-tests/api-manifest-tests.js: Replaced the missing Triggerable.acceptsTest by Triggerable.acceptedTests
121         after r226836.
122         * server-tests/api-measurement-set-tests.js: Added "Z" to the end timestamps to force UTF timezone now that Date
123         in node.js parses using the local timezone by default.
124         * server-tests/resources/test-server.js:
125         (TestServer.prototype._restoreDataDirectory): Fixed the bug that this function was erroneously using the async
126         function to rename a directory per new warnings. This code was racy, and it used to cause a test error occasionally.
127         * server-tests/tools-os-build-fetcher-tests.js: Fixed the assertions to make it work in the latest node.js.
128         * unit-tests/measurement-set-tests.js:
129         (waitForMeasurementSet): Wait for setTimeout to cycle through all microtasks instead of just two microtask cycles.
130
131 2018-01-11  Ryosuke Niwa  <rniwa@webkit.org>
132
133         Cannot trigger Dromaeo tests on internal perf try bots
134         https://bugs.webkit.org/show_bug.cgi?id=179712
135
136         Reviewed by Chris Dumez.
137
138         The bug was caused by CustomAnalysisTaskConfigurator only showing the top-level tests that are triggerable
139         instead of the list of highest level tests that are triggerable.
140
141         * public/v3/components/custom-analysis-task-configurator.js:
142         (CustomAnalysisTaskConfigurator.prototype.selectTests): Update the test group name when a new test is picked.
143         (CustomAnalysisTaskConfigurator.prototype.selectPlatform):
144         (CustomAnalysisTaskConfigurator.prototype._didUpdateSelectedPlatforms): Extracted from selectPlatform.
145         (CustomAnalysisTaskConfigurator.prototype._renderTriggerableTests): Include the list of all highest-level tests
146         which are triggerable.
147         (CustomAnalysisTaskConfigurator.prototype._renderRadioButtonList): Added labelForObject which returns the label
148         to be used in the list items. For tests, we want to use the full name, not just its label.
149         * public/v3/models/analysis-task.js:
150         (AnalysisTask.fetchById):
151         * public/v3/models/triggerable.js:
152         (Triggerable.prototype.acceptedTests): Added.
153         (Triggerable.prototype.acceptsTest): Deleted.
154
155 == Rolled over to ChangeLog-2018-01-01 ==