Remove the depcheck-based dependency checker in favor of Knip - #1443
Remove the depcheck-based dependency checker in favor of Knip#1443filipsobol wants to merge 14 commits into
Conversation
SummaryThe migration addresses the linked issue and recognizes literal dynamic imports, but it does not preserve several existing validation guarantees. Package-local development dependencies, missing relative CSS imports, and self-imports can now pass validation. The version checker also cannot launch on Windows. Changes
NotesLocal baseline checks passed: dependency validation, version validation, typecheck, targeted lint, and script tests. CircleCI validation and release preparation were still pending at review time. |
…on tests, so the checks are portable across platforms.
… the layout of the other repositories.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Want higher recall? High effort reviews run extra passes and find more bugs. A team admin can switch effort levels in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 4dd9d5b. Configure here.
| "globals": "^16.5.0", | ||
| "husky": "^9.1.7", | ||
| "js-yaml": "^4.2.0", | ||
| "knip": "https://pkg.pr.new/knip@1912", |
There was a problem hiding this comment.
Ephemeral Knip preview dependency
High Severity
knip is pinned to a transient pkg.pr.new preview tarball (knip@1912) instead of a published npm release. Preview builds can disappear or change after the upstream PR closes, which would break check-dependencies and CI installs for anyone pulling this commit.
Reviewed by Cursor Bugbot for commit 4dd9d5b. Configure here.
| "globals": "^16.5.0", | ||
| "husky": "^9.1.7", | ||
| "js-yaml": "^4.2.0", | ||
| "knip": "https://pkg.pr.new/knip@1912", |
There was a problem hiding this comment.


🚀 Summary
Removed the
@ckeditor/ckeditor5-dev-dependency-checkerpackage. It was built on top of the deprecated and archiveddepchecklibrary, whose ownREADMErecommendsknipas the modern replacement. This repository now uses external tools directly: Knip (check-dependencies— unused, missing, and misplaced dependencies; now also executed on CI) and syncpack (check-versions-match— version consistency, keeping the same CLI contract including--fix). Self-imports are covered by theckeditor5-rules/no-scoped-imports-within-packageESLint rule. A major-breaking changelog entry is included, as consumers of the removed package need to migrate toknip.📌 Related issues
See: https://github.com/ckeditor/ckeditor5-internal/issues/4564
💡 Additional information
check-dependencieswas not part of CI. It is now.cleanuppackages()in release tools still strips thedepcheckIgnorefield from publishedpackage.jsonfiles, because repositories that have not migrated yet may carry it.upath(web-crawler),@types/css(build-tools), andsemver(root) removed; unlisted@ckeditor/ckeditor5-dev-changelogadded (its binary is used by thenicescript).