Skip to content

Commit

Permalink
[ci] check JavaScript code with biome tool (#6711)
Browse files Browse the repository at this point in the history
* lint js code

* hotfix

* Update .editorconfig

Co-authored-by: James Lamb <[email protected]>

---------

Co-authored-by: James Lamb <[email protected]>
  • Loading branch information
StrikerRUS and jameslamb authored Nov 3, 2024
1 parent 92aa07b commit 13f2e92
Show file tree
Hide file tree
Showing 10 changed files with 81 additions and 42 deletions.
5 changes: 5 additions & 0 deletions .ci/lint-js.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
#!/bin/bash

set -e -E -u -o pipefail

biome ci --config-path=./biome.json --diagnostic-level=info --error-on-warnings ./
File renamed without changes.
7 changes: 5 additions & 2 deletions .ci/test.sh
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ if [[ $TASK == "lint" ]]; then
pwsh -file "./.ci/lint-powershell.ps1" || :
conda create -q -y -n "${CONDA_ENV}" \
"${CONDA_PYTHON_REQUIREMENT}" \
'biome>=1.9.3' \
'cmakelint>=1.4.3' \
'cpplint>=1.6.0' \
'matplotlib-base>=3.9.1' \
Expand All @@ -113,12 +114,14 @@ if [[ $TASK == "lint" ]]; then
'r-lintr>=3.1.2'
# shellcheck disable=SC1091
source activate "${CONDA_ENV}"
echo "Linting Python code"
bash ./.ci/lint-python.sh || exit 1
echo "Linting Python and bash code"
bash ./.ci/lint-python-bash.sh || exit 1
echo "Linting R code"
Rscript ./.ci/lint-r-code.R "${BUILD_DIRECTORY}" || exit 1
echo "Linting C++ code"
bash ./.ci/lint-cpp.sh || exit 1
echo "Linting JavaScript code"
bash ./.ci/lint-js.sh || exit 1
exit 0
fi

Expand Down
11 changes: 4 additions & 7 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -1,22 +1,19 @@
root = true

[*]
charset=utf-8
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
end_of_line = lf
indent_style = space
indent_size = 2

[*.{py,sh,js,ps1}]
[*.{py,sh,ps1,js,json}]
indent_size = 4
line_length = 120
max_line_length = 120
skip = external_libs
known_first_party = lightgbm

# Placeholder files
[{*.gitkeep,__init__.py}]
insert_final_newline = none

# Tabs matter for Makefile and .gitmodules
[{makefile*,Makefile*,*.mk,*.mak,*.makefile,*.Makefile,GNUmakefile,BSDmakefile,make.bat,Makevars*,*.gitmodules}]
indent_style = tab
21 changes: 21 additions & 0 deletions biome.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"files": {
"ignore": [".mypy_cache/"]
},
"formatter": {
"enabled": true,
"useEditorconfig": true
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"all": true
}
},
"javascript": {
"globals": ["$"]
}
}
69 changes: 41 additions & 28 deletions docs/_static/js/script.js
Original file line number Diff line number Diff line change
@@ -1,56 +1,69 @@
$(function() {
$(() => {
/* Use wider container for the page content */
$('.wy-nav-content').each(function() { this.style.setProperty('max-width', 'none', 'important'); });
$(".wy-nav-content").each(function () {
this.style.setProperty("max-width", "none", "important");
});

/* List each class property item on a new line
https://github.com/microsoft/LightGBM/issues/5073 */
if(window.location.pathname.toLocaleLowerCase().indexOf('pythonapi') !== -1) {
$('.py.property').each(function() { this.style.setProperty('display', 'inline', 'important'); });
if (window.location.pathname.toLocaleLowerCase().indexOf("pythonapi") !== -1) {
$(".py.property").each(function () {
this.style.setProperty("display", "inline", "important");
});
}

/* Collapse specified sections in the installation guide */
if(window.location.pathname.toLocaleLowerCase().indexOf('installation-guide') !== -1) {
$('<style>.closed, .opened {cursor: pointer;} .closed:before, .opened:before {font-family: FontAwesome; display: inline-block; padding-right: 6px;} .closed:before {content: "\\f078";} .opened:before {content: "\\f077";}</style>').appendTo('body');
var collapsable = [
'#build-threadless-version-not-recommended',
'#build-mpi-version',
'#build-gpu-version',
'#build-cuda-version',
'#build-java-wrapper',
'#build-c-unit-tests'
if (window.location.pathname.toLocaleLowerCase().indexOf("installation-guide") !== -1) {
$(
'<style>.closed, .opened {cursor: pointer;} .closed:before, .opened:before {font-family: FontAwesome; display: inline-block; padding-right: 6px;} .closed:before {content: "\\f078";} .opened:before {content: "\\f077";}</style>',
).appendTo("body");
const collapsable = [
"#build-threadless-version-not-recommended",
"#build-mpi-version",
"#build-gpu-version",
"#build-cuda-version",
"#build-java-wrapper",
"#build-c-unit-tests",
];
$.each(collapsable, function(_, val) {
var header = val + ' > :header:first';
var content = val + ' :not(:header:first)';
$(header).addClass('closed');
$.each(collapsable, (_, val) => {
const header = `${val} > :header:first`;
const content = `${val} :not(:header:first)`;
$(header).addClass("closed");
$(content).hide();
$(header).click(function() {
$(header).toggleClass('closed opened');
$(header).click(() => {
$(header).toggleClass("closed opened");
$(content).slideToggle(0);
});
});
/* Uncollapse parent sections when nested section is specified in the URL or before navigate to it from navbar */
function uncollapse(section) {
section.parents().each((_, val) => { $(val).children('.closed').click(); });
section.parents().each((_, val) => {
$(val).children(".closed").click();
});
}
uncollapse($(window.location.hash));
$('.wy-menu.wy-menu-vertical li a.reference.internal').click(function() {
uncollapse($($(this).attr('href')));
$(".wy-menu.wy-menu-vertical li a.reference.internal").click(function () {
uncollapse($($(this).attr("href")));
});

/* Modify src and href attrs of artifacts badge */
function modifyBadge(src, href) {
$('img[alt="download artifacts"]').each(function() {
$('img[alt="download artifacts"]').each(function () {
this.src = src;
this.parentNode.href = href;
});
}
/* Initialize artifacts badge */
modifyBadge('./_static/images/artifacts-fetching.svg', '#');
modifyBadge("./_static/images/artifacts-fetching.svg", "#");
/* Fetch latest buildId and construct artifacts badge */
$.getJSON('https://dev.azure.com/lightgbm-ci/lightgbm-ci/_apis/build/builds?branchName=refs/heads/master&resultFilter=succeeded&queryOrder=finishTimeDescending&%24top=1&api-version=7.1-preview.7', function(data) {
modifyBadge('./_static/images/artifacts-download.svg',
'https://dev.azure.com/lightgbm-ci/lightgbm-ci/_apis/build/builds/' + data['value'][0]['id'] + '/artifacts?artifactName=PackageAssets&api-version=7.1-preview.5&%24format=zip');
});
$.getJSON(
"https://dev.azure.com/lightgbm-ci/lightgbm-ci/_apis/build/builds?branchName=refs/heads/master&resultFilter=succeeded&queryOrder=finishTimeDescending&%24top=1&api-version=7.1-preview.7",
(data) => {
modifyBadge(
"./_static/images/artifacts-download.svg",
`https://dev.azure.com/lightgbm-ci/lightgbm-ci/_apis/build/builds/${data.value[0].id}/artifacts?artifactName=PackageAssets&api-version=7.1-preview.5&%24format=zip`,
);
},
);
}
});
2 changes: 1 addition & 1 deletion examples/binary_classification/forced_splits.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"feature": 25,
"threshold": 1.30,
"threshold": 1.3,
"left": {
"feature": 26,
"threshold": 0.85
Expand Down
4 changes: 2 additions & 2 deletions examples/regression/forced_bins.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
[
{
"feature": 0,
"bin_upper_bound": [ 0.3, 0.35, 0.4 ]
"bin_upper_bound": [0.3, 0.35, 0.4]
},
{
"feature": 1,
"bin_upper_bound": [ -0.1, -0.15, -0.2 ]
"bin_upper_bound": [-0.1, -0.15, -0.2]
}
]
2 changes: 1 addition & 1 deletion examples/regression/forced_bins2.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[
{
"feature": 0,
"bin_upper_bound": [ 0.19, 0.39, 0.59, 0.79 ]
"bin_upper_bound": [0.19, 0.39, 0.59, 0.79]
}
]
2 changes: 1 addition & 1 deletion python-package/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -286,7 +286,7 @@ To check that a contribution to the package matches its style expectations, run

.. code:: sh
bash .ci/lint-python.sh
bash .ci/lint-python-bash.sh
.. |License| image:: https://img.shields.io/github/license/microsoft/lightgbm.svg
:target: https://github.com/microsoft/LightGBM/blob/master/LICENSE
Expand Down

0 comments on commit 13f2e92

Please sign in to comment.