diff --git a/History.md b/History.md index 84b1af855e..5f21fbf0da 100644 --- a/History.md +++ b/History.md @@ -1,17 +1,32 @@ ## vNEXT -* `Spiderable.userAgentRegExps` can now be modified to change what user agents - are treated as spiders by the `spiderable` package. +* Better stack traces for `Meteor.Error`. -* Return the inserted documented ID from LocalCollection.insert. #908 +* Add per-package upgrade notices to `meteor update`. -* Prevent observe callbacks from affecting the arguments to identical observes. #855 +* Experimental server-to-server DDP support: `Meteor.connect` on the + server will connect to a remote DDP endpoint via WebSockets. Method + calls should work fine, but subscriptions and minimongo on the server + are still a work in progress. * Upgrade d3 from 2.x to 3.1.4. See https://github.com/mbostock/d3/wiki/Upgrading-to-3.0 for compatibility notes. -Patches contributed by GitHub users andreas-karlsson, jacott, and joshuaconner. +* Return the inserted documented ID from `LocalCollection.insert`. #908 + +* `Spiderable.userAgentRegExps` can now be modified to change what user agents + are treated as spiders by the `spiderable` package. + +* Prevent observe callbacks from affecting the arguments to identical + observes. #855 + +* Fix meteor command line tool when run from a home directory with + spaces in its name. + +Patches contributed by GitHub users andreas-karlsson, jacott, +joshuaconner, and timhaines. + ## v0.6.1 @@ -22,6 +37,7 @@ Patches contributed by GitHub users andreas-karlsson, jacott, and joshuaconner. Patches contributed by GitHub users andreas-karlsson and awwx. + ## v0.6.0 * Meteor has a brand new distribution system! In this new system, code-named diff --git a/docs/client/api.html b/docs/client/api.html index e73cc060e5..2f9d40361a 100644 --- a/docs/client/api.html +++ b/docs/client/api.html @@ -2635,6 +2635,8 @@ support `Uint8Array`, binary data buffers are represented by standard arrays containing numbers ranging from 0 to 255, and the `$Uint8ArrayPolyfill` key set to `true`. +{{> api_box ejsonIsBinary}} + {{> api_box ejsonAddType}} When you add a type to EJSON, Meteor will be able to use that type in: diff --git a/docs/client/api.js b/docs/client/api.js index e6f949c968..a3367f4ba5 100644 --- a/docs/client/api.js +++ b/docs/client/api.js @@ -140,6 +140,13 @@ Template.api.ejsonNewBinary = { descr: ["Allocate a new buffer of binary data that EJSON can serialize."] }, +Template.api.ejsonIsBinary = { + id: "ejson_is_binary", + name: "EJSON.isBinary(x)", + locus: "Anywhere", + descr: ["Returns true if `x` is a buffer of binary data, as returned from [`EJSON.newBinary`](#ejson_new_binary)."] +}, + Template.api.ejsonAddType = { id: "ejson_add_type", name: "EJSON.addType(name, factory)", diff --git a/docs/client/docs.js b/docs/client/docs.js index 658656a22f..352262e212 100644 --- a/docs/client/docs.js +++ b/docs/client/docs.js @@ -288,6 +288,7 @@ var toc = [ {name: "EJSON.equals", id: "ejson_equals"}, {name: "EJSON.clone", id: "ejson_clone"}, {name: "EJSON.newBinary", id: "ejson_new_binary"}, + {name: "EJSON.isBinary", id: "ejson_is_binary"}, {name: "EJSON.addType", id: "ejson_add_type"}, [ {instance: "instance", id: "ejson_type_clone", name: "clone"}, diff --git a/meteor b/meteor index 784936e827..b6f76317e2 100755 --- a/meteor +++ b/meteor @@ -32,9 +32,9 @@ PLATFORM="${UNAME}_${ARCH}" # Find the script dir, following one level of symlink. Note that symlink # can be relative or absolute. Too bad 'readlink -f' is not portable. ORIG_DIR=$(pwd) -cd $(dirname "$0") -if [ -L "$(basename $0)" ] ; then - cd $(dirname $(readlink $(basename "$0") ) ) +cd "$(dirname "$0")" +if [ -L "$(basename "$0")" ] ; then + cd "$(dirname $(readlink $(basename "$0") ) )" fi SCRIPT_DIR=$(pwd -P) cd "$ORIG_DIR" diff --git a/packages/livedata/stream_client_nodejs.js b/packages/livedata/stream_client_nodejs.js index 312d755205..b280561eea 100644 --- a/packages/livedata/stream_client_nodejs.js +++ b/packages/livedata/stream_client_nodejs.js @@ -1,9 +1,3 @@ -// WebSocket-Node https://github.com/Worlize/WebSocket-Node -// Chosen because it can run without native components. It has a -// somewhat idiosyncratic API. We may want to use 'ws' instead in the -// future. -var WebSocketClient = Npm.require('websocket').client; - // @param endpoint {String} URL to Meteor app // "http://subdomain.meteor.com/" or "/" or // "ddp+sockjs://foo-**.meteor.com/sockjs" @@ -18,7 +12,22 @@ var WebSocketClient = Npm.require('websocket').client; Meteor._DdpClientStream = function (endpoint) { var self = this; - self.client = new WebSocketClient; + // WebSocket-Node https://github.com/Worlize/WebSocket-Node + // Chosen because it can run without native components. It has a + // somewhat idiosyncratic API. We may want to use 'ws' instead in the + // future. + // + // Since server-to-server DDP is still an experimental feature, we only + // require the module if we actually create a server-to-server + // connection. This is a minor efficiency improvement, but moreover: while + // 'websocket' doesn't require native components, it tries to use some + // optional native components and prints a warning if it can't load + // them. Since native components in packages don't work when transferred to + // other architectures yet, this means that require('websocket') prints a + // spammy log message when deployed to another architecture. Delaying the + // require means you only get the log message if you're actually using the + // feature. + self.client = new (Npm.require('websocket').client)(); self.endpoint = endpoint; self.currentConnection = null; diff --git a/packages/spark/spark.js b/packages/spark/spark.js index d28a3a198e..b94a72092b 100644 --- a/packages/spark/spark.js +++ b/packages/spark/spark.js @@ -884,7 +884,6 @@ var applyChanges = function (doc, changeFields) { var idStringify; -var idParse; if (typeof LocalCollection !== 'undefined') { idStringify = function (id) {