diff --git a/Contributing.md b/Contributing.md index 97671ca415..c4db02a8a4 100644 --- a/Contributing.md +++ b/Contributing.md @@ -12,13 +12,21 @@ There are many ways to contribute to the Meteor Project. Here’s a list of tech - [Reporting a bug](https://github.com/meteor/meteor/blob/devel/Contributing.md#reporting-a-bug-in-meteor) - [Triaging issues](https://github.com/meteor/meteor/blob/devel/IssueTriage.md) - [Contributing to documentation](https://github.com/meteor/docs/blob/master/Contributing.md) -- [Submitting pull requests](https://github.com/meteor/meteor/blob/devel/Contributing.md#making-changes-to-meteor-core) +- [Submitting pull requests](https://github.com/meteor/meteor/blob/devel/Contributing.md#making-changes-to-meteor-core) (See "Finding work" below) - [Reviewing pull requests](https://github.com/meteor/meteor/blob/devel/Contributing.md#reviewer) - [Maintaining a community package](https://github.com/meteor/meteor/blob/devel/Contributing.md#community-package-maintainer) There are also several ways to contribute to the Meteor Project outside of GitHub, like organizing or speaking at [Meetups](https://www.meetup.com/topics/meteor/) and events and helping to moderate our [forums](https://forums.meteor.com/). Stay tuned for more documentation around non-code contributions. -If you can think of any changes to the project or documentation that would improve the contributor experience, let us know by opening an issue! +If you can think of any changes to the project, [documentation](https://github.com/meteor/docs), or [guide](https://github.com/meteor/guide) that would improve the contributor experience, let us know by opening an issue! + +### Finding work + +We curate specific issues that would make great pull requests for community contributors by applying the [`pull-requests-encouraged` label](https://github.com/meteor/meteor/issues?q=is%3Aopen+is%3Aissue+label%3Apull-requests-encouraged). + +Issues which *also* have the [`confirmed` label](https://github.com/meteor/meteor/issues?q=is%3Aissue%20is%3Aopen%20label%3Apull-requests-encouraged%20label%3Aconfirmed) are considered to have their details clear enough to begin working on. + +Any issue which does not have the `confirmed` label still requires discussion on implementation details but input and positive commentary is welcome! Any pull-request opened on an issue which is not `confirmed` is still welcome, however the pull-request is more likely to be sent back for reworking than a `confirmed` issue. If in doubt about the best way to implement something, please create additional conversation on the issue. ### Project roles @@ -39,6 +47,7 @@ Current Issue Triagers: Our most regular and experienced Issue Triagers sometimes move on to doing code reviews for pull requests, and have input into which pull requests should be merged. Current Reviewers: +- [@hwillson](https://github.com/hwillson) - [@lorensr](https://github.com/lorensr) - [@abernix](https://github.com/abernix) @@ -49,8 +58,7 @@ For now, the only contributors with commit access to meteor/meteor are employees Project Lead: [@benjamn](https://github.com/benjamn) Current Core Committers: -- [@tmeasday](https://github.com/tmeasday) -- [@zol](https://github.com/zol) +- [@abernix](https://github.com/abernix) - [@glasser](https://github.com/glasser) - [@stubailo](https://github.com/stubailo) @@ -59,7 +67,7 @@ Current Core Committers: Documentation Maintainers are regular documentation contributors that have been given the ability to merge docs changes on [meteor/docs](https://github.com/meteor/docs). Current Documentation Maintainers: -- [@tmeasday](https://github.com/tmeasday) +- [@abernix](https://github.com/abernix) - [@lorensr](https://github.com/lorensr) #### Community Package Maintainer: @@ -78,7 +86,7 @@ Current Community Manager: ### Tracking project work -Right now, the best place to track the work being done on Meteor is to take a look at the latest release milestone [here](https://github.com/meteor/meteor/milestones). We also curate specific issues that would make great pull requests for community contributors with the [pull requests encouraged tag](https://github.com/meteor/meteor/issues?q=is%3Aopen+is%3Aissue+label%3Apull-requests-encouraged). +Right now, the best place to track the work being done on Meteor is to take a look at the latest release milestone [here](https://github.com/meteor/meteor/milestones). Also, the [Meteor Roadmap](Roadmap.md) contains high-level information on the current priorities of the project.

Reporting a bug in Meteor

@@ -201,6 +209,10 @@ We have found that writing software to meet both these standards at the same time is hard but incredibly rewarding. We hope you come to feel the same way. +### Understanding the core + +For more information about how to work with Meteor core, take a look at the [Development](Development.md) document which explains many important details, including how to [run from a checkout](Development.md#running-from-a-git-checkout), [run tests](Development.md#tests), and more. + ### Proposing your change You'll have the best chance of getting a change into core if you can build consensus in the community for it. Start by creating a well specified feature request as a Github issue. @@ -229,9 +241,10 @@ these guidelines: * Include tests that prove your code works. - * Follow the - [MDG style guide](https://guide.meteor.com/code-style.html#javascript) - for code and commit messages. + * Follow appropriate style for + [code contributions](Development.md#code-style) + and + [commit messages](Development.md#commit-messages) * Be sure your author field in git is properly filled out with your full name and email address so we can credit you. @@ -247,36 +260,3 @@ Meteor now has groups defined to cover different areas of the codebase. If you n * Documentation - This includes the Guide, the Docs, and any supporting material. You can mention @guide in the PR. Including the people above is no guarantee that you will get a response, or ultimately that your pull request will be accepted. This section exists to give some minor guidance on internal Meteor Development Group team structures. - -### Running tests on Meteor core - -When you are working with code in the core Meteor packages, you will want to make sure you run the -full test-suite (including the tests you added) to ensure you haven't broken anything in Meteor. The -`test-packages` command will do just that for you. - -The test packages command will start up a Meteor app with TinyTest setup, just connect to -http://localhost:3000 or your specified port, like you would do with a normal meteor app. - -#### Run against your local meteor copy - -When running `test-packages`, be sure that you use the current directory copy of Meteor instead of -the installed version. Here is the INCORRECT way: `meteor test-packages`. - -The CORRECT way is to use `./meteor test-packages` to run the full test suite against the branch you -are on. - -This is important because you want to make sure you are running the test-packages command against -the Meteor code on the branch you have pulled from GitHub, rather than the stable Meteor release you -have installed on your computer. - -#### Running a subset of tests - -You can also just run a subset of tests from one package to speed up testing time. Let's say for -example that you just want to run the Spacebars test suite. Just simple do `./meteor test-packages -./packages/spacebars-tests` and it will just run the test files from that one package. You can -examine the `package.js` file for the `onTest` block, it outlines all the test files that should be -run. - -### Running Meteor Tool tests - -While TinyTest and the `test-packages` command can be used to test internal Meteor packages, they cannot be used to test the Meteor Tool itself. The Meteor Tool is a node app that uses a home-grown "self test" system. For details on how to run Meteor Tool "self tests", please refer to the [Testing section of the Meteor Tool README](https://github.com/meteor/meteor/blob/master/tools/README.md#testing). diff --git a/Development.md b/Development.md new file mode 100644 index 0000000000..dbcc7eae76 --- /dev/null +++ b/Development.md @@ -0,0 +1,200 @@ +# Development + +This document is intended to provide instructions and helpful information for developers who are [contributing](Contributing.md) [pull-requests](https://github.com/meteor/meteor/pulls/) (or otherwise making changes) to **Meteor Core itself (not Meteor apps)**. + +As the first suggestion to the reader of this document: If, during the course of development, a Meteor-specific process is revealed which is helpful and not documented here, please consider editing this document and submitting a pull-request. Another developer will be thankful! + +## Running from a Git checkout + +If you want to run on the bleeding edge, or [help contribute to Meteor](Contributing.md), you +can run Meteor directly from a Git checkout using these steps: + +0. **Clone from GitHub** + + ```sh + $ git clone --recursive https://github.com/meteor/meteor.git + $ cd meteor + ``` + + > ##### Important note about Git submodules! + > + > This repository uses Git submodules. If you clone without the `--recursive` flag, + > re-fetch with `git pull` or experience "`Depending on unknown package`" errors, + > run the following in the repository root to sync things up again: + > + > $ git submodule update --init --recursive + +0. **Run a Meteor command to install dependencies** + + > If you did not compile dependencies above, this will also download the binaries. + + + ```sh + $ ./meteor --help + ``` + +0. **Ready to Go!** + + Your local Meteor checkout is now ready to use! You can use this `./meteor` + anywhere you would normally call the system `meteor`. For example,: + + ```sh + $ cd my-app/ + $ /path/to/meteor-checkout/meteor run + ``` + + > _Tip:_ Consider making an easy-to-run alias for frequent use: + > + > alias mymeteor=/path/to-meteor-checkout/meteor + > + > This allows the use of `mymeteor` in place of `meteor`. To persist this + > across shell logouts, simply add it to `~/.bashrc` or `.zshrc`. + +### Notes when running from a checkout + +The following are some distinct differences you must pay attention to when running Meteor from a checkout: + + * You cannot pin apps to specific Meteor releases or change the release using `--release`. + +## The "Dev Bundle" + +The "dev bundle" (identified as the `dev_bundle` in the folder structure) is a generated bundle of code, packages and tools which are essential to providing the functionality of the Meteor tool (`meteor`) and the app bundles which it builds. + +When `meteor` is run from a checkout, a `dev_bundle` is automatically downloaded and should be sufficient for most development. However, some more substantial changes will require rebuilding the `dev_bundle`. This include changes to the: + +* Node.js version +* npm version +* MongoDB version +* Packages [used by `meteor-tool`](scripts/dev-bundle-tool-package.js) +* Packages [used by the server bundle](scripts/dev-bundle-server-package.js) + +While it may be tempting to make changes to these variables, please consider the repercussions (including compatibility and stability) and make sure to test changes extensively. For example, major version changes (especially to Node.js and MongoDB) usually requires substantial changes to other components. + +### "Dev Bundle" versions + +The working version number of the `dev_bundle` to be downloaded (or generated) is stored as `BUNDLE_VERSION` at the top of the [`meteor`](./meteor) script. When submitting a pull request which changes components of the `dev_bundle`, the minor version should be bumped (at the very least). In local development, it is advisable to use a different major version (e.g. `100.0.0`) so as not to clash with the official versions which cached locally. + +Cached versions of the `dev_bundle` are stored in the root directory of the checkout. Keeping them around will prevent the need to re-download them when switching between branches, but they do become quite large as they collect so delete them as necessary! + +### Rebuilding the "Dev Bundle" + +Rebuilding requires a C and C++ compiler, `autotools`, and `scons`. + +To build everything from scratch and re-package dependencies, simply run the following script: + +```sh +$ ./scripts/generate-dev-bundle.sh +``` + +This will generate a new tarball (`dev_bundle___.tar.gz`) in the root of the checkout. Assuming you bumped the `BUNDLE_VERSION`, the new version will be extracted automatically when you run `./meteor`. If you are rebuilding the same version (or didn't bump the version number), you should delete the existing `dev_bundle` directory to ensure the new tarball is extracted when you run `./meteor`. + +## Additional documentation + +The Meteor core is best documented within the code itself, however, many components also have a `README.md` in their respective directories. + +Some compartmentalized portions of Meteor are broken into packages ([see a list of packages](packages/)) and they almost all have a `README.md` within their directory. For example, [`ddp`](packages/ddp/README.md), [`ecmascript`](packages/ecmascript/README.md) and [`tinytest`](packages/tinytest/README.md). + +For the rest, try looking nearby for a `README.md`. For example, [`isobuild`](tools/isobuild/README.md) or [`cordova`](tools/cordova/README.md). + +## Tests + +### Test against the local meteor copy + +When running any of tests, be sure run them against the checked-out copy of Meteor instead of +the globally-installed version. This means ensuring that the command is `path-to-meteor-checkout/meteor` and not just `meteor`. + +This is important so that tests are run against the version in development and not the stable (installed) Meteor release. + +### Running tests on Meteor core + +When you are working with code in the core Meteor packages, you will want to make sure you run the +full test-suite (including the tests you added) to ensure you haven't broken anything in Meteor. The +`test-packages` command will do just that for you: + + ./meteor test-packages + +Exactly in the same way that [`test-packages` works in standalone Meteor apps](https://guide.meteor.com/writing-atmosphere-packages.html#testing), the `test-packages` command will start up a Meteor app with [TinyTest](./packages/tinytest/README.md). To view the results, just connect to `http://localhost:3000`. + +Specific portions of package tests can be run by passing a `` or `` to the `test-packages` command. For example, to run `mongo` tests, it's possible to run: + + ./meteor test-packages mongo + +### Running Meteor Tool self-tests + +While TinyTest and the `test-packages` command can be used to test internal Meteor packages, they cannot be used to test the Meteor Tool itself. The Meteor Tool is a node app that uses a home-grown "self test" system. + +#### Prerequisites + +To reduce the size of the Meteor distribution, some parts of the self-test system must be installed separately, including `phantomjs-prebuilt` and `browserstack-webdriver`. + +A notification will be displayed when attempting to use the `self-test` commands if these dependencies are not installed. Make sure to install them into your checkout when prompted: + + ./meteor npm install -g phantomjs-prebuilt browserstack-webdriver + +#### Listing available tests + +To see a list of the tests which are included in the self-test system, list them with the `--list` option: + + ./meteor self-test --list + +#### Running specific tests + +The self-test commands support a regular-expression syntax in order to specific/search for specific tests. For example, to search for tests starting with `a` or `b`, it's possible to run: + + ./meteor self-test "^[a-b]" --list + +Simply remove the `--list` flag to actually run the matching tests. + +#### Excluding specific tests + +In a similar way to the method of specifying which tests TO run, there is a way to specify which tests should NOT run. Again, using regular-expressions, this command will NOT list any tests which start with `a` or `b`: + + ./meteor self-test --exclude "^[a-b]" --list + +Simply remove the `--list` flag to actually run the matching tests. + +#### More reading + +For even more details on how to run Meteor Tool "self tests", please refer to the [Testing section of the Meteor Tool README](https://github.com/meteor/meteor/blob/master/tools/README.md#testing). + +### Continuous integration + +Any time a pull-request is submitted or a commit is pushed directly to the `devel` branch, continuous integration tests will be started automatically by the CI server. These are run by [Circle CI](https://circleci.com/) and defined in the [`circle.yml` file](./circle.yml). Even more specifically, the tests to run and the containers to run them under are defined in the [`/scripts/ci.sh`](scripts/ci.sh) script, which is a script which can run locally to replicate the exact tests. + +Not every test which is defined in a test spec is actually ran by the CI server. Some tests are simply too long-running and some tests are just no longer relevant. As one particular example, there is a suite of very slow tests grouped into a `slow` designator within the test framework. These can be executed by adding the `--slow` option to the `self-test` command. + +> Please Note: Windows +> +> There is not currently a continuous integration system setup for Windows. Additionally, not all tests are known to work on Windows. If you're able to take time to improve those tests, it would be greatly appreciated. Currently, there isn't an official list of known tests which do not run on Windows, but a PR to note those here and get them fixed would be ideal! + +#### Running your own CircleCI + +Since Meteor is a free, open-source project, you can run tests in the context of your own CircleCI account at no cost (up to the maximum number of containers allowed by them) during development and prior to submitting a pull-request. For some, this may be quicker or more convenient than running tests on their own workstation. As an added advantage, when your tests are "green", that status will be immediately shown (as passing) when a pull-request is opened with the official Meteor repository. + +To enable CircleCI for your development: + +0. Make sure you have an account with [CircleCI](https://circleci.com) +0. Make sure you have [forked](https://help.github.com/articles/fork-a-repo/) [Meteor](https://github.com/meteor/meteor) into your own GitHub account. +0. Go to the [Add Projects](https://circleci.com/add-projects) page on CircleCI. +0. On the left, click on your GitHub username. +0. On the right, find `meteor` +0. Click on the "Build project" button next to `meteor`. +0. Your build will start automatically! + +## Code style + +* New contributions should follow the [Meteor Style Guide](https://github.com/meteor/javascript/) as closely as possible. + * The Meteor Style Guide is very close to the [Airbnb Style Guide](https://github.com/airbnb/javascript) with a few notable changes. +* New code should match existing code (in the same vicinity) when the context of a change is minimal, but larger amounts of new code should follow the guide. +* Do not change code that doesn't directly relate to the feature/bug that you're working on. +* Basic linting is accomplished (via ESLint) by running `./scripts/admin/eslint/eslint.sh`. + * Many files have not been converted yet and are thus [excluded](https://github.com/meteor/meteor/blob/master/.eslintignore). + +## Commit messages + +Good commit messages are very important and you should make sure to explain what is changing and why. The commit message should include: + +* A short and helpful commit title (maximum 80 characters). +* A commit description which clearly explains the change if it's not super-obvious by the title. Some description always helps! +* Reference related issues and pull-requests by number in the description body (e.g. "#9999"). +* Add "Fixes" before the issue number if the addition of that commit fully resolves the issue. diff --git a/History.md b/History.md index ffe83c2532..71ccce0e2e 100644 --- a/History.md +++ b/History.md @@ -3,6 +3,24 @@ * The `meteor-babel` npm package has been upgraded to version 0.15.2, with support for dynamic `import(...)` syntax. +## v1.4.3.2, 2017-03-14 + +* Node has been upgraded to version 4.8.0. + +* The `npm` npm package has been upgraded to version 4.3.0. + +* The `node-gyp` npm package has been upgraded to 3.5.0. + +* The `node-pre-gyp` npm package has been updated to 0.6.33. + +* The bundled version of MongoDB used by `meteor run` in development + has been upgraded to 3.2.12. + +* The `mongodb` npm package used by the `npm-mongo` Meteor package has + been updated to version 2.2.24. + [PR #8453](https://github.com/meteor/meteor/pull/8453) + [Issue #8449](https://github.com/meteor/meteor/issues/8449) + * The `check` package has had its copy of `jQuery.isPlainObject` updated to a newer implementation to resolve an issue where the `nodeType` property of an object couldn't be checked, fixing @@ -13,6 +31,77 @@ thrown when UglifyJS encounters ECMAScript grammar it is not familiar with. [#8414](https://github.com/meteor/meteor/pull/8414) +* Similar in behavior to `Meteor.loggingIn()`, `accounts-base` now offers a + reactive `Meteor.loggingOut()` method (and related Blaze helpers, + `loggingOut` and `loggingInOrOut`). + [PR #8271](https://github.com/meteor/meteor/pull/8271) + [Issue #1331](https://github.com/meteor/meteor/issues/1331) + [Issue #769](https://github.com/meteor/meteor/issues/769) + +* Using `length` as a selector field name and with a `Number` as a value + in a `Mongo.Collection` transformation will no longer cause odd results. + [#8329](https://github.com/meteor/meteor/issues/8329). + +* `observe-sequence` (and thus Blaze) now properly supports `Array`s which were + created in a vm or across frame boundaries, even if they were sub-classed. + [Issue #8160](https://github.com/meteor/meteor/issues/8160) + [PR #8401](https://github.com/meteor/meteor/pull/8401) + +* Minimongo now supports `$bitsAllClear`, `$bitsAllSet`, `$bitsAnySet` and + `$bitsAnyClear`. + [#8350](https://github.com/meteor/meteor/pull/8350) + +* A new [Development.md](Development.md) document has been created to provide + an easier path for developers looking to make contributions to Meteor Core + (that is, the `meteor` tool itself) along with plenty of helpful reminders + for those that have already done so! + [#8267](https://github.com/meteor/meteor/pull/8267) + +* The suggestion to add a `{oauth-service}-config-ui` package will no longer be + made on the console if `service-configuration` package is already installed. + [Issue #8366](https://github.com/meteor/meteor/issues/8366) + [PR #8429](https://github.com/meteor/meteor/pull/8429) + +* `Meteor.apply`'s `throwStubExceptions` option is now properly documented in + the documentation whereas it was previously only mentioned in the Guide. + [Issue #8435](https://github.com/meteor/meteor/issues/8435) + [PR #8443](https://github.com/meteor/meteor/pull/8443) + +* `DDPRateLimiter.addRule` now accepts a callback which will be executed after + a rule is executed, allowing additional actions to be taken if necessary. + [Issue #5541](https://github.com/meteor/meteor/issues/5541) + [PR #8237](https://github.com/meteor/meteor/pull/8237) + +* `jquery` is no longer a dependency of the `http` package. + [#8389](https://github.com/meteor/meteor/pull/8389) + +* `jquery` is no longer in the default package list after running + `meteor create`, however is still available thanks to `blaze-html-templates`. + If you still require jQuery, the recommended approach is to install it from + npm with `meteor npm install --save jquery` and then `import`-ing it into your + application. + [#8388](https://github.com/meteor/meteor/pull/8388) + +* The `shell-server` package (i.e. `meteor shell`) has been updated to more + gracefully handle recoverable errors (such as `SyntaxError`s) in the same + fashion as the Node REPL. + [Issue #8290](https://github.com/meteor/meteor/issues/8290) + [PR #8446](https://github.com/meteor/meteor/pull/8446) + +* The `webapp` package now reveals a `WebApp.connectApp` to make it easier to + provide custom error middleware. + [#8403](https://github.com/meteor/meteor/pull/8403) + +* The `meteor update --all-packages` command has been properly documented in + command-line help (i.e. `meteor update --help`). + [PR #8431](https://github.com/meteor/meteor/pull/8431) + [Issue #8154](https://github.com/meteor/meteor/issues/8154) + +* Syntax errors encountered while scanning `package.json` files for binary + dependencies are now safely and silently ignored. + [Issue #8427](https://github.com/meteor/meteor/issues/8427) + [PR #8468](https://github.com/meteor/meteor/pull/8468) + ## v1.4.3.1, 2017-02-14 * The `meteor-babel` npm package has been upgraded to version 0.14.4, diff --git a/README.md b/README.md index 9c471c747c..368e2fad06 100644 --- a/README.md +++ b/README.md @@ -41,56 +41,12 @@ meteor ## Slow Start (for developers) -If you want to run on the bleeding edge, or [help contribute to Meteor](Contributing.md), you -can run Meteor directly from a Git checkout using these steps: +If you're interested in developing Meteor itself, or running unreleased, +bleeding-edge code, please refer to the details found in +[Development.md](Development.md). -0. **Clone from GitHub** - - ```sh - $ git clone --recursive https://github.com/meteor/meteor.git - $ cd meteor - ``` - - > ##### Important note about Git submodules! - > - > This repository uses Git submodules. If you clone without the `--recursive` flag, - > re-fetch with `git pull` or experience "`Depending on unknown package`" errors, - > run the following in the repository root to sync things up again: - > - > $ git submodule update --init --recursive - -0. **_(Optional)_ Compile dependencies** - - > This optional step requires a C and C++ compiler, autotools, and scons. - > If this step is skipped, Meteor will simply download pre-built binaries. - - To build everything from scratch (`node`, `npm`, `mongodb`, etc.) run the following: - - ```sh - $ ./scripts/generate-dev-bundle.sh # OPTIONAL! - ``` - -0. **Run a Meteor command to install dependencies** - - > If you did not compile dependencies above, this will also download the binaries. - - - ```sh - $ ./meteor --help - ``` - -0. **Ready to Go!** - - Your local Meteor checkout is now ready to use! You can use this `./meteor` - anywhere you would normally call the system `meteor`. For example,: - - ```sh - $ cd my-app/ - $ /path/to/meteor-checkout/meteor run - ``` - - > _Note:_ When running from a `git` checkout, you cannot pin apps to specific - > Meteor releases or change the release using `--release`. +To find more information about contributing to Meteor (whether fixing bugs or +adding features), please see [Contributing.md](Contributing.md). ## Uninstalling Meteor diff --git a/packages/accounts-base/package.js b/packages/accounts-base/package.js index f85cd103e2..53f2945ec9 100644 --- a/packages/accounts-base/package.js +++ b/packages/accounts-base/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "A user account system", - version: "1.2.14" + version: "1.2.15" }); Package.onUse(function (api) { diff --git a/packages/accounts-facebook/package.js b/packages/accounts-facebook/package.js index 2836d483bc..1a272a6dc7 100644 --- a/packages/accounts-facebook/package.js +++ b/packages/accounts-facebook/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Login service for Facebook accounts", - version: "1.1.0" + version: "1.1.1" }); Package.onUse(function(api) { diff --git a/packages/accounts-github/package.js b/packages/accounts-github/package.js index 13ca676c91..a612794ade 100644 --- a/packages/accounts-github/package.js +++ b/packages/accounts-github/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Login service for Github accounts', - version: '1.2.0' + version: '1.2.1' }); Package.onUse(function (api) { diff --git a/packages/accounts-google/package.js b/packages/accounts-google/package.js index dacee2e881..4b398a98df 100644 --- a/packages/accounts-google/package.js +++ b/packages/accounts-google/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Login service for Google accounts", - version: "1.1.0" + version: "1.1.1" }); Package.onUse(function(api) { diff --git a/packages/accounts-meetup/package.js b/packages/accounts-meetup/package.js index 8ba91c2acb..ee19a9a8b9 100644 --- a/packages/accounts-meetup/package.js +++ b/packages/accounts-meetup/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Login service for Meetup accounts', - version: '1.2.0' + version: '1.2.1' }); Package.onUse(function (api) { diff --git a/packages/accounts-meteor-developer/package.js b/packages/accounts-meteor-developer/package.js index 244aecd18b..a051ef61af 100644 --- a/packages/accounts-meteor-developer/package.js +++ b/packages/accounts-meteor-developer/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: 'Login service for Meteor developer accounts', - version: '1.2.0' + version: '1.2.1' }); Package.onUse(function (api) { diff --git a/packages/accounts-twitter/package.js b/packages/accounts-twitter/package.js index b7a4253d67..e07a79061d 100644 --- a/packages/accounts-twitter/package.js +++ b/packages/accounts-twitter/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Login service for Twitter accounts", - version: "1.2.0" + version: "1.2.1" }); Package.onUse(function(api) { diff --git a/packages/accounts-ui-unstyled/package.js b/packages/accounts-ui-unstyled/package.js index fd4db63ce6..a023ea82d6 100644 --- a/packages/accounts-ui-unstyled/package.js +++ b/packages/accounts-ui-unstyled/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Unstyled version of login widgets", - version: "1.2.0" + version: "1.2.1" }); Package.onUse(function (api) { diff --git a/packages/accounts-weibo/package.js b/packages/accounts-weibo/package.js index 383f5e3e9b..6129b8a90a 100644 --- a/packages/accounts-weibo/package.js +++ b/packages/accounts-weibo/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Login service for Sina Weibo accounts", - version: "1.1.0" + version: "1.1.1" }); Package.onUse(function(api) { diff --git a/packages/ddp-rate-limiter/package.js b/packages/ddp-rate-limiter/package.js index c442b116f9..ae990e7a93 100644 --- a/packages/ddp-rate-limiter/package.js +++ b/packages/ddp-rate-limiter/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'ddp-rate-limiter', - version: '1.0.6', + version: '1.0.7', // Brief, one-line summary of the package. summary: 'The DDPRateLimiter allows users to add rate limits to DDP' + ' methods and subscriptions.', diff --git a/packages/http/package.js b/packages/http/package.js index ac37a56fe3..0358d1609a 100644 --- a/packages/http/package.js +++ b/packages/http/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Make HTTP calls to remote servers", - version: '1.2.11' + version: '1.2.12' }); Npm.depends({ diff --git a/packages/minimongo/package.js b/packages/minimongo/package.js index 4de289253c..e4353c687a 100644 --- a/packages/minimongo/package.js +++ b/packages/minimongo/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Meteor's client-side datastore: a port of MongoDB to Javascript", - version: '1.0.20' + version: '1.0.21' }); Package.onUse(function (api) { diff --git a/packages/mongo/mongo_driver.js b/packages/mongo/mongo_driver.js index 348f01378a..9ca6609cd6 100644 --- a/packages/mongo/mongo_driver.js +++ b/packages/mongo/mongo_driver.js @@ -128,17 +128,12 @@ MongoConnection = function (url, options) { self._observeMultiplexers = {}; self._onFailoverHook = new Hook; - var mongoOptions = _.extend({ - db: { safe: true }, - // http://mongodb.github.io/node-mongodb-native/2.2/api/Server.html - server: { - // Reconnect on error. - autoReconnect: true, - // Try to reconnect forever, instead of stopping after 30 tries (the - // default), with each attempt separated by 1000ms. - reconnectTries: Infinity - }, - replSet: {} + var mongoOptions = Object.assign({ + // Reconnect on error. + autoReconnect: true, + // Try to reconnect forever, instead of stopping after 30 tries (the + // default), with each attempt separated by 1000ms. + reconnectTries: Infinity }, Mongo._connectionOptions); // Disable the native parser by default, unless specifically enabled @@ -150,7 +145,7 @@ MongoConnection = function (url, options) { // to a different platform (aka deploy) // We should revisit this after binary npm module support lands. if (!(/[\?&]native_?[pP]arser=/.test(url))) { - mongoOptions.db.native_parser = false; + mongoOptions.native_parser = false; } // Internally the oplog connections specify their own poolSize @@ -158,8 +153,7 @@ MongoConnection = function (url, options) { if (_.has(options, 'poolSize')) { // If we just set this for "server", replSet will override it. If we just // set it for replSet, it will be ignored if we're not using a replSet. - mongoOptions.server.poolSize = options.poolSize; - mongoOptions.replSet.poolSize = options.poolSize; + mongoOptions.poolSize = options.poolSize; } self.db = null; @@ -634,16 +628,26 @@ var NUM_OPTIMISTIC_TRIES = 3; MongoConnection._isCannotChangeIdError = function (err) { // First check for what this error looked like in Mongo 2.4. Either of these // checks should work, but just to be safe... - if (err.code === 13596) + if (err.code === 13596) { return true; - if (err.errmsg.indexOf("cannot change _id of a document") === 0) + } + + // Mongo 3.2.* returns error as next Object: + // {name: String, code: Number, err: String} + // Older Mongo returns: + // {name: String, code: Number, errmsg: String} + var error = err.errmsg || err.err; + + if (error.indexOf('cannot change _id of a document') === 0) { return true; + } // Now look for what it looks like in Mongo 2.6. We don't use the error code // here, because the error code we observed it producing (16837) appears to be // a far more generic error code based on examining the source. - if (err.errmsg.indexOf("The _id field cannot be changed") === 0) + if (error.indexOf('The _id field cannot be changed') === 0) { return true; + } return false; }; diff --git a/packages/mongo/package.js b/packages/mongo/package.js index 65168569da..f268d568cc 100644 --- a/packages/mongo/package.js +++ b/packages/mongo/package.js @@ -9,7 +9,7 @@ Package.describe({ summary: "Adaptor for using MongoDB and Minimongo over DDP", - version: '1.1.15' + version: '1.1.16' }); Npm.depends({ @@ -21,7 +21,7 @@ Npm.strip({ }); Package.onUse(function (api) { - api.use('npm-mongo', 'server'); + api.use('npm-mongo@2.2.24', 'server'); api.use('allow-deny'); api.use([ diff --git a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json index 99567900d0..d916f66718 100644 --- a/packages/npm-mongo/.npm/package/npm-shrinkwrap.json +++ b/packages/npm-mongo/.npm/package/npm-shrinkwrap.json @@ -1,9 +1,9 @@ { "dependencies": { "bson": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.1.tgz", - "from": "bson@>=1.0.1 <1.1.0" + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.4.tgz", + "from": "bson@>=1.0.4 <1.1.0" }, "buffer-shims": { "version": "1.0.0", @@ -31,14 +31,14 @@ "from": "isarray@>=1.0.0 <1.1.0" }, "mongodb": { - "version": "2.2.16", - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.16.tgz", - "from": "mongodb@2.2.16" + "version": "2.2.24", + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.24.tgz", + "from": "mongodb@2.2.24" }, "mongodb-core": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.2.tgz", - "from": "mongodb-core@2.1.2" + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.8.tgz", + "from": "mongodb-core@2.1.8" }, "process-nextick-args": { "version": "1.0.7", diff --git a/packages/npm-mongo/package.js b/packages/npm-mongo/package.js index c5bc711eaf..a4a7395c5c 100644 --- a/packages/npm-mongo/package.js +++ b/packages/npm-mongo/package.js @@ -3,12 +3,12 @@ Package.describe({ summary: "Wrapper around the mongo npm package", - version: '2.2.16_1', + version: '2.2.24', documentation: null }); Npm.depends({ - mongodb: "2.2.16" + mongodb: "2.2.24" }); Package.onUse(function (api) { diff --git a/packages/observe-sequence/package.js b/packages/observe-sequence/package.js index 88d052e1b4..7942eed878 100644 --- a/packages/observe-sequence/package.js +++ b/packages/observe-sequence/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Observe changes to various sequence types such as arrays, cursors and objects", - version: "1.0.15" + version: "1.0.16" }); Package.onUse(function (api) { diff --git a/packages/rate-limit/package.js b/packages/rate-limit/package.js index 06f92b3e2a..6dead5d1de 100644 --- a/packages/rate-limit/package.js +++ b/packages/rate-limit/package.js @@ -1,6 +1,6 @@ Package.describe({ name: 'rate-limit', - version: '1.0.6', + version: '1.0.7', // Brief, one-line summary of the package. summary: 'An algorithm for rate limiting anything', // URL to the Git repository containing the source code for this package. diff --git a/packages/shell-server/package.js b/packages/shell-server/package.js index 3a1ce388a2..cd33d436ab 100644 --- a/packages/shell-server/package.js +++ b/packages/shell-server/package.js @@ -6,6 +6,6 @@ Package.describe({ }); Package.onUse(function(api) { - api.use("ecmascript@0.5.7", "server"); + api.use("ecmascript", "server"); api.mainModule("main.js", "server"); }); diff --git a/packages/webapp/package.js b/packages/webapp/package.js index 71005ad852..b370ab0453 100644 --- a/packages/webapp/package.js +++ b/packages/webapp/package.js @@ -1,6 +1,6 @@ Package.describe({ summary: "Serves a Meteor app over HTTP", - version: '1.3.13' + version: '1.3.14' }); Npm.depends({connect: "2.30.2", diff --git a/scripts/admin/meteor-release-official.json b/scripts/admin/meteor-release-official.json index c8c65f967f..df3b85c3e1 100644 --- a/scripts/admin/meteor-release-official.json +++ b/scripts/admin/meteor-release-official.json @@ -1,6 +1,6 @@ { "track": "METEOR", - "version": "1.4.3.1", + "version": "1.4.3.2", "recommended": false, "official": true, "description": "The Official Meteor Distribution" diff --git a/scripts/build-dev-bundle-common.sh b/scripts/build-dev-bundle-common.sh index 5a77335dc0..5f0746786e 100644 --- a/scripts/build-dev-bundle-common.sh +++ b/scripts/build-dev-bundle-common.sh @@ -5,9 +5,9 @@ set -u UNAME=$(uname) ARCH=$(uname -m) -MONGO_VERSION=3.2.6 -NODE_VERSION=4.7.3 -NPM_VERSION=4.1.2 +MONGO_VERSION=3.2.12 +NODE_VERSION=4.8.0 +NPM_VERSION=4.3.0 if [ "$UNAME" == "Linux" ] ; then if [ "$ARCH" != "i686" -a "$ARCH" != "x86_64" ] ; then diff --git a/scripts/dev-bundle-tool-package.js b/scripts/dev-bundle-tool-package.js index a86810f7f8..a2e7450ae5 100644 --- a/scripts/dev-bundle-tool-package.js +++ b/scripts/dev-bundle-tool-package.js @@ -11,9 +11,9 @@ var packageJson = { dependencies: { // Explicit dependency because we are replacing it with a bundled version // and we want to make sure there are no dependencies on a higher version - npm: "4.1.2", - "node-gyp": "3.4.0", - "node-pre-gyp": "0.6.30", + npm: "4.3.0", + "node-gyp": "3.5.0", + "node-pre-gyp": "0.6.33", "meteor-babel": "0.15.2", "meteor-promise": "0.8.0", fibers: "1.0.15", diff --git a/tools/isobuild/bundler.js b/tools/isobuild/bundler.js index e81e6a0b31..0d9538324c 100644 --- a/tools/isobuild/bundler.js +++ b/tools/isobuild/bundler.js @@ -2316,8 +2316,8 @@ class ServerTarget extends JsImageTarget { serverPkgJson.scripts = serverPkgJson.scripts || {}; serverPkgJson.scripts.install = "node npm-rebuild.js"; - serverPkgJson.dependencies["node-gyp"] = "3.4.0"; - serverPkgJson.dependencies["node-pre-gyp"] = "0.6.29"; + serverPkgJson.dependencies["node-gyp"] = "3.5.0"; + serverPkgJson.dependencies["node-pre-gyp"] = "0.6.33"; builder.write('package.json', { data: new Buffer(