oortcloud / heroku-buildpack-meteorite

MIT License
189 stars 97 forks source link

semver.io is flakey - wrong node version #43

Open lirbank opened 10 years ago

lirbank commented 10 years ago

When I was setting up a new Heroku app today it was installed with node version 0.10.21 (which totally does not work with the latest Meteor version).

----> Fetching custom git buildpack... done
-----> Meteor app app detected
-----> Resolving engine versions

       No version of Node.js specified in nodeversion, using '0.10.26'

       Using Node.js version: 0.10.21
-----> Fetching Node.js binaries
        - downloading and extracting node from http://s3pository.heroku.com/node/v0.10.21/node-v0.10.21-linux-x64.tar.gz

So I investigated it a bit and found that semver.io changes its response with each other request. I just ran curl multiple times from the command line and got this:

$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.21
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.21
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.26
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.26
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.21
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.21
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.21
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.26
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.26
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.21
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.26
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.26
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.26
$ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve
0.10.21

Probably not a good thing to continue using samver. Working on a fix, will make a Pull Request shortly.

jtwalters commented 10 years ago

My meteor app appears to be working fine with node 0.10.28. Where does it say meteor doesn't work with node 0.10.x? According to this meteor blog post it's been dependent on 0.10 for a while.

lirbank commented 10 years ago

This issue is about semver.io responding with random node versions. See my tests above, I was running the same command ($ curl --silent --get --data-urlencode "range=0.10.26" https://semver.io/node/resolve) many times. Below you see the responses each one you see what samver responded (sometimes 0.10.26 and sometimes 0.10.21).

So when you create a Heroku app you will randomely set it up with node 0.10.21 or 0.10.26. So I suggest we don't rely on samver and remove it from the build package, see PR #44