nrwl/nx

19.0.4 Project Graph Detection Breaks ESLint @nx/enforce-module-boundaries rule

CreativeTechGuy opened this issue · 1 comments

Current Behavior

As of #22743, all of my packages in my NX monorepo have a circular dependency error with the root project. This is due to a config package which we created which is used by every package. This config package is installed as an NPM package in the root package.json via "@scope/name": "file:./dist/our-package".

To fix this circular dependency issue in the past, we added !our-package to the root project.json file's implicitDependencies array. Now after this change, since having a negative pattern results in every package being a dependency, now the root project is treated as directly depending on every single other project in our monorepo.

Expected Behavior

We should be able to ignore implicitDependencies without it automatically depending on everything else we don't specify.

There is no way to do !* as that pattern breaks here:

builder.removeDependency(source, target.slice(1));

GitHub Repo

No response

Steps to Reproduce

Detailed above

Nx Report

Node   : 20.9.0
OS     : win32-x64
npm    : 10.1.0
 
nx                 : 19.0.4
@nx/js             : 19.0.4
@nx/jest           : 19.0.4
@nx/linter         : 19.0.4
@nx/eslint         : 19.0.4
@nx/workspace      : 19.0.4
@nx/devkit         : 19.0.4
@nx/esbuild        : 19.0.4
@nx/eslint-plugin  : 19.0.4
@nx/plugin         : 19.0.4
@nrwl/tao          : 19.0.4
@nx/vite           : 19.0.4
typescript         : 5.4.5

Failure Logs

No response

Package Manager Version

No response

Operating System

  • macOS
  • Linux
  • Windows
  • Other (Please specify)

Additional Information

The workaround I was able to find was to add a self-referential dependency (list itself as a dependency) as the first one to bypass the check here:

if (isExcludePattern(patterns[0])) {

Thank you for the incredibly fast turnaround! When do you think this fix will be released?