merging from master

This commit is contained in:
ekatek
2014-09-25 19:45:48 -07:00
82 changed files with 2498 additions and 2115 deletions

View File

@@ -41,6 +41,7 @@ GITHUB: marcandre <github@marc-andre.ca>
GITHUB: mart-jansink <m.jansink@gmail.com>
GITHUB: MaximDubrovin <maxxdubrovin@gmail.com>
GITHUB: meawoppl <meawoppl@gmail.com>
GITHUB: meonkeys <haircut@gmail.com>
GITHUB: michaelbishop <michael@michaelsplace.net>
GITHUB: mitar <mitar.git@tnode.com>
GITHUB: mitar <mitar.github@tnode.com>
@@ -50,6 +51,7 @@ GITHUB: nathan-muir <ndmuir@gmail.com>
GITHUB: Neftedollar <oildollar@gmail.com>
GITHUB: paulswartz <paulswartz@gmail.com>
GITHUB: Pent <jon@empire5design.com>
GITHUB: prapicault <pascal@rapicault.net>
GITHUB: queso <joshua.owens@gmail.com>
GITHUB: rcy <rcyeske@gmail.com>
GITHUB: RichardLitt <richard.littauer@gmail.com>
@@ -64,11 +66,15 @@ GITHUB: thatneat <thatneat@users.noreply.github.com>
GITHUB: timhaines <tmhaines@gmail.com>
GITHUB: tmeasday <tom@thesnail.org>
GITHUB: twhy <tom.wanghaiyi@gmail.com>
GITHUB: waitingkuo <waitingkuo0527@gmail.com>
GITHUB: wulfmeister <wulfmeister@users.noreply.github.com>
GITHUB: yeputons <egor.suvorov@gmail.com>
GITHUB: zol <zol@percolatestudio.com>
METEOR: arbesfeld <arbesfeld@gmail.com>
METEOR: avital <avital@thewe.net>
METEOR: ben <ben@meteor.com>
METEOR: ben <bn@cs.stanford.edu>
METEOR: debergalis <matt@meteor.com>
METEOR: dgreensp <dgreenspan@alum.mit.edu>
METEOR: ekatek <ekate@meteor.com>

View File

@@ -13,6 +13,74 @@
of `Template.someTemplate.helpers(...)`. Using the older syntax still
works, but it prints a deprecation warning to the console.
## v0.9.3
### More Package Version Number Flexibility
* Packages now support relying on multiple major versions of their
dependencies (eg `blaze@1.0.0 || 2.0.0`). Additionally, you can now
call `api.versionsFrom(<release>)` multiple times, or with an array
(eg `api.versionsFrom([<release1>, <release2>])`. Meteor will
interpret this to mean that the package will work with packages from
all the listed releases.
* Support for "wrapped package" version numbers. There is now a `_` field
in version numbers. The `_` field must be an integer, and versions with
the `_` are sorted after versions without. This allows using the
upstream version number as the Meteor package version number and being
able to publish multiple version of the Meteor package (e.g.
`jquery@1.11.1_2`).
Note: packages using the `||` operator or the `_` symbol in their
versions or dependencies will be invisible to pre-0.9.3 users. Meteor
versions 0.9.2 and before do not understand the new version formats and
will not be able to use versions of packages that use the new features.
### Other Command-line Tool Improvements
* More detailed constraint solver output. Meteor now tells you which
constraints prevent upgrading or adding new packages. This will make
it much easier to update your app to new versions.
* Better handling of pre-release versions (e.g. versions with
`-`). Pre-release packages will now be included in an app if and only
if there is no way to meet the app's constraints without using a
pre-release package.
* Add `meteor admin set-unmigrated` to allow maintainers to hide
pre-0.9.0 packages in `meteor search` and `meteor show`. This will not
stop users from continuing to use the package, but it helps prevent
new users from finding old non-functional packages.
* Progress bars for time-intensive operations, like downloading large
packages.
### Other Changes
* Offically support `Meteor.wrapAsync` (renamed from
`Meteor._wrapAsync`). Additionally, `Meteor.wrapAsync` now lets you
pass an object to bind as `this` in the wrapped call. See
https://docs.meteor.com/#meteor_wrapasync.
* The `reactive-dict` package now allows an optional name argument to
enable data persistence during hot code push.
Patches by Github users evliu, meonkeys, mitar, mizzao, mquandalle,
prapicault, waitingkuo, wulfmeister.
## v0.9.2.2
* Fix regression in 0.9.2 that prevented some users from accessing the
Meteor development server in their browser. Specifically, 0.9.2
unintentionally changed the development mode server's default bind
host to localhost instead of 0.0.0.0. #2596
>>>>>>> master
## v0.9.2.2

View File

@@ -95,6 +95,8 @@ css-parse: https://github.com/reworkcss/css-parse
css-stringify: https://github.com/reworkcss/css-stringify
callsite: https://github.com/visionmedia/callsite
indexof: https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz
escape-html: https://github.com/component/escape-html
express: https://github.com/strongloop/express
----------
Copyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>
@@ -102,6 +104,7 @@ Copyright (c) 2011 TJ Holowaychuk <tj@vision-media.ca>
Copyright (c) 2012 TJ Holowaychuk <tj@vision-media.ca>
Copyright (c) 2013 TJ Holowaychuk <tj@vision-media.ca>
Copyright (c) 2011, 2013 TJ Holowaychuk <tj@vision-media.ca>
Copyright (c) 2009-2014 TJ Holowaychuk <tj@vision-media.ca>
----------
@@ -328,6 +331,7 @@ tty-browserify: https://github.com/substack/tty-browserify
typedarray: https://github.com/substack/typedarray
vm-browserify: https://github.com/substack/vm-browserify
wordwrap: https://github.com/substack/node-wordwrap
yargs: https://github.com/chevex/yargs
----------
Copyright 2010, 2011, 2012, 2013 James Halliday (mail@substack.net)
@@ -876,6 +880,74 @@ Modifications made by the following entities are licensed as above:
- Eloy Duran, Fingertips <eloy@fngtps.com>
----------
accepts: https://github.com/jshttp/accepts
merge-descriptors: https://github.com/component/merge-descriptors
type-is: https://github.com/jshttp/type-is
----------
Copyright (c) 2013 Jonathan Ong me@jongleberry.com
Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
----------
parseurl: https://github.com/expressjs/parseurl
----------
Copyright (c) 2014 Jonathan Ong <me@jongleberry.com>
Copyright (c) 2014 Douglas Christopher Wilson <doug@somethingdoug.com>
----------
serve-static: https://github.com/expressjs/serve-static
----------
Copyright (c) 2010 Sencha Inc.
Copyright (c) 2011 LearnBoost
Copyright (c) 2011 TJ Holowaychuk
Copyright (c) 2014 Douglas Christopher Wilson
----------
negotiator: https://github.com/jshttp/negotiator
----------
Original "Negotiator" program Copyright Federico Romero
Port to JavaScript Copyright Isaac Z. Schlueter
----------
options: https://github.com/einaros/options.js
tinycolor: https://github.com/einaros/tinycolor
ws: https://github.com/einaros/ws
----------
Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>
Copyright (c) 2012 Einar Otto Stangvik <einaros@gmail.com>
----------
path-to-regexp: https://github.com/component/path-to-regexp
----------
Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com)
----------
truncate: https://github.com/FGRibreau/node-truncate
----------
Copyright (c) 2013 Francois-Guillaume Ribreau
----------
utils-merge: https://github.com/jaredhanson/utils-merge
----------
Copyright (c) 2013 Jared Hanson
==============
Apache License
@@ -1997,6 +2069,14 @@ Except where noted, this license applies to any and all software
programs and associated documentation files created by the
Original Author, when distributed with the Software.
----------
strong-data-uri: https://github.com/strongloop/strong-data-uri
----------
Redistributed under the terms of the Artistic License, version 2.0.
http://opensource.org/licenses/Artistic-2.0
----------
browserify: https://github.com/substack/node-browserify

View File

@@ -1 +1 @@
METEOR@0.9.2.2
METEOR@0.9.3

View File

@@ -1,59 +1,58 @@
appcache@1.0.1
application-configuration@1.0.2
autoupdate@1.1.0
autoupdate@1.1.1
base64@1.0.0
binary-heap@1.0.0
blaze-tools@1.0.0
blaze@2.0.0
blaze@2.0.1
boilerplate-generator@1.0.0
callback-hook@1.0.0
check@1.0.0
check@1.0.1
code-prettify@1.0.0
coffeescript@1.0.3
ctl-helper@1.0.3
ctl@1.0.1
ddp@1.0.8
deps@1.0.3
ejson@1.0.2
ddp@1.0.9
deps@1.0.4
ejson@1.0.3
fastclick@1.0.0
follower-livedata@1.0.1
geojson-utils@1.0.0
html-tools@1.0.0
html-tools@1.0.1
htmljs@1.0.1
http@1.0.5
http@1.0.6
id-map@1.0.0
jquery-waypoints@1.0.0
jquery@1.0.0
json@1.0.0
less@1.0.8
livedata@1.0.9
less@1.0.9
livedata@1.0.10
logging@1.0.3
markdown@1.0.1
meteor-platform@1.1.0
meteor@1.1.0
meteor-platform@1.1.1
meteor@1.1.1
minifiers@1.1.0
minimongo@1.0.3
mobile-status-bar@1.0.0
mongo@1.0.5
mongo@1.0.6
observe-sequence@1.0.2
ordered-dict@1.0.0
random@1.0.0
reactive-dict@1.0.2
reactive-var@1.0.1
reactive-dict@1.0.3
reactive-var@1.0.2
reload-safetybelt@1.0.0
reload@1.1.0
retry@1.0.0
routepolicy@1.0.1
session@1.0.1
session@1.0.2
showdown@1.0.1
spacebars-compiler@1.0.2
spacebars@1.0.1
spacebars@1.0.2
spiderable@1.0.3
standard-app-packages@1.0.1
templating@1.0.6
standard-app-packages@1.0.2
templating@1.0.7
tracker@1.0.2
ui@1.0.2
ui@1.0.3
underscore@1.0.0
url@1.0.0
webapp-hashing@1.0.0
webapp@1.1.1
webapp@1.1.2

View File

@@ -148,7 +148,9 @@ can add multiple packages with one command
Optionally, adds version constraints. Running `meteor add package@1.1.0` will
add the package at version `1.1.0` or higher (but not `2.0.0` or higher). If you
want to use version `1.1.0` exactly, use `meteor add package@=1.1.0`.
want to use version `1.1.0` exactly, use `meteor add package@=1.1.0`. You can also
'or' constraints together: for example, '=1.0.0 || =2.0.1' means either 1.0.0 (exactly)
or 2.0.1 (exactly).
To remove a version constraint for a specific package, run `meteor add` again
without specifying a version. For example above, to stop using version `1.1.0`

View File

@@ -790,6 +790,12 @@ things). However, we will still write the new versions.json file.
{{/note}}
Meteor uses extended semver versioning for its packages: that means that the version
number has three parts separated by dots: major version, minor version and patch version
(for example: 1.2.3) with an optional pre-release version. You can read more about it here
(www.semver.org). Additionally, because some meteor packages wrap external libraries,
Meteor supports the convention of using _ to denote a wrap number.
You can read more about [`package.js`](#packagejs) files in the API
section.

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,6 @@
Template.headline.helpers({
release: function () {
return Meteor.release ? "0.9.2.2" : "(checkout)";
}
});
Template.headline.release = function () {
return Meteor.release ? "0.9.3" : "(checkout)";
};
Meteor.startup(function () {
// XXX this is broken by the new multi-page layout. Also, it was

View File

@@ -1 +1 @@
METEOR@0.9.2.2
METEOR@0.9.3

View File

@@ -1,52 +1,52 @@
application-configuration@1.0.2
autopublish@1.0.0
autoupdate@1.1.0
autoupdate@1.1.1
base64@1.0.0
binary-heap@1.0.0
blaze-tools@1.0.0
blaze@2.0.0
blaze@2.0.1
boilerplate-generator@1.0.0
callback-hook@1.0.0
check@1.0.0
check@1.0.1
ctl-helper@1.0.3
ctl@1.0.1
ddp@1.0.8
deps@1.0.3
ejson@1.0.2
ddp@1.0.9
deps@1.0.4
ejson@1.0.3
fastclick@1.0.0
follower-livedata@1.0.1
geojson-utils@1.0.0
html-tools@1.0.0
html-tools@1.0.1
htmljs@1.0.1
http@1.0.5
http@1.0.6
id-map@1.0.0
insecure@1.0.0
jquery@1.0.0
json@1.0.0
livedata@1.0.9
livedata@1.0.10
logging@1.0.3
meteor-platform@1.1.0
meteor@1.1.0
meteor-platform@1.1.1
meteor@1.1.1
minifiers@1.1.0
minimongo@1.0.3
mobile-status-bar@1.0.0
mongo@1.0.5
mongo@1.0.6
observe-sequence@1.0.2
ordered-dict@1.0.0
random@1.0.0
reactive-dict@1.0.2
reactive-var@1.0.1
reactive-dict@1.0.3
reactive-var@1.0.2
reload@1.1.0
retry@1.0.0
routepolicy@1.0.1
session@1.0.1
session@1.0.2
spacebars-compiler@1.0.2
spacebars@1.0.1
standard-app-packages@1.0.1
templating@1.0.6
spacebars@1.0.2
standard-app-packages@1.0.2
templating@1.0.7
tracker@1.0.2
ui@1.0.2
ui@1.0.3
underscore@1.0.0
url@1.0.0
webapp-hashing@1.0.0
webapp@1.1.1
webapp@1.1.2

View File

@@ -1,2 +0,0 @@
android
ios

View File

@@ -1 +1 @@
METEOR@0.9.2.2
METEOR@0.9.3

View File

@@ -1,52 +1,52 @@
application-configuration@1.0.2
autopublish@1.0.0
autoupdate@1.1.0
autoupdate@1.1.1
base64@1.0.0
binary-heap@1.0.0
blaze-tools@1.0.0
blaze@2.0.0
blaze@2.0.1
boilerplate-generator@1.0.0
callback-hook@1.0.0
check@1.0.0
check@1.0.1
ctl-helper@1.0.3
ctl@1.0.1
ddp@1.0.8
deps@1.0.3
ejson@1.0.2
ddp@1.0.9
deps@1.0.4
ejson@1.0.3
fastclick@1.0.0
follower-livedata@1.0.1
geojson-utils@1.0.0
html-tools@1.0.0
html-tools@1.0.1
htmljs@1.0.1
http@1.0.5
http@1.0.6
id-map@1.0.0
insecure@1.0.0
jquery@1.0.0
json@1.0.0
livedata@1.0.9
livedata@1.0.10
logging@1.0.3
meteor-platform@1.1.0
meteor@1.1.0
meteor-platform@1.1.1
meteor@1.1.1
minifiers@1.1.0
minimongo@1.0.3
mobile-status-bar@1.0.0
mongo@1.0.5
mongo@1.0.6
observe-sequence@1.0.2
ordered-dict@1.0.0
random@1.0.0
reactive-dict@1.0.2
reactive-var@1.0.1
reactive-dict@1.0.3
reactive-var@1.0.2
reload@1.1.0
retry@1.0.0
routepolicy@1.0.1
session@1.0.1
session@1.0.2
spacebars-compiler@1.0.2
spacebars@1.0.1
standard-app-packages@1.0.1
templating@1.0.6
spacebars@1.0.2
standard-app-packages@1.0.2
templating@1.0.7
tracker@1.0.2
ui@1.0.2
ui@1.0.3
underscore@1.0.0
url@1.0.0
webapp-hashing@1.0.0
webapp@1.1.1
webapp@1.1.2

View File

@@ -1 +1 @@
METEOR@0.9.2.2
METEOR@0.9.3

View File

@@ -1,48 +1,48 @@
accounts-base@1.1.0
accounts-facebook@1.0.0
accounts-oauth@1.1.0
accounts-password@1.0.1
accounts-twitter@1.0.0
accounts-ui-unstyled@1.1.1
accounts-ui@1.1.0
accounts-base@1.1.1
accounts-facebook@1.0.1
accounts-oauth@1.1.1
accounts-password@1.0.2
accounts-twitter@1.0.1
accounts-ui-unstyled@1.1.2
accounts-ui@1.1.1
application-configuration@1.0.2
audit-argument-checks@1.0.0
autoupdate@1.1.0
autoupdate@1.1.1
base64@1.0.0
binary-heap@1.0.0
blaze-tools@1.0.0
blaze@2.0.0
blaze@2.0.1
boilerplate-generator@1.0.0
bootstrap@1.0.1
callback-hook@1.0.0
check@1.0.0
check@1.0.1
ctl-helper@1.0.3
ctl@1.0.1
d3@1.0.0
ddp@1.0.8
deps@1.0.3
ejson@1.0.2
email@1.0.2
ddp@1.0.9
deps@1.0.4
ejson@1.0.3
email@1.0.3
facebook@1.1.0
fastclick@1.0.0
follower-livedata@1.0.1
geojson-utils@1.0.0
html-tools@1.0.0
html-tools@1.0.1
htmljs@1.0.1
http@1.0.5
http@1.0.6
id-map@1.0.0
jquery@1.0.0
json@1.0.0
less@1.0.8
livedata@1.0.9
less@1.0.9
livedata@1.0.10
localstorage@1.0.0
logging@1.0.3
meteor-platform@1.1.0
meteor@1.1.0
meteor-platform@1.1.1
meteor@1.1.1
minifiers@1.1.0
minimongo@1.0.3
mobile-status-bar@1.0.0
mongo@1.0.5
mongo@1.0.6
npm-bcrypt@0.7.7
oauth1@1.1.0
oauth2@1.1.0
@@ -50,23 +50,23 @@ oauth@1.1.0
observe-sequence@1.0.2
ordered-dict@1.0.0
random@1.0.0
reactive-dict@1.0.2
reactive-var@1.0.1
reactive-dict@1.0.3
reactive-var@1.0.2
reload@1.1.0
retry@1.0.0
routepolicy@1.0.1
service-configuration@1.0.1
session@1.0.1
session@1.0.2
sha@1.0.0
spacebars-compiler@1.0.2
spacebars@1.0.1
spacebars@1.0.2
srp@1.0.0
standard-app-packages@1.0.1
templating@1.0.6
standard-app-packages@1.0.2
templating@1.0.7
tracker@1.0.2
twitter@1.1.0
ui@1.0.2
ui@1.0.3
underscore@1.0.0
url@1.0.0
webapp-hashing@1.0.0
webapp@1.1.1
webapp@1.1.2

View File

@@ -1 +1 @@
METEOR@0.9.2.2
METEOR@0.9.3

View File

@@ -1,53 +1,53 @@
application-configuration@1.0.2
autoupdate@1.1.0
autoupdate@1.1.1
backbone@1.0.0
base64@1.0.0
binary-heap@1.0.0
blaze-tools@1.0.0
blaze@2.0.0
blaze@2.0.1
boilerplate-generator@1.0.0
callback-hook@1.0.0
check@1.0.0
check@1.0.1
ctl-helper@1.0.3
ctl@1.0.1
ddp@1.0.8
deps@1.0.3
ejson@1.0.2
ddp@1.0.9
deps@1.0.4
ejson@1.0.3
fastclick@1.0.0
follower-livedata@1.0.1
geojson-utils@1.0.0
html-tools@1.0.0
html-tools@1.0.1
htmljs@1.0.1
http@1.0.5
http@1.0.6
id-map@1.0.0
insecure@1.0.0
jquery@1.0.0
json@1.0.0
livedata@1.0.9
livedata@1.0.10
logging@1.0.3
meteor-platform@1.1.0
meteor@1.1.0
meteor-platform@1.1.1
meteor@1.1.1
minifiers@1.1.0
minimongo@1.0.3
mobile-status-bar@1.0.0
mongo@1.0.5
mongo@1.0.6
observe-sequence@1.0.2
ordered-dict@1.0.0
random@1.0.0
reactive-dict@1.0.2
reactive-var@1.0.1
reactive-dict@1.0.3
reactive-var@1.0.2
reload@1.1.0
retry@1.0.0
routepolicy@1.0.1
session@1.0.1
session@1.0.2
spacebars-compiler@1.0.2
spacebars@1.0.1
spacebars@1.0.2
spiderable@1.0.3
standard-app-packages@1.0.1
templating@1.0.6
standard-app-packages@1.0.2
templating@1.0.7
tracker@1.0.2
ui@1.0.2
ui@1.0.3
underscore@1.0.0
url@1.0.0
webapp-hashing@1.0.0
webapp@1.1.1
webapp@1.1.2

View File

@@ -1 +1 @@
METEOR@0.9.2.2
METEOR@0.9.3

View File

@@ -1,51 +1,51 @@
application-configuration@1.0.2
autoupdate@1.1.0
autoupdate@1.1.1
base64@1.0.0
binary-heap@1.0.0
blaze-tools@1.0.0
blaze@2.0.0
blaze@2.0.1
boilerplate-generator@1.0.0
callback-hook@1.0.0
check@1.0.0
check@1.0.1
ctl-helper@1.0.3
ctl@1.0.1
ddp@1.0.8
deps@1.0.3
ejson@1.0.2
ddp@1.0.9
deps@1.0.4
ejson@1.0.3
fastclick@1.0.0
follower-livedata@1.0.1
geojson-utils@1.0.0
html-tools@1.0.0
html-tools@1.0.1
htmljs@1.0.1
http@1.0.5
http@1.0.6
id-map@1.0.0
insecure@1.0.0
jquery@1.0.0
json@1.0.0
livedata@1.0.9
livedata@1.0.10
logging@1.0.3
meteor-platform@1.1.0
meteor@1.1.0
meteor-platform@1.1.1
meteor@1.1.1
minifiers@1.1.0
minimongo@1.0.3
mobile-status-bar@1.0.0
mongo@1.0.5
mongo@1.0.6
observe-sequence@1.0.2
ordered-dict@1.0.0
random@1.0.0
reactive-dict@1.0.2
reactive-var@1.0.1
reactive-dict@1.0.3
reactive-var@1.0.2
reload@1.1.0
retry@1.0.0
routepolicy@1.0.1
session@1.0.1
session@1.0.2
spacebars-compiler@1.0.2
spacebars@1.0.1
standard-app-packages@1.0.1
templating@1.0.6
spacebars@1.0.2
standard-app-packages@1.0.2
templating@1.0.7
tracker@1.0.2
ui@1.0.2
ui@1.0.3
underscore@1.0.0
url@1.0.0
webapp-hashing@1.0.0
webapp@1.1.1
webapp@1.1.2

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "A user account system",
version: "1.1.0"
version: "1.1.1"
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Login service for Facebook accounts",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function(api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Login service for Github accounts",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function(api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Login service for Google accounts",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function(api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Login service for Meetup accounts",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function(api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Login service for Meteor developer accounts",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Common code for OAuth-based login services",
version: "1.1.0"
version: "1.1.1"
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Password support for accounts",
version: "1.0.1"
version: "1.0.2"
});
Package.on_use(function(api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Login service for Twitter accounts",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function(api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Unstyled version of login widgets",
version: "1.1.1"
version: "1.1.2"
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Simple templates to add login widgets to an app",
version: "1.1.0"
version: "1.1.1"
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Login service for Sina Weibo accounts",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function(api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Update the client when new client code is available",
version: '1.1.0'
version: '1.1.1'
});
Cordova.depends({

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Meteor Reactive Templating library",
version: '2.0.0'
version: '2.0.1'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Configure content security policies",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Restrict which websites can frame your app",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Configure security policies enforced by the browser",
version: "1.0.0"
version: "1.0.1"
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Check whether a value matches a pattern",
version: '1.0.0'
version: '1.0.1'
});
Package.on_use(function (api) {

View File

@@ -327,7 +327,7 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - sinatra",
var args = splitArgs({
'capistrano': '2.14.2',
'data_mapper': '1.2.0',
'data-mapper': '1.2.0',
'dm-core': '1.2.0',
'dm-sqlite-adapter': '1.2.0',
'dm-timestamps': '1.2.0',
@@ -364,11 +364,11 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
var args = splitArgs({
'rails': '4.0.0',
'protected_attributes': null,
'protected-attributes': null,
'rails-observers': null,
'actionpack-page_caching': null,
'actionpack-action_caching': null,
'default_value_for': '3.0.0',
'actionpack-page-caching': null,
'actionpack-action-caching': null,
'default-value-for': '3.0.0',
'mysql2': null,
'devise': '3.0.4',
'devise-async': '0.8.0',
@@ -376,14 +376,14 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
'omniauth-google-oauth2': null,
'omniauth-twitter': null,
'omniauth-github': null,
'gitlab_git': '5.7.1',
'gitlab-git': '5.7.1',
'gitlab-grack': '2.0.0',
'gitlab_omniauth-ldap': '1.0.4',
'gitlab-omniauth-ldap': '1.0.4',
'gitlab-gollum-lib': '1.1.0',
'gitlab-linguist': '3.0.0',
'grape': '0.6.1',
'rack-cors': null,
'email_validator': '1.4.0',
'email-validator': '1.4.0',
'stamp': null,
'enumerize': null,
'kaminari': '0.15.1',
@@ -397,7 +397,7 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
'asciidoctor': null,
'unicorn': '4.6.3',
'unicorn-worker-killer': null,
'state_machine': null,
'state-machine': null,
'acts-as-taggable-on': null,
'slim': null,
'sinatra': null,
@@ -406,13 +406,13 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
'colored': null,
'settingslogic': null,
'foreman': null,
'version_sorter': null,
'version-sorter': null,
'redis-rails': null,
'tinder': '1.9.2',
'hipchat': '0.14.0',
'gemnasium-gitlab-service': '0.2.1',
'slack-notifier': '0.2.0',
'd3_rails': '3.1.4',
'd3-rails': '3.1.4',
'underscore-rails': '1.4.4',
'sanitize': null,
'rack-attack': null,
@@ -431,7 +431,7 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
'raphael-rails': '2.1.2',
'bootstrap-sass': '3.0.0',
'font-awesome-rails': '3.2.0',
'gitlab_emoji': '0.0.1',
'gitlab-emoji': '0.0.1',
'gon': '5.0.0'
});
@@ -443,11 +443,11 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
var args = splitArgs({
'rails': '4.0.0',
'protected_attributes': null,
'protected-attributes': null,
'rails-observers': null,
'actionpack-page_caching': null,
'actionpack-action_caching': null,
'default_value_for': '3.0.0',
'actionpack-page-caching': null,
'actionpack-action-caching': null,
'default-value-for': '3.0.0',
'mysql2': null,
'devise': '3.0.4',
'devise-async': '0.8.0',
@@ -455,14 +455,14 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
'omniauth-google-oauth2': null,
'omniauth-twitter': null,
'omniauth-github': null,
'gitlab_git': '5.7.1',
'gitlab-git': '5.7.1',
'gitlab-grack': '2.0.0',
'gitlab_omniauth-ldap': '1.0.4',
'gitlab-omniauth-ldap': '1.0.4',
'gitlab-gollum-lib': '1.1.0',
'gitlab-linguist': '3.0.0',
'grape': '0.6.1',
'rack-cors': null,
'email_validator': '1.4.0',
'email-validator': '1.4.0',
'stamp': null,
'enumerize': null,
'kaminari': '0.15.1',
@@ -476,7 +476,7 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
'asciidoctor': null,
'unicorn': '4.6.3',
'unicorn-worker-killer': null,
'state_machine': null,
'state-machine': null,
'acts-as-taggable-on': null,
'slim': null,
'sinatra': null,
@@ -485,13 +485,13 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
'colored': null,
'settingslogic': null,
'foreman': null,
'version_sorter': null,
'version-sorter': null,
'redis-rails': null,
'tinder': '1.9.2',
'hipchat': '0.14.0',
'gemnasium-gitlab-service': '0.2.1',
'slack-notifier': '0.2.0',
'd3_rails': '3.1.4',
'd3-rails': '3.1.4',
'underscore-rails': '1.4.4',
'sanitize': null,
'rack-attack': null,
@@ -510,7 +510,7 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
'raphael-rails': '2.1.2',
'bootstrap-sass': '3.0.0',
'font-awesome-rails': '3.2.0',
'gitlab_emoji': '0.0.1',
'gitlab-emoji': '0.0.1',
'gon': '5.0.0'
});
@@ -519,7 +519,7 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
"actionpack": "4.0.0",
"activemodel": "4.0.0",
"activerecord": "4.0.0",
"activerecord-deprecated_finders": "1.0.3",
"activerecord-deprecated-finders": "1.0.3",
"activesupport": "4.0.0",
"arel": "4.0.2",
"asciidoctor": "0.1.4",
@@ -530,8 +530,8 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
"coffee-rails": "4.0.1",
"coffee-script": "2.2.0",
"coffee-script-source": "1.7.0",
"d3_rails": "3.1.4",
"default_value_for": "3.0.0",
"d3-rails": "3.1.4",
"default-value-for": "3.0.0",
"devise": "3.0.4",
"devise-async": "0.8.0",
"erubis": "2.7.0",
@@ -551,7 +551,7 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
"mail": "2.5.4",
"mime-types": "1.25.1",
"minitest": "4.7.5",
"multi_json": "1.9.0",
"multi-json": "1.9.0",
"multipart-post": "2.0.0",
"oauth": "0.4.7",
"oauth2": "0.8.1",
@@ -561,10 +561,10 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
"omniauth-oauth": "1.0.1",
"omniauth-oauth2": "1.1.1",
"omniauth-twitter": "1.0.1",
"orm_adapter": "0.5.0",
"orm-adapter": "0.5.0",
"polyglot": "0.3.4",
"posix-spawn": "0.3.8",
"protected_attributes": "1.0.3",
"protected-attributes": "1.0.3",
"rack": "1.5.2",
"rack-test": "0.6.2",
"rails": "4.0.0",
@@ -581,7 +581,7 @@ runBenchmarks && Tinytest.add("constraint solver - benchmark on gems - rails, gi
"sprockets-rails": "2.0.1",
"therubyracer": "0.12.1",
"thor": "0.19.1",
"thread_safe": "0.3.1",
"thread-safe": "0.3.1",
"tilt": "1.4.1",
"treetop": "1.4.15",
"turbolinks": "2.2.0",

View File

@@ -177,7 +177,7 @@ ConstraintSolver.PackagesResolver.prototype.resolve = function (
self._ensurePackageInfoLoaded(packageName);
});
_.each(constraints, function (constraint) {
self._ensurePackageInfoLoaded(constraint.packageName);
self._ensurePackageInfoLoaded(constraint.name);
});
_.each(options.previousSolution, function (version, packageName) {
self._ensurePackageInfoLoaded(packageName);

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Given the set of the constraints, picks a satisfying configuration",
version: "1.0.13"
version: "1.0.14"
});
Npm.depends({

View File

@@ -418,16 +418,11 @@ ConstraintSolver.Constraint.prototype.isSatisfied = function (
throw Error("Unknown constraint type: " + currConstraint.type);
}
// If you are asking for a pre-release, you need to get exactly that one.
// (@1.2.3-rc1 does not match 1.2.4.)
if (/-/.test(currConstraint.version)) {
return currConstraint.version === candidateUV.version;
}
// If you're not asking for a pre-release (and you are not in pre-releases-OK
// mode), you'll only get it if it was a top level explicit mention (eg, in
// the release).
if (/-/.test(candidateUV.version) && !resolveContext.useRCsOK) {
if (!/-/.test(currConstraint.version) &&
/-/.test(candidateUV.version) && !resolveContext.useRCsOK) {
if (currConstraint.version === candidateUV.version)
return true;
if (!_.has(resolveContext.topLevelPrereleases, self.name) ||

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Meteor's latency-compensated distributed data framework",
version: '1.0.8'
version: '1.0.9'
});
// We use 'faye-websocket' for connections in server-to-server DDP, mostly

View File

@@ -2,7 +2,7 @@
Package.describe({
summary: "Deprecated: Use the 'tracker' package instead.",
version: '1.0.3'
version: '1.0.4'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Extended and Extensible JSON library",
version: '1.0.2'
version: '1.0.3'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Send email messages",
version: "1.0.2"
version: "1.0.3"
});
Npm.depends({

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Standards-compliant HTML tools",
version: '1.0.0'
version: '1.0.1'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Make HTTP calls to remote servers",
version: '1.0.5'
version: '1.0.6'
});
Npm.depends({request: "2.33.0"});

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "The dynamic stylesheet language",
version: "1.0.8"
version: "1.0.9"
});
Package._transitional_registerBuildPlugin({

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Moved to the 'ddp' package",
version: '1.0.9'
version: '1.0.10'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Include a standard set of Meteor packages in your app",
version: '1.1.0'
version: '1.1.1'
});
Package.on_use(function(api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "The Meteor command-line tool",
version: '1.0.31'
version: '1.0.32'
});
Package.includeTool();

View File

@@ -2,7 +2,7 @@
Package.describe({
summary: "Core Meteor environment",
version: '1.1.0'
version: '1.1.1'
});
Package._transitional_registerBuildPlugin({

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Moved to the 'mongo' package",
version: '1.0.4'
version: '1.0.5'
});
Package.on_use(function (api) {

View File

@@ -9,7 +9,7 @@
Package.describe({
summary: "Adaptor for using MongoDB and Minimongo over DDP",
version: '1.0.5'
version: '1.0.6'
});
Npm.depends({

View File

@@ -42,19 +42,19 @@ Tinytest.add("Smart Package version string parsing - compatible version, compati
FAIL("foo@x.y.z");
FAIL("foo@<1.2");
FAIL("foo<1.2");
FAIL("foo@1.2.3~abc");
FAIL("foo@1.2.3+1234~1");
FAIL("foo@1.2.3~1-rc1");
FAIL("foo-1233@1.2.3~0");
FAIL("foo-1233@1.2.3~");
FAIL("foo-1233@1.2.3~0123");
FAIL("foo@1.2.3_abc");
FAIL("foo@1.2.3+1234_1");
FAIL("foo@1.2.3_1-rc1");
FAIL("foo-1233@1.2.3_0");
FAIL("foo-1233@1.2.3_");
FAIL("foo-1233@1.2.3_0123");
t("foo@1.2.3~1", { name: "foo", constraints: [{
version: "1.2.3~1", type: "compatible-with" } ]});
t("foo-bar@3.2.1-rc0~123", { name: "foo-bar", constraints: [{
version: "3.2.1-rc0~123", type: "compatible-with" } ]});
t("foo-1233@1.2.3~5+1234", { name: "foo-1233", constraints: [{
version: "1.2.3~5+1234", type: "compatible-with" } ]});
t("foo@1.2.3_1", { name: "foo", constraints: [{
version: "1.2.3_1", type: "compatible-with" } ]});
t("foo-bar@3.2.1-rc0_123", { name: "foo-bar", constraints: [{
version: "3.2.1-rc0_123", type: "compatible-with" } ]});
t("foo-1233@1.2.3_5+1234", { name: "foo-1233", constraints: [{
version: "1.2.3_5+1234", type: "compatible-with" } ]});
t("foo", { name: "foo", constraints: [{
version: null, type: "any-reasonable" } ]});
});
@@ -66,10 +66,10 @@ Tinytest.add("Smart Package version string parsing - compatible version, exactly
{ version: "1.2.3", type: "exactly" } ]});
t("foo-bar@=3.2.1", { name: "foo-bar", constraints: [{
version: "3.2.1", type: "exactly" } ]});
t("foo@=1.2.3~1", { name: "foo", constraints: [{
version: "1.2.3~1", type: "exactly" } ]});
t("foo-bar@=3.2.1~34", { name: "foo-bar", constraints: [{
version: "3.2.1~34", type: "exactly" } ]});
t("foo@=1.2.3_1", { name: "foo", constraints: [{
version: "1.2.3_1", type: "exactly" } ]});
t("foo-bar@=3.2.1_34", { name: "foo-bar", constraints: [{
version: "3.2.1_34", type: "exactly" } ]});
FAIL("42@=0.2.0");
FAIL("foo@=1.2.3.4");
@@ -81,7 +81,7 @@ Tinytest.add("Smart Package version string parsing - compatible version, exactly
FAIL("foo@=<1.2");
FAIL("foo@<=1.2");
FAIL("foo<=1.2");
FAIL("foo@=1.2.3~rc0");
FAIL("foo@=1.2.3_rc0");
// We no longer support @>=.
FAIL("foo@>=1.2.3");
@@ -112,14 +112,14 @@ Tinytest.add("Smart Package version string parsing - or", function (test) {
[{ version: "3.2.1", type: "exactly"},
{ version: "1.0.0", type: "compatible-with"}]
});
t("foo@=1.2.3~1 || 1.2.4",
t("foo@=1.2.3_1 || 1.2.4",
{ name: "foo", constraints:
[{ version: "1.2.3~1", type: "exactly"},
[{ version: "1.2.3_1", type: "exactly"},
{ version: "1.2.4", type: "compatible-with"}]
});
t("foo-bar@=3.2.1~34 || =3.2.1-rc1",
t("foo-bar@=3.2.1_34 || =3.2.1-rc1",
{ name: "foo-bar", constraints:
[{ version: "3.2.1~34", type: "exactly"},
[{ version: "3.2.1_34", type: "exactly"},
{ version: "3.2.1-rc1", type: "exactly"}]
});
@@ -130,32 +130,66 @@ Tinytest.add("Smart Package version string parsing - or", function (test) {
FAIL("foo@1.0.0-rc|1.0.0");
});
Tinytest.add("Meteor Version string parsing - less than", function (test) {
test.isTrue(PackageVersion.lessThan("1.0.0", "1.2.0"));
test.isTrue(PackageVersion.lessThan("1.0.0~500", "1.2.0"));
test.isTrue(PackageVersion.lessThan("1.0.0~1", "1.0.0~2"));
test.isTrue(PackageVersion.lessThan("1.0.0", "1.0.0~2"));
test.isTrue(PackageVersion.lessThan("1.123.0~123", "3.0.0~2"));
Tinytest.add(
"Meteor Version string parsing - less than, compare, version magnitude",
function (test) {
var compare = function (v1, v2, expected) {
if (expected === '<') {
test.isTrue(PackageVersion.lessThan(v1, v2));
test.isTrue(PackageVersion.versionMagnitude(v1) < PackageVersion.versionMagnitude(v2));
test.isTrue(PackageVersion.compare(v1, v2) < 0);
} else if (expected === '=') {
test.isFalse(PackageVersion.lessThan(v1, v2));
test.isFalse(PackageVersion.lessThan(v2, v1));
test.isTrue(PackageVersion.versionMagnitude(v1) === PackageVersion.versionMagnitude(v2));
test.isTrue(PackageVersion.compare(v1, v2) === 0);
} else if (expected === '>') {
test.isTrue(PackageVersion.lessThan(v2, v1));
test.isTrue(PackageVersion.versionMagnitude(v1) > PackageVersion.versionMagnitude(v2));
test.isTrue(PackageVersion.compare(v1, v2) > 0);
} else {
throw new Error("expected should be '<', '=' or '>'");
}
};
test.isFalse(PackageVersion.lessThan("1.0.0~5", "1.0.0~2"));
test.isFalse(PackageVersion.lessThan("1.0.0", "1.0.0"));
test.isFalse(PackageVersion.lessThan("1.0.0~5", "1.0.0~5"));
test.isFalse(PackageVersion.lessThan("1.0.1", "1.0.0~5"));
});
compare("1.0.0", "1.2.0", "<");
compare("1.0.0_50", "1.0.1", "<");
compare("1.0.0_50", "1.2.0", "<");
compare("1.0.0_1", "1.0.0_2", "<");
compare("1.0.0_2", "1.0.0_10", "<"); // verify that we compare ~N as numbers, not strings
compare("1.0.0", "1.0.0_2", "<");
compare("1.99.0_99", "3.0.0_2", "<");
compare("1.99.0", "2.0.0", "<");
compare("1.0.0_5", "1.0.0_2", ">");
compare("1.0.0_99", "1.2.0", "<");
compare("1.0.0_99", "1.0.1", "<");
compare("1.0.0_1", "1.0.0_2", "<");
compare("1.0.0", "1.0.0_2", "<");
compare("1.99.0_99", "3.0.0_2", "<");
Tinytest.add("Meteor Version string parsing - compare", function (test) {
test.isTrue(PackageVersion.compare("1.0.0", "1.2.0") < 0);
test.isTrue(PackageVersion.compare("1.0.0~500", "1.2.0") < 0);
test.isTrue(PackageVersion.compare("1.0.0~1", "1.0.0~2") < 0);
test.isTrue(PackageVersion.compare("1.0.0", "1.0.0~2") < 0);
test.isTrue(PackageVersion.compare("1.123.0~123", "3.0.0~2") < 0);
compare("1.0.0_5", "1.0.0_2", ">");
compare("1.0.0", "1.0.0", "=");
compare("1.0.0_5", "1.0.0_5", "=");
compare("1.2.0", "1.0.0", ">");
compare("1.0.1", "1.0.0_5", ">");
test.isTrue(PackageVersion.compare("1.0.0~5", "1.0.0~2") > 0);
test.equal(PackageVersion.compare("1.0.0", "1.0.0"), 0);
test.equal(PackageVersion.compare("1.0.0~1", "1.0.0~1"), 0);
test.isTrue(PackageVersion.compare("1.2.0", "1.0.0") > 0);
test.isTrue(PackageVersion.compare("1.0.1", "1.0.0~5") > 0);
});
// Rule 11 from http://semver.org
compare("0.99.99", "1.0.0-alpha.1", "<");
compare("1.0.0-alpha", "1.0.0-alpha.1", "<");
compare("1.0.0-alpha.1", "1.0.0-alpha.beta", "<");
compare("1.0.0-alpha.beta", "1.0.0-beta", "<");
compare("1.0.0-beta", "1.0.0-beta.2", "<");
compare("1.0.0-beta.2", "1.0.0-beta.11", "<");
compare("1.0.0-beta.11", "1.0.0-rc.1", "<");
compare("1.0.0-rc.1", "1.0.0", "<");
compare("1.0.0-r.1", "1.0.0", "<"); // test single character prerelease parts
// Our broken implementation of Rule 11 (see [*] above the
// declaration of PackageVersion.versionMagnitude). Maybe one day
// we'll fix it, in which case replace "===" with ">"
test.isTrue(PackageVersion.versionMagnitude("1.0.0-beta.0") ===
PackageVersion.versionMagnitude("1.0.0-bear.0"));
});
Tinytest.add("Invalid in 0.9.2", function (test) {
// Note that invalidFirstFormatConstraint assumes that the initial version
@@ -163,7 +197,7 @@ Tinytest.add("Invalid in 0.9.2", function (test) {
// These are invalid in 0.9.2, but valid in 0.9.3 and above.
var invalidVersions =
["1.0.0~1", "1.0.0 || 2.0.0", "1.0.0-rc1~1",
["1.0.0_1", "1.0.0 || 2.0.0", "1.0.0-rc1_1",
"3.4.0-rc1 || =1.0.0"];
_.each(invalidVersions, function (v) {
test.isTrue(PackageVersion.invalidFirstFormatConstraint(v));

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Reactive dictionary",
version: '1.0.2'
version: '1.0.3'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Reactive variable",
version: '1.0.1'
version: '1.0.2'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Session variable",
version: '1.0.1'
version: '1.0.2'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Handlebars-like template language for Meteor",
version: '1.0.1'
version: '1.0.2'
});
// For more, see package `spacebars-compiler`, which is used by

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Moved to meteor-platform",
version: '1.0.1'
version: '1.0.2'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "A package for translating old bundles into stars",
version: "1.0.2"
version: "1.0.3"
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Allows templates to be defined in .html files",
version: '1.0.6'
version: '1.0.7'
});
// Today, this package is closely intertwined with Handlebars, meaning

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Run tests noninteractively, with results going to the console.",
version: '1.0.1'
version: '1.0.2'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Tiny testing framework",
version: '1.0.1'
version: '1.0.2'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Deprecated: Use the 'blaze' package",
version: '1.0.2'
version: '1.0.3'
});
Package.on_use(function (api) {

View File

@@ -1,6 +1,6 @@
Package.describe({
summary: "Serves a Meteor app over HTTP",
version: '1.1.1'
version: '1.1.2'
});
Npm.depends({connect: "2.9.0",

View File

@@ -1,16 +1,10 @@
{ "track": "METEOR",
"banners": [
{
"versions": ["0.9.0", "0.9.0.1", "0.9.1", "0.9.1.1"],
"versions": ["0.9.0", "0.9.0.1", "0.9.1", "0.9.1.1", "0.9.2", "0.9.2.1", "0.9.2.2"],
"banner": {
"text": "=> Meteor 0.9.2 is out, with our first support for building mobile apps\n in Meteor. This support comes via an integration with Apache's\n Cordova/PhoneGap project.\n\n Meteor 0.9.2 is being downloaded in the background. You can update to\n it by running 'meteor update'."
"text": "=> Meteor 0.9.3 is out with improvements for working with packages,\n including: speedups, more information about conflicting packages on\n update, and additional features for package authors.\n\n Meteor 0.9.3 is being downloaded in the background. You can update to\n it by running 'meteor update'."
}
},
{
"versions": ["0.9.2", "0.9.2.1"],
"banner": {
"text": "=> Meteor 0.9.2.2 fixes an 0.9.2 regression that prevented some users\n from accessing the development mode server in their browser.\n\n Meteor 0.9.2.2 is being downloaded in the background. You can update to\n it by running 'meteor update'."
}
}
]
}

View File

@@ -1,7 +1,7 @@
{
"track": "METEOR",
"version": "0.9.2-rc8",
"version": "0.9.3-rc8",
"recommended": false,
"official": false,
"description": "A release candidate of Meteor 0.9.2."
"description": "A release candidate of Meteor 0.9.3."
}

View File

@@ -1,8 +1,7 @@
{
"track": "METEOR",
"version": "0.9.2.2",
"version": "0.9.3",
"recommended": false,
"official": true,
"description": "The official Meteor Distribution",
"patchFrom": ["0.9.2", "0.9.2.1"]
"description": "The official Meteor Distribution"
}

View File

@@ -1053,7 +1053,7 @@ main.registerCommand({
return _.extend({ buildArchitectures: myStringBuilds },
versionRecord);
};
// XXX should this skip pre-releases?
// XXX should this skip pre-releases? No, it should.
var versions = catalog.official.getSortedVersions(name);
if (full.length > 1) {
versions = [full[1]];
@@ -1321,7 +1321,16 @@ main.registerCommand({
}
var versionAddendum = "" ;
var latest = catalog.complete.getLatestMainlineVersion(name, version);
// If we are not using an rc for this package, then we are not going to
// update to an rc. But if we are using a pre-release version, then we
// care about other pre-release versions, and might want to update to a
// newer one.
var latest;
if (!/-/.test(version)) {
latest = catalog.complete.getLatestMainlineVersion(name, version);
} else {
latest = catalog.complete.getLatestVersion(name, version);
}
var packageVersionParser = require('./package-version-parser.js');
if (latest &&
version !== latest.version &&

View File

@@ -162,6 +162,17 @@ _.extend(Console.prototype, {
self._statusPoll();
},
enableStatusPoll: function () {
var self = this;
Fiber(function () {
while (true) {
sleep(50);
self._statusPoll();
}
}).run();
},
info: function(/*arguments*/) {
var self = this;
@@ -358,4 +369,4 @@ _.extend(Console.prototype, {
Console.prototype.warning = Console.prototype.warn;
exports.Console = new Console;
exports.Console = new Console;

View File

@@ -476,9 +476,21 @@ _.extend(PackageSource.prototype, {
* @locus package.js
* @memberOf Package
* @param {Object} options
* @param {String} options.summary A concise 1-2 sentence description of the package, required for publication.
* @param {String} options.version The [semver](http://www.semver.org) version for your package. If no version is specified, defaults to `0.0.0`. You need to specify a version to publish to the package server.
* @param {String} options.name Optional name override. By default, the package name comes from the name of its directory.
* @param {String} options.summary A concise 1-2 sentence description of
* the package, required for publication.
* @param {String} options.version The (extended)
* [semver](http://www.semver.org) version for your package. Additionally,
* Meteor allows a wrap number, to follow the version number. If you are
* porting another package that uses semver versioning, you may want to
* use the original version, postfixed with the _<number>. For example,
* '1.2.3_1', '2.4.5-rc1_4'. Wrap numbers sort after the original numbers:
* '1.2.3' < '1.2.3_1' < '1.2.3_2' < '1.2.4-rc.0'. By default, wrap
* numbers don't affect compatibility, so 1.2.3_1 is compatible with
* 1.2.3, 1.2.3_3, etc. If no version is specified, this field defaults to
* `0.0.0`. You need to specify a version to publish to the package
* server.
* @param {String} options.name Optional name override. By default, the
* package name comes from the name of its directory.
* @param {String} options.git Optional Git URL to the source repository.
*/
describe: function (options) {
@@ -1039,7 +1051,9 @@ _.extend(PackageSource.prototype, {
* compatible version (ex: 1.0.1, 1.5.0, etc.) of the
* `accounts` package). If you are sourcing core
* packages from a Meteor release with `versionsFrom`, you may leave
* off version names for core packages.
* off version names for core packages. You may also specify constraints,
* such as 'my:forms@=1.0.0 (this package demands my:forms at 1.0.0 exactly),
* or 'my:forms@1.0.0 || =2.0.1' (my:forms at 1.x.y, or exactly 2.0.1).
* @param {String} [architecture] If you only use the package on the
* server (or the client), you can pass in the second argument (e.g.,
* `'server'` or `'client'`) to specify what architecture the package is
@@ -1179,7 +1193,7 @@ _.extend(PackageSource.prototype, {
/**
* @memberOf PackageAPI
* @instance
* @summary Use versions of core packages from a release. Unless provided, all packages will default to the versions released along with `meteorversion`. This will save you from having to figure out the exact versions of the core packages you want to use. For example, if the newest release of meteor is METEOR@0.9.0 and it uses jquery@1.0.0, you can use `api.versionsFrom('METEOR@0.9.0')`. If your package uses jQuery, it will automatically depend on jQuery 1.0.0 when it is published.
* @summary Use versions of core packages from a release. Unless provided, all packages will default to the versions released along with `meteorversion`. This will save you from having to figure out the exact versions of the core packages you want to use. For example, if the newest release of meteor is METEOR@0.9.0 and it uses jquery@1.0.0, you can use `api.versionsFrom('METEOR@0.9.0')`. If your package uses jQuery, it will automatically depend on jQuery 1.0.0 when it is published. You may specify more than one release, in which case the constraints will be parsed with an or: 'jquery@1.0.0 || 2.0.0'.
* @locus package.js
* @param {String} meteorRelease Specification of a release: track@version. Just 'version' (ex: `"0.9.0"`) is sufficient if using the default release track
*/

View File

@@ -14,7 +14,7 @@ if (inTool) {
var semver = inTool ? require ('semver') : Npm.require('semver');
var __ = inTool ? require('underscore') : _;
// Takes in a meteor version, for example 1.2.3-rc5~1+12345.
// Takes in a meteor version, for example 1.2.3-rc5_1+12345.
//
// Returns an object composed of the following:
// semver: (ex: 1.2.3)
@@ -25,9 +25,9 @@ var __ = inTool ? require('underscore') : _;
var extractSemverPart = function (versionString) {
if (!versionString) return { semver: "", wrapNum: -1 };
var noBuild = versionString.split('+');
var splitVersion = noBuild[0].split('~');
var splitVersion = noBuild[0].split('_');
var wrapNum = 0;
// If we find two +s, or two ~, that's super invalid.
// If we find two +s, or two _, that's super invalid.
if (noBuild.length > 2 || splitVersion.length > 2) {
throwVersionParserError(
"Version string must look like semver (eg '1.2.3'), not '"
@@ -36,11 +36,11 @@ var extractSemverPart = function (versionString) {
wrapNum = splitVersion[1];
if (!/^\d+$/.test(wrapNum)) {
throwVersionParserError(
"The wrap number (after ~) must contain only digits, so " +
"The wrap number (after _) must contain only digits, so " +
versionString + " is invalid.");
} else if (wrapNum[0] === "0") {
throwVersionParserError(
"The wrap number (after ~) must not have a leading zero, so " +
"The wrap number (after _) must not have a leading zero, so " +
versionString + " is invalid.");
}
}
@@ -48,21 +48,71 @@ var extractSemverPart = function (versionString) {
semver: (noBuild.length > 1) ?
splitVersion[0] + "+" + noBuild[1] :
splitVersion[0],
wrapNum: wrapNum
wrapNum: parseInt(wrapNum, 10)
};
};
// Converts a meteor version into a very large number, unique to that version.
// Converts a meteor version into a large floating point number, which
// is (more or less [*]) unique to that version. Satisfies the
// following guarantee: If PV.lessThan(v1, v2) then
// PV.versionMagnitude(v1) < PV.versionMagnitude(v2) [*]
//
// [* XXX!] We don't quite satisfy the uniqueness and comparison properties in
// these cases:
// 1. If any of the version parts are greater than 100 (pretty unlikely?)
// 2. If we're dealing with a prerelease version, we only look at the
// first two characters of each prerelease part. So, "1.0.0-beta" and
// "1.0.0-bear" will have the same magnitude.
// 3. If we're dealing with a prerelease version with more than two parts, eg
// "1.0.0-rc.0.1". In this comparison may fail since we'd get to the limit
// of JavaScript floating point precision.
//
// If we wanted to fix this, we'd make this function return a BigFloat
// instead of a vanilla JavaScript number. That will make the
// constraint solver slower (by how much?), and would require some
// careful thought.
PV.versionMagnitude = function (versionString) {
// var v = semver.parse(versionString);
// return v.major * 10000 + v.minor * 100 + v.patch;
var version = extractSemverPart(versionString);
var v = semver.parse(version.semver);
// XXX: This is kind of hacky and relies on not having more than 100 wrap
// numbers, for example. Probably OK.
return v.major * 1000000 + v.minor * 10000 +
v.patch * 100 + version.wrapNum;
return v.major * 100 * 100 +
v.minor * 100 +
v.patch +
version.wrapNum / 100 +
prereleaseIdentifierToFraction(v.prerelease) / 100 / 100;
};
// Accepts an array, eg ["rc", 2, 3]. Returns a number in the range
// (-1, 0]. An empty array returns 0. A non-empty string returns a
// number that is "as large" as the its precedence.
var prereleaseIdentifierToFraction = function (prerelease) {
if (prerelease.length === 0)
return 0;
return _.reduce(prerelease, function (memo, part, index) {
var digit;
if (typeof part === 'number') {
digit = part+1;
} else if (typeof part === 'string') {
var VALID_CHARACTERS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var validCharToNumber = function (ch) {
var result = VALID_CHARACTERS.indexOf(ch);
if (result === -1)
throw new Error("Unexpected character in prerelease identifier: " + ch);
else
return result;
};
digit = 251 + // Numeric parts always have lower precedence than non-numeric parts.
validCharToNumber(part[0]) * VALID_CHARACTERS.length +
(part[1] ? validCharToNumber(part[1]) : 0);
} else {
throw new Error("Unexpected prerelease identifier part: " + part + " of type " + typeof part);
}
return memo + digit / Math.pow(3000, index+1);
}, -1);
};
// Takes in two meteor versions. Returns true if the first one is less than the second.
@@ -172,7 +222,7 @@ PV.getValidServerVersion = function (meteorVersionString) {
}
if (version.wrapNum) {
cleanVersion = cleanVersion + "~" + version.wrapNum;
cleanVersion = cleanVersion + "_" + version.wrapNum;
}
return cleanVersion;
@@ -274,7 +324,7 @@ PV.constraintToFullString = function (parsedConstraint) {
// Return true if the version constraint was invalid prior to 0.9.3
// (adding ~ and || support)
// (adding _ and || support)
//
// NOTE: this is not used on the client yet. This package is used by the
// package server to determine what is valid.
@@ -284,6 +334,6 @@ PV.invalidFirstFormatConstraint = function (validConstraint) {
// characters. Anything with those characters is invalid prior to
// 0.9.3. XXX: If we ever have to go through these, we should write a more
// complicated regex.
return (/~/.test(validConstraint) ||
return (/_/.test(validConstraint) ||
/\|/.test(validConstraint));
};

View File

@@ -312,10 +312,8 @@ _.extend(Project.prototype, {
// Finally, each release package is a weak exact constraint. So, let's add
// those.
_.each(releasePackages, function(version, name) {
allDeps.push({name: name, weak: true,
constraintStr: "=" + name,
constraints: [
{ version: version, type: 'exactly' } ]});
allDeps.push(_.extend(utils.parseConstraint(name + "@=" + version),
{ weak: true }));
});
// This is an UGLY HACK that has to do with our requirement to have a

View File

@@ -38,12 +38,9 @@ var packageList = function (_currentProjectForTest) {
buildmessage.assertInCapture();
var directDeps = (_currentProjectForTest || project.project).getConstraints();
var versions;
if (_currentProjectForTest) {
versions = _currentProjectForTest.dependencies;
} else {
versions = project.project.getVersions({ dontRunConstraintSolver: true });
}
var versions = (_currentProjectForTest || project.project).getVersions({
dontRunConstraintSolver: true
});
return _.map(
versions,

View File

@@ -6,9 +6,7 @@ var config = require("../config.js");
var Sandbox = selftest.Sandbox;
var editPackageMetadata = function (sandbox, f) {
var dataFile = path.join(sandbox.warehouse,
'package-metadata', 'v1.1',
config.getLocalPackageCacheFilename());
var dataFile = config.getPackageStorage({root: sandbox.warehouse});
var data = JSON.parse(fs.readFileSync(dataFile, 'utf8'));
f(data);
fs.writeFileSync(dataFile, JSON.stringify(data));

View File

@@ -1,4 +1,4 @@
Package.describe({
summary: "Test package.",
version: "1.0.4-rc3"
version: "1.0.4-rc.3"
});

View File

@@ -0,0 +1,4 @@
Package.describe({
summary: "Test package.",
version: "1.0.4-rc.4"
});

View File

@@ -134,11 +134,10 @@ selftest.define("publish-one-arch", ["slow", "net", "test-package-server"], func
run.waitSecs(15);
run.expectExit(0);
run.match("Done");
run.match("WARNING");
run.matchErr("WARNING");
});
selftest.define("list-with-a-new-version",
["slow", "net", "test-package-server"], function () {
var s = new Sandbox;
@@ -255,18 +254,140 @@ selftest.define("list-with-a-new-version",
run.expectExit(0);
// It works if ask for it, though.
run = s.run("add", fullPackageName + "@1.0.4-rc3");
run = s.run("add", fullPackageName + "@1.0.4-rc.3");
run.waitSecs(100);
run.expectExit(0);
run = s.run("list");
run.waitSecs(10);
run.match(fullPackageName);
run.match("1.0.4-rc3 ");
run.match("1.0.4-rc.3 ");
run.forbidAll("New versions");
run.expectExit(0);
});
});
selftest.define("do-not-update-to-rcs",
["slow", "net", "test-package-server"], function () {
var s = new Sandbox;
var username = "test";
var password = "testtest";
testUtils.login(s, username, password);
var packageName = utils.randomToken();
var fullPackageName = username + ":" + packageName;
var run;
// Now, create a package.
s.createPackage(fullPackageName, "package-of-two-versions");
// Publish the first version.
s.cd(fullPackageName, function () {
run = s.run("publish", "--create");
run.waitSecs(30);
run.expectExit(0);
run.match("Done");
});
// Change the package to increment version and publish the new package.
s.cp(fullPackageName+'/package2.js', fullPackageName+'/package.js');
s.cd(fullPackageName, function () {
run = s.run("publish");
run.waitSecs(15);
run.expectExit(0);
run.match("Done");
});
// Now publish an 1.0.4-rc.3.
s.cp(fullPackageName+'/packagerc.js', fullPackageName+'/package.js');
s.cd(fullPackageName, function () {
run = s.run("publish");
run.waitSecs(15);
run.expectExit(0);
run.match("Done");
});
// Create an app. Add the package to it. Check that list shows the package, at
// the non-rc version.
run = s.run('create', 'mapp');
run.waitSecs(15);
run.expectExit(0);
s.cd('mapp', function () {
// XXX: This test was failing because we were running from a situation that
// could not be resolved without using RCs. Since we had to use RCs already,
// we were OK with using the RC for the new package. That's bad! Anyway, at
// least we are testing that in the absense of other data, we should not add
// the RC. Ideally, we should consider running this test with a warehouse,
// but maybe not yet.
run = s.run("remove", "meteor-platform", "autopublish", "insecure");
run.waitSecs(10);
run.expectExit(0);
run = s.run("add", fullPackageName);
run.waitSecs(10);
run.expectExit(0);
run = s.run("list");
run.waitSecs(10);
run.match(fullPackageName);
run.match("1.0.1");
run.forbidAll("New versions");
run.expectExit(0);
// Now, let's try to update. It should not work, since update will not bring
// you to an rc version automatically (unless it has to).
run = s.run("update", "packages-only");
run.waitSecs(10);
run.match("Your packages are at their latest compatible versions.");
run.expectExit(0);
run = s.run("update");
run.waitSecs(10);
run.match("Your packages are at their latest compatible versions.");
run.expectExit(0);
run = s.run("list");
run.waitSecs(10);
run.match(fullPackageName);
// Check that we have 1.0.1 AND there is no star indicating new versions.
run.match("1.0.1 ");
run.expectExit(0);
// It works if ask for it, though.
run = s.run("add", fullPackageName + "@1.0.4-rc.3");
run.waitSecs(100);
run.expectExit(0);
run = s.run("list");
run.waitSecs(10);
run.match(fullPackageName);
run.match("1.0.4-rc.3"); // We got the rc version.
});
// Now publish an 1.0.4-rc.4.
s.cp(fullPackageName+'/packagerc2.js', fullPackageName+'/package.js');
s.cd(fullPackageName, function () {
run = s.run("publish");
run.waitSecs(15);
run.expectExit(0);
run.match("Done");
});
s.cd('mapp', function () {
// If we run list, we see that we might want to upgrade.
run = s.run("list");
run.waitSecs(10);
run.match(fullPackageName);
run.match("1.0.4-rc.3");
run.match("New versions");
run.expectExit(0);
// And if we run update, we will get the new rc.
run = s.run("update", "--packages-only");
run.waitSecs(10);
run.match("1.0.4-rc.4");
run.expectExit(0);
});
});
selftest.define("package-depends-on-either-version",
["slow", "net", "test-package-server"], function () {
var s = new Sandbox;
@@ -352,5 +473,4 @@ selftest.define("package-depends-on-either-version",
depend = readVersions();
selftest.expectEqual(depend[fullPackageNameDep], "2.0.0");
selftest.expectEqual(depend[fullPackageAnother], "1.0.0");
});

View File

@@ -238,7 +238,10 @@ var runApp = function (s, sandboxProject, expectStats) {
// Pick up new app identifier and/or packages added/removed. Usually the
// changes to .meteor/packages and .meteor/.id would be handled by the
// code that handles the hotcodepush, so the project does not cache them.
sandboxProject.reload();
//
// Calling `sandboxProject.reload` here doesn't work because `reload`
// does not update `sandboxProject.dependencies`.
sandboxProject.setRootDir(s.cwd);
};
// Contact the package stats server and look for a given app