News for hackers. Stuff that matters.
Re:Show HN: Test your JavaScript modules simultaneously in 3... by geophile on Wednesday April 20, 2016 @02:31PM (#11536632)
Dumb question, from someone who doesn't work with Node.js: Why are there 32 versions of it?
Re:Show HN: Test your JavaScript modules simultaneously in 3... by tlrobinson on Wednesday April 20, 2016 @04:17PM (#11537401)
There are actually 303 versions of node (including iojs, according to the Node Version Manager):

    $ nvm ls-remote | wc -l
         303
Most of those are patch releases. There are 47 minor releases and 6 major releases:

    $ nvm ls-remote | grep -oE 'v\d+\.\d+' | uniq | wc -l
          47
    $ nvm ls-remote | grep -oE 'v\d+' | uniq | wc -l
           6
Most language implementations probably have similar number of releases.
Re:Show HN: Test your JavaScript modules simultaneously in 3... by coolmitch on Wednesday April 20, 2016 @05:23PM (#11537854)
yeah -- perhaps there's a lot of negative things to be said about node, but the fact that they've released multiple versions? really?

https://clojure.org/community/downloads_older http://www.scala-lang.org/download/all.html https://www.python.org/downloads/

etc...

Re:Show HN: Test your JavaScript modules simultaneously in 3... by colanderman on Wednesday April 20, 2016 @07:19PM (#11538455)
I don't think the issue is that they've released multiple versions, it's more that they've had so many backward-incompatible releases.

Python and OCaml have had 3 each. Libc has had 6. 32 for something that's been around less than a decade is a bit excessive.

Are all these 32 actually backwards-incompatible?

Re:Show HN: Test your JavaScript modules simultaneously in 3... by AgentME on Wednesday April 20, 2016 @08:54PM (#11538896)
There have only been 3 major releases with known backwards-incompatible changes. The reason you would want to test your code in so many versions of Node would be to check that you aren't depending on newer features that aren't in older versions that you want to still support.

Testing across 32 versions is probably very overkill for most people though.

Re:Show HN: Test your JavaScript modules simultaneously in 3... by AgentME on Thursday April 21, 2016 @12:03PM (#11543163)
(Oh, I meant to say 3 major releases since 0.10, which I arbitrarily picked as what seemed to be the earliest version still in any significant use today.)
Re:Show HN: Test your JavaScript modules simultaneously in 3... by lucideer on Wednesday April 20, 2016 @07:36PM (#11538535)
They're not strictly backward incompatible: one should ideally only have to test across the major versions (nodejs is currently on major version 5, though that's not strictly reflective given the fork to iojs, and the change in versioning system on merge back)

Testing across all 32 (or 303) versions is still going to be useful for catching bugs and quirks between minor versions (as opposed to deliberate, documented breaking API changes)

Re:Show HN: Test your JavaScript modules simultaneously in 3... by merb on Thursday April 21, 2016 @03:47AM (#11540285)
actually for the sake of correctness, you should also test version 4 which is lts (if you are a library author) (https://github.com/nodejs/LTS) I mean v0.10 and v0.12 are also LTS but I doubt that if you have a bigger library that its nearly impossible to support all four
Re:Show HN: Test your JavaScript modules simultaneously in 3... by Nadya on Wednesday April 20, 2016 @07:36PM (#11538540)
>Are all these 32 actually backwards-incompatible?

Node uses semantic versioning [0] and the current release is 5.10.z

The breaking changes can be found here [1] By searching for `SEMVER-MAJOR`. Some seem rather unavoidable for progress (updating dependencies...) and some are for things that have been deprecated. I'm not an expert but it looks like there are several security related changes as well?

In my eyes a backwards incompatible change that breaks a feature that has been deprecated for years or is insecure is a change worth making. Stability is bad if it means remaining insecure.

[0] http://semver.org/

[1] https://github.com/nodejs/node/blob/v5.10.1/CHANGELOG.md

Re:Show HN: Test your JavaScript modules simultaneously in 3... by tlrobinson on Wednesday April 20, 2016 @08:36PM (#11538826)
If you fix a bug that I'm relying on for the correct behavior of my code then it's not strictly backwards compatible.

These versions include a lot of minor and patch releases. Chances are most code will run just fine on most of these versions, but if you can automate testing them all then why not do it?

Re:Show HN: Test your JavaScript modules simultaneously in 3... by diggan on Wednesday April 20, 2016 @04:55PM (#11537683)
That is absolutely true, 32 versions is not all versions of node, but it's the number of tags from the mhart/alpine-node[1] docker images that autochecker is using for the testing.

[1] - https://hub.docker.com/r/mhart/alpine-node/tags/

Re:Show HN: Test your JavaScript modules simultaneously in 3... by mayank on Wednesday April 20, 2016 @02:38PM (#11536678)
Semantic versioning -- basically each version here is x.y.z for some x, y, z. Node patch releases (.z) happen reasonably fast and constitute a "version of node" as used here.
Re:Show HN: Test your JavaScript modules simultaneously in 3... by stronglikedan on Wednesday April 20, 2016 @03:00PM (#11536839)
Even though Node isn't a framework (it's a cross-platform, runtime environment), it is used a base for application development. However, over time, things are changed and improved, but that breaks some of the API functionality upon which some existing applications are already built around. Since these applications still run fine with a previous version, they are not likely to be constantly updated to work with later versions. Therefore, previous versions are still offered to maintain compatibility with applications that have already been developed. However, if you're starting work on a new Node application, then you are better off using the latest version.
Re:Show HN: Test your JavaScript modules simultaneously in 3... by swalsh on Wednesday April 20, 2016 @03:55PM (#11537266)
Node.js has that 60's free love nudist colony experiment feel.
Re:Show HN: Test your JavaScript modules simultaneously in 3... by tomc1985 on Wednesday April 20, 2016 @07:37PM (#11538546)
Except that everyone is crazy and high off the fumes of DIY

...actually that does sound pretty 60s

Re:Show HN: Test your JavaScript modules simultaneously in 3... by eikenberry on Thursday April 21, 2016 @04:40AM (#11540469)
I'm more intereted in why would you need to test against 32 versions of node.js? Doesn't it maintain backwards compatibility? Shouldn't testing against one version cover it?
Re:Show HN: Test your JavaScript modules simultaneously in 3... by kafkaesq on Wednesday April 20, 2016 @05:38PM (#11537935)
I would think the more fundamental question is -- are these 32 (or 303) different versions so non-backward-compatible that the need to test on all of them is just an accepted thing out in Node.js-land? That everyone just kind of shrugs and puts up with (the way MS Windows used to crash on a near daily-basis for nearly everyone, not too many years ago)?

I know that other languages also have issues in this regard -- but for more mature languages it seems to be more an exception than than the rule (restricted to certain platforms of subsystems, say).