We now use a smaller file (the `babel-compiler` archive instead of
`meteor-tool`), and we interrupt every 500kB, which leads to three total
interruptions for that file. Also, we only delay one second (instead of
five) between attempts.
This is a test that really needs to run and pass every time we run the
test suite, so I decided it shouldn't be --slow. If it takes too long, we
can always download a smaller test file.
Hard-coding the download length was a recipe for brittleness, so now I'm
downloading the file without interruptions in parallel with the
interrupted/resumed download, so that we can compare the two files when
both have finished downloading.
Follow-up to #7399.
* --port now requires a port ('meteor run --port example.com' isn't valid).
* --mobile-server defaults to your detected IP address and the port from
--port.
* If you provide a value for --mobile-server, we default to http:// as
the protocol. A host is required for --mobile-server if you don't omit
the option entirely. Similar for the --server argument to 'meteor
build'.
This commit includes the 'netroute' npm module as a core package (which
has binary dependencies) for IP detection. It would be nice to put it in
packages/non-core, but I think it has to be a core package in order to
uniload it.
The previous algorithm had the problem that if you had builds
A = browser+os.linux.x86_64
B = browser+os.osx.x86_64
available and came in looking for "something that satisfies 'browser'
and 'os.osx.x86_64'", Meteor would happily say:
"Neato-keen! 'A' satisfies 'browser'. And 'B' satisfies
'os.osx.x86_64'! Hey, that's all I needed! Let's download
both 'A' and 'B'! Hooray!"
when choosing just 'B' would have been good enough.