ci: adopt CLDMV @v4 workflows + vitest-runner test setup - #2
Conversation
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
There was a problem hiding this comment.
🟡 Not ready to approve
package.json advertises Node support broader than the toolchain’s stated supported range (notably allowing Node 21.x), which can cause install/test failures and should be tightened.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
This review doesn't count toward merge requirements. Sign up for the private preview to control whether Copilot approvals count.
Pull request overview
This PR modernizes the repository’s CI/release automation by adopting CLDMV v4 reusable workflows and replaces the legacy ad-hoc memory test harness with a Vitest-based test suite (including an OOM-safer runner and coverage configuration).
Changes:
- Add a Vitest test suite (characterization + property-based tests) and an OOM-safer Vitest runner script.
- Update
package.jsonscripts/devDependencies (Vitest + coverage + runner) and add a Nodeenginesconstraint. - Add CLDMV v4 GitHub Actions workflows for CI, releases, labeling, dependency review, CodeQL, Scorecard, and repo automation; remove legacy
test/scripts.
File summaries
| File | Description |
|---|---|
| tests/strings.test.mjs | Adds string-branch characterization tests. |
| tests/run-vitest.mjs | Adds a custom Vitest runner wrapper (coverage + workers + patterns). |
| tests/random-properties.test.mjs | Adds randomized invariant/property tests across types/structures. |
| tests/objects.test.mjs | Adds object-branch characterization + invariants. |
| tests/numbers.test.mjs | Adds number-branch characterization + threshold tests. |
| tests/edge-types.test.mjs | Adds tests for null/unhandled types/default params. |
| tests/booleans.test.mjs | Adds boolean-branch characterization tests. |
| tests/arrays.test.mjs | Adds array-branch characterization + monotonicity tests. |
| test/test-mem.js | Removes legacy CLI memory test harness. |
| test/sizeofvar/test-string.js | Removes legacy string fixtures. |
| test/sizeofvar/test-object.js | Removes legacy object fixtures. |
| test/sizeofvar/test-object-string.js | Removes legacy object+string fixtures. |
| test/sizeofvar/test-object-key-length.js | Removes legacy object key-length fixtures. |
| test/sizeofvar/test-object-complex.js | Removes legacy complex object fixtures. |
| test/sizeofvar/test-number.js | Removes legacy number fixtures. |
| test/sizeofvar/test-bool.js | Removes legacy boolean fixtures. |
| test/sizeofvar/test-array.js | Removes legacy array fixtures. |
| package.json | Adds engines/scripts and Vitest devDependencies. |
| .github/workflows/welcome.yml | Adds contributor welcome workflow (reusable v4). |
| .github/workflows/v4-bootstrap.yml | Adds per-repo v4 bootstrap workflow. |
| .github/workflows/update-major-version-tags.yml | Adds rolling major-tag maintenance workflow. |
| .github/workflows/tag-health.yml | Adds scheduled tag-health workflow. |
| .github/workflows/stale.yml | Adds stale issue/PR automation workflow. |
| .github/workflows/scorecard.yml | Adds OpenSSF Scorecard workflow (reusable v4). |
| .github/workflows/release-notify.yml | Adds release notification workflow (reusable v4). |
| .github/workflows/publish.yml | Adds publish/release workflow (reusable v4). |
| .github/workflows/pr-title-normalizer.yml | Adds PR title normalization workflow. |
| .github/workflows/next-reset.yml | Adds v4 integration-branch reset workflow. |
| .github/workflows/next-release.yml | Adds v4 “next → master” release PR workflow. |
| .github/workflows/master-commit-audit.yml | Adds default-branch commit subject audit workflow. |
| .github/workflows/labeler.yml | Adds path-based PR auto-labeler workflow. |
| .github/workflows/hotfixes-release.yml | Adds v4 “hotfixes → master” release PR workflow. |
| .github/workflows/hotfix-redirector.yml | Adds hotfix/security PR retargeting workflow. |
| .github/workflows/feature-pr.yml | Adds feature-branch auto-PR workflow (to next/hotfixes). |
| .github/workflows/dependency-review.yml | Adds dependency review workflow (reusable v4). |
| .github/workflows/dependabot-auto-merge.yml | Adds Dependabot auto-merge workflow (patch/minor). |
| .github/workflows/codeql.yml | Adds CodeQL advanced-config workflow (reusable v4). |
| .github/workflows/cla.yml | Adds CLA enforcement workflow (reusable v4). |
| .github/workflows/ci.yml | Adds CI workflow (reusable v4 + required-check mirror). |
| .github/workflows/branch-retention.yml | Adds post-merge branch retention workflow. |
| .github/dependabot.yml | Adds Dependabot config aligned to v4 branch flow. |
| .configs/vitest.config.mjs | Adds Vitest config (node env + coverage settings). |
Review details
- Files reviewed: 42/43 changed files
- Comments generated: 2
- Review effort level: Lite
We're testing this review assessment. Please use 👍 or 👎 to tell us if it's correct.
- Add the CLDMV @v4 staging-branch workflow set (22 workflows) + .github/dependabot.yml - Wire vitest + @cldmv/vitest-runner (OOM-safe per-file runner): .configs/vitest.config.mjs, tests/run-vitest.mjs harness, and test/coverage/ci:coverage npm scripts - Add a characterization test suite (91 tests) covering sizeofvar.js at 100% coverage - Add publishConfig.access=public - Remove the legacy non-vitest test/ fixtures and unused yargs devDependency Note: no engines.node floor — this package has no runtime dependencies and runs on old Node; the >=20.19 requirement is only the dev/test toolchain (vitest-runner), which is already enforced by the devDependencies' own engines.
03883e0 to
3095b9d
Compare
🚀 What's Changed
💥 Breaking Changes
No breaking changes
✨ Features
No new features
🐛 Bug Fixes
No bug fixes
📦 Dependencies
No dependency updates
🔧 Other Changes
👥 Contributors