This is an automated email from the ASF dual-hosted git repository.
yao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/spark.git
The following commit(s) were added to refs/heads/master by this push:
new e818e9cefa0 [SPARK-45202][BUILD] Fix lint-js tool and js format
e818e9cefa0 is described below
commit e818e9cefa012037a38a99819498f331697d3a50
Author: Kent Yao <[email protected]>
AuthorDate: Tue Sep 19 11:05:41 2023 +0800
[SPARK-45202][BUILD] Fix lint-js tool and js format
### What changes were proposed in this pull request?
This PR fixes lint-js tool, which covers only js files in the core module,
and also fixes the js format of the rest modules.
```
dev/lint-js
/Users/kentyao/spark/sql/core/src/main/resources/org/apache/spark/sql/execution/ui/static/spark-sql-viz.js
29:10 error 'renderPlanViz' is defined but never used
no-unused-vars
31:18 error 'd3' is not defined
no-undef
35:11 error 'graphlibDot' is not defined
no-undef
37:22 error 'dagreD3' is not defined
no-undef
46:27 error '$' is not defined
no-undef
59:38 error 'd3' is not defined
no-undef
66:21 error 'd3' is not defined
no-undef
67:3 error 'd3' is not defined
no-undef
68:20 error 'd' is defined but never used. Allowed unused args must
match /^_ignored_.*/u no-unused-vars
69:21 error 'd3' is not defined
no-undef
70:7 error '$' is not defined
no-undef
104:55 error 'i' is defined but never used. Allowed unused args must
match /^_ignored_.*/u no-unused-vars
108:1 error Expected indentation of 10 spaces but found 12
indent
109:1 error Expected indentation of 10 spaces but found 12
indent
115:1 error Expected indentation of 4 spaces but found 6
indent
116:1 error Expected indentation of 6 spaces but found 8
indent
116:16 error 'd3' is not defined
no-undef
117:1 error Expected indentation of 4 spaces but found 6
indent
118:1 error Expected indentation of 2 spaces but found 4
indent
129:13 error 'd3' is not defined
no-undef
130:34 error 'd3' is not defined
no-undef
133:13 error 'd3' is not defined
no-undef
134:34 error 'd3' is not defined
no-undef
137:13 error 'd3' is not defined
no-undef
138:15 error 'd3' is not defined
no-undef
142:13 error 'd3' is not defined
no-undef
143:15 error 'd3' is not defined
no-undef
180:11 error 'd3' is not defined
no-undef
196:3 error '$' is not defined
no-undef
198:26 error '$' is not defined
no-undef
199:1 error Expected indentation of 6 spaces but found 8
indent
200:1 error Expected indentation of 8 spaces but found 10
indent
201:1 error Expected indentation of 8 spaces but found 10
indent
201:28 error 'd3' is not defined
no-undef
201:41 error '$' is not defined
no-undef
202:1 error Expected indentation of 8 spaces but found 10
indent
203:1 error Expected indentation of 8 spaces but found 10
indent
204:1 error Expected indentation of 8 spaces but found 10
indent
204:11 error '$' is not defined
no-undef
205:1 error Expected indentation of 6 spaces but found 8
indent
206:1 error Expected indentation of 8 spaces but found 10
indent
207:1 error Expected indentation of 6 spaces but found 8
indent
208:1 error Expected indentation of 4 spaces but found 2
indent
210:22 error '$' is not defined
no-undef
212:1 error Expected indentation of 4 spaces but found 6
indent
212:40 error '$' is not defined
no-undef
223:27 error '$' is not defined
no-undef
✖ 47 problems (47 errors, 0 warnings)
17 errors and 0 warnings potentially fixable with the `--fix` option.
/Users/kentyao/spark/docs/js/api-docs.js
20:1 error '$' is not defined
no-undef
21:21 error '$' is not defined
no-undef
29:14 error '$' is not defined
no-undef
32:22 error 'index' is defined but never used. Allowed unused args must
match /^_ignored_.*/u no-unused-vars
33:19 error '$' is not defined
no-undef
35:5 error '$' is not defined
no-undef
45:1 error '$' is not defined
no-undef
50:5 error 'MathJax' is not defined
no-undef
/Users/kentyao/spark/docs/js/api-javadocs.js
20:1 error '$' is not defined
no-undef
27:14 error '$' is not defined
no-undef
30:22 error 'index' is defined but never used. Allowed unused args must
match /^_ignored_.*/u no-unused-vars
31:19 error '$' is not defined
no-undef
33:5 error '$' is not defined
no-undef
37:22 error 'index' is defined but never used. Allowed unused args must
match /^_ignored_.*/u no-unused-vars
38:9 error '$' is not defined
no-undef
39:7 error '$' is not defined
no-undef
40:16 error '$' is not defined
no-undef
44:30 error '$' is not defined
no-undef
54:16 error '$' is not defined
no-undef
55:7 error '$' is not defined
no-undef
57:7 error '$' is not defined
no-undef
/Users/kentyao/spark/docs/js/main.js
28:3 error '$' is not defined no-undef
29:5 error '$' is not defined no-undef
32:18 error '$' is not defined no-undef
33:5 error '$' is not defined no-undef
36:23 error '$' is not defined no-undef
40:7 error '$' is not defined no-undef
41:7 error '$' is not defined no-undef
43:18 error '$' is not defined no-undef
44:19 error '$' is not defined no-undef
45:20 error '$' is not defined no-undef
50:7 error '$' is not defined no-undef
54:13 error 'buttonLabel' is already defined no-redeclare
56:13 error 'buttonLabel' is already defined no-redeclare
63:9 error '$' is not defined no-undef
75:3 error '$' is not defined no-undef
79:24 error '$' is not defined no-undef
79:47 error '$' is not defined no-undef
80:5 error '$' is not defined no-undef
80:13 error '$' is not defined no-undef
81:5 error '$' is not defined no-undef
81:27 error '$' is not defined no-undef
89:31 error '$' is not defined no-undef
90:18 error '$' is not defined no-undef
91:5 error '$' is not defined no-undef
95:1 error '$' is not defined no-undef
99:3 error 'anchors' is not defined no-undef
102:3 error 'anchors' is not defined no-undef
104:3 error '$' is not defined no-undef
110:3 error '$' is not defined no-undef
115:21 error '$' is not defined no-undef
116:27 error '$' is not defined no-undef
117:25 error '$' is not defined no-undef
119:3 error '$' is not defined no-undef
123:25 error '$' is not defined no-undef
129:25 error '$' is not defined no-undef
✖ 56 problems (56 errors, 0 warnings)
```
### Why are the changes needed?
bugfix and format fix
### Does this PR introduce _any_ user-facing change?
no
### How was this patch tested?
dev/lint-js in CI
### Was this patch authored or co-authored using generative AI tooling?
no
Closes #42982 from yaooqinn/SPARK-45202.
Authored-by: Kent Yao <[email protected]>
Signed-off-by: Kent Yao <[email protected]>
---
dev/lint-js | 2 +-
docs/js/api-docs.js | 4 ++-
docs/js/api-javadocs.js | 6 ++--
docs/js/main.js | 10 ++++--
.../spark/sql/execution/ui/static/spark-sql-viz.js | 36 +++++++++++++---------
5 files changed, 36 insertions(+), 22 deletions(-)
diff --git a/dev/lint-js b/dev/lint-js
index ce06e282192..146ed2bcc5c 100755
--- a/dev/lint-js
+++ b/dev/lint-js
@@ -44,7 +44,7 @@ if ! npm ls eslint > /dev/null; then
npm ci eslint
fi
-npx eslint -c "$SPARK_ROOT_DIR/dev/eslint.json" $LINT_TARGET_FILES | tee
"$LINT_JS_REPORT_FILE_NAME"
+npx eslint -c "$SPARK_ROOT_DIR/dev/eslint.json" ${LINT_TARGET_FILES[@]} | tee
"$LINT_JS_REPORT_FILE_NAME"
lint_status=$?
if [ "$lint_status" = "0" ] ; then
diff --git a/docs/js/api-docs.js b/docs/js/api-docs.js
index 287fce61540..aeed01a966b 100644
--- a/docs/js/api-docs.js
+++ b/docs/js/api-docs.js
@@ -17,6 +17,8 @@
/* Dynamically injected post-processing code for the API docs */
+/* global $, MathJax */
+
$(document).ready(function() {
var annotations =
$("dt:contains('Annotations')").next("dd").children("span.name");
addBadges(annotations, "AlphaComponent", ":: AlphaComponent ::", '<span
class="alphaComponent badge">Alpha Component</span>');
@@ -29,7 +31,7 @@ function addBadges(allAnnotations, name, tag, html) {
var tags = $(".cmt:contains(" + tag + ")")
// Remove identifier tags from comments
- tags.each(function(index) {
+ tags.each(function(_ignored_index) {
var oldHTML = $(this).html();
var newHTML = oldHTML.replace(tag, "");
$(this).html(newHTML);
diff --git a/docs/js/api-javadocs.js b/docs/js/api-javadocs.js
index ead13d6e5fa..ff7ad8b3a1d 100644
--- a/docs/js/api-javadocs.js
+++ b/docs/js/api-javadocs.js
@@ -17,6 +17,8 @@
/* Dynamically injected post-processing code for the API docs */
+/* global $ */
+
$(document).ready(function() {
addBadges(":: AlphaComponent ::", '<span class="alphaComponent badge">Alpha
Component</span>');
addBadges(":: DeveloperApi ::", '<span class="developer badge">Developer
API</span>');
@@ -27,14 +29,14 @@ function addBadges(tag, html) {
var tags = $(".block:contains(" + tag + ")")
// Remove identifier tags
- tags.each(function(index) {
+ tags.each(function(_ignored_index) {
var oldHTML = $(this).html();
var newHTML = oldHTML.replace(tag, "");
$(this).html(newHTML);
});
// Add html badge tags
- tags.each(function(index) {
+ tags.each(function(_ignored_index) {
if ($(this).parent().is('td.colLast')) {
$(this).parent().prepend(html);
} else if ($(this).parent('li.blockList')
diff --git a/docs/js/main.js b/docs/js/main.js
index 97434146556..1c601f5210a 100755
--- a/docs/js/main.js
+++ b/docs/js/main.js
@@ -15,9 +15,12 @@
* limitations under the License.
*/
+/* global $, anchors */
+
/* Custom JavaScript code in the MarkDown docs */
// Enable language-specific code tabs
+
function codeTabs() {
var counter = 0;
var langImages = {
@@ -48,12 +51,13 @@ function codeTabs() {
var capitalizedLang = lang.substr(0, 1).toUpperCase() + lang.substr(1);
var id = "tab_" + lang + "_" + counter;
$(this).attr("id", id);
+ var buttonLabel = "";
if (image != null && langImages[lang]) {
- var buttonLabel = "<img src='" +langImages[lang] + "' alt='" +
capitalizedLang + "' />";
+ buttonLabel = "<img src='" +langImages[lang] + "' alt='" +
capitalizedLang + "' />";
} else if (notabs == null) {
- var buttonLabel = "<b>" + capitalizedLang + "</b>";
+ buttonLabel = "<b>" + capitalizedLang + "</b>";
} else {
- var buttonLabel = ""
+ buttonLabel = ""
}
// Add the link to the tab
diff --git
a/sql/core/src/main/resources/org/apache/spark/sql/execution/ui/static/spark-sql-viz.js
b/sql/core/src/main/resources/org/apache/spark/sql/execution/ui/static/spark-sql-viz.js
index 1847fd5f3ef..a47a588f8c4 100644
---
a/sql/core/src/main/resources/org/apache/spark/sql/execution/ui/static/spark-sql-viz.js
+++
b/sql/core/src/main/resources/org/apache/spark/sql/execution/ui/static/spark-sql-viz.js
@@ -15,15 +15,20 @@
* limitations under the License.
*/
+/* global $, d3, dagreD3, graphlibDot */
+
var PlanVizConstants = {
svgMarginX: 16,
svgMarginY: 16
};
+/* eslint-disable no-unused-vars */
function shouldRenderPlanViz() {
return planVizContainer().selectAll("svg").empty();
}
+/* eslint-enable no-unused-vars */
+/* eslint-disable no-unused-vars */
function renderPlanViz() {
var svg = planVizContainer().append("svg");
var metadata = d3.select("#plan-viz-metadata");
@@ -49,6 +54,7 @@ function renderPlanViz() {
resizeSvg(svg);
postprocessForAdditionalMetrics();
}
+/* eslint-enable no-unused-vars */
/* -------------------- *
* | Helper functions | *
@@ -63,7 +69,7 @@ function planVizContainer() { return
d3.select("#plan-viz-graph"); }
function setupTooltipForSparkPlanNode(nodeId) {
var nodeTooltip = d3.select("#plan-meta-data-" + nodeId).text();
d3.select("svg g .node_" + nodeId)
- .each(function(d) {
+ .each(function(_ignored_d) {
var domNode = d3.select(this).node();
$(domNode).tooltip({
title: nodeTooltip, trigger: "hover focus", container: "body",
placement: "top"
@@ -99,12 +105,12 @@ function preprocessGraphLayout(g) {
splitter = "<br>";
}
- node.label.split(splitter).forEach(function(text, i) {
+ node.label.split(splitter).forEach(function(text, _ignored_i) {
var newTexts = text.match(stageAndTaskMetricsPattern);
if (newTexts) {
node.label = node.label.replace(
- newTexts[0],
- newTexts[1] + firstSeparator + newTexts[2] + secondSeparator +
newTexts[3]);
+ newTexts[0],
+ newTexts[1] + firstSeparator + newTexts[2] + secondSeparator +
newTexts[3]);
}
});
}
@@ -193,20 +199,20 @@ function postprocessForAdditionalMetrics() {
$("g.cluster text tspan")
.each(function() {
var originalText = $(this).text();
- if (originalText.indexOf(labelSeparator) > 0) {
- var newTexts = originalText.split(labelSeparator);
- var thisD3Node = d3.selectAll($(this));
- thisD3Node.text(newTexts[0]);
- thisD3Node.append("tspan").attr("class",
"stageId-and-taskId-metrics").text(newTexts[1]);
- $(this).append(newTexts[2]);
- } else {
- return originalText;
- }
- });
+ if (originalText.indexOf(labelSeparator) > 0) {
+ var newTexts = originalText.split(labelSeparator);
+ var thisD3Node = d3.selectAll($(this));
+ thisD3Node.text(newTexts[0]);
+ thisD3Node.append("tspan").attr("class",
"stageId-and-taskId-metrics").text(newTexts[1]);
+ $(this).append(newTexts[2]);
+ } else {
+ return originalText;
+ }
+ });
var checkboxNode = $("#stageId-and-taskId-checkbox");
checkboxNode.click(function() {
- onClickAdditionalMetricsCheckbox($(this));
+ onClickAdditionalMetricsCheckbox($(this));
});
var isChecked = window.localStorage.getItem("stageId-and-taskId-checked")
=== "true";
checkboxNode.prop("checked", isChecked);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]