No project description provided
Project description
scm-kit
Polyglot formatting and linting toolkit. Provides two commands — scm-format
and scm-lint — that auto-detect which tools to run based on the files in your
repo.
Prerequisites
Usage
# Install and run via uvx:
uvx --from scm-kit scm-format
uvx --from scm-kit scm-lint
uvx --from scm-kit scm-lint -a # lint all files, not just changed
# Or add to your Makefile:
# fmt:
# @uvx --from scm-kit scm-format
# lint:
# @uvx --from scm-kit scm-lint
What runs
| Language/Files | Format | Lint |
|---|---|---|
Go (go.mod) |
gofmt |
go vet |
JS/TS/CSS/JSON (biome.json) |
Biome | Biome |
| HTML, Markdown, YAML | Prettier | Prettier |
Python (.py) |
Ruff (fix + format) | Ruff (check + format check), Pyright |
TypeScript (tsconfig.json) |
— | tsc --noEmit |
Tools are invoked via npx or uvx, so they don't need to be pre-installed.
Go tools are optional — skipped if not on PATH.
Each tool is skipped when no matching files or config is present, so a Python-only repo won't invoke Biome or Prettier.
Config files
Projects using scm-kit should include their own config files as needed:
.ruff.toml— Ruff linter config (Python)biome.json— Biome formatter/linter config (JS/TS/CSS/JSON)pyrightconfig.json— Pyright type-checker config (Python)
Lint flags
- Default: Pyright checks only changed files (vs
HEAD+ untracked), since it is slow on large codebases. All other linters check the full tree. -a/--all-files: Pyright checks all files.
Development
To test local changes before publishing, use the dev- Makefile targets. These
run against the local source instead of the published package:
make dev-fmt # format using local scm-kit
make dev-lint # lint using local scm-kit
make dev-lint-all # lint all files using local scm-kit
Publishing
rm -rf dist
uv build
UV_PUBLISH_TOKEN=pypi-xxxxx uv publish
Generate a token at https://pypi.org/manage/account/token/.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scm_kit-0.0.13.tar.gz.
File metadata
- Download URL: scm_kit-0.0.13.tar.gz
- Upload date:
- Size: 4.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
66da492b1d19d7fadf4a4e1b4564c33c780305ad936d0c99a36dc8973cac5dd1
|
|
| MD5 |
258858d7a04d4c8230e9081c80c14a53
|
|
| BLAKE2b-256 |
5848bf9589378f2aa6efded99ce026cc1d053500ca1c6fcde9b3a3c096f9faea
|
File details
Details for the file scm_kit-0.0.13-py3-none-any.whl.
File metadata
- Download URL: scm_kit-0.0.13-py3-none-any.whl
- Upload date:
- Size: 5.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd6bc4f2de8370dfca60795d2b0360f53b4d1b1f2416de8935b0f1af22a77673
|
|
| MD5 |
4f3e38feda58a9e9160c470f0b11bb5b
|
|
| BLAKE2b-256 |
19e9bd4b27d378a04d4d325659c52899d876b83455fa9635507823367ff85a7b
|