nanos-lint 2.6.0 → 2.7.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/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
  [![npm version](https://img.shields.io/npm/v/nanos-lint.svg)](https://www.npmjs.com/package/nanos-lint)
5
5
  [![Node.js Version](https://img.shields.io/badge/node-%3E%3D24-brightgreen.svg)](https://nodejs.org/)
6
6
  [![Lua Version](https://img.shields.io/badge/Lua-5.4.9-blue.svg)](https://www.lua.org/manual/5.4/)
7
- [![LuaLS Version](https://img.shields.io/badge/LuaLS-3.19.1-brightgreen.svg)](https://github.com/LuaLS/lua-language-server)
7
+ [![LuaLS Version](https://img.shields.io/badge/LuaLS-latest-brightgreen.svg)](https://github.com/LuaLS/lua-language-server)
8
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
9
9
 
10
10
  A dedicated, fast linter and type-checker for **[nanos world](https://nanos-world.com/)** Lua scripts powered by the **[Lua Language Server (LuaLS)](https://github.com/LuaLS/lua-language-server)**.
@@ -17,7 +17,7 @@ A dedicated, fast linter and type-checker for **[nanos world](https://nanos-worl
17
17
  - **Zero-Install Local CLI**: Run directly via `npx nanos-lint [path]` without installing anything.
18
18
  - **Native GitHub Action**: Use `vugi99/nanos-lint` directly in CI workflows with inline GitHub PR annotations.
19
19
  - **Workspace Config Merging**: Fully respects local `.luarc.json` files, merging your project globals and disabled diagnostics on top of the nanos API.
20
- - **Cross-Platform**: Works on **Windows x64** and **Linux amd64** (plus macOS). Automatically downloads and caches platform LuaLS binaries.
20
+ - **Cross-Platform**: Works on **Windows x64**, **Linux (x64, arm64)**, and **macOS (Apple Silicon arm64, Intel x64)**. Automatically downloads and caches platform LuaLS binaries, defaulting to the latest LuaLS release and falling back to 3.19.1 when offline.
21
21
  - **Modern Node.js Runtime**: Built targeting Node.js (>= 24) with zero runtime dependencies.
22
22
 
23
23
  ---
@@ -101,6 +101,9 @@ jobs:
101
101
  | `luals-version` | Version of `lua-language-server` to use | `latest` |
102
102
  | `fail-on-error` | Fail the workflow step if diagnostics are found | `true` |
103
103
  | `quiet` | Suppress progress messages | `false` |
104
+ | `cache` | Whether to cache the LuaLS binary and annotations across workflow runs | `true` |
105
+
106
+ When caching is enabled, the cache key rolls over each ISO week, so a freshly downloaded LuaLS binary is actually persisted under the new week's key; in the meantime the previous week's entry is restored from the cache.
104
107
 
105
108
  When running inside GitHub Actions, `nanos-lint` automatically outputs **workflow annotations** (`::error` / `::warning`) that appear inline on PR diffs.
106
109
 
@@ -113,22 +116,26 @@ nanos-lint [command] [options] [path]
113
116
 
114
117
  COMMANDS:
115
118
  check [path] Check a workspace or Lua file (default)
116
- init [path] Scaffold a .luarc.json configuration in the workspace (copies definitions to .nanos-lint/)
117
- download-luals [version] Download and cache the LuaLS binary
119
+ init [path] Scaffold a .luarc.json configuration in the workspace (copies definitions to .nanos-lint/; supports --annotations <path>)
120
+ download-luals [version] Download and cache the LuaLS binary (the version can also be passed via --luals-version <ver>)
118
121
  clean-cache, clean Clear the nanos-lint cache directory
119
122
  help, --help, -h Show help message
120
123
  version, --version, -v Show version information
121
124
 
122
125
  OPTIONS:
123
126
  -i, --ignore <pattern> Files or directories to ignore (supports globs, repeatable, comma/newline-separated)
127
+ -l, --log-level <level> Logging level: error, warn, info, debug, silent (default: warn)
128
+ silent suppresses all output, including the final report (only the exit code remains)
129
+ error and warn (the default) suppress progress messages but still print the report
130
+ debug adds diagnostic tracing
124
131
  --checklevel=<level> Minimum diagnostic level: Error, Warning, Information, Hint (default: Warning)
125
132
  --config=<path> Path to custom .luarc.json configuration file
126
- --annotations=<path> Path to custom annotations.lua file
133
+ --annotations=<path> Path to custom annotations.lua file (applies to both check and init)
127
134
  --format=<format> Output format: pretty, json, github (default: pretty)
128
135
  --github Output in GitHub Actions format (shortcut for --format=github)
129
- --luals-version=<ver> Version of LuaLS to use (default: latest)
136
+ --luals-version=<ver> Version of LuaLS to use (default: latest, falling back to 3.19.1 when offline)
130
137
  --no-fail Do not exit with code 1 if diagnostics are found
131
- --quiet Suppress progress output
138
+ --quiet Suppress progress output only (equivalent to --log-level=error; the report is still printed)
132
139
  -f, --force (init command only) Overwrite existing .luarc.json
133
140
  ```
134
141
 
@@ -138,10 +145,15 @@ OPTIONS:
138
145
  | :--- | :--- |
139
146
  | `LUALS_BIN` | Explicit path to a pre-installed `lua-language-server` binary |
140
147
  | `NANOS_ANNOTATIONS_PATH`, `NANOS_ANNOTATIONS` | Explicit path to a custom `annotations.lua` file |
148
+ | `NANOS_LOG_LEVEL` | Default logging level: `error`, `warn`, `info`, `debug`, `silent` (default: `warn`) |
141
149
  | `GITHUB_TOKEN` | GitHub personal access token used for authenticated GitHub API requests (avoids unauthenticated rate limits) |
142
150
  | `NO_COLOR` | Disables ANSI color output when set to any non-empty value |
143
151
  | `FORCE_COLOR` | Forces ANSI color output even in non-TTY environments |
144
152
 
153
+ Only `NANOS_LOG_LEVEL` controls the logging level; a generic `LOG_LEVEL` environment variable is intentionally not read, because CI images commonly set it.
154
+
155
+ `NANOS_LIVE_TESTS` and `NANOS_TEST_CACHE_ROOT` only affect this repository's test suite and are documented under [Test Suite Environment Variables](#test-suite-environment-variables).
156
+
145
157
  ---
146
158
 
147
159
  ## Workspace Configuration (`.luarc.json`)
@@ -177,8 +189,11 @@ Pre-packaged release bundles containing the platform's `lua-language-server` bin
177
189
 
178
190
  - `nanos-lint-<version>-windows-x64.zip`
179
191
  - `nanos-lint-<version>-linux-x64.tar.gz`
192
+ - `nanos-lint-<version>-linux-arm64.tar.gz`
193
+ - `nanos-lint-<version>-macos-arm64.tar.gz` (Apple Silicon)
194
+ - `nanos-lint-<version>-macos-x64.tar.gz` (Intel)
180
195
 
181
- These bundles are fully self-contained and ready for offline CI/CD environments with Node.js installed, eliminating the need to download LuaLS or annotations at runtime. Simply extract the archive and run `./nanos-lint` (Linux) or `nanos-lint.cmd` (Windows).
196
+ These bundles are fully self-contained and ready for offline CI/CD environments with Node.js installed, eliminating the need to download LuaLS or annotations at runtime. Simply extract the archive and run `./nanos-lint` (Linux & macOS) or `nanos-lint.cmd` (Windows).
182
197
 
183
198
  ---
184
199
 
@@ -203,6 +218,23 @@ npm run build
203
218
 
204
219
  # Run Vitest test suite with coverage (unit + live LuaLS integration tests)
205
220
  npm run test:coverage
221
+
222
+ # Offline: skip live LuaLS tests, perform no network access, disable coverage thresholds
223
+ NANOS_LIVE_TESTS=0 npm run test:coverage
224
+ ```
225
+
226
+ ### Test Suite Environment Variables
227
+
228
+ `tests/global-setup.ts` downloads the LuaLS binary and annotations **once per run** into an isolated temporary cache, so the real `~/.cache/nanos-lint` is never touched; the run fails if anything downloads LuaLS a second time.
229
+
230
+ | Variable | Description |
231
+ | :--- | :--- |
232
+ | `NANOS_LIVE_TESTS` | `0` (or `false`/`no`/`off`) skips the live LuaLS/annotations tests, performs no network access, and does not enforce the coverage thresholds. Any other value or unset requires the shared fixtures; if they cannot be resolved the run fails. |
233
+ | `NANOS_TEST_CACHE_ROOT` | Reuses the given directory as the isolated test cache instead of a fresh one, avoiding a re-download on repeat runs. |
234
+
235
+ ```bash
236
+ NANOS_LIVE_TESTS=0 npm run test:coverage # fully offline
237
+ NANOS_TEST_CACHE_ROOT=/tmp/nanos-tests npm run test:coverage # reuse a warm cache
206
238
  ```
207
239
 
208
240
  See [AGENTS.md](AGENTS.md) for development philosophy and quality gate requirements.
package/action.yml CHANGED
@@ -38,6 +38,10 @@ inputs:
38
38
  description: 'Files or directories to ignore (supports glob patterns, multiple entries can be newline or comma separated)'
39
39
  required: false
40
40
  default: ''
41
+ cache:
42
+ description: 'Whether to cache the LuaLS binary and annotations across workflow runs'
43
+ required: false
44
+ default: 'true'
41
45
 
42
46
  runs:
43
47
  using: 'composite'
@@ -47,6 +51,26 @@ runs:
47
51
  with:
48
52
  node-version: '24'
49
53
 
54
+ # The ISO week refreshes the cache entry (a static key would never be saved
55
+ # again); restore-keys fall back to previous weeks. Cheap: one `date` call.
56
+ - name: Compute cache week
57
+ id: cacheweek
58
+ shell: bash
59
+ run: echo "week=$(date -u +%G-W%V)" >> "$GITHUB_OUTPUT"
60
+
61
+ - name: Cache LuaLS binary and annotations
62
+ if: ${{ inputs.cache != 'false' }}
63
+ uses: actions/cache@v6
64
+ with:
65
+ path: |
66
+ ~/.cache/nanos-lint
67
+ ~/AppData/Local/nanos-lint
68
+ ~/Library/Caches/nanos-lint
69
+ key: nanos-lint-${{ runner.os }}-${{ runner.arch }}-${{ inputs.luals-version }}-${{ steps.cacheweek.outputs.week }}
70
+ restore-keys: |
71
+ nanos-lint-${{ runner.os }}-${{ runner.arch }}-${{ inputs.luals-version }}-
72
+ nanos-lint-${{ runner.os }}-${{ runner.arch }}-
73
+
50
74
  - name: Run nanos-lint
51
75
  shell: bash
52
76
  env:
@@ -87,10 +111,12 @@ runs:
87
111
  ARGS+=("--quiet")
88
112
  fi
89
113
 
114
+ # dist/ is gitignored, so `uses: vugi99/nanos-lint@<ref>` consumers always
115
+ # take the npx branch; the first one is for local `uses: ./` checkouts.
90
116
  if [ -f "$ACTION_PATH/dist/cli.js" ]; then
91
117
  node "$ACTION_PATH/dist/cli.js" "${ARGS[@]}"
92
118
  else
93
- npx --yes nanos-lint@^2.1.0 "${ARGS[@]}"
119
+ # Exact version: a range could run a different release than the pinned
120
+ # tag. Bump together with "version" in package.json.
121
+ npx --yes nanos-lint@2.7.0 "${ARGS[@]}"
94
122
  fi
95
-
96
-
@@ -1 +1 @@
1
- {"version":3,"file":"cli-r8LDolDk.d.ts","names":[],"sources":["../node_modules/commander/typings/index.d.ts","../src/cli.ts"],"x_google_ignoreList":[0],"mappings":"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"}
1
+ {"version":3,"file":"cli-r8LDolDk.d.ts","names":[],"sources":["../node_modules/commander/typings/index.d.ts","../src/cli.ts"],"x_google_ignoreList":[0],"mappings":"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"}