npm: library author engines support #28384
Replies: 3 comments 13 replies
-
On a related note: for those who apply "LTS only" or even "LTS + Current", would your constraint include Similarly, is it up to library authors to bump their minimum version of release streams in case of security releases, or leave that for downstream applications to determine? For example, Node 20.12.1 included a security fix earlier this month. In other words three people saying they support Node LTS may have different interpretations of that:
|
Beta Was this translation helpful? Give feedback.
-
I am very concerned with automated encouragement of breaking changes - major bumps are the most costly and harmful thing for the JS ecosystem. |
Beta Was this translation helpful? Give feedback.
-
As a library developer and someone who's interested in this - here's my two cents. I maintain an engines property similar to With the above-mentioned pattern, I am making the assumption that if something works in node Also I agree with @ljharb sentiment:
I don't always care - but when I do, the extra work to support more node versions has been minimal. |
Beta Was this translation helpful? Give feedback.
-
Tell us more.
Although it's "easier said than done", I would like to help JS library authors to bump their Node.js engines values whenever there's changes in Node LTS.
I don't think there's a one size fits all, for example the majority may wish to support strictly "LTS only", others may support LTS+current, and others may extend support to older LTS releases such as Node 16 which are in maintenance mode. Others may wish to support non-LTS current releases too.
What matters is that at the right time, Renovate proposes a PR to all the applicable projects, modifying the
engines
field inpackage.json
, and applying a "breaking change" semantic commit message if applicable.If we try to make this purely automatic, it may be too challenging. I am open to this being done with presets which are manually modified.
One thing we may not be able to do is support everyone's custom/preferred semver syntax for this. Complex semver constraints can be hard to parse and understand.
I anticipate that to support this feature we may need:
Beta Was this translation helpful? Give feedback.
All reactions