From 57b529af1322d8c0810f8768738130c081a52d89 Mon Sep 17 00:00:00 2001 From: Alex Lowe Date: Tue, 17 Dec 2024 17:42:24 -0500 Subject: [PATCH 1/5] style: replace yamllint with prettier Lints and formats YAML, JSON, JSON5, Markdown and CSS files with prettier. Cannot do TOML right now due to: https://github.com/prettier/prettier/issues/15141 Fixes #273 CRAFT-3626 --- Makefile | 4 ++-- common.mk | 22 +++++++++++++++++++--- pyproject.toml | 1 - uv.lock | 21 +++++++++++++++------ 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index 6a8d2dd..7743d1e 100644 --- a/Makefile +++ b/Makefile @@ -3,10 +3,10 @@ PROJECT=starcraft include common.mk .PHONY: format -format: format-ruff format-codespell ## Run all automatic formatters +format: format-ruff format-codespell format-prettier ## Run all automatic formatters .PHONY: lint -lint: lint-ruff lint-codespell lint-mypy lint-pyright lint-shellcheck lint-yaml lint-docs lint-twine ## Run all linters +lint: lint-ruff lint-codespell lint-mypy lint-prettier lint-pyright lint-shellcheck lint-docs lint-twine ## Run all linters .PHONY: pack pack: pack-pip ## Build all packages diff --git a/common.mk b/common.mk index ab4c874..962eff4 100644 --- a/common.mk +++ b/common.mk @@ -13,6 +13,9 @@ else APT := apt-get endif +PRETTIER=npm exec --package=prettier -- prettier +PRETTIER_FILES=**.yaml **.yml **.json **.json5 **.css **.md + .DEFAULT_GOAL := help .ONESHELL: @@ -82,6 +85,10 @@ format-ruff: install-ruff ##- Automatically format with ruff format-codespell: ##- Fix spelling issues with codespell uv run codespell --toml pyproject.toml --write-changes $(SOURCES) +.PHONY: format-prettier +format-prettier: install-npm ##- Format files with prettier + $(PRETTIER) --write $(PRETTIER_FILES) + .PHONY: lint-ruff lint-ruff: install-ruff ##- Lint with ruff ifneq ($(CI),) @@ -137,12 +144,12 @@ ifneq ($(CI),) @echo ::endgroup:: endif -.PHONY: lint-yaml -lint-yaml: ##- Lint YAML files with yamllint +.PHONY: lint-prettier +lint-prettier: install-npm ##- Lint files with prettier ifneq ($(CI),) @echo ::group::$@ endif - uv run --extra lint yamllint . + $(PRETTIER) --check $(PRETTIER_FILES) ifneq ($(CI),) @echo ::endgroup:: endif @@ -263,3 +270,12 @@ else ifneq ($(shell which brew),) else $(warning Shellcheck not installed. Please install it yourself.) endif + +.PHONY: install-npm +install-npm: +ifneq ($(shell which npm),) +else ifneq ($(shell which snap),) + sudo snap install --classic node +else + $(error npm not installed. Please install it yourself.) +endif diff --git a/pyproject.toml b/pyproject.toml index ff7b00d..74cffaa 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -67,7 +67,6 @@ dev-dependencies = [ "pytest~=8.0", "pytest-cov~=6.0", "pytest-mock~=3.12", - "yamllint~=1.34", "mypy[reports]~=1.13.0", "pyright==1.1.390", "types-Pygments", diff --git a/uv.lock b/uv.lock index 4d80838..ad05974 100644 --- a/uv.lock +++ b/uv.lock @@ -8,18 +8,27 @@ resolution-markers = [ [manifest] constraints = [ { name = "build", specifier = ">=0.7.0" }, + { name = "cffi", specifier = ">=1.15" }, + { name = "httplib2", specifier = ">=0.20.0" }, { name = "iniconfig", specifier = ">=1.1.0" }, + { name = "libnacl", specifier = ">=2.0" }, { name = "lxml", specifier = ">=5.0" }, { name = "markdown", specifier = ">=3.0" }, { name = "markupsafe", specifier = ">=2.0" }, + { name = "oauthlib", specifier = ">=3.0.0" }, + { name = "protobuf", specifier = ">=5.0" }, + { name = "pynacl", specifier = ">=1.5" }, { name = "pyparsing", specifier = ">=3.0.0" }, { name = "pyproject-hooks", specifier = ">=1.0.0" }, - { name = "pyyaml", specifier = ">5.0" }, + { name = "pytz", specifier = ">=2020" }, { name = "pyyaml", specifier = ">=5.0" }, { name = "regex", specifier = ">=2021.11.10" }, + { name = "setuptools", specifier = ">=50" }, { name = "sphinx-basic-ng", specifier = ">=1.0.0b1" }, { name = "tornado", specifier = ">=4.0" }, + { name = "urllib3", specifier = ">=2.0" }, { name = "webencodings", specifier = ">=0.4.0" }, + { name = "wheel", specifier = ">=0.38" }, ] [[package]] @@ -1170,6 +1179,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/7f/b7/20c6f3c0b656fe609675d69bc135c03aac9e3865912444be6339207b6648/ruamel.yaml.clib-0.2.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f66efbc1caa63c088dead1c4170d148eabc9b80d95fb75b6c92ac0aad2437d76", size = 686712 }, { url = "https://files.pythonhosted.org/packages/cd/11/d12dbf683471f888d354dac59593873c2b45feb193c5e3e0f2ebf85e68b9/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22353049ba4181685023b25b5b51a574bce33e7f51c759371a7422dcae5402a6", size = 663936 }, { url = "https://files.pythonhosted.org/packages/72/14/4c268f5077db5c83f743ee1daeb236269fa8577133a5cfa49f8b382baf13/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:932205970b9f9991b34f55136be327501903f7c66830e9760a8ffb15b07f05cd", size = 696580 }, + { url = "https://files.pythonhosted.org/packages/30/fc/8cd12f189c6405a4c1cf37bd633aa740a9538c8e40497c231072d0fef5cf/ruamel.yaml.clib-0.2.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a52d48f4e7bf9005e8f0a89209bf9a73f7190ddf0489eee5eb51377385f59f2a", size = 663393 }, { url = "https://files.pythonhosted.org/packages/80/29/c0a017b704aaf3cbf704989785cd9c5d5b8ccec2dae6ac0c53833c84e677/ruamel.yaml.clib-0.2.12-cp310-cp310-win32.whl", hash = "sha256:3eac5a91891ceb88138c113f9db04f3cebdae277f5d44eaa3651a4f573e6a5da", size = 100326 }, { url = "https://files.pythonhosted.org/packages/3a/65/fa39d74db4e2d0cd252355732d966a460a41cd01c6353b820a0952432839/ruamel.yaml.clib-0.2.12-cp310-cp310-win_amd64.whl", hash = "sha256:ab007f2f5a87bd08ab1499bdf96f3d5c6ad4dcfa364884cb4549aa0154b13a28", size = 118079 }, { url = "https://files.pythonhosted.org/packages/fb/8f/683c6ad562f558cbc4f7c029abcd9599148c51c54b5ef0f24f2638da9fbb/ruamel.yaml.clib-0.2.12-cp311-cp311-macosx_13_0_arm64.whl", hash = "sha256:4a6679521a58256a90b0d89e03992c15144c5f3858f40d7c18886023d7943db6", size = 132224 }, @@ -1178,6 +1188,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/86/29/88c2567bc893c84d88b4c48027367c3562ae69121d568e8a3f3a8d363f4d/ruamel.yaml.clib-0.2.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:811ea1594b8a0fb466172c384267a4e5e367298af6b228931f273b111f17ef52", size = 703012 }, { url = "https://files.pythonhosted.org/packages/11/46/879763c619b5470820f0cd6ca97d134771e502776bc2b844d2adb6e37753/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:cf12567a7b565cbf65d438dec6cfbe2917d3c1bdddfce84a9930b7d35ea59642", size = 704352 }, { url = "https://files.pythonhosted.org/packages/02/80/ece7e6034256a4186bbe50dee28cd032d816974941a6abf6a9d65e4228a7/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7dd5adc8b930b12c8fc5b99e2d535a09889941aa0d0bd06f4749e9a9397c71d2", size = 737344 }, + { url = "https://files.pythonhosted.org/packages/f0/ca/e4106ac7e80efbabdf4bf91d3d32fc424e41418458251712f5672eada9ce/ruamel.yaml.clib-0.2.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1492a6051dab8d912fc2adeef0e8c72216b24d57bd896ea607cb90bb0c4981d3", size = 714498 }, { url = "https://files.pythonhosted.org/packages/67/58/b1f60a1d591b771298ffa0428237afb092c7f29ae23bad93420b1eb10703/ruamel.yaml.clib-0.2.12-cp311-cp311-win32.whl", hash = "sha256:bd0a08f0bab19093c54e18a14a10b4322e1eacc5217056f3c063bd2f59853ce4", size = 100205 }, { url = "https://files.pythonhosted.org/packages/b4/4f/b52f634c9548a9291a70dfce26ca7ebce388235c93588a1068028ea23fcc/ruamel.yaml.clib-0.2.12-cp311-cp311-win_amd64.whl", hash = "sha256:a274fb2cb086c7a3dea4322ec27f4cb5cc4b6298adb583ab0e211a4682f241eb", size = 118185 }, { url = "https://files.pythonhosted.org/packages/48/41/e7a405afbdc26af961678474a55373e1b323605a4f5e2ddd4a80ea80f628/ruamel.yaml.clib-0.2.12-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:20b0f8dc160ba83b6dcc0e256846e1a02d044e13f7ea74a3d1d56ede4e48c632", size = 133433 }, @@ -1186,6 +1197,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/52/a9/d39f3c5ada0a3bb2870d7db41901125dbe2434fa4f12ca8c5b83a42d7c53/ruamel.yaml.clib-0.2.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:749c16fcc4a2b09f28843cda5a193e0283e47454b63ec4b81eaa2242f50e4ccd", size = 706497 }, { url = "https://files.pythonhosted.org/packages/b0/fa/097e38135dadd9ac25aecf2a54be17ddf6e4c23e43d538492a90ab3d71c6/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bf165fef1f223beae7333275156ab2022cffe255dcc51c27f066b4370da81e31", size = 698042 }, { url = "https://files.pythonhosted.org/packages/ec/d5/a659ca6f503b9379b930f13bc6b130c9f176469b73b9834296822a83a132/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:32621c177bbf782ca5a18ba4d7af0f1082a3f6e517ac2a18b3974d4edf349680", size = 745831 }, + { url = "https://files.pythonhosted.org/packages/db/5d/36619b61ffa2429eeaefaab4f3374666adf36ad8ac6330d855848d7d36fd/ruamel.yaml.clib-0.2.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:b82a7c94a498853aa0b272fd5bc67f29008da798d4f93a2f9f289feb8426a58d", size = 715692 }, { url = "https://files.pythonhosted.org/packages/b1/82/85cb92f15a4231c89b95dfe08b09eb6adca929ef7df7e17ab59902b6f589/ruamel.yaml.clib-0.2.12-cp312-cp312-win32.whl", hash = "sha256:e8c4ebfcfd57177b572e2040777b8abc537cdef58a2120e830124946aa9b42c5", size = 98777 }, { url = "https://files.pythonhosted.org/packages/d7/8f/c3654f6f1ddb75daf3922c3d8fc6005b1ab56671ad56ffb874d908bfa668/ruamel.yaml.clib-0.2.12-cp312-cp312-win_amd64.whl", hash = "sha256:0467c5965282c62203273b838ae77c0d29d7638c8a4e3a1c8bdd3602c10904e4", size = 115523 }, { url = "https://files.pythonhosted.org/packages/29/00/4864119668d71a5fa45678f380b5923ff410701565821925c69780356ffa/ruamel.yaml.clib-0.2.12-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4c8c5d82f50bb53986a5e02d1b3092b03622c02c2eb78e29bec33fd9593bae1a", size = 132011 }, @@ -1194,6 +1206,7 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e2/a9/28f60726d29dfc01b8decdb385de4ced2ced9faeb37a847bd5cf26836815/ruamel.yaml.clib-0.2.12-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:96777d473c05ee3e5e3c3e999f5d23c6f4ec5b0c38c098b3a5229085f74236c6", size = 701785 }, { url = "https://files.pythonhosted.org/packages/84/7e/8e7ec45920daa7f76046578e4f677a3215fe8f18ee30a9cb7627a19d9b4c/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:3bc2a80e6420ca8b7d3590791e2dfc709c88ab9152c00eeb511c9875ce5778bf", size = 693017 }, { url = "https://files.pythonhosted.org/packages/c5/b3/d650eaade4ca225f02a648321e1ab835b9d361c60d51150bac49063b83fa/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:e188d2699864c11c36cdfdada94d781fd5d6b0071cd9c427bceb08ad3d7c70e1", size = 741270 }, + { url = "https://files.pythonhosted.org/packages/87/b8/01c29b924dcbbed75cc45b30c30d565d763b9c4d540545a0eeecffb8f09c/ruamel.yaml.clib-0.2.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f6f3eac23941b32afccc23081e1f50612bdbe4e982012ef4f5797986828cd01", size = 709059 }, { url = "https://files.pythonhosted.org/packages/30/8c/ed73f047a73638257aa9377ad356bea4d96125b305c34a28766f4445cc0f/ruamel.yaml.clib-0.2.12-cp313-cp313-win32.whl", hash = "sha256:6442cb36270b3afb1b4951f060eccca1ce49f3d087ca1ca4563a6eb479cb3de6", size = 98583 }, { url = "https://files.pythonhosted.org/packages/b0/85/e8e751d8791564dd333d5d9a4eab0a7a115f7e349595417fd50ecae3395c/ruamel.yaml.clib-0.2.12-cp313-cp313-win_amd64.whl", hash = "sha256:e5b8daf27af0b90da7bb903a876477a9e6d7270be6146906b276605997c7e9a3", size = 115190 }, ] @@ -1476,7 +1489,7 @@ wheels = [ [[package]] name = "starcraft" -version = "0.0.post259+gd956942.d20241207" +version = "0.0.post274+gb4a1f7a.d20241217" source = { editable = "." } [package.optional-dependencies] @@ -1492,7 +1505,6 @@ lint = [ ] types = [ { name = "mypy", extra = ["reports"] }, - { name = "pyright" }, { name = "types-colorama" }, { name = "types-pygments" }, { name = "types-setuptools" }, @@ -1510,14 +1522,12 @@ dev = [ { name = "types-colorama" }, { name = "types-pygments" }, { name = "types-setuptools" }, - { name = "yamllint" }, ] [package.metadata] requires-dist = [ { name = "canonical-sphinx", marker = "extra == 'docs'", specifier = "~=0.2.0" }, { name = "mypy", extras = ["reports"], marker = "extra == 'types'", specifier = "~=1.13.0" }, - { name = "pyright", marker = "extra == 'types'", specifier = "==1.1.390" }, { name = "sphinx-autobuild", marker = "extra == 'docs'", specifier = "~=2024.2" }, { name = "sphinx-lint", marker = "extra == 'docs'", specifier = "==1.0.0" }, { name = "sphinx-pydantic", marker = "extra == 'docs'", specifier = "==0.1.1" }, @@ -1540,7 +1550,6 @@ dev = [ { name = "types-colorama" }, { name = "types-pygments" }, { name = "types-setuptools" }, - { name = "yamllint", specifier = "~=1.34" }, ] [[package]] From 578b0cd05ade8690ec6c24ab68f731037ea100c2 Mon Sep 17 00:00:00 2001 From: Alex Lowe Date: Tue, 17 Dec 2024 17:42:46 -0500 Subject: [PATCH 2/5] style: format Automatically format files with new formatters --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- .github/release-drafter.yml | 2 +- .github/workflows/check-renovate.yaml | 2 +- .github/workflows/policy.yaml | 2 +- docs/_static/css/custom.css | 4 ++-- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index da2c973..ca01e6b 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -2,4 +2,4 @@ - [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)? - [ ] Have you successfully run `tox`? ------ +--- diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml index 5262e23..e78bce4 100644 --- a/.github/release-drafter.yml +++ b/.github/release-drafter.yml @@ -15,7 +15,7 @@ categories: - title: "Tooling" label: - "tooling" -change-template: '- $TITLE @$AUTHOR (#$NUMBER)' +change-template: "- $TITLE @$AUTHOR (#$NUMBER)" template: | Special thanks to the contributors that made this release happen: $CONTRIBUTORS diff --git a/.github/workflows/check-renovate.yaml b/.github/workflows/check-renovate.yaml index efbe384..de31e3e 100644 --- a/.github/workflows/check-renovate.yaml +++ b/.github/workflows/check-renovate.yaml @@ -10,7 +10,7 @@ on: inputs: enable_ssh_access: type: boolean - description: 'Enable ssh access' + description: "Enable ssh access" required: false default: false diff --git a/.github/workflows/policy.yaml b/.github/workflows/policy.yaml index fb8310f..9c59dc1 100644 --- a/.github/workflows/policy.yaml +++ b/.github/workflows/policy.yaml @@ -5,7 +5,7 @@ on: branches: - main - hotfix/* - - work/check-policy # For development + - work/check-policy # For development jobs: policy: diff --git a/docs/_static/css/custom.css b/docs/_static/css/custom.css index ef7e97f..83174e0 100644 --- a/docs/_static/css/custom.css +++ b/docs/_static/css/custom.css @@ -1,4 +1,4 @@ -@import url('https://fonts.googleapis.com/css2?family=Ubuntu:ital@0;1&display=swap'); +@import url("https://fonts.googleapis.com/css2?family=Ubuntu:ital@0;1&display=swap"); body { font-family: Ubuntu, "times new roman", times, roman, serif; @@ -8,7 +8,7 @@ div .toctree-wrapper { column-count: 2; } -div .toctree-wrapper>ul { +div .toctree-wrapper > ul { margin: 0; } From 4190e4b7ee1b7b9efc608a2aa2c36210e8073ab6 Mon Sep 17 00:00:00 2001 From: Alex Lowe Date: Fri, 20 Dec 2024 13:18:53 -0500 Subject: [PATCH 3/5] fix: replace some whitespace with other whitespace Thanks to @bepri for finding this --- .editorconfig | 2 +- common.mk | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.editorconfig b/.editorconfig index 5a54b3e..adea89a 100644 --- a/.editorconfig +++ b/.editorconfig @@ -14,7 +14,7 @@ trim_trailing_whitespace = true [.editorconfig] max_line_length = off -[Makefile] +[{Makefile,*.mk}] indent_style = tab [{*.py,*.pyi}] diff --git a/common.mk b/common.mk index 962eff4..823d88c 100644 --- a/common.mk +++ b/common.mk @@ -8,7 +8,7 @@ ifneq ($(OS),Windows_NT) OS := $(shell uname) endif ifdef CI - APT := apt-get --yes + APT := apt-get --yes else APT := apt-get endif @@ -245,7 +245,7 @@ ifneq ($(shell which pyright),) else ifneq ($(shell which snap),) sudo snap install --classic pyright else - # Workaround for a bug in npm + # Workaround for a bug in npm [ -d "$(HOME)/.npm/_cacache" ] && chown -R `id -u`:`id -g` "$(HOME)/.npm" || true uv tool install pyright endif From 9f8199a0fd13028b611f33ea52470272d37030c1 Mon Sep 17 00:00:00 2001 From: Alex Lowe Date: Fri, 20 Dec 2024 15:44:03 -0500 Subject: [PATCH 4/5] fix: pr suggestions --- .pre-commit-config.yaml | 10 ++++++---- .yamllint.yaml | 12 ------------ tox.ini | 5 ++--- 3 files changed, 8 insertions(+), 19 deletions(-) delete mode 100644 .yamllint.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8eb7e57..6d11bd4 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -13,14 +13,16 @@ repos: - id: fix-byte-order-marker - id: mixed-line-ending - repo: https://github.com/astral-sh/ruff-pre-commit - rev: "v0.8.3" + rev: "v0.8.4" hooks: # Run the linter - id: ruff args: [--fix, --exit-non-zero-on-fix] # Run the formatter - id: ruff-format - - repo: https://github.com/adrienverge/yamllint.git - rev: "v1.35.1" + - repo: https://github.com/pre-commit/mirrors-prettier + rev: "" # Intentionally blank, despite the warning. hooks: - - id: yamllint + - id: prettier + additional_dependencies: + - prettier@3.4.2 diff --git a/.yamllint.yaml b/.yamllint.yaml deleted file mode 100644 index 8f7da74..0000000 --- a/.yamllint.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -ignore-from-file: [.gitignore] - -extends: default - -rules: - document-start: disable - float-values: enable - line-length: disable - octal-values: enable - truthy: - check-keys: false diff --git a/tox.ini b/tox.ini index 696a22f..17afaf5 100644 --- a/tox.ini +++ b/tox.ini @@ -2,7 +2,7 @@ env_list = # Environments to run when called with no parameters. format-{ruff,codespell} pre-commit - lint-{ruff,mypy,pyright,shellcheck,codespell,docs,yaml} + lint-{ruff,mypy,pyright,shellcheck,codespell,docs} unit-py3.{10,12} integration-py3.10 # Integration tests probably take a while, so we're only running them on Python @@ -71,7 +71,7 @@ allowlist_externals = find = git ls-files filter = file --mime-type -Nnf- | grep shellscript | cut -f1 -d: -[testenv:lint-{ruff,shellcheck,codespell,yaml}] +[testenv:lint-{ruff,shellcheck,codespell}] description = Lint the source code base = testenv, lint labels = lint @@ -82,7 +82,6 @@ commands = ruff: ruff check {posargs:.} shellcheck: xargs -ra {env_tmp_dir}/shellcheck_files shellcheck codespell: codespell --toml {tox_root}/pyproject.toml {posargs} - yaml: yamllint {posargs} . [testenv:lint-{mypy,pyright}] description = Static type checking From 77012bc552d18025eb5eaf4230457a3b18ee19e9 Mon Sep 17 00:00:00 2001 From: Alex Lowe Date: Fri, 20 Dec 2024 15:45:55 -0500 Subject: [PATCH 5/5] fix: install node with brew --- common.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/common.mk b/common.mk index 823d88c..1483ce6 100644 --- a/common.mk +++ b/common.mk @@ -276,6 +276,8 @@ install-npm: ifneq ($(shell which npm),) else ifneq ($(shell which snap),) sudo snap install --classic node +else ifneq ($(shell which brew),) + brew install node else $(error npm not installed. Please install it yourself.) endif