@theglitchking/gimme-the-lint 1.2.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +11 -7
- package/.claude-plugin/plugin.json +10 -6
- package/CHANGELOG.md +88 -0
- package/README.md +215 -319
- package/bin/gimme-the-lint.js +96 -29
- package/commands/lint-baseline.md +27 -17
- package/commands/lint-status.md +18 -15
- package/commands/lint.md +34 -26
- package/lib/adapters/adapter.js +192 -0
- package/lib/adapters/biome.js +103 -0
- package/lib/adapters/clippy.js +109 -0
- package/lib/adapters/eslint.js +100 -0
- package/lib/adapters/golangci-lint.js +100 -0
- package/lib/adapters/index.js +67 -0
- package/lib/adapters/ruff.js +86 -0
- package/lib/adapters/tflint.js +138 -0
- package/lib/baseline-store.js +119 -0
- package/lib/baseline.js +125 -0
- package/lib/check.js +137 -0
- package/lib/config-manager.js +1 -2
- package/lib/dashboard.js +67 -0
- package/lib/diff-engine.js +109 -0
- package/lib/drift.js +140 -0
- package/lib/fingerprint.js +45 -0
- package/lib/gtl-manifest.js +90 -0
- package/lib/index.js +31 -0
- package/lib/installer.js +77 -3
- package/lib/linter-configs.js +130 -0
- package/lib/migrate.js +108 -0
- package/lib/project-model.js +155 -0
- package/lib/report.js +114 -0
- package/lib/toolchain.js +71 -0
- package/lib/units.js +87 -0
- package/lib/violation.js +60 -0
- package/package.json +16 -7
- package/scripts/dashboard.sh +10 -186
- package/scripts/eslint-baseline.sh +11 -244
- package/scripts/ruff-baseline.sh +10 -243
- package/scripts/run-checks.sh +10 -310
- package/templates/.gitleaks.template.toml +12 -0
- package/templates/.golangci.template.yml +81 -0
- package/templates/.prettierrc.template.json +14 -0
- package/templates/.tflint.template.hcl +32 -0
- package/templates/biome.template.json +90 -0
- package/templates/clippy-cargo-lints.template.toml +21 -0
- package/templates/clippy.template.toml +23 -0
- package/templates/eslint.config.template.js +23 -1
- package/templates/pyproject.template.toml +10 -0
- package/uninstall.sh +1 -2
- package/README.backup.md +0 -310
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
"email": "theglitchking@users.noreply.github.com"
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
|
-
"description": "Official marketplace for gimme-the-lint -
|
|
9
|
-
"version": "1.
|
|
8
|
+
"description": "Official marketplace for gimme-the-lint - polyglot progressive linting with per-app baselines and drift detection",
|
|
9
|
+
"version": "2.1.0"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
|
13
13
|
"name": "gimme-the-lint",
|
|
14
|
-
"description": "
|
|
15
|
-
"version": "1.
|
|
14
|
+
"description": "Polyglot progressive linting for monorepos — adapter-driven baselines, per-app drift detection, and idempotent skips across JavaScript/TypeScript, Python, Go, Rust, and Terraform.",
|
|
15
|
+
"version": "2.1.0",
|
|
16
16
|
"author": {
|
|
17
17
|
"name": "TheGlitchKing"
|
|
18
18
|
},
|
|
@@ -22,12 +22,16 @@
|
|
|
22
22
|
"keywords": [
|
|
23
23
|
"linting",
|
|
24
24
|
"progressive-linting",
|
|
25
|
-
"
|
|
26
|
-
"ruff",
|
|
27
|
-
"python",
|
|
25
|
+
"polyglot",
|
|
28
26
|
"monorepo",
|
|
29
27
|
"git-hooks",
|
|
30
28
|
"drift-detection",
|
|
29
|
+
"eslint",
|
|
30
|
+
"ruff",
|
|
31
|
+
"golangci-lint",
|
|
32
|
+
"clippy",
|
|
33
|
+
"tflint",
|
|
34
|
+
"terraform",
|
|
31
35
|
"claude-code"
|
|
32
36
|
],
|
|
33
37
|
"category": "productivity",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gimme-the-lint",
|
|
3
|
-
"description": "
|
|
4
|
-
"version": "1.
|
|
3
|
+
"description": "Polyglot progressive linting for monorepos — adapter-driven baselines, per-app drift detection, and idempotent skips across JavaScript/TypeScript, Python, Go, Rust, and Terraform.",
|
|
4
|
+
"version": "2.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "TheGlitchKing",
|
|
7
7
|
"email": "theglitchking@users.noreply.github.com"
|
|
@@ -12,11 +12,15 @@
|
|
|
12
12
|
"keywords": [
|
|
13
13
|
"linting",
|
|
14
14
|
"progressive-linting",
|
|
15
|
-
"
|
|
16
|
-
"ruff",
|
|
17
|
-
"python",
|
|
15
|
+
"polyglot",
|
|
18
16
|
"monorepo",
|
|
19
17
|
"git-hooks",
|
|
20
|
-
"drift-detection"
|
|
18
|
+
"drift-detection",
|
|
19
|
+
"eslint",
|
|
20
|
+
"ruff",
|
|
21
|
+
"golangci-lint",
|
|
22
|
+
"clippy",
|
|
23
|
+
"tflint",
|
|
24
|
+
"terraform"
|
|
21
25
|
]
|
|
22
26
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,94 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [2.1.0] - 2026-05-17
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Terraform / OpenTofu support** via a new `tflint` linter adapter. tflint
|
|
12
|
+
plugs into the same progressive-lint engine as every other linter: baselines
|
|
13
|
+
are captured into `.gtl/apps/<app>/baseline.json` under a `tflint` section,
|
|
14
|
+
fingerprinted by `file + rule + message`, and only new violations block.
|
|
15
|
+
- Runs `tflint --format=json`, module-scoped (executes inside the module
|
|
16
|
+
directory for compatibility with tflint versions predating `--chdir`).
|
|
17
|
+
- Parses both `issues` and `errors` — broken HCL surfaces as a blocking
|
|
18
|
+
error rather than slipping through as zero issues.
|
|
19
|
+
- Supports `--fix`; tracks config drift on `.tflint.hcl`.
|
|
20
|
+
- **Extension-based app discovery** for Terraform: a directory containing
|
|
21
|
+
`*.tf` / `*.tofu` source is auto-discovered and bound to `tflint`. Terraform
|
|
22
|
+
has no manifest file, so it is discovered by extension rather than by a
|
|
23
|
+
manifest like `package.json` or `go.mod`. In the root-module layout (`.tf`
|
|
24
|
+
at the repo root *and* in `modules/*/`), the root is treated as a workspace
|
|
25
|
+
root — bind `.` explicitly in `gimme-the-lint.config.js` to lint it. See the
|
|
26
|
+
installation guide.
|
|
27
|
+
- **Best-practice config templates** for every supported codebase. `install`
|
|
28
|
+
now seeds each discovered app with a curated, "recommended tier" config for
|
|
29
|
+
its linter — `eslint.config.js` + `.prettierrc.json`, `biome.json`,
|
|
30
|
+
`pyproject.toml` `[tool.ruff]`, `.golangci.yml` (golangci-lint v2 format),
|
|
31
|
+
`clippy.toml` + `Cargo.toml` `[lints.clippy]`, `.tflint.hcl`. Every write is
|
|
32
|
+
create-if-absent — an existing config is never overwritten (`--force`
|
|
33
|
+
replaces). New module `lib/linter-configs.js`.
|
|
34
|
+
- **Security lint rules** across every codebase. gitleaks remains the universal
|
|
35
|
+
secret scanner (passwords, SSL/private keys, tokens — always blocks, never
|
|
36
|
+
baselined) and its template now also flags PEM private keys and hardcoded
|
|
37
|
+
password assignments. Per-linter security layers are enabled in the shipped
|
|
38
|
+
configs: `gosec` (Go), Ruff `S` / flake8-bandit (Python),
|
|
39
|
+
`eslint-plugin-security` + `eslint-plugin-no-secrets` (JS/TS), and Biome's
|
|
40
|
+
`security` rule group.
|
|
41
|
+
- **Prettier support** — a `.prettierrc.json` template is seeded for ESLint
|
|
42
|
+
apps, and the ESLint config now applies `eslint-config-prettier` so the two
|
|
43
|
+
do not fight over formatting. The ESLint template refresh is additive: every
|
|
44
|
+
pre-existing rule (architecture import guards, `no-cycle`, unused-vars) is
|
|
45
|
+
retained.
|
|
46
|
+
- **New documentation** — `.documentation/lint-rules-guide.md` documents every
|
|
47
|
+
supported codebase, its baseline rules, the security layers, and how/where to
|
|
48
|
+
adjust them.
|
|
49
|
+
|
|
50
|
+
## [2.0.0] - 2026-05-17
|
|
51
|
+
|
|
52
|
+
A ground-up rearchitecture: gimme-the-lint is now a language-agnostic
|
|
53
|
+
progressive-lint engine that owns its own baseline diffing, driven by
|
|
54
|
+
per-directory linter adapters.
|
|
55
|
+
|
|
56
|
+
### Breaking Changes
|
|
57
|
+
- **Baseline layout moved** from `frontend/.lttf/` + `backend/.lttf-ruff/` to a
|
|
58
|
+
single per-app tree, `.gtl/apps/<app>/baseline.json`, plus a global
|
|
59
|
+
`.gtl/manifest.json`. Run `gimme-the-lint migrate` to convert (it backs up
|
|
60
|
+
the legacy directories and re-baselines).
|
|
61
|
+
- **Baseline file format changed** to a linter-agnostic fingerprint map.
|
|
62
|
+
- **Config schema changed**: the `frontend`/`backend` model is replaced by an
|
|
63
|
+
optional `apps` map binding directories to linters; `skipPatterns` added.
|
|
64
|
+
`lttfDir`/`ruffBaselineDir` keys removed.
|
|
65
|
+
- **`check` flags removed**: `--frontend-only`, `--backend-only`, `--verbose`.
|
|
66
|
+
- **GitHub Action inputs changed**: `frontend`/`backend` removed (linting is
|
|
67
|
+
now polyglot auto-detect); `strict` added. Pin `@v2`.
|
|
68
|
+
- The `lint-to-the-future` dependency is gone — gimme-the-lint no longer shells
|
|
69
|
+
out to it; ESLint progressivity is handled by the in-house engine.
|
|
70
|
+
|
|
71
|
+
### Added
|
|
72
|
+
- In-house progressive-diff engine: line/column-independent violation
|
|
73
|
+
fingerprints, so baselined violations survive code shifting in a file.
|
|
74
|
+
- Linter adapter interface — each linter is a self-contained adapter.
|
|
75
|
+
- **Go** support via `golangci-lint` and **Rust** support via `cargo clippy`,
|
|
76
|
+
alongside ESLint and **Biome** (JS/TS) and Ruff (Python).
|
|
77
|
+
- **Biome** adapter: a `biome.json` binds an app to Biome and supersedes the
|
|
78
|
+
default ESLint binding for that app.
|
|
79
|
+
- Polyglot project model: apps auto-discovered by walking for package
|
|
80
|
+
manifests; monorepo workspaces handled; `_template-*` dirs skipped.
|
|
81
|
+
- Per-app drift detection (app add/remove, config, linter version, age) —
|
|
82
|
+
a change in one app never churns unrelated baselines.
|
|
83
|
+
- Idempotent skips: an app with code but no installed linter is warn-skipped
|
|
84
|
+
(never blocks), or fails loudly under `--strict`.
|
|
85
|
+
- `--offline` install for air-gapped environments (no npm/pip fetches; fails
|
|
86
|
+
loudly on a missing toolchain).
|
|
87
|
+
- `--no-baseline` greenfield install / `baseline --empty` — "strict from day
|
|
88
|
+
one" with nothing grandfathered.
|
|
89
|
+
- `gimme-the-lint migrate` — one-shot v1 → v2 migration.
|
|
90
|
+
|
|
91
|
+
### Changed
|
|
92
|
+
- `run-checks.sh`, `eslint-baseline.sh`, `ruff-baseline.sh`, `dashboard.sh` are
|
|
93
|
+
now thin shims over the Node engine.
|
|
94
|
+
- The dashboard renders from `.gtl/manifest.json` with per-app drift.
|
|
95
|
+
|
|
8
96
|
## [1.1.2] - 2026-04-11
|
|
9
97
|
|
|
10
98
|
### Fixed
|