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