qooxdoo / qooxdoo-compiler

Compiler for Qooxdoo, 100% javascript
MIT License
36 stars 23 forks source link

compile.json should take precedence over qx-lock and Manifest #784

Open derrell opened 3 years ago

derrell commented 3 years ago

Working with @cboulanger using incubator projects, I had installed a package (qx package install) and then wanted to make some local changes. I forked and checked out the code, and added that code as a library in my compile.json file. It wasn't used, however. It seems very confusing that installed packages, which don't appear in compile.json, take precedence over user-specified packages in compile.json. At present, it is required to uninstall a package before the locally-installed version is used.

In short, compile.json, which the user deals with all the time, should be the final say and have override/veto power.

johnspackman commented 3 years ago

do you mean that the list of libraries in compile.json is ignored? Please can you provide a working example?

derrell commented 3 years ago

The list isn't ignored completely. Any libraries listed there which are not installed packages are honored. But installing a package and then attempting to override it with an entry in libraries is ignored.

derrell commented 3 years ago

I think this problem may not be as severe as I'd thought. It does seem that compile.json is honored. The problem is that a misleading error message displays:

issue784: Cannot find required library 'qooxdoo/incubator.qx.io.jsonrpc'

(where issue784 is the application name)

The error should probably say,

issue784: Library (package) 'qooxdoo/incubator.qx.io.jsonrpc' will not be used; overridden by compile.json library entry '../incubator.qx.io.jsonrpc.git'

or some such thing. Masking is exactly what should occur.