tapjs / stack-utils

Captures and cleans stack traces.
https://www.npmjs.com/package/stack-utils
MIT License
190 stars 35 forks source link

Breaking change in v1.0.3 #56

Closed nicolo-ribaudo closed 3 years ago

nicolo-ribaudo commented 3 years ago

v1.0.2 supports Node.js 0.10.0: https://github.com/tapjs/stack-utils/blob/2d238dfac8c39ab85997b90a1e48ca51c096adc0/package.json#L13

However, in v1.0.3 it was bumped to Node.js 8: https://github.com/tapjs/stack-utils/blob/85ad2ca7a6f2ca83588f4c0d6960db485534e442/package.json#L16

We still test Babel on Node.js 6, somewhere in our dependencies tree there is stack-utils@^1.0.1. However, it doesn't work anymore because stack-utils@1.0.3 uses a trailing comma in function arguments, which doesn't work on Node.js 6.

nicolo-ribaudo commented 3 years ago

Oh looking at https://github.com/tapjs/stack-utils/commits/v1-legacy it seems that v1.0.3 is based on v2.0.3 and not v1.0.2?

isaacs commented 3 years ago

Yeah, there were a bunch of fixes to make it behave properly on node 14 and 15. Re-implementing all of those in v1 piecemeal was not realistic.

I've updated it to work on node 4 and 6.

If you are using versions of node that haven't gotten critical security updates in 4 years (to say nothing of normal improvements and bugfixes), you should really be locking down all your deps, even to the point of checking them all into source control, and never updating anything without thoroughly vetting it.

The cost of keeping modules like this working on those ancient platforms is not worth the significant effort. At the very least, pin all your versions. It is cheaper and wiser for you to update your node version than it is for me to continue supporting it. I wouldn't update anything until you update your node version. Failing CI should really be the least of your worries.

If you are willing to invest the effort to make it work, I would accept a pull request to restore 0.10 and 0.12 support, provided it didn't change any behavior otherwise. But you'll have to also update escape-string-regexp and several of the devDeps this module uses.

nicolo-ribaudo commented 3 years ago

Thanks for the release. We will remove support for Node.js 6 and 8 in the next major release (in a few months), because you are right and it's painful to keep supporting them.

I personally don't care about 0.10 and 0.12, so unless someone else complains about them it's ok to leave them unsupported I guess.