TryGhost
OSS
Ghost
Moved ghost/core boundary enforcement to dependency-cruiser no ref The frontend/server/shared boundaries were enforced by the custom `ghost/node/no-restricted-require` rule in ghost/core/eslint.config.mjs. That rule is specific to eslint-plugin-ghost and has no equivalent in oxlint, so it blocks the planned ESLint-to-oxlint migration. It also only inspects require() calls, missing ESM imports. The four boundary rules now run on dependency-cruiser, which enforces them on the resolved module graph (require and import) from the repo root. This drops the custom rule and lets the boundaries outlive ESLint. The original burn-down intent — "adding files to this list is an anti-pattern / work down until the list is empty" — and the per-file allowlist categorisation are carried over verbatim from the pre-flat- config .eslintrc.js, having been lost in the flat-config migration. Enforced in three places: a cached nx target on the ghost-monorepo root project (scoped inputs so the whole-repo projectRoot glob doesn't defeat caching), a CI step, and a lint-staged pre-commit signal. The cross-package apps/library model is deliberately out of scope and tabled as a follow-up.
nx run ghost:test:legacy
Sign in / Sign up
Open main menu
Succeeded
CI Pipeline Execution
nx run ghost:test:legacy
Click to copy
Linux
4 CPU cores
read-write
access token used
65d53a2c
29134