[Pkg-javascript-devel] Bug#976341: Bug#976341: node-jest: please provide real (not virtual) package node-jest-worker
Xavier
yadd at debian.org
Fri Dec 4 10:48:58 GMT 2020
Le 03/12/2020 à 19:05, Jonas Smedegaard a écrit :
> Quoting Xavier (2020-12-03 18:30:54)
>> Control: tags -1 + confirmed
>>
>> Le 03/12/2020 à 18:07, Jonas Smedegaard a écrit :
>>> node-rollup-plugin-terser has a runtime dependency on
>>> node-jest-worker.
>>>
>>> Currently node-jest-worker is provided as a virtual package by jest.
>>> Problem with that is the size of the dependency tree...
>>>
>>> rollup+node-rollup-plugin-terser+jest: 334 pkgs / 182 MB
>>>
>>> rollup+node-rollup-plugin-terser+node-jest-worker: 136 pkgs / 107 MB
>>>
>>> I.e. the size is approximately half with node-jest-worker separate
>>> from jest.
>>>
>>>
>>> Please provide real (not virtual) package node-jest-worker,
>>> and have jest depend on or recommend that, as appropriate.
>>>
>>>
>>> - Jonas
>>>
>>> Hint: Introducing a new package causes a visit the the NEW queue,
>>> which potentially can require some time for processing. To avoid
>>> such waiting time stalling other development of the jest package
>>> it can be beneficial to first mae a release to experimental
>>> (where it can linger while other releases are made to unstable).
>>
>> According to https://people.debian.org/~yadd/jest-spaghetti-dish.png
>> this makes sense. Do you see some other jest parts that should be separated?
>
> Sorry, I have only closely examined the virtual package that I concrete
> have a need for.
>
> It makes fine sense to me that node-jest-worker was provided only as a
> virtual package until now. If you want to do more now than switching
> that one binary package from virtual to real, then the most sensible to
> me is to make sure _all_ embedded modules are provided as virtual
> packages to encourage _others_ to collaborate on that larger ongoing
> process of refining pakcage relations.
>
> Viewed generally, decoupling binary packages can be separated into
> multiple steps...:
>
> 1) provide embedded modules as packages - virtual or not - to allow
> declaring explicit package relations.
>
> 2) declare explicit package relations.
>
> 3) examine explicit package relations against virtual packages, to
> assess if some of them might benefit from being maintained as real
> binary packages.
>
> Here concretely, I just happened to do 2) and 3) together.
>
> For comparison, some size benefit might be in decoupling
> node-types-babel-code-frame from node-babel7 - but in that case I am
> _required_ to do examination first, because the virtual package lack
> versioning and therefore cannot be declared explicitly in packages
> depending on it. By not providing versioned virtual packages, it is
> harder to identify places beneficial for decoupling, because exact
> relationship cannot be declared ahead of the examination.
node-babel7 does provide versioned virtual packages (like acorn). I'll
study if node-babel7 can be split into multiple packages. It took me
around 4 hours to split jest correctly...
Done for jest, waiting for ftpmaster review.
Cheers,
Xavier
More information about the Pkg-javascript-devel
mailing list