All Versions
246
Latest Version
2.5
Avg Release Cycle
57 days
Latest Release
889 days ago

Changelog History
Page 11

  • v1.8.0.1 Changes

    November 23, 2018

    ๐Ÿ’ฅ Breaking changes

    N/A

    Migration steps

    N/A

    ๐Ÿ”„ Changes

    • ๐Ÿ“ฆ The useragent npm package used by webapp and (indirectly) by the modern-browsers package has been updated from 2.2.1 to 2.3.0. The chromium browser name has been aliased to use the same minimum modern version as chrome, and browser names are now processed case-insensitively by the modern-browsers package. PR #10334

    • ๐Ÿ›  Fixed a module caching bug that allowed findImportedModuleIdentifiers to return the same identifiers for the modern and legacy versions of a given module, even if the set of imported modules is different (for example, because Babel injects fewer @babel/runtime/... imports into modern code). Now the caching is always based on the SHA-1 hash of the generated code, rather than trusting the hash provided by compiler plugins. PR #10330

  • v1.7 Changes

    May 28, 2018

    ๐Ÿ’ฅ Breaking changes

    N/A

    Migration Steps

    N/A

    ๐Ÿ”„ Changes

    • ๐Ÿ’ป More than 80% of internet users worldwide have access to a web browser that natively supports the latest ECMAScript features and keeps itself updated automatically, which means new features become available almost as soon as they ship. In other words, the future we envisioned when we first began compiling code with Babel is finally here, yet most web frameworks and applications still compile a single client-side JavaScript bundle that must function simultaneously in the oldest and the newest browsers the application developer wishes to support.

    That choice is understandable, because the alternative is daunting: not only must you build multiple JavaScript and CSS bundles for different browsers, with different dependency graphs and compilation rules and webpack configurations, but your server must also be able to detect the capabilities of each visiting client, so that it can deliver the appropriate assets at runtime. Testing a matrix of different browsers and application versions gets cumbersome quickly, so it's no surprise that responsible web developers would rather ship a single, well-tested bundle, and forget about taking advantage of modern features until legacy browsers have disappeared completely.

    With Meteor 1.7, this awkward balancing act is no longer necessary, because Meteor now automatically builds two sets of client-side assets, one tailored to the capabilities of modern browsers, and the other designed to work in all supported browsers, thus keeping legacy browsers working exactly as they did before. Best of all, the entire Meteor community relies on the same system, so any bugs or differences in behavior can be identified and fixed quickly.

    In this system, a "modern" browser can be loosely defined as one with full native support for async functions and await expressions, which includes more than 80% of the world market, and 85% of the US market (source). This standard may seem extremely strict, since async/await was just finalized in ECMAScript 2017, but the statistics clearly justify it. As another example, any modern browser can handle native class syntax, though newer syntax like class fields may still need to be compiled for now, whereas a legacy browser will need compilation for both advanced and basic class syntax. And of course you can safely assume that any modern browser has a native Promise implementation, because async functions must return Promises. The list goes on and on.

    This boundary between modern and legacy browsers is designed to be tuned over time, not only by the Meteor framework itself but also by each individual Meteor application. For example, here's how the minimum versions for native ECMAScript class support might be expressed:

      import { setMinimumBrowserVersions } from "meteor/modern-browsers";
    
      setMinimumBrowserVersions({
        chrome: 49,
        firefox: 45,
        edge: 12,
        ie: Infinity, // Sorry, IE11.
        mobile_safari: [9, 2], // 9.2.0+
        opera: 36,
        safari: 9,
        electron: 1,
      }, "classes");
    

    The minimum modern version for each browser is simply the maximum of all versions passed to setMinimumBrowserVersions for that browser. The Meteor development server decides which assets to deliver to each client based on the User-Agent string of the HTTP request. In production, different bundles are named with unique hashes, which prevents cache collisions, though Meteor also sets the Vary: User-Agent HTTP response header to let well-behaved clients know they should cache modern and legacy resources separately.

    For the most part, the modern/legacy system will transparently determine how your code is compiled, bundled, and delivered—and yes, it works with every existing part of Meteor, including dynamic import() and even the old appcache package. However, if you're writing dynamic code that depends on modern features, you can use the boolean Meteor.isModern flag to detect the status of the current environment (Node 8 is modern, too, of course). If you're writing a Meteor package, you can call api.addFiles(files, "legacy") in your package.js configuration file to add extra files to the legacy bundle, or api.addFiles(files, "client") to add files to all client bundles, or api.addFiles(files, "web.browser") to add files only to the modern bundle, and the same rules apply to api.mainModule. Just be sure to call setMinimumBrowserVersions (in server startup code) to enforce your assumptions about ECMAScript feature support.

    We think this modern/legacy system is one of the most powerful features we've added since we first introduced the ecmascript package in Meteor 1.2, and we look forward to other frameworks attempting to catch up.

    PR #9439

    • ๐Ÿ“ฆ Although Meteor does not recompile packages installed in node_modules by default, compilation of specific npm packages (for example, to support older browsers that the package author neglected) can now be enabled in one of two ways:

      • Clone the package repository into your application's imports directory, make any modifications necessary, then use npm install to link the-package into node_modules: sh meteor npm install imports/the-package Meteor will compile the contents of the package exposed via imports/the-package, and this compiled code will be used when you import the-package in any of the usual ways: js import stuff from "the-package" require("the-package") === require("/imports/the-package") import("the-package").then(...) This reuse of compiled code is the critical new feature that was added in Meteor 1.7.
      • Install the package normally with meteor npm install the-package, then create a symbolic link to the installed package elsewhere in your application, outside of node_modules: sh meteor npm install the-package cd imports ln -s ../node_modules/the-package . Again, Meteor will compile the contents of the package because they are exposed outside of node_modules, and the compiled code will be used whenever the-package is imported from node_modules.

      Note: this technique also works if you create symbolic links to individual files, rather than linking the entire package directory.

    In both cases, Meteor will compile the exposed code as if it was part of your application, using whatever compiler plugins you have installed. You can influence this compilation using .babelrc files or any other techniques you would normally use to configure compilation of application code. PR #9771 Feature #6

    ~Note: since compilation of npm packages can now be enabled using the techniques described above, Meteor will no longer automatically scan node_modules directories for modules that can be compiled by compiler plugins. If you have been using that functionality to import compiled-to-JS modules from node_modules, you should start using the symlinking strategy instead.~ Follow-up note: this optimization was reverted in Meteor 1.7.0.1 (see above).

    • โšก๏ธ Node has been updated to version 8.11.2, officially fixing a cause of frequent segmentation faults in Meteor applications that was introduced in Node 8.10.0. Meteor 1.6.1.1 shipped with a custom build of Node that patched this problem, but that approach was never intended to be permanent.

    • โฌ†๏ธ The npm package has been upgraded to version 5.10.0, and our fork of its pacote dependency has been rebased against version 7.6.1.

    • Applications may now specify client and server entry point modules in a newly-supported "meteor" section of package.json:

      "meteor": {
      "mainModule": {
        "client": "client/main.js",
        "server": "server/main.js"
      }
      }
      

      When specified, these entry points override Meteor's default module loading semantics, rendering imports directories unnecessary. If mainModule is left unspecified for either client or server, the default rules will apply for that architecture, as before. To disable eager loading of modules on a given architecture, simply provide a mainModule value of false:

      "meteor": {
      "mainModule": {
        "client": false,
        "server": "server/main.js"
      }
      }
      

      Feature #135 PR #9690

    • In addition to meteor.mainModule, the "meteor" section of package.json may also specify meteor.testModule to control which test modules are loaded by meteor test or meteor test --full-app:

      "meteor": {
      "mainModule": {...},
      "testModule": "tests.js"
      }
      

      If your client and server test files are different, you can expand the testModule configuration using the same syntax as mainModule:

      "meteor": {
      "testModule": {
        "client": "client/tests.js",
        "server": "server/tests.js"
      }
      }
      

      The same test module will be loaded whether or not you use the --full-app option. Any tests that need to detect --full-app should check Meteor.isAppTest. The module(s) specified by meteor.testModule can import other test modules at runtime, so you can still distribute test files across your codebase; just make sure you import the ones you want to run. PR #9714

    • ๐Ÿ‘ The meteor create command now supports a --minimal option, which creates an app with as few Meteor packages as possible, in order to minimize client bundle size while still demonstrating advanced features such as server-side rendering. This starter application is a solid foundation for any application that doesn't need Mongo or DDP.

    • โšก๏ธ The meteor-babel npm package has been updated to version 7.0.0-beta.49-1. Note: while Babel has recently implemented support for a new kind of babel.config.js configuration file (see this PR), and future versions of Meteor will no doubt embrace this functionality, Meteor 1.7 supports only .babelrc files as a means of customizing the default Babel configuration provided by Meteor. In other words, if your project contains a babel.config.js file, it will be ignored by Meteor 1.7.

    • โšก๏ธ The reify npm package has been updated to version 0.16.2.

    • ๐Ÿ“ฆ The meteor-node-stubs package, which provides stub implementations for any Node built-in modules used by the client (such as path and http), has a new minor version (0.4.1) that may help with Windows installation problems. To install the new version, run

      meteor npm install meteor-node-stubs@latest
      
    • โšก๏ธ The optimism npm package has been updated to version 0.6.3.

    • โšก๏ธ The minifier-js package has been updated to use uglify-es 3.3.9.

    • โœ… Individual Meteor self-test's can now be skipped by adjusting their define call to be prefixed by skip. For example, selftest.skip.define('some test', ... will skip running "some test". PR #9579

    • โฌ†๏ธ Mongo has been upgraded to version 3.6.4 for 64-bit systems, and 3.2.19 for 32-bit systems. PR #9632

    NOTE: After upgrading an application to use Mongo 3.6.4, it has been observed (#9591) that attempting to run that application with an older version of Meteor (via meteor --release X), that uses an older version of Mongo, can prevent the application from starting. This can be fixed by either running meteor reset, or by repairing the Mongo database. To repair the database, find the mongod binary on your system that lines up with the Meteor release you're jumping back to, and run mongodb --dbpath your-apps-db --repair. For example:

      ~/.meteor/packages/meteor-tool/1.6.0_1/mt-os.osx.x86_64/dev_bundle/mongodb/bin/mongod --dbpath /my-app/.meteor/local/db --repair
    

    PR #9632

    • โšก๏ธ The mongodb driver package has been updated from version 2.2.34 to version 3.0.7. PR #9790 PR #9831 Feature #268

    • ๐Ÿ“ฆ The cordova-plugin-meteor-webapp package depended on by the Meteor webapp package has been updated to version 1.6.0. PR #9761

    • Any settings read from a JSON file passed with the --settings option during Cordova run/build/deploy will be exposed in mobile-config.js via the App.settings property, similar to Meteor.settings. PR #9873

    • ๐Ÿ”Œ The @babel/plugin-proposal-class-properties plugin provided by meteor-babel now runs with the loose:true option, as required by other (optional) plugins like @babel/plugin-proposal-decorators. Issue #9628

    • ๐Ÿ“ฆ The underscore package has been removed as a dependency from meteor-base. This opens up the possibility of removing 14.4 kb from production bundles. Since this would be a breaking change for any apps that may have been using _ without having any packages that depend on underscore besides meteor-base, we have added an upgrader that will automatically add underscore to the .meteor/packages file of any project which lists meteor-base, but not underscore. Apps which do not require this package can safely remove it using meteor remove underscore. PR #9596

    • โšก๏ธ Meteor's promise package has been updated to support Promise.prototype.finally. Issue 9639 PR #9663

    • ๐Ÿฑ Assets made available via symlinks in the public and private directories of an application are now copied into Meteor application bundles when using meteor build. This means npm package assets that need to be made available publicly can now be symlinked from their node_modules location, in the public directory, and remain available in production bundles. Issue #7013 PR #9666

    • ๐Ÿ“ฆ The facts package has been split into facts-base and facts-ui. The original facts package has been deprecated. PR #9629

    • If the new pseudo tag <meteor-bundled-css /> is used anywhere in the <head /> of an app, it will be replaced by the link to Meteor's bundled CSS. If the new tag isn't used, the bundle will be placed at the top of the <head /> section as before (for backwards compatibility). Feature #24 PR #9657

  • v1.7.0.5 Changes

    August 16, 2018

    ๐Ÿ’ฅ Breaking changes

    N/A

    Migration Steps

    N/A

    ๐Ÿ”„ Changes

  • v1.7.0.4 Changes

    August 07, 2018

    ๐Ÿ’ฅ Breaking changes

    N/A

    Migration Steps

    N/A

    ๐Ÿ”„ Changes

    • ๐Ÿ“ฆ The npm package @babel/runtime, which is depended on by most Meteor apps, introduced a breaking change in version 7.0.0-beta.56 with the removal of the @babel/runtime/helpers/builtin directory. While this change has clear benefits in the long term, in the short term it has been disruptive for Meteor 1.7.0.x applications that accidentally updated to the latest version of @babel/runtime. Meteor 1.7.0.4 is a patch release that provides better warnings about this problem, and ensures newly created Meteor applications do not use 7.0.0-beta.56. PR #10134

    • โฌ†๏ธ The npm package has been upgraded to version 6.3.0, and our fork of its pacote dependency has been rebased against version 8.1.6. Issue #9940

    • โšก๏ธ The reify npm package has been updated to version 0.16.4.

  • v1.7.0.3 Changes

    June 13, 2018

    ๐Ÿ’ฅ Breaking changes

    N/A

    Migration Steps

    N/A

    ๐Ÿ”„ Changes

  • v1.7.0.2 Changes

    June 13, 2018

    ๐Ÿ’ฅ Breaking changes

    N/A

    Migration Steps

    N/A

    ๐Ÿ”„ Changes

    • โšก๏ธ Node has been updated to version 8.11.3, an important security release.

    • โšก๏ธ The meteor-babel npm package has been updated to version 7.0.0-beta.51.

    • Meteor apps created with meteor create or meteor create --minimal will now have a directory called tests/ rather than test/, so that test code will not be eagerly loaded if you decide to remove the meteor.mainModule configuration from package.json, thanks to PR #9977 by @robfallows. Issue #9961

  • v1.7.0.1 Changes

    May 29, 2018

    ๐Ÿ’ฅ Breaking changes

    • The aggregate method of raw Mongo collections now returns an AggregationCursor rather than returning the aggregation result directly. To obtain an array of aggregation results, you will need to call the .toArray() method of the cursor: ```js // With MongoDB 2.x, callback style: rawCollection.aggregate( pipeline, (error, results) => {...} );

    // With MongoDB 2.x, wrapAsync style: const results = Meteor.wrapAsync( rawCollection.aggregate, rawCollection )(pipeline);

    // With MongoDB 3.x, callback style: rawCollection.aggregate( pipeline, (error, aggregationCursor) => { ... const results = aggregationCursor.toArray(); ... } );

    // With MongoDB 3.x, wrapAsync style: const results = Meteor.wrapAsync( rawCollection.aggregate, rawCollection )(pipeline).toArray();

      [Issue #9936](https://github.com/meteor/meteor/issues/9936)
    
    ### Migration Steps
    
    * โšก๏ธ Update `@babel/runtime` (as well as other Babel-related packages) and 
      `meteor-node-stubs` to their latest versions:
      ```sh
      meteor npm install @babel/runtime@latest meteor-node-stubs@latest
    

    ๐Ÿ”„ Changes

    • โช Reverted an optimization introduced in Meteor 1.7 to stop scanning node_modules for files that might be of interest to compiler plugins, since the intended workarounds (creating symlinks) did not satisfy all existing use cases. We will revisit this optimization in Meteor 1.8. mozfet/meteor-autoform-materialize#43

    • โšก๏ธ After updating to Meteor 1.7 or 1.7.0.1, you should update the @babel/runtime npm package (as well as other Babel-related packages) to their latest versions, along with the meteor-node-stubs package, by running the following command:

      meteor npm install @babel/runtime@latest meteor-node-stubs@latest
      
  • v1.6.1 Changes

    January 19, 2018

    ๐Ÿ’ฅ Breaking changes

    • ๐Ÿ”ง Meteor's Node Mongo driver is now configured with the ignoreUndefined connection option set to true, to make sure fields with undefined values are not first converted to null, when inserted/updated. undefined values are now removed from all Mongo queries and insert/update documents.

    This is a potentially breaking change if you are upgrading an existing app from an earlier version of Meteor.

    For example:

      // return data pertaining to the current user
      db.privateUserData.find({
          userId: currentUser._id // undefined
      });
    

    Assuming there are no documents in the privateUserData collection with userId: null, in Meteor versions prior to 1.6.1 this query will return zero documents. From Meteor 1.6.1 onwards, this query will now return every document in the collection. It is highly recommend you review all your existing queries to ensure that any potential usage of undefined in query objects won't lead to problems.

    Migration Steps

    N/A

    ๐Ÿ”„ Changes

    • โšก๏ธ Node has been updated to version 8.9.4.

    • ๐Ÿ“ฆ The meteor-babel npm package (along with its Babel-related dependencies) has been updated to version 7.0.0-beta.38, a major update from Babel 6. Thanks to the strong abstraction of the meteor-babel package, the most noticeable consequence of the Babel 7 upgrade is that the babel-runtime npm package has been replaced by @babel/runtime, which can be installed by running

      meteor npm install @babel/runtime
      

      in your application directory. There's a good chance that the old babel-runtime package can be removed from your package.json dependencies, though there's no harm in leaving it there. Please see this blog post for general information about updating to Babel 7 (note especially any changes to plugins you've been using in any .babelrc files). PR #9440

    • Because [email protected] is a major version bump for a core package, any package that explicitly depends on babel-compiler with api.use or api.imply will need to be updated and republished in order to remain compatible with Meteor 1.6.1. One notable example is the practicalmeteor:mocha package. If you have been using this test-driver package, we strongly recommend switching to meteortesting:mocha instead. If you are the author of a package that depends on babel-compiler, we recommend publishing your updated version using a new major or minor version, so that you can continue releasing patch updates compatible with older versions of Meteor, if necessary.

    • ๐Ÿ”ง Meteor's Node Mongo driver is now configured with the ignoreUndefined connection option set to true, to make sure fields with undefined values are not first converted to null, when inserted/updated. undefined values are now removed from all Mongo queries and insert/update documents. Issue #6051 PR #9444

    • ๐Ÿ“ฆ The server-render package now supports passing a Stream object to ServerSink methods that previously expected a string, which enables streaming server-side rendering with React 16:

      import React from "react";
      import { renderToNodeStream } from "react-dom/server";
      import { onPageLoad } from "meteor/server-render";
      import App from "/imports/Server.js";
      

    onPageLoad(sink => { sink.renderIntoElementById("app", renderToNodeStream( )); });

      [PR #9343](https://github.com/meteor/meteor/pull/9343)
    
    * ๐Ÿ“ฆ The [`cordova-lib`](https://github.com/apache/cordova-cli) package has
      been updated to version 7.1.0,
      [`cordova-android`](https://github.com/apache/cordova-android/) has been
      updated to version 6.4.0 (plus one additional
      [commit](https://github.com/meteor/cordova-android/commit/317db7df0f7a054444197bc6d28453cf4ab23280)),
      and [`cordova-ios`](https://github.com/apache/cordova-ios/) has been
      updated to version 4.5.4. The cordova plugins `cordova-plugin-console`,
      `cordova-plugin-device-motion`, and `cordova-plugin-device-orientation`
      have been [deprecated](https://cordova.apache.org/news/2017/09/22/plugins-release.html)
      and will likely be removed in a future Meteor release.
      [Feature Request #196](https://github.com/meteor/meteor-feature-requests/issues/196)
      [PR #9213](https://github.com/meteor/meteor/pull/9213)
      [Issue #9447](https://github.com/meteor/meteor/issues/9447)
      [PR #9448](https://github.com/meteor/meteor/pull/9448)
    
    * ๐Ÿ“‡ The previously-served `/manifest.json` application metadata file is now
      served from `/__browser/manifest.json` for web browsers, to avoid
      confusion with other kinds of `manifest.json` files. Cordova clients
      will continue to load the manifest file from `/__cordova/manifest.json`,
      as before. [Issue #6674](https://github.com/meteor/meteor/issues/6674)
      [PR #9424](https://github.com/meteor/meteor/pull/9424)
    
    * The bundled version of MongoDB used by `meteor run` in development
      on 64-bit architectures has been updated to 3.4.10. 32-bit architectures
      will continue to use MongoDB 3.2.x versions since MongoDB is no longer
      producing 32-bit versions of MongoDB for newer release tracks.
      [PR #9396](https://github.com/meteor/meteor/pull/9396)
    
    * โšก๏ธ Meteor's internal `minifier-css` package has been updated to use `postcss`
      for CSS parsing and minifying, instead of the abandoned `css-parse` and
      `css-stringify` packages. Changes made to the `CssTools` API exposed by the
      `minifier-css` package are mostly backwards compatible (the
      `standard-minifier-css` package that uses it didn't have to change for
      example), but now that we're using `postcss` the AST accepted and returned
      from certain functions is different. This could impact developers who are
      tying into Meteor's internal `minifier-css` package directly. The AST based
      function changes are:
    
      * `CssTools.parseCss` now returns a PostCSS
        [`Root`](http://api.postcss.org/Root.html) object.
      * `CssTools.stringifyCss` expects a PostCSS `Root` object as its first
        parameter.
      * `CssTools.mergeCssAsts` expects an array of PostCSS `Root` objects as its
        first parameter.
      * `CssTools.rewriteCssUrls` expects a PostCSS `Root` object as its first
        parameter.
    
      [PR #9263](https://github.com/meteor/meteor/pull/9263)
    
    * The `_` variable will once again remain bound to `underscore` (if
      installed) in `meteor shell`, fixing a regression introduced by Node 8.
      [PR #9406](https://github.com/meteor/meteor/pull/9406)
    
    * Dynamically `import()`ed modules will now be fetched from the
      application server using an HTTP POST request, rather than a WebSocket
      message. This strategy has all the benefits of the previous strategy,
      except that it does not require establishing a WebSocket connection
      before fetching dynamic modules, in exchange for slightly higher latency
      per request. [PR #9384](https://github.com/meteor/meteor/pull/9384)
    
    * To reduce the total number of HTTP requests for dynamic modules, rapid
      sequences of `import()` calls within the same tick of the event loop
      will now be automatically batched into a single HTTP request. In other
      words, the following code will result in only one HTTP request:
      ```js
      const [
        React,
        ReactDOM
      ] = await Promise.all([
        import("react"),
        import("react-dom")
      ]);
    
    • Thanks to a feature request and pull request from @CaptainN, all available dynamic modules will be automatically prefetched after page load and permanently cached in IndexedDB when the appcache package is in use, ensuring that dynamic import() will work for offline apps. Although the HTML5 Application Cache was deliberately not used for this prefetching, the new behavior matches the spirit/intention of the appcache package. Feature Request #236 PR #9482 PR #9434

    • The es5-shim library is no longer included in the initial JavaScript bundle, but is instead injected using a <script> tag in older browsers that may be missing full support for ECMAScript 5. For the vast majority of modern browsers that do not need es5-shim, this change will reduce the bundle size by about 10KB (minified, pre-gzip). For testing purposes, the <script> tag injection can be triggered in any browser by appending ?force_es5_shim=1 to the application URL. PR #9360

    • โœ… The Tinytest.addAsync API now accepts test functions that return Promise objects, making the onComplete callback unnecessary:

      Tinytest.addAsync("some async stuff", async function (test) {
      test.equal(shouldReturnFoo(), "foo");
      const bar = await shouldReturnBarAsync();
      test.equal(bar, "bar");
      });
      

      PR #9409

    • Line number comments are no longer added to bundled JavaScript files on the client or the server. Several years ago, before all major browsers supported source maps, we felt it was important to provide line number information in generated files using end-of-line comments like

      some.code(1234); // 123
      more.code(5, 6); // 124
      

      Adding all these comments was always slower than leaving the code unmodified, but recently the comments have begun interacting badly with certain newer ECMAScript syntax, such as multi-line template strings. Since source maps are well supported in most browsers that developers are likely to be using for development, and the line number comments are now causing substantive problems beyond the performance cost, we concluded it was time to stop using them. PR #9323 Issue #9160

    • ๐Ÿ’ป Since Meteor 1.3, Meteor has supported string-valued "browser" fields in package.json files, to enable alternate entry points for packages in client JavaScript bundles. In Meteor 1.6.1, we are expanding support to include object-valued "browser" fields, according to this unofficial and woefully incomplete (but widely-implemented) "spec document." We are only supporting the "relative style" of browser replacements, however, and not the "package style" (as detailed in this comment), because supporting the package style would have imposed an unacceptable runtime cost on all imports (not just those overridden by a "browser" field). PR #9311 Issue #6890

    • ๐Ÿ“ฆ The Boilerplate#toHTML method from the boilerplate-generator package has been deprecated in favor of toHTMLAsync (which returns a Promise that resolves to a string of HTML) or toHTMLStream (which returns a Stream of HTML). Although direct usage of toHTML is unlikely, please update any code that calls this method if you see deprecation warnings in development. Issue #9521.

    • โฌ†๏ธ The npm package has been upgraded to version 5.6.0, and our fork of its pacote dependency has been rebased against version 7.0.2.

    • โšก๏ธ The reify npm package has been updated to version 0.13.7.

    • โšก๏ธ The minifier-js package has been updated to use uglify-es 3.2.2.

    • ๐Ÿ“ฆ The request npm package used by both the http package and the meteor command-line tool has been upgraded to version 2.83.0.

    • โšก๏ธ The kexec npm package has been updated to version 3.0.0.

    • โšก๏ธ The moment npm package has been updated to version 2.20.1.

    • โšก๏ธ The rimraf npm package has been updated to version 2.6.2.

    • โšก๏ธ The glob npm package has been updated to version 7.1.2.

    • โšก๏ธ The ignore npm package has been updated to version 3.3.7.

    • โšก๏ธ The escope npm package has been updated to version 3.6.0.

    • โšก๏ธ The split2 npm package has been updated to version 2.2.0.

    • โšก๏ธ The multipipe npm package has been updated to version 2.0.1.

    • โšก๏ธ The pathwatcher npm package has been updated to version 7.1.1.

    • โšก๏ธ The lru-cache npm package has been updated to version 4.1.1.

    • ๐Ÿšš The deprecated Meteor.http object has been removed. If your application is still using Meteor.http, you should now use HTTP instead:

      import { HTTP } from "meteor/http";
      HTTP.call("GET", url, ...);
      
    • ๐Ÿšš The deprecated Meteor.uuid function has been removed. If your application is still using Meteor.uuid, you should run

      meteor npm install uuid
      

      to install the widely used uuid package from npm. Example usage:

      import uuid from "uuid";
      console.log(uuid());
      
    • ๐ŸŒฒ The log-suppressing flags on errors in ddp-client and ddp-server have been changed from expected to _expectedByTest in order to avoid inadvertently silencing errors in production. Issue #6912 PR #9515

    • โšก๏ธ Provide basic support for iPhone X status bar and launch screens, which includes updates to [email protected] and [email protected]. Issue #9041 PR #9375

    • ๐Ÿ›  Fixed an issue preventing the installation of scoped Cordova packages. For example,

      meteor add cordova:@somescope/[email protected]
      

      will now work properly. Issue #7336 PR #9334

    • โšก๏ธ iOS icons and launch screens have been updated to support iOS 11 Issue #9196 PR #9198

    • Enables passing false to cursor.count() on the client to prevent skip and limit from having an effect on the result. Issue #1201 PR #9205

    • An onExternalLogin hook has been added to the accounts system, to allow the customization of OAuth user profile updates. PR #9042

    • ๐Ÿ‘ Accounts.config now supports a bcryptRounds option that overrides the default 10 rounds currently used to secure passwords. PR #9044

    • Developers running Meteor from an interactive shell within Emacs should notice a substantial performance improvement thanks to automatic disabling of the progress spinner, which otherwise reacts slowly. PR #9341

    • Npm.depends can now specify any http or https URL. Issue #9236 PR #9237

    • Byte order marks included in --settings files will no longer crash the Meteor Tool. Issue #5180 PR #9459

    • ๐Ÿ’… The accounts-ui-unstyled package has been updated to use <form /> and <button /> tags with its login/signup form, instead of <div />'s. This change helps browser's notice login/signup requests, allowing them to trigger their "remember your login/password" functionality.

    Note: If your application is styling the login/signup form using a CSS path that includes the replaced div elements (e.g. div.login-form { ... or div.login-button { ...), your styles will break. You can either update your CSS to use form. / button. or adjust your CSS specificity by styling on class / id attributes only.

    Issue #1746 PR #9442

    • ๐Ÿ“ฆ The stylus package has been deprecated and will no longer be supported/maintained. PR #9445

    • ๐Ÿ‘Œ Support for the meteor admin get-machine command has been removed, and the build farm has been discontinued. Ever since Meteor 1.4, packages with binary dependencies have been automatically (re)compiled when they are installed in an application, assuming the target machine has a basic compiler toolchain. To see the requirements for this compilation step, consult the platform requirements for node-gyp.

    • Client side Accounts.onLogin callbacks now receive a login details object, with the attempted login type (e.g. { type: password } after a successful password based login, { type: resume } after a DDP reconnect, etc.). Issue #5127 PR #9512

  • v1.6.1.4 Changes

    August 16, 2018

    ๐Ÿ’ฅ Breaking changes

    N/A

    Migration Steps

    N/A

    ๐Ÿ”„ Changes

  • v1.6.1.3 Changes

    June 16, 2018

    ๐Ÿ’ฅ Breaking changes

    N/A

    Migration Steps

    N/A

    ๐Ÿ”„ Changes