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