disk-space-saviour 0.0.0-stage → 0.11.30
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/CHANGELOG.md +506 -0
- package/LICENSE +24 -0
- package/README.md +536 -2
- package/bin/dss.js +5 -0
- package/package.json +96 -4
- package/src/audit.js +84 -0
- package/src/clean.js +716 -0
- package/src/cli.js +448 -0
- package/src/docker/cli.js +289 -0
- package/src/docker/containers.js +327 -0
- package/src/docker/images.js +122 -0
- package/src/docker/scan.js +495 -0
- package/src/emergency.js +169 -0
- package/src/env/local.js +715 -0
- package/src/env/resolve.js +36 -0
- package/src/env/shell.js +433 -0
- package/src/exec.js +185 -0
- package/src/git.js +338 -0
- package/src/health.js +174 -0
- package/src/index.d.ts +254 -0
- package/src/index.js +52 -0
- package/src/items.js +157 -0
- package/src/liveness.js +190 -0
- package/src/options.js +112 -0
- package/src/paths.js +182 -0
- package/src/report.js +373 -0
- package/src/rules/ecosystems.js +916 -0
- package/src/rules/other.js +375 -0
- package/src/rules/versions.js +256 -0
- package/src/scan.js +384 -0
- package/src/scanners/agents.js +166 -0
- package/src/scanners/common.js +38 -0
- package/src/scanners/global.js +217 -0
- package/src/scanners/projects.js +335 -0
- package/src/scanners/rust.js +404 -0
- package/src/scanners/system.js +171 -0
- package/src/scanners/versions.js +230 -0
- package/src/units.js +130 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## 0.11.30
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 8b129f9: Recognise npm's E409 "Cannot publish over previously staged version" wording as an already-published conflict in `publish-retry`, so a release that reached the registry verifies instead of failing the job.
|
|
8
|
+
|
|
9
|
+
## 0.11.29
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 0cd60b8: Bound the use-m CDN fetch with a per-attempt deadline and a retry, and report a load failure from the script that needs it.
|
|
14
|
+
|
|
15
|
+
`loadUse()` fetched `https://unpkg.com/use-m/use.js` with a bare `fetch()`, so a CDN blip surfaced as `TypeError: fetch failed` — a message naming neither the CDN nor the URL — and a connection that was accepted but never answered was bounded only by undici's 300 s `headersTimeout`. Each attempt now carries a 15 s deadline enforced by an `AbortController`, a failed attempt is retried up to three times with exponential backoff (51 s worst case), and the final error names the URL, the attempt count and the underlying reason, keeping the original failure as its `cause`.
|
|
16
|
+
|
|
17
|
+
The seven release scripts that loaded these modules at module scope now go through `scripts/bootstrap-dependencies.mjs`, which prints a GitHub `::error::` annotation and writes the fallback outputs the workflow reads — `published=false` for `publish-to-npm.mjs`, `version_committed=false` for `version-and-commit.mjs` — so a CDN outage no longer leaves a job with an empty `GITHUB_OUTPUT` and a loader stack.
|
|
18
|
+
|
|
19
|
+
## 0.11.28
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- Configure the release and merge-simulation commit author as `41898282+github-actions[bot]@users.noreply.github.com` in `scripts/version-and-commit.mjs` and `scripts/simulate-fresh-merge.sh`, so those commits are attributed to the `github-actions[bot]` account and no longer require an extra approval under rulesets with `require_extra_approval_for_unattributed_changes`.
|
|
24
|
+
|
|
25
|
+
Add a scheduled fail-closed high-severity audit for every committed npm lock.
|
|
26
|
+
|
|
27
|
+
Ignore successful redirects when checking Lychee reports for broken links.
|
|
28
|
+
|
|
29
|
+
Lint the workflows themselves: a new `workflows` check runs `actionlint` (from the Docker image that bundles shellcheck) and `zizmor`, and the findings they reported are fixed — the manifest digest list is built as an array, the packaging retry logs its attempt number, the npm wait passes the release version through the environment, and third-party actions are pinned to commit hashes.
|
|
30
|
+
|
|
31
|
+
Fail the web archive check on lychee errors that have no http(s) URL
|
|
32
|
+
|
|
33
|
+
`scripts/check-web-archive.mjs` only extracted `http(s)` links from the lychee
|
|
34
|
+
report, so errors such as a missing local file or an unresolvable root-relative
|
|
35
|
+
link were silently dropped. When those were the only errors the script printed
|
|
36
|
+
"No broken URLs found" and set `all_archived=true`, masking a failing lychee
|
|
37
|
+
run. The parser now matches the status marker instead of the URL and splits the
|
|
38
|
+
results into archivable URLs and links the Wayback Machine cannot answer; the
|
|
39
|
+
latter are annotated as errors and force `all_archived=false` with exit code 1.
|
|
40
|
+
Adds regression tests over a captured lychee report fixture.
|
|
41
|
+
|
|
42
|
+
Compare change detection paths package-relative so the ignore list (`examples/`, `.changeset/`, `experiments/`, `dev/log/`, `docs/case-studies/`) also matches in the multi-language layout, and stop reporting other languages' files as JavaScript code changes.
|
|
43
|
+
|
|
44
|
+
Publish Docker images for both amd64 and arm64 using native runners and a multi-architecture manifest.
|
|
45
|
+
|
|
46
|
+
Suppress the reviewed DEP0005 warning from the Docker manifest artifact download step.
|
|
47
|
+
|
|
48
|
+
Land the release version bump through a pull request when a repository ruleset declines the direct push to `main`, and stop reporting a GH013 rule violation as a lost push race.
|
|
49
|
+
|
|
50
|
+
Give long CI steps their own execution budget so an overrun reports `failure` instead of `cancelled`.
|
|
51
|
+
|
|
52
|
+
Fail broken-link checks until archived replacements are applied to dead links.
|
|
53
|
+
|
|
54
|
+
Load `command-stream` and `lino-arguments` through a shared use-m interop shim so the release scripts work on Node 24.
|
|
55
|
+
|
|
56
|
+
Node 22.12+ adds a synthetic `module.exports` named export to CommonJS namespaces whose names cannot be inferred, which stops use-m from unwrapping the callable default. Destructuring `$` off the result therefore yields `undefined` and every release script fails with `TypeError: $ is not a function` on the Node 24 runners the workflows request. `scripts/use-module.mjs` normalises the namespace, reports the HTTP status when `use.js` cannot be fetched, names the observed keys when no callable export is found, and traces the resolved shape under `CI_SCRIPTS_DEBUG=1`.
|
|
57
|
+
|
|
58
|
+
Report why `scripts/wait-for-npm.mjs` could not confirm a release. The check
|
|
59
|
+
queries the npm registry over HTTP and returns `{ available, status, httpStatus,
|
|
60
|
+
url, error }`, so an HTTP 404 ("not published") is distinguished from an
|
|
61
|
+
unanswered probe (5xx, rate limit, proxy, DNS). Every attempt logs its outcome,
|
|
62
|
+
and an unanswered probe no longer claims the version "did not become available
|
|
63
|
+
on npm" — it says the publish status is unknown and points at the registry URL
|
|
64
|
+
to check. The step also exposes an `npm_check_status` output.
|
|
65
|
+
|
|
66
|
+
## 0.11.27
|
|
67
|
+
|
|
68
|
+
### Patch Changes
|
|
69
|
+
|
|
70
|
+
- 53519f1: Report release pipeline timeout cancellations as visible failures on the default branch.
|
|
71
|
+
|
|
72
|
+
## 0.11.26
|
|
73
|
+
|
|
74
|
+
### Patch Changes
|
|
75
|
+
|
|
76
|
+
- 328d858: Add CodeQL analysis for JavaScript and GitHub Actions plus high-severity dependency review for pull requests.
|
|
77
|
+
|
|
78
|
+
## 0.11.25
|
|
79
|
+
|
|
80
|
+
### Patch Changes
|
|
81
|
+
|
|
82
|
+
- 8af8547: Require successful lint and test quality gates before manual releases can publish.
|
|
83
|
+
|
|
84
|
+
## 0.11.24
|
|
85
|
+
|
|
86
|
+
### Patch Changes
|
|
87
|
+
|
|
88
|
+
- dd8a969: Reject unsupported keys in generated workflow concurrency blocks.
|
|
89
|
+
|
|
90
|
+
## 0.11.23
|
|
91
|
+
|
|
92
|
+
### Patch Changes
|
|
93
|
+
|
|
94
|
+
- e73716a: Harden workflow inputs, checkout configuration, and deployment concurrency.
|
|
95
|
+
|
|
96
|
+
## 0.11.22
|
|
97
|
+
|
|
98
|
+
### Patch Changes
|
|
99
|
+
|
|
100
|
+
- d0b42fa: Keep excluded-directory changes from activating change-gated CI jobs on pull
|
|
101
|
+
requests and direct pushes.
|
|
102
|
+
|
|
103
|
+
## 0.11.21
|
|
104
|
+
|
|
105
|
+
### Patch Changes
|
|
106
|
+
|
|
107
|
+
- 5bf9619: Quote the fresh merge base ref to prevent shell word splitting.
|
|
108
|
+
|
|
109
|
+
## 0.11.20
|
|
110
|
+
|
|
111
|
+
### Patch Changes
|
|
112
|
+
|
|
113
|
+
- dfd681f: Report ESLint warnings only on lines changed relative to the base branch, so unchanged findings such as `local/no-changelog-comments` stop repeating on every run. Errors are still reported for all files.
|
|
114
|
+
|
|
115
|
+
## 0.11.19
|
|
116
|
+
|
|
117
|
+
### Patch Changes
|
|
118
|
+
|
|
119
|
+
- 8608672: Split publish and verification failure domains in `publish-to-npm.mjs`: verification now polls the npm registry with exponential backoff, and a verification miss no longer re-runs `changeset publish`.
|
|
120
|
+
|
|
121
|
+
## 0.11.18
|
|
122
|
+
|
|
123
|
+
### Patch Changes
|
|
124
|
+
|
|
125
|
+
- 6b3289a: Build the Dockerfile on pull requests via a new `docker-build` job, so a broken image fails the pull request instead of only surfacing after the package is published. The build uses `push: false` with `load: true` (works for fork pull requests, which have no registry credentials) and the GHA layer cache. Repositories without a Dockerfile skip the job automatically.
|
|
126
|
+
|
|
127
|
+
## 0.11.17
|
|
128
|
+
|
|
129
|
+
### Patch Changes
|
|
130
|
+
|
|
131
|
+
- ebaa52a: Add a least-privilege top-level `permissions: contents: read` block to `release.yml` and `links.yml` so jobs no longer inherit the repository default `GITHUB_TOKEN` scope, with write access escalated only on the publishing jobs.
|
|
132
|
+
|
|
133
|
+
## 0.11.16
|
|
134
|
+
|
|
135
|
+
### Patch Changes
|
|
136
|
+
|
|
137
|
+
- 1349837: Suppress the Git default-branch hint during release workflow checkout.
|
|
138
|
+
|
|
139
|
+
## 0.11.15
|
|
140
|
+
|
|
141
|
+
### Patch Changes
|
|
142
|
+
|
|
143
|
+
- f04c820: Quiet release logs by checking npm package versions through the registry HTTP API and removing deprecated setup-node `always-auth` config before publish-job npm commands run.
|
|
144
|
+
|
|
145
|
+
## 0.11.14
|
|
146
|
+
|
|
147
|
+
### Patch Changes
|
|
148
|
+
|
|
149
|
+
- 63b31c3: Harden generated preview-image pushes against main branch non-fast-forward races.
|
|
150
|
+
|
|
151
|
+
## 0.11.13
|
|
152
|
+
|
|
153
|
+
### Patch Changes
|
|
154
|
+
|
|
155
|
+
- Add a warning-level ESLint rule for changelog-style comments and strings.
|
|
156
|
+
|
|
157
|
+
Detect code changes from real merge commits pushed to main with the first-parent
|
|
158
|
+
merge diff while preserving pull request synthetic merge behavior.
|
|
159
|
+
|
|
160
|
+
## 0.11.12
|
|
161
|
+
|
|
162
|
+
### Patch Changes
|
|
163
|
+
|
|
164
|
+
- 89fb151: Ignore stray Markdown files when checking for pending changesets.
|
|
165
|
+
|
|
166
|
+
## 0.11.11
|
|
167
|
+
|
|
168
|
+
### Patch Changes
|
|
169
|
+
|
|
170
|
+
- d2e3932: Require exact changelog version headers when extracting GitHub release notes.
|
|
171
|
+
- e7356e9: Fail release-time changeset merging when any pending changeset is malformed.
|
|
172
|
+
|
|
173
|
+
## 0.11.10
|
|
174
|
+
|
|
175
|
+
### Patch Changes
|
|
176
|
+
|
|
177
|
+
- 9915756: Auto-detect single-language versus `js/` monorepo layouts when naming GitHub
|
|
178
|
+
releases, namespace multi-language JavaScript tags as `js_v<version>`, and
|
|
179
|
+
normalize prefixed tags before linking npm version badges.
|
|
180
|
+
|
|
181
|
+
## 0.11.9
|
|
182
|
+
|
|
183
|
+
### Patch Changes
|
|
184
|
+
|
|
185
|
+
- 49a8205: Add a post-publish smoke test that installs the just-published npm package in a clean project and verifies its entry points.
|
|
186
|
+
|
|
187
|
+
## 0.11.8
|
|
188
|
+
|
|
189
|
+
### Patch Changes
|
|
190
|
+
|
|
191
|
+
- 391530e: Skip the slow CI test matrix for pull requests that only touch non-code files.
|
|
192
|
+
|
|
193
|
+
## 0.11.7
|
|
194
|
+
|
|
195
|
+
### Patch Changes
|
|
196
|
+
|
|
197
|
+
- 674f9ce: Fix npm release path for brand-new packages (issue #77):
|
|
198
|
+
- `publish-to-npm.mjs` now classifies authentication / registry-configuration
|
|
199
|
+
failures (404/401/403, `access token expired`, `ENEEDAUTH`, etc.) as
|
|
200
|
+
non-retryable and fails fast with actionable guidance instead of retrying
|
|
201
|
+
`MAX_RETRIES` times and hiding the real cause behind a generic error.
|
|
202
|
+
- The `release` and `instant-release` publish steps now pass an optional
|
|
203
|
+
`NODE_AUTH_TOKEN` sourced from `secrets.NPM_TOKEN`, providing a first-publish
|
|
204
|
+
bootstrap path. OIDC trusted publishing remains the steady-state mechanism;
|
|
205
|
+
the token is only needed for the very first release of a new package.
|
|
206
|
+
|
|
207
|
+
## 0.11.6
|
|
208
|
+
|
|
209
|
+
### Patch Changes
|
|
210
|
+
|
|
211
|
+
- 8ca3e32: Harden the `publish-dockerhub` buildx boot against transient Docker Hub registry outages. A new reusable `setup-buildx-resilient` composite action pre-pulls the pinned `moby/buildkit` image with retries and a `mirror.gcr.io` pull-through fallback, then boots buildx with the driver image pinned to the locally cached copy so a `registry-1.docker.io` blip no longer fails the publish job (issue #75).
|
|
212
|
+
|
|
213
|
+
## 0.11.5
|
|
214
|
+
|
|
215
|
+
### Patch Changes
|
|
216
|
+
|
|
217
|
+
- 312a2fe: Add a `concurrency` block to the Broken Link Checker workflow (`links.yml`) so redundant runs are cancelled on new commits, consistent with the other workflows in the template.
|
|
218
|
+
|
|
219
|
+
## 0.11.4
|
|
220
|
+
|
|
221
|
+
### Patch Changes
|
|
222
|
+
|
|
223
|
+
- 35696cc: Cap generated GitHub release notes before creating releases so oversized changelog
|
|
224
|
+
entries link to the full tagged changelog instead of failing GitHub API
|
|
225
|
+
validation.
|
|
226
|
+
|
|
227
|
+
## 0.11.3
|
|
228
|
+
|
|
229
|
+
### Patch Changes
|
|
230
|
+
|
|
231
|
+
- a8e4030: Run the preview screenshot regeneration workflow inside the official Playwright container to avoid stalled Chromium downloads in CI, and keep the desktop packaging job on Node 20 while verifying package output before artifact upload.
|
|
232
|
+
|
|
233
|
+
## 0.11.2
|
|
234
|
+
|
|
235
|
+
### Patch Changes
|
|
236
|
+
|
|
237
|
+
- aeec4cb: Enforce the 1500-line architecture limit across all JavaScript (`.js`, `.mjs`, `.cjs`) and Markdown (`.md`) files in the `check-file-line-limits` CI gate, lower the documentation limit from 2500 to 1500, and exempt case-study generated-data files explicitly.
|
|
238
|
+
|
|
239
|
+
## 0.11.1
|
|
240
|
+
|
|
241
|
+
### Patch Changes
|
|
242
|
+
|
|
243
|
+
- 8cd0d70: Correct CI workflow concurrency and preview failure artifact handling in the template.
|
|
244
|
+
|
|
245
|
+
## 0.11.0
|
|
246
|
+
|
|
247
|
+
### Minor Changes
|
|
248
|
+
|
|
249
|
+
- e7025ed: Add a release-time `preview-regen` job to `example-app.yml` and a
|
|
250
|
+
`scripts/update-preview-images.mjs` driver that boot the universal example app
|
|
251
|
+
in a headless Chromium via `browser-commander` + Playwright, capture a
|
|
252
|
+
locale × theme matrix of screenshots into `docs/screenshots/example-app/`, and
|
|
253
|
+
commit any drift back to `main` with `[skip ci]`. Adds the matching
|
|
254
|
+
`npm run example:web:preview-images` script.
|
|
255
|
+
|
|
256
|
+
## 0.10.2
|
|
257
|
+
|
|
258
|
+
### Patch Changes
|
|
259
|
+
|
|
260
|
+
- f044604: Document the one-time **Settings → Pages → Source = GitHub Actions** prerequisite for the example app deployment, and note it in a comment above the `pages-deploy` job.
|
|
261
|
+
|
|
262
|
+
## 0.10.1
|
|
263
|
+
|
|
264
|
+
### Patch Changes
|
|
265
|
+
|
|
266
|
+
- ede9f84: Publish the template as the real link-foundation example package and add the globally installable CLI entry point.
|
|
267
|
+
|
|
268
|
+
## 0.10.0
|
|
269
|
+
|
|
270
|
+
### Minor Changes
|
|
271
|
+
|
|
272
|
+
- 5a81a7f: Add a universal React example app with GitHub Pages, Electron desktop, and Capacitor mobile build paths.
|
|
273
|
+
|
|
274
|
+
## 0.9.0
|
|
275
|
+
|
|
276
|
+
### Minor Changes
|
|
277
|
+
|
|
278
|
+
- f23283c: Add an optional Docker Hub publishing path that waits for the exact npm
|
|
279
|
+
package version before tagging Docker images.
|
|
280
|
+
|
|
281
|
+
## 0.8.6
|
|
282
|
+
|
|
283
|
+
### Patch Changes
|
|
284
|
+
|
|
285
|
+
- acccf75: Format GitHub release names as human-readable `[Language] x.y.z` titles while keeping prefixed tag names unchanged.
|
|
286
|
+
|
|
287
|
+
## 0.8.5
|
|
288
|
+
|
|
289
|
+
### Patch Changes
|
|
290
|
+
|
|
291
|
+
- Fail GitHub release creation on unexpected gh api errors and clearly skip releases that already exist.
|
|
292
|
+
|
|
293
|
+
Enforce npm and Node.js minimum versions for trusted publishing setup and resolve a supported npm 11 tarball for fallback installs.
|
|
294
|
+
|
|
295
|
+
## 0.8.4
|
|
296
|
+
|
|
297
|
+
### Patch Changes
|
|
298
|
+
|
|
299
|
+
- 031f7cd: Add explicit CI job timeouts and per-test runner timeout limits.
|
|
300
|
+
|
|
301
|
+
## 0.8.3
|
|
302
|
+
|
|
303
|
+
### Patch Changes
|
|
304
|
+
|
|
305
|
+
- bdaa4b7: Derive release script package names from package.json instead of template placeholders.
|
|
306
|
+
|
|
307
|
+
## 0.8.2
|
|
308
|
+
|
|
309
|
+
### Patch Changes
|
|
310
|
+
|
|
311
|
+
- d179bb7: Add warning annotations for files approaching the CI file line limit.
|
|
312
|
+
|
|
313
|
+
## 0.8.1
|
|
314
|
+
|
|
315
|
+
### Patch Changes
|
|
316
|
+
|
|
317
|
+
- f0c69af: Normalize language-prefixed release tags before building npm shields.io badge URLs.
|
|
318
|
+
|
|
319
|
+
## 0.8.0
|
|
320
|
+
|
|
321
|
+
### Minor Changes
|
|
322
|
+
|
|
323
|
+
- 3e45a9c: Add `--tag-prefix` option to release scripts for multi-language repos
|
|
324
|
+
|
|
325
|
+
The `create-github-release.mjs` and `format-github-release.mjs` scripts now accept a `--tag-prefix` CLI parameter (defaulting to `v`) that allows users to customize the git tag prefix. This enables use in multi-language repositories where different language packages need distinct tag prefixes (e.g., `js-v1.0.0` vs `rust-v1.0.0`).
|
|
326
|
+
|
|
327
|
+
## 0.7.3
|
|
328
|
+
|
|
329
|
+
### Patch Changes
|
|
330
|
+
|
|
331
|
+
- ae2cc9a: Add self-healing release mechanism that checks npm registry for unpublished versions
|
|
332
|
+
|
|
333
|
+
## 0.7.2
|
|
334
|
+
|
|
335
|
+
### Patch Changes
|
|
336
|
+
|
|
337
|
+
- 9126e16: fix: npm upgrade fallbacks and Node.js 24.x upgrade for CI/CD
|
|
338
|
+
- Upgrade Node.js from 20.x to 24.x in all workflow files (avoids broken npm in Node.js 22.22.2)
|
|
339
|
+
- Add 4-strategy fallback chain to setup-npm.mjs (standard, curl tarball, npx, corepack)
|
|
340
|
+
- Update GitHub Actions to latest versions (checkout v6, setup-node v6, create-pull-request v8)
|
|
341
|
+
- Add case study documentation for issue #33
|
|
342
|
+
|
|
343
|
+
## 0.7.1
|
|
344
|
+
|
|
345
|
+
### Patch Changes
|
|
346
|
+
|
|
347
|
+
- 6916409: Use per-commit diff instead of full-PR diff for CI change detection
|
|
348
|
+
|
|
349
|
+
## 0.7.0
|
|
350
|
+
|
|
351
|
+
### Minor Changes
|
|
352
|
+
|
|
353
|
+
- 983789a: Add CI/CD best practices from hive-mind: fast-fail job ordering, test compilation, file line limits check, secrets detection, documentation validation, extracted fresh merge simulation script, and proper cancellation propagation
|
|
354
|
+
|
|
355
|
+
## 0.6.0
|
|
356
|
+
|
|
357
|
+
### Minor Changes
|
|
358
|
+
|
|
359
|
+
- 8961862: Add automated broken link checker with Web Archive fallback suggestions
|
|
360
|
+
- Add `.github/workflows/links.yml` with lychee-action for link checking in Markdown and HTML files
|
|
361
|
+
- Add `scripts/check-web-archive.mjs` to check broken links against the Wayback Machine API
|
|
362
|
+
- Add `.lycheeignore` for excluding known false-positive URLs (localhost, example.com, etc.)
|
|
363
|
+
- Update `README.md` to document the broken link checker feature
|
|
364
|
+
- Scheduled weekly check (Mondays at 09:00 UTC) to catch links that break over time
|
|
365
|
+
- On PRs, broken links with no Web Archive fallback will fail the check
|
|
366
|
+
- For broken links that have archived versions, provides actionable replacement suggestions
|
|
367
|
+
- On scheduled runs, automatically creates a GitHub Issue with the full broken links report
|
|
368
|
+
|
|
369
|
+
Fixes #27
|
|
370
|
+
|
|
371
|
+
## 0.5.1
|
|
372
|
+
|
|
373
|
+
### Patch Changes
|
|
374
|
+
|
|
375
|
+
- e398190: Add comprehensive best practices comparison and improve CI concurrency
|
|
376
|
+
- Add DETAILED-COMPARISON.md with side-by-side analysis of ALL scripts, workflows, and configurations
|
|
377
|
+
- Implement cancel-in-progress for main branch concurrency (hive-mind Issue #1274 fix)
|
|
378
|
+
- Fix max-lines documentation (1500, not 1000)
|
|
379
|
+
- Reference detailed comparison from BEST-PRACTICES.md
|
|
380
|
+
|
|
381
|
+
## 0.5.0
|
|
382
|
+
|
|
383
|
+
### Minor Changes
|
|
384
|
+
|
|
385
|
+
- 66211b5: Add fresh merge simulation to CI/CD to prevent stale merge preview issues
|
|
386
|
+
- Add "Simulate fresh merge with base branch" step to lint and test jobs
|
|
387
|
+
- This ensures PR CI validates the actual merge result, not a stale snapshot
|
|
388
|
+
- Prevents CI failures on main branch after merging PRs that sat open for days
|
|
389
|
+
- Add case study documentation for issue #23 with root cause analysis
|
|
390
|
+
- Add ignore patterns for case study data files in ESLint and Prettier
|
|
391
|
+
|
|
392
|
+
See docs/case-studies/issue-23 for detailed analysis of the stale merge preview problem.
|
|
393
|
+
|
|
394
|
+
Fixes #23
|
|
395
|
+
|
|
396
|
+
## 0.4.0
|
|
397
|
+
|
|
398
|
+
### Minor Changes
|
|
399
|
+
|
|
400
|
+
- e6c2691: Add multi-language repository support for CI/CD scripts
|
|
401
|
+
- Add `scripts/js-paths.mjs` utility for automatic JavaScript package root detection
|
|
402
|
+
- Support both `./package.json` (single-language) and `./js/package.json` (multi-language repos)
|
|
403
|
+
- Add `--legacy-peer-deps` flag to npm install commands in release scripts to fix ERESOLVE errors
|
|
404
|
+
- Save and restore working directory after `cd` commands to fix `command-stream` library's `process.chdir()` behavior
|
|
405
|
+
- Add case study documentation with root cause analysis in `docs/case-studies/issue-21/`
|
|
406
|
+
|
|
407
|
+
## 0.3.0
|
|
408
|
+
|
|
409
|
+
### Minor Changes
|
|
410
|
+
|
|
411
|
+
- 80d9c84: Add CI check to prevent manual version modification in package.json
|
|
412
|
+
- Added `check-version.mjs` script that detects manual version changes in PRs
|
|
413
|
+
- Added `check-changesets.mjs` script to check for pending changesets (converted from inline shell)
|
|
414
|
+
- Added `version-check` job to release.yml workflow
|
|
415
|
+
- Automated release PRs (changeset-release/_ and changeset-manual-release-_) are automatically skipped
|
|
416
|
+
|
|
417
|
+
## 0.2.2
|
|
418
|
+
|
|
419
|
+
### Patch Changes
|
|
420
|
+
|
|
421
|
+
- 9a12139: Fix CI/CD check differences between pull request and push events
|
|
422
|
+
|
|
423
|
+
Changes:
|
|
424
|
+
- Add `detect-changes` job with cross-platform `detect-code-changes.mjs` script
|
|
425
|
+
- Make lint job independent of changeset-check (runs based on file changes only)
|
|
426
|
+
- Allow docs-only PRs without changeset requirement
|
|
427
|
+
- Handle changeset-check 'skipped' state in dependent jobs
|
|
428
|
+
- Exclude `.changeset/`, `docs/`, `experiments/`, `examples/` folders and markdown files from code changes detection
|
|
429
|
+
|
|
430
|
+
## 0.2.1
|
|
431
|
+
|
|
432
|
+
### Patch Changes
|
|
433
|
+
|
|
434
|
+
- 55aef41: Make Bun the primary runtime choice throughout the template
|
|
435
|
+
- Update all shebangs from `#!/usr/bin/env node` to `#!/usr/bin/env bun` in scripts, experiments, and case studies
|
|
436
|
+
- Update README.md to prioritize Bun in all sections (features, development, runtime support, package managers, scripts reference)
|
|
437
|
+
- Update examples to list Bun first
|
|
438
|
+
- Bun now described as "Primary runtime with highest performance" and "Primary choice" for package management
|
|
439
|
+
- Maintains full compatibility with Node.js and Deno
|
|
440
|
+
|
|
441
|
+
## 0.2.0
|
|
442
|
+
|
|
443
|
+
### Minor Changes
|
|
444
|
+
|
|
445
|
+
- d3f7fcd: Improve changeset CI/CD robustness for concurrent PRs
|
|
446
|
+
- Update validate-changeset.mjs to only check changesets ADDED by the current PR (not pre-existing ones)
|
|
447
|
+
- Add merge-changesets.mjs script to combine multiple pending changesets during release
|
|
448
|
+
- Merged changesets use highest version bump type (major > minor > patch) and combine descriptions chronologically
|
|
449
|
+
- Update release workflow to pass SHA environment variables and add merge step
|
|
450
|
+
- Add comprehensive case study documentation for the CI/CD improvement
|
|
451
|
+
- This prevents PR failures when multiple PRs merge before a release cycle completes
|
|
452
|
+
|
|
453
|
+
## 0.1.4
|
|
454
|
+
|
|
455
|
+
### Patch Changes
|
|
456
|
+
|
|
457
|
+
- e9703b9: Add ESLint complexity rules with reasonable thresholds
|
|
458
|
+
|
|
459
|
+
## 0.1.3
|
|
460
|
+
|
|
461
|
+
### Patch Changes
|
|
462
|
+
|
|
463
|
+
- 0198aaa: Add case study documentation comparing best practices from effect-template
|
|
464
|
+
|
|
465
|
+
This changeset adds comprehensive documentation analyzing best practices from
|
|
466
|
+
ProverCoderAI/effect-template repository, identifying gaps in our current setup,
|
|
467
|
+
and providing prioritized recommendations for improvements.
|
|
468
|
+
|
|
469
|
+
Key findings include missing best practices like code duplication detection (jscpd),
|
|
470
|
+
ESLint complexity rules, VS Code settings, and test coverage thresholds.
|
|
471
|
+
|
|
472
|
+
## 0.1.2
|
|
473
|
+
|
|
474
|
+
### Patch Changes
|
|
475
|
+
|
|
476
|
+
- 2ea9b78: Enforce strict no-unused-vars ESLint rule without exceptions. All unused variables, arguments, and caught errors must now be removed or used. The `_` prefix no longer suppresses unused variable warnings.
|
|
477
|
+
|
|
478
|
+
## 0.1.1
|
|
479
|
+
|
|
480
|
+
### Patch Changes
|
|
481
|
+
|
|
482
|
+
- 042e877: Fix GitHub release formatting to support Major/Minor/Patch changes
|
|
483
|
+
|
|
484
|
+
The release formatting script now correctly handles all changeset types (Major, Minor, Patch) instead of only Patch changes. This ensures that:
|
|
485
|
+
- Section headers are removed from release notes
|
|
486
|
+
- PR detection works for all release types
|
|
487
|
+
- NPM badges are added correctly
|
|
488
|
+
|
|
489
|
+
## 0.1.0
|
|
490
|
+
|
|
491
|
+
### Minor Changes
|
|
492
|
+
|
|
493
|
+
- 65d76dc: Initial template setup with complete AI-driven development pipeline
|
|
494
|
+
|
|
495
|
+
Features:
|
|
496
|
+
- Multi-runtime support for Node.js, Bun, and Deno
|
|
497
|
+
- Universal testing with test-anywhere framework
|
|
498
|
+
- Automated release workflow with changesets
|
|
499
|
+
- GitHub Actions CI/CD pipeline with 9 test combinations
|
|
500
|
+
- Code quality tools: ESLint + Prettier with Husky pre-commit hooks
|
|
501
|
+
- Package manager agnostic design
|
|
502
|
+
|
|
503
|
+
All notable changes to this project will be documented in this file.
|
|
504
|
+
|
|
505
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
506
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
package/LICENSE
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
This is free and unencumbered software released into the public domain.
|
|
2
|
+
|
|
3
|
+
Anyone is free to copy, modify, publish, use, compile, sell, or
|
|
4
|
+
distribute this software, either in source code form or as a compiled
|
|
5
|
+
binary, for any purpose, commercial or non-commercial, and by any
|
|
6
|
+
means.
|
|
7
|
+
|
|
8
|
+
In jurisdictions that recognize copyright laws, the author or authors
|
|
9
|
+
of this software dedicate any and all copyright interest in the
|
|
10
|
+
software to the public domain. We make this dedication for the benefit
|
|
11
|
+
of the public at large and to the detriment of our heirs and
|
|
12
|
+
successors. We intend this dedication to be an overt act of
|
|
13
|
+
relinquishment in perpetuity of all present and future rights to this
|
|
14
|
+
software under copyright law.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
19
|
+
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
|
|
20
|
+
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
|
21
|
+
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
|
22
|
+
OTHER DEALINGS IN THE SOFTWARE.
|
|
23
|
+
|
|
24
|
+
For more information, please refer to <https://unlicense.org>
|