[Pkg-javascript-devel] Plan for legacy rollup plugins in bullseye (was Re: node-rollup-plugin-inject 4.0.2+~3.0.2-1 MIGRATED to testing)
Jonas Smedegaard
jonas at jones.dk
Tue Oct 27 16:38:45 GMT 2020
Quoting Xavier (2020-10-27 14:45:40)
> Le 25/10/2020 à 11:57, Jonas Smedegaard a écrit :
> > Quoting Xavier (2020-10-25 11:27:55)
> >> Le 25/10/2020 à 09:06, Pirate Praveen a écrit :
> >>> On 2020, ഒക്ടോബർ 25 10:09:13 AM IST, Debian testing watch <noreply at release.debian.org> wrote:
> >>>> FYI: The status of the node-rollup-plugin-inject source package
> >>>> in Debian's testing distribution has changed.
> >>>>
> >>>> Previous version: (not in testing)
> >>>> Current version: 4.0.2+~3.0.2-1
> >>>
> >>> Are we going to maintain legacy versions of these plugins in
> >>> bullseye? I agree adding them makes the transition easier, but
> >>> removing the legacy copies should also be part of the plan to
> >>> avoid maintaining multiple versions of these plugins.
> >>
> >> Hi,
> >>
> >> you're right, however there are a lot of outdated modules in JS
> >> Team packages, and these rollup plugins have no known
> >> vulnerabilities.
> >>
> >> We can also facilitate transition using this way (using
> >> experimental of course):
> >> * remove legacy module from any node-rollup-plugin-*
> >> * insert our own legacy modules in them including just:
> >> * /usr/share/nodejs/rollup-plugin-foo/package.json
> >>
> >> { "name":"rollup-plugin-foo",
> >> "main":"index.js",
> >> "dependencies":{
> >> "@rollup/plugin-foo": "*"
> >> }
> >> }
> >>
> >> * /usr/share/nodejs/rollup-plugin-foo/index.js
> >>
> >> module.export = require("@rollup/plugin-foo");
> >>
> >> Note that transition of node-rollup-plugin-commonjs won't be easy
> >> (remember 10.0.1+really.9.2.0). Same for
> >> node-rollup-plugin-node-resolve
> >
> > Do I understand you correctly that you propose to ship legacy
> > library embedded with consuming packages?
> >
> > That seems backwards to me - what would be the benefit?
>
> Upstream chose to rename its rollup-plugin-foo to @rollup/plugin-foo.
> For now, I modified all of them: I embedded in node-rollup-plugin-foo
> both libraries:
> * main source is @rollup/plugin-foo
> * a component named "legacy" that embeds old node-rollup-plugin-foo
>
> Most of them have non breaking changes. Then instead of keeping an
> outdated library, I propose to install only @rollup/plugin-foo and add
> a very simple /usr/share/nodejs/rollup-plugin-foo that returns
> @rollup/plugin-foo (see above). This permits legacy removal and avoids
> to maintain a lot of patches in nodejs packages that uses them. No
> urgency for now since there are no security issues.
>
> Some of @rollup/plugin-foo *have* breaking changes, at least
> @rollup/plugin-commonjs and @rollup/plugin-node-resolve //(our legacy
> node-rollup-plugin-{commonjs,node-resolve} are already outdated)//.
> Propositions:
> 1. keep packages with both libraries
> 2. try to patch all packages that uses them, then remove "legacy"
> component (no urgency for now since there are no security issues)
>
> > I think it is better to ship legacy library with non-legacy library,
> > to ease tracking of its continued need and maintain it where there
> > is most knowledge about the library, but I may be missing
> > something...
>
> Sorry, I didn't understand, would you like to keep current situation
> (I'm OK with this) or remove legacy component (I'm OK too)?
>
> I'm so sorry, my poor English (neither the help of Google Translator)
> makes me unable to understand the meaning of "to ship" here (send in
> package or send outside package?).
Sorry for my sloppy language - "to ship" means "to include in our
shipment" a.k.a. "to distribute".
Let me try again:
In my previous email I worried that your proposal was to _only_ include
modern code in rollup plugin packages, and include a copy of old plugin
code into each package that needed old code. I.e. this:
* pkg:node-rollup-plugin-foo
+ include modern @rollup/plugin-foo
* pkg:node-bar-depending-on-old-foo
+ include old rollup-plugin-foo
* pkg:node-baz-depending-on-old-foo
+ include old rollup-plugin-foo
I would prefer - and now think that this was your proposal (both now and
before - that I simply misunderstood you before) - that we instead do
this:
* pkg:node-rollup-plugin-foo
+ include modern @rollup/plugin-foo
+ include old rollup-plugin-foo
+ Provides: node-rollup-plugin-foo (= $OLD)
* pkg:node-bar-depending-on-old-foo
+ Depends: node-rollup-plugin-foo (= $OLD)
* pkg:node-baz-depending-on-old-foo
+ Depends: node-rollup-plugin-foo (= $OLD)
- Jonas
--
* Jonas Smedegaard - idealist & Internet-arkitekt
* Tlf.: +45 40843136 Website: http://dr.jones.dk/
[x] quote me freely [ ] ask before reusing [ ] keep private
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: signature
URL: <http://alioth-lists.debian.net/pipermail/pkg-javascript-devel/attachments/20201027/89e451c9/attachment.sig>
More information about the Pkg-javascript-devel
mailing list