Please help test Meteor release 0.7.2

567 views
Skip to first unread message

Nick Martin

unread,
Mar 15, 2014, 3:56:27 AM3/15/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Hey folks,

We're gearing up to release the next version of Meteor: 0.7.2. Please help out by testing a release candidate.

Give your app a whirl using the `--release 0.7.2-rc0` option to meteor, or use the `release-0.7.2` branch if you run from a git checkout.

The two biggest new things in 0.7.2 are limit support for oplog and login hooks. A full changelog is included below. Login hooks, by Andrew Wilcox, allow you to inspect and selectively reject login attempts. This should allow a lot more freedom and customizability in the accounts system. Documentation is here: http://devel-docs.meteor.com/#accounts_validateloginattempt.

Please give this release a whirl and report back on this thread how it goes for you. If you encounter any problems, please try to include as much detail as possible to help us replicate the issues. Positive confirmation that your app runs and works is useful too, so don't be shy about speaking up either way =)

Thanks!
-- Nick

-----------

* Support oplog tailing on queries with the `limit` option. All queries
  except those containing `$near` or `$where` selectors or the `skip`
  option can now be used with the oplog driver.

* Add hooks to login process. This allows for rate limiting login
  attempts, logging an audit trail, account lockout flags, etc. See:

* Change the `Accounts.registerLoginHandler` API for custom login
  methods. Login handlers now require a name and no longer have to deal
  with generating resume tokens. See
  for details. OAuth based login handlers using the
  `Oauth.registerService` packages are not affected.

* Add support for HTML email in `Accounts.emailTemplates`.  #1785

* minimongo: Support `{a: {$elemMatch: {x: 1, $or: [{a: 1}, {b: 1}]}}}`  #1875

* minimongo: Support `{a: {$regex: '', $options: 'i'}}`  #1874

* minimongo: Fix sort implementation with multiple sort fields which each look
  inside an array. eg, ensure that with sort key `{'a.x': 1, 'a.y': 1}`, the
  document `{a: [{x: 0, y: 4}]}` sorts before
  `{a: [{x: 0, y: 5}, {x: 1, y: 3}]}`, because the 3 should not be used as a
  tie-breaker because it is not "next to" the tied 0s.

* Use `faye-websocket` (0.7.2) npm module instead of `websocket` (1.0.8) for
  server-to-server DDP.

* Update Google OAuth package to use new `profile` and `email` scopes
  instead of deprecated URL-based scopes.  #1887

* Add `_throwFirstError` option to `Deps.flush`.

* Make `facts` package data available on the server as
  `Facts._factsByPackage`.

* Fix issue where `LESS` compilation error could crash the `meteor run`
  process.  #1877

* Fix crash caused by empty HTTP host header in `meteor run` development
  server.  #1871

* Fix appcache size calculation to avoid erronious warnings. #1847

* Remove unused `Deps._makeNonReactive` wrapper function. Call
  `Deps.nonreactive` directly instead.

* Avoid setting the `oplogReplay` on non-oplog collections. Doing so
  caused mongod to crash.

* Add startup message to `test-in-console` to ease automation. #1884

* Upgraded dependencies
  - amplify: 1.1.2 (from 1.1.0)

Patches contributed by GitHub users awwx, dandv, queso, rgould, timhaines, zol

Tim Haines

unread,
Mar 15, 2014, 11:33:33 PM3/15/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Hi Nick,

I've had a play with our apps, and run our tests against 0.7.2-rc0.  All is good. 

So happy about the oplog handling limits now, and the login hooks.

Tim.


--
You received this message because you are subscribed to the Google Groups "meteor-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meteor-core...@googlegroups.com.
To post to this group, send email to meteo...@googlegroups.com.
Visit this group at http://groups.google.com/group/meteor-core.
For more options, visit https://groups.google.com/d/optout.

Nick Martin

unread,
Mar 16, 2014, 3:32:43 PM3/16/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Thanks for testing, Tim. Much appreciated!

Marc d'Entremont

unread,
Mar 16, 2014, 4:34:57 PM3/16/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
I've tested with our app using the following packages and things seem to be working as expected.
preserve-inputs
stylus
accounts-base
accounts-password
coffeescript
collectionFS
email
handlebars
spiderable
standard-app-packages
bootstrap-3
parsleyjs
toastjs
iron-router
underscore-string-latest
moment
jquery-ui
underscore
font-awesome
i18next
imagemagick
jquery-autosize
winston
jquery-validation
cfs-public-folder
jquery-ui
facts
collection-hooks
handlebars-server
smart-publish
winston-client

Marc

Aaron Judd

unread,
Mar 16, 2014, 7:58:25 PM3/16/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Received error:

=> Meteor server restarted./bin/run: line 10: 12244 Abort trap: 6           meteor run --settings $CONFIG "$@" 

Unfortunately, it's a mystery because I wasn't paying attention to the browser/ meteor restart (just coding and saving) so it could be many things. I tried to reproduce. Sorry.

Nick Martin

unread,
Mar 17, 2014, 3:14:39 AM3/17/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Marc: thanks for testing!

Aaron: Hrm... what platform are you running on (OS and version)? Looks like thats a generic "node hit an internal assertion failure" error message. It's going to be hard to debug without seeing it again and more info. Let me know if you see it again, and if you can determine any pattern to when it happens.

Cheers,
-- Nick


--
You received this message because you are subscribed to the Google Groups "meteor-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meteor-talk...@googlegroups.com.

Gadi Cohen

unread,
Mar 17, 2014, 4:02:46 AM3/17/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
I guess I've been a lot quieter on the non-blaze stuff, but I just wanted to say that this is a pretty awesome update (and 0.7 in general).  These were some of the biggest things people were waiting on, and seeing them ticked off one by one like this is both very settling and exciting, in anticipation of the 1.0 release.

You hit the nail on the head with the two biggest things.  I know Slava was working really on the limit oplog support, and I think a lot of people are going to be really happy now :)  And Andrew's work is awesome, a lot of us were using kludgy workarounds to "kind of" do stuff like this... great to have an official clean API now.

For me, at least, I feel like 0.7 and Blaze have been the big rewards for us early adopters.  We took a big risk using a preview release of a new framework, which of course we wouldn't have done in the first place unless we had strong faith in MDG, but it's definitely very cool seeing major things from the roadmap appearing in reality now.

So yeah, not to sound too cheesy or anything, but keep up the great work!  We're all very excited for 1.0, which is seeming more tangible than ever now.

Andrew Mao

unread,
Mar 17, 2014, 4:09:13 AM3/17/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Cheers MDG - I tip my hat to a great team that has grown a wonderful community. May the odds be ever in your favor... 
Message has been deleted

Nick Martin

unread,
Mar 17, 2014, 8:34:20 PM3/17/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Hey all,

We found a few issues in 0.7.2-rc0. I've cut a new release with some fixes, unsurprisingly named `0.7.2-rc1`

The changes since rc0:

- Rework minimongo sort implementation for sorting on values from an array. This fixes an edge case in oplog limit support when the sort key and the selector share a field.

- Clear up concurrency issues around login hooks and Meteor.onConnection if callbacks yield.

- Fix hot code reload in Safari private browsing mode.

- Fix accounts-ui font in Firefox.


You should definitely re-test your app if:

- You use the `sort` option to Mongo queries on fields that could be in an array (eg for sort key `a.b` if either a or b could be an array.). Doubly so if you combine this with the `limit` option.

- You use login hooks or Meteor.onConnection. Doubly so if your callbacks do any database operations, or other things that could yield.


And if you haven't tested your app on 0.7.2 yet, now's the time! Everything should be backward compatible with the exception of apps or packages that register new custom login handlers.


Also, for those of you already on the Blaze bandwagon, I've made a separate release -- `0.7.2-rc1-with-blaze` -- that combines, you guessed it, 0.7.2-rc1 and blaze. This lets you test login hooks and oplog limits from the comfort of your shiny new templates. Those of you running from git can get this directly from the `shark` branch. Please reply on this thread if you find any non-blaze issues (eg in sort, limit, login hooks, etc), or make a new thread with 'blaze' in the subject for blaze issues so that Avi and David notice it.


Thanks again for all your help making Meteor releases great! Having a vibrant community that is so engaged in the development process is amazing, and really helps drive framework development forward.

Cheers,
-- Nick



On Mon, Mar 17, 2014 at 8:59 AM, Guilherme Decampo <guilherm...@gmail.com> wrote:
Everything working fine here,

I just upgrade the 
Accounts.emailTemplates.resetPassword.text to Accounts.emailTemplates.resetPassword.html =)
Awesome!

Thanks!

--
You received this message because you are subscribed to the Google Groups "meteor-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meteor-core...@googlegroups.com.
To post to this group, send email to meteo...@googlegroups.com.
Visit this group at http://groups.google.com/group/meteor-core.

Nick Martin

unread,
Mar 18, 2014, 5:24:31 PM3/18/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Pushed the button! 0.7.2 is live! (same as 0.7.2-rc1)

-- Nick

Marc d'Entremont

unread,
Mar 18, 2014, 8:43:34 PM3/18/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Sweet!

The note don't explicitly say what version of node to use. I'm assuming "node": "0.10.25" is still good.

Marc

David Glasser

unread,
Mar 18, 2014, 9:18:47 PM3/18/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
This is documented both at http://docs.meteor.com/#deploying and in
the README inside your bundle tarball.
> "meteor-talk" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to meteor-talk...@googlegroups.com.

Marc d'Entremont

unread,
Mar 18, 2014, 9:30:25 PM3/18/14
to meteo...@googlegroups.com
Great. Missed that.

Thanks

Vianney Lecroart

unread,
Mar 19, 2014, 7:38:18 AM3/19/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Awesome!

Cannot be released at a better time! We open our meteor app Saturday.

The meteor app is basically a chat. Our game (Ryzom, made in C++) push the chat directly in the mongodb. Until now, due to $limit queries, it took 1-10s to see the chat made inside the game in the meteor app.

But now everything is oplogged and we can really in chat in realtime!

That rocks!

Mitar

unread,
Mar 19, 2014, 7:57:08 PM3/19/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Hi!

Is it in 0.7.2 assured that Accounts.onLogin is called when
this.setUserId is called inside a method call?


Mitar
--
http://mitar.tnode.com/
https://twitter.com/mitar_m

Nick Martin

unread,
Mar 19, 2014, 8:55:43 PM3/19/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Hi Mitar,

Accounts.onLogin is a feature of the accounts packages. It is assured that if you do login via the accounts package functions, or custom functions registered with the accounts package (eg Accounts.registerLoginHandler), the hooks will be called.

However, this.setUserId is a livedata level call. You can write your own custom method that has nothing to do with accounts (in app where accounts isn't even loaded, for example) that calls this.setUserId and implements its own accounts-like features. In these cases the accounts hooks are not called.

Hope that clears things up,
-- Nick

Carl Littke

unread,
Mar 20, 2014, 1:06:28 PM3/20/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
We just deployed using oplog and 0.7.2, moving from only doing polling before. We have some queries using both limit and sort at the same time. With roughly the same amount of sessions the CPU load decreased by at least 50%, maybe as much as 80% and our incoming traffic decreased by 80% (we host mongo at mongohq so a lot of traffic went there). These numbers should of course be taken with a pinch of salt as we haven't done any load testing using identical environments (and to be honest its such a big difference that I wonder if I made some misstake when I read the graphs :) ), but it seems like the oplog improvements made a huge difference. Thanks a lot!

Gabriel Pugliese

unread,
Mar 22, 2014, 1:39:09 PM3/22/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
I'm trying to use Accounts.onLogin but it's raising the error (with accounts-facebook):
Uncaught TypeError: Object #<Object> has no method 'onLogin'

Code:
Accounts.onLogin(function () { Router.go('dashboard'); });



Gabriel Pugliese
CodersTV.com
@coderstv


--
You received this message because you are subscribed to the Google Groups "meteor-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meteor-talk...@googlegroups.com.

David Glasser

unread,
Mar 22, 2014, 2:01:51 PM3/22/14
to meteo...@googlegroups.com, meteo...@googlegroups.com

It is a server-side function.

You received this message because you are subscribed to the Google Groups "meteor-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email to meteor-core...@googlegroups.com.

To post to this group, send email to meteo...@googlegroups.com.
Visit this group at http://groups.google.com/group/meteor-core.

Gabriel Pugliese

unread,
Mar 22, 2014, 2:37:27 PM3/22/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Ah, ok. Ty



Gabriel Pugliese
CodersTV.com
@coderstv

James Gill

unread,
Mar 24, 2014, 3:44:04 AM3/24/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Upgraded to 0.7.2.  Went mostly ok, but had to track down a weird bug due to the fact that `this` in an autorun block is no longer the computation, but the enclosing `this`.  I'd be nice for that to be in the release notes! ;).  Also login handlers registered with Accounts.registerLoginHandler need to return an object with a userId key, instead of just a userId (although maybe that isn't a public API?).

Otherwise seems to work ok.  Thanks for the hard work!
James

On Saturday, March 15, 2014 12:56:27 AM UTC-7, Nick Martin wrote:

Mitar

unread,
Mar 24, 2014, 5:29:32 PM3/24/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Hi!

On Wed, Mar 19, 2014 at 5:55 PM, Nick Martin <n...@meteor.com> wrote:
> However, this.setUserId is a livedata level call. You can write your own
> custom method that has nothing to do with accounts (in app where accounts
> isn't even loaded, for example) that calls this.setUserId and implements its
> own accounts-like features. In these cases the accounts hooks are not
> called.

Could such hook be added?


Mitar

David Glasser

unread,
Mar 24, 2014, 11:06:16 PM3/24/14
to meteo...@googlegroups.com, meteo...@googlegroups.com
Did the docs ever specify the `this` value in an autorun block? I
don't think it was ever meant to be anything in particular.

And yes, the registerLoginHandler API change is in History.md
Reply all
Reply to author
Forward
0 new messages