Commit Graph

6237 Commits

Author SHA1 Message Date
Sashko Stubailo
c3bded9928 Un-rc version numbers for 1.0.5 2015-03-25 13:56:03 -07:00
David Glasser
7219c1eb53 bump for 1.0.5-rc.0
Note: we are doing a minor bump facebook rather than a major bump, even
though this is arguably backward-incompatible. But it's only reflecting
a backwards-incompatible change to reality, and we expect the upgrader
text to do a better job of expressing compatibility concerns than the
version number. There's no reason to make Atmosphere packages that
depend on facebook republish, as they are unlikely to need any changes
anyway (mostly, apps may).
2015-03-23 18:00:03 -07:00
David Glasser
bedebc1987 Use the Facebook 2.2 Graph API instead of 1.0.
Facebook is making a change on April 30th: all users of the previous
unversioned Facebook API will automatically start using the 2.0 API, and
the 1.0 API will be unavailable.  By upgrading your Meteor to include
this commit, you will be able to start adapting your app to the post-1.0
world now rather than next month.

Full information about the changes to Facebook's APIs can be found at
https://developers.facebook.com/docs/apps/upgrading

If you only use Facebook integration for login via accounts-facebook,
and don't use users' access tokens to access the Facebook API on their
behalf, then the only changes you are likely to observe are:

- The `id` returned by Facebook for users who had not previously used
  your app will be an "app-scoped ID". You cannot use these to directly
  correlate users between multiple apps (without using the Business
  Mapping API).  This does not affect users who have already logged in
  to your app, so they will continue to be able to access your app.

- Meteor asks for the `email` permission by default, and copies the
  `email` field from the `/me` object into the `serviceData.facebook`
  field on `Meteor.user()`, along with other fields which only require
  the `public_profile` permission. With 2.0, users can decline to grant
  all permissions other than `public_profile`, which means that you
  might not get their `email` address. You can use the `/me/permissions`
  API to tell if permissions were declined.

Additionally, if you are accessing other Facebook APIs using the
`access_token` returned via login, you should be aware that some
permissions have changed in Facebook Graph API 2.0 and newer. Most
notably, many operations involving friends need permissions such as
`user_friends` to be explicitly requested now.  Users can decline any
permission (other than `public_profile`).  Apps which need permissions
other than `public_profile`, `email`, and `user_friends` may need to
pass through a review stage before being fully activated.

To change your app to request new permissions such as `user_friends`,
specify the `requestPermissions` option to
`Meteor.loginWithFacebook` (if you implemented your own login UI) or to
`Accounts.ui.config` (if you are using the `accounts-ui` package).

Note that while Meteor will now always use the v2.2 API to fetch the
access token, it does appear that the access token can still be used to
access pre-v2.2 APIs.  For example, you can still use the access token
to run FQL queries, even though FQL was removed in API v2.1.

Fixes #3123.
2015-03-23 14:57:53 -07:00
David Glasser
9e2539bcd1 1.0.4.2 2015-03-20 11:13:06 -07:00
David Glasser
92ba69e860 1.0.4.1 2015-03-18 00:29:35 -07:00
David Glasser
4daaa76b12 METEOR@1.0.4 2015-03-17 13:06:07 -07:00
David Glasser
616649d492 1.0.4-rc.6 2015-03-17 12:22:32 -07:00
Sashko Stubailo
efdfe62331 Validate number of colons in package name on create
Instead of in the general package version parser
2015-03-17 10:56:33 -07:00
David Glasser
1d8e5f7a4e 1.0.4-rc.5 2015-03-16 12:31:50 -07:00
David Glasser
d770d81399 1.0.4-rc.4 2015-03-12 18:03:11 -07:00
Sashko Stubailo
c6ea68f9b3 Make meteor create --package not use prefix
It used to create a directory with an underscore instead of a colon
Now, it just removes the prefix.

In cases where the name of the package has more than one colon or starts or ends
witha colon, we report an error.
2015-03-12 17:57:27 -07:00
David Glasser
51b38a5a45 Test for Accounts.setPassword(u, p, {logout: false}) 2015-03-11 00:00:08 -07:00
David Glasser
1b779a7545 Style improvements to Accounts.setPassword(u, p, {logout: false}) 2015-03-10 23:55:13 -07:00
David Glasser
7ffc3a44b0 1.0.4-rc.3 2015-03-10 22:00:24 -07:00
David Greenspan
070ca69f9a Validate package names more strictly
In particular, ban leading `-`, trailing `.`, and `..` anywhere.

This backport commit drops the changes to constraint-solver and adds a
History.md note.
2015-03-10 15:20:36 -07:00
David Glasser
891a9c3893 1.0.4-rc.2 2015-03-10 11:49:25 -07:00
David Glasser
56b3dbd3b9 Fix cordova update plugin lost in merge conflict
This was from 2966337ea7, which somehow got reverted while resolving
merge commit 37f3230.
2015-03-10 11:44:56 -07:00
David Glasser
c72f20ccea Use correct symbol for Template
The blaze package defines Blaze.Template, not Template, and should find
it there.

(Apps tend to put `Template = Blaze.Template` globally on the client via
templating package, but that's not guaranteed, and doesn't happen on the
server.)
2015-03-09 17:14:44 -07:00
David Glasser
e7a9bdb507 1.0.4-rc.1 2015-03-09 16:20:50 -07:00
Tom Coleman
7733b584f1 Allow changing password without logging all users out. 2015-03-09 16:17:19 -07:00
David Glasser
d571e556a3 Revert "Merge branch 'websocket-compression-take-2' into devel"
This reverts commit 5d3cfa2d76, reversing
changes made to 2b466a9015.

Ah well, we tried to enable websocket compression again and ran into
more bugs.

First, newer versions of websocket-driver seem to sometimes send
duplicate close messages:
https://github.com/faye/faye-websocket-node/issues/41

This occurs whether or not deflate is actually used.

Second, in some circumstances permessage-deflate seems to completely
corrupt messages. This was reasonably easily observable by running
test-packages with Chrome, and seeing that sometimes (but not always) a
large number of bad JSON messages got printed to the client
console.  (Another symptom was that the total number of tests would be
larger than it should be, leading to messages like "Passed 1109 of
1153", presumably because the test name got corrupted in some status
messages.) https://github.com/faye/permessage-deflate-node/issues/4

See #3007.
2015-03-09 15:10:26 -07:00
Sashko Stubailo
3752766ff5 Re-add helpful changes from f2840103ca 2015-03-09 14:21:38 -07:00
Sashko Stubailo
7b8714da6e Revert "Tests for Template.currentData and Template.parentData"
This reverts commit f2840103ca.

Conflicts:
	packages/spacebars-tests/template_tests.html
	packages/spacebars-tests/template_tests.js
2015-03-09 14:21:38 -07:00
Sashko Stubailo
ed60db429c Change documentation for Template.currentData in events 2015-03-09 14:21:37 -07:00
Sashko Stubailo
5c7873dfa8 Revert "Make event handlers get called with target's view"
This reverts commit 72887bb0ee.
2015-03-09 14:21:37 -07:00
David Glasser
2a88b4fcf0 add some documentation: null 2015-03-05 23:04:28 -08:00
David Glasser
10ee6aeb10 use real versions of non-core modules 2015-03-05 22:55:19 -08:00
David Glasser
af0469da35 Bump other packages to -rc.0 2015-03-05 22:54:07 -08:00
David Glasser
4f3bdd29ae Publish non-prerelease npm-bcrypt/npm-node-aes-gcm
I am publishing this with Meteor 1.0.3.2.

(Maybe this will need to be bumped to _2 for Windows.)
2015-03-05 22:51:17 -08:00
David Glasser
873018df44 Minor version bumps to packages with new features
* accounts-base: client-side login hooks
* accounts-password: emailTemplates features
* autoupdate: reload via Node IPC messages (and SIGHUP)
* blaze: template-level subscriptions and onRendered/etc hooks
* ddp: client-side onStop callback, permessage-deflate, subscriptionId
  on subscription handles
* http: npmRequestOptions, HTTPInternals.NpmModules
* mongo: validated against 2.6, oplog-backlog,
  rawCollection/rawDatabase, MongoInternals.NpmModules
* reactive-dict/session: Session.set({k1: v1, k2: v2})
* templating: attributes on <body>
* webapp: WebAppInternals.NpmModules
2015-03-05 22:30:22 -08:00
David Glasser
b2132ee983 De-flake template-level subs test
Fixes #3859.
2015-03-05 22:20:26 -08:00
David Glasser
7ff27f4e17 Update more docs about onStop 2015-03-05 21:36:18 -08:00
sashko
7820fd2014 Include file in package 2015-03-05 20:16:33 -08:00
Sashko Stubailo
71b914a296 Add flushing buffers on process.exit to meteor package 2015-03-05 20:04:58 -08:00
sashko
59a6bef4aa Revert "Fix constraint solver test by removing process.exit"
This reverts commit 18e304b28c.
2015-03-05 19:58:51 -08:00
David Glasser
f65035e11a oplog: re-fetch on confusing modifiers
For example, 5ddf203 stops us from understanding $sets and $unsets with
empty field parts, but pre-2.6 MongoDB could generate them.  (And even
post-2.6 may be able to generate $unsets with bad field names, but it's
not important for us to match that behavior since with Minimongo you
shouldn't be able to put them in in the first place.)
2015-03-05 19:56:42 -08:00
David Glasser
d7b7ab6474 minimongo: Disallow setting empty fields
This matches the MongoDB 2.6 behavior:
https://github.com/mongodb/mongo/commit/c18c7b22d
2015-03-05 19:56:41 -08:00
sashko
18e304b28c Fix constraint solver test by removing process.exit 2015-03-05 19:46:33 -08:00
David Glasser
cb7664c220 Always apply projection to docs, not diffs
Projection functions act on *documents*, not the diffs that are passed
to changed callbacks.  For example, a projection `{'a.b': 1}` applied to
the *document* `{a: undefined}` will result in `{}`, but the *diff*
of `{a: undefined}` on a query with that projection should still result
in a `changed` callback with that diff being invoked.

Refactor various parts of minimongo to always have a projectionFn for
each observed query (perhaps a trivial one).

Pass the projection into _diffQueryChanges so that it can apply the
projection *before* taking the diff, in the two cases in Minimongo which
use _diffQueryChanges instead of direct application. (We could instead
make the query's results and resultsSnapshot be projected, but Minimongo
currently relies on the fact that these data structures alias the
documents stored in the collection.)

Stop applying the projection to the diffs in changed via
wrapCallback. (We could still use wrapCallback to apply the projection
for added/addedBefore calls, but it seems more consistent to use the
same mechanisms for added that we use for changed.

Fixes #3800.  Fixes #2254. Fixes #3571.
2015-03-05 18:41:38 -08:00
Slava Kim
16d516522f Apply fields projection on documents before diffing them for Minimongo's changed event.
This change actually introduces another layer of projections before diffing, in
addition to more projection after the diffing, on the result.

I didn't figure out why, but the tests fail if you remove either of them.

Adds tests. Fixes #2254.
2015-03-05 18:41:38 -08:00
David Glasser
3674c12fc7 Fix server side of #3571 2015-03-05 18:41:38 -08:00
David Glasser
456d06bde3 Failing test for #3571
This fails on both server and client.

This is also related to #2254.
2015-03-05 18:41:37 -08:00
David Glasser
82bbcd112c run a test on the client too 2015-03-05 18:41:37 -08:00
David Glasser
f76c1462c2 Update version in error message 2015-03-05 17:35:54 -08:00
Daniel Dent
831bd3ff46 Only one configuration should exist per service
Fixes #3514. Follow-up to pull request #3290.
2015-03-05 17:35:22 -08:00
David Glasser
ef9671e705 Document direct access features in READMEs 2015-03-05 17:12:37 -08:00
David Glasser
c4d9ba573c Document npmRequestOptions 2015-03-05 17:12:37 -08:00
David Glasser
63a0076305 mongo: provide direct access to node driver db
Specifically, Mongo.Collection objects on the server now have
rawCollection and rawDatabase methods.

You can use MongoInternals.NpmModules.mongodb.version to tell what
version of the mongodb npm module is the backend for HTTP.call.  This
version may change incompatibly from version to version of Meteor; use
at your own risk.  (For example, we expect to upgrade from the 1.4.x
series to the 2.x series in the not-too-distant future.)

Fixes #3640.
2015-03-05 17:12:37 -08:00
David Glasser
cfc1699b0c Add direct access to mongodb module from mongo
Addresses #3640.
2015-03-05 17:12:36 -08:00
David Glasser
1002349edb Add direct access to connect module from webapp 2015-03-05 17:12:36 -08:00