Unverified Commit 13f2e92b authored by Nikita Titov's avatar Nikita Titov Committed by GitHub
Browse files

[ci] check JavaScript code with `biome` tool (#6711)



* lint js code

* hotfix

* Update .editorconfig
Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>

---------
Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
parent 92aa07b4
#!/bin/bash
set -e -E -u -o pipefail
biome ci --config-path=./biome.json --diagnostic-level=info --error-on-warnings ./
...@@ -103,6 +103,7 @@ if [[ $TASK == "lint" ]]; then ...@@ -103,6 +103,7 @@ if [[ $TASK == "lint" ]]; then
pwsh -file "./.ci/lint-powershell.ps1" || : pwsh -file "./.ci/lint-powershell.ps1" || :
conda create -q -y -n "${CONDA_ENV}" \ conda create -q -y -n "${CONDA_ENV}" \
"${CONDA_PYTHON_REQUIREMENT}" \ "${CONDA_PYTHON_REQUIREMENT}" \
'biome>=1.9.3' \
'cmakelint>=1.4.3' \ 'cmakelint>=1.4.3' \
'cpplint>=1.6.0' \ 'cpplint>=1.6.0' \
'matplotlib-base>=3.9.1' \ 'matplotlib-base>=3.9.1' \
...@@ -113,12 +114,14 @@ if [[ $TASK == "lint" ]]; then ...@@ -113,12 +114,14 @@ if [[ $TASK == "lint" ]]; then
'r-lintr>=3.1.2' 'r-lintr>=3.1.2'
# shellcheck disable=SC1091 # shellcheck disable=SC1091
source activate "${CONDA_ENV}" source activate "${CONDA_ENV}"
echo "Linting Python code" echo "Linting Python and bash code"
bash ./.ci/lint-python.sh || exit 1 bash ./.ci/lint-python-bash.sh || exit 1
echo "Linting R code" echo "Linting R code"
Rscript ./.ci/lint-r-code.R "${BUILD_DIRECTORY}" || exit 1 Rscript ./.ci/lint-r-code.R "${BUILD_DIRECTORY}" || exit 1
echo "Linting C++ code" echo "Linting C++ code"
bash ./.ci/lint-cpp.sh || exit 1 bash ./.ci/lint-cpp.sh || exit 1
echo "Linting JavaScript code"
bash ./.ci/lint-js.sh || exit 1
exit 0 exit 0
fi fi
......
root = true root = true
[*] [*]
charset=utf-8 charset = utf-8
trim_trailing_whitespace = true trim_trailing_whitespace = true
insert_final_newline = true insert_final_newline = true
end_of_line = lf
indent_style = space indent_style = space
indent_size = 2 indent_size = 2
[*.{py,sh,js,ps1}] [*.{py,sh,ps1,js,json}]
indent_size = 4 indent_size = 4
line_length = 120 max_line_length = 120
skip = external_libs skip = external_libs
known_first_party = lightgbm known_first_party = lightgbm
# Placeholder files
[{*.gitkeep,__init__.py}]
insert_final_newline = none
# Tabs matter for Makefile and .gitmodules # Tabs matter for Makefile and .gitmodules
[{makefile*,Makefile*,*.mk,*.mak,*.makefile,*.Makefile,GNUmakefile,BSDmakefile,make.bat,Makevars*,*.gitmodules}] [{makefile*,Makefile*,*.mk,*.mak,*.makefile,*.Makefile,GNUmakefile,BSDmakefile,make.bat,Makevars*,*.gitmodules}]
indent_style = tab indent_style = tab
{
"files": {
"ignore": [".mypy_cache/"]
},
"formatter": {
"enabled": true,
"useEditorconfig": true
},
"organizeImports": {
"enabled": true
},
"linter": {
"enabled": true,
"rules": {
"all": true
}
},
"javascript": {
"globals": ["$"]
}
}
$(function() { $(() => {
/* Use wider container for the page content */ /* 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 /* List each class property item on a new line
https://github.com/microsoft/LightGBM/issues/5073 */ https://github.com/microsoft/LightGBM/issues/5073 */
if(window.location.pathname.toLocaleLowerCase().indexOf('pythonapi') !== -1) { if (window.location.pathname.toLocaleLowerCase().indexOf("pythonapi") !== -1) {
$('.py.property').each(function() { this.style.setProperty('display', 'inline', 'important'); }); $(".py.property").each(function () {
this.style.setProperty("display", "inline", "important");
});
} }
/* Collapse specified sections in the installation guide */ /* Collapse specified sections in the installation guide */
if(window.location.pathname.toLocaleLowerCase().indexOf('installation-guide') !== -1) { 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 = [ '<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>',
'#build-threadless-version-not-recommended', ).appendTo("body");
'#build-mpi-version', const collapsable = [
'#build-gpu-version', "#build-threadless-version-not-recommended",
'#build-cuda-version', "#build-mpi-version",
'#build-java-wrapper', "#build-gpu-version",
'#build-c-unit-tests' "#build-cuda-version",
"#build-java-wrapper",
"#build-c-unit-tests",
]; ];
$.each(collapsable, function(_, val) { $.each(collapsable, (_, val) => {
var header = val + ' > :header:first'; const header = `${val} > :header:first`;
var content = val + ' :not(:header:first)'; const content = `${val} :not(:header:first)`;
$(header).addClass('closed'); $(header).addClass("closed");
$(content).hide(); $(content).hide();
$(header).click(function() { $(header).click(() => {
$(header).toggleClass('closed opened'); $(header).toggleClass("closed opened");
$(content).slideToggle(0); $(content).slideToggle(0);
}); });
}); });
/* Uncollapse parent sections when nested section is specified in the URL or before navigate to it from navbar */ /* Uncollapse parent sections when nested section is specified in the URL or before navigate to it from navbar */
function uncollapse(section) { function uncollapse(section) {
section.parents().each((_, val) => { $(val).children('.closed').click(); }); section.parents().each((_, val) => {
$(val).children(".closed").click();
});
} }
uncollapse($(window.location.hash)); uncollapse($(window.location.hash));
$('.wy-menu.wy-menu-vertical li a.reference.internal').click(function() { $(".wy-menu.wy-menu-vertical li a.reference.internal").click(function () {
uncollapse($($(this).attr('href'))); uncollapse($($(this).attr("href")));
}); });
/* Modify src and href attrs of artifacts badge */ /* Modify src and href attrs of artifacts badge */
function modifyBadge(src, href) { function modifyBadge(src, href) {
$('img[alt="download artifacts"]').each(function() { $('img[alt="download artifacts"]').each(function () {
this.src = src; this.src = src;
this.parentNode.href = href; this.parentNode.href = href;
}); });
} }
/* Initialize artifacts badge */ /* Initialize artifacts badge */
modifyBadge('./_static/images/artifacts-fetching.svg', '#'); modifyBadge("./_static/images/artifacts-fetching.svg", "#");
/* Fetch latest buildId and construct artifacts badge */ /* 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) { $.getJSON(
modifyBadge('./_static/images/artifacts-download.svg', "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",
'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'); (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`,
);
},
);
} }
}); });
{ {
"feature": 25, "feature": 25,
"threshold": 1.30, "threshold": 1.3,
"left": { "left": {
"feature": 26, "feature": 26,
"threshold": 0.85 "threshold": 0.85
......
[ [
{ {
"feature": 0, "feature": 0,
"bin_upper_bound": [ 0.3, 0.35, 0.4 ] "bin_upper_bound": [0.3, 0.35, 0.4]
}, },
{ {
"feature": 1, "feature": 1,
"bin_upper_bound": [ -0.1, -0.15, -0.2 ] "bin_upper_bound": [-0.1, -0.15, -0.2]
} }
] ]
[ [
{ {
"feature": 0, "feature": 0,
"bin_upper_bound": [ 0.19, 0.39, 0.59, 0.79 ] "bin_upper_bound": [0.19, 0.39, 0.59, 0.79]
} }
] ]
...@@ -286,7 +286,7 @@ To check that a contribution to the package matches its style expectations, run ...@@ -286,7 +286,7 @@ To check that a contribution to the package matches its style expectations, run
.. code:: sh .. code:: sh
bash .ci/lint-python.sh bash .ci/lint-python-bash.sh
.. |License| image:: https://img.shields.io/github/license/microsoft/lightgbm.svg .. |License| image:: https://img.shields.io/github/license/microsoft/lightgbm.svg
:target: https://github.com/microsoft/LightGBM/blob/master/LICENSE :target: https://github.com/microsoft/LightGBM/blob/master/LICENSE
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment