Am 24.10.19 um 19:58 schrieb Alexander Kanavin:
On Thu, 24 Oct 2019 at 19:45, Stefan Herbrechtsmeier <[email protected] <mailto:[email protected]>> wrote:

     > The package-lock.json in their tarball is 600K.

    The project use two major version and seven different versions with 30
    installations of debug. Furthermore the dependencies include build
    tools
    which should not be installed on the device.

    The "@angular/cli" (242) and "node-red" (324) package share 106
    packages.


I have to ask: what point are you trying to make?

The both packages with different audience share between 44% and 33% of the packages. I think this true for other packages too.

Here's a related lwn article describing a similar problem faced by opensuse:
https://lwn.net/Articles/712318/

Unfortunately they also have no solution.

""Ruby dependency hell has nothing on JavaScript dependency hell," he said. A "hello world" application based on one JavaScript framework has 759 JavaScript dependencies; this framework is described as "a lightweight alternative to Angular2".

Unfortunately they don't name the package nor give details about the dependencies. I assume they really count the dependencies with all there duplications and multiple minor or patch versions.


There is no way he is going to package all 759 dependencies for this thing; the current distribution package-management approach just isn't going to work here."

What is the "current distribution package-management approach"? The manual creating of build configuration for every package or the automatic generation of recipes?

What is the alternative which fulfill the requirements of an embedded distribution?

My prototype automatically creates recipes from the packages. It only needs manual work if the package have no license file or a circular dependency.

The main problem is the pinning of specific versions inside the package.json and the increase of the major version if the support for a very old node.js version is removed.

The prototype assumes a compatible inside a major version and creates a recipe per major version. Thereby it always uses the latest version per major version. The recipe count could further optimized in a manual step which checks if there is really a breaking change between the major version. The number of this recipes is low in compare to the total count of recipes but the packages are often shared between different packages.

Regards
  Stefan
--
_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to