Meteor v2.3 Release Notes

Release Date: 2021-06-24 // almost 3 years ago
  • Highlights

    • โšก๏ธ Node.js update to 14.17.1 from 12.22.1 ๐ŸŽ‰

    • โšก๏ธ Typescript update to 4.3.2

    • ๐Ÿ‘€ Packages had their backward compatibility to before Meteor 1.0 removed. See below for more details.

    • ๐Ÿ‘Œ Improved tracking of which files are used by build plugins to know when it should do a full rebuild, a faster client-only rebuild, or can completely skip rebuilding after a file is modified. This should work with any type of file in any directory, and for both files in the app and files in packages. The most noticeable improvement is when modifying a file only used on the client Meteor will only rebuild the client, even if the file is not inside imports or a client folder.

    Summary of breaking changes

    • โฌ†๏ธ As Node.js version was upgraded to a new major version we recommend that you review if your npm dependencies are compatible with Node.js 14.

      • If we receive reports from breaking changes we are going to list them here but so far we are not aware of any.
      • We recommend that you read Node.js release notes though.
    • ๐Ÿ‘€ Accounts have undergone some major changes including major version bump. See below for more details.

    • โšก๏ธ All official packages that have been deprecated have now the deprecated flag and will inform you about that if you install or update them.

    • If you are working with enrollments in user accounts, do note that the enrollment token handling is now separate from reset password token. The token is now under services.password.enroll, so adjust your code accordingly if you use it.

    Migration steps

    • As Node.js version was upgraded we recommend that you remove your node_modules folder (rm -rf node_modules) and run meteor npm i to be sure you compile all the binary dependencies again using the new Node.js version.

      • Maybe you also want to recreate your lock file.
      • If you get an error try meteor reset which will clear caches, beware that this will also remove your local DB for your app.
    • ๐Ÿ“ฆ If you are maintaining a package that depends on one of the accounts packages which had a major version bump you will either need to set the new version manually or set api.versionsFrom('2.3'). You can also have it reference its current version and 2.3 like this: api.versionsFrom(['1.12', '2.3']), for specific package it can be like this: api.use('[email protected] || 2.0.0').

    • ๐Ÿ“ฆ Old API for packages definitions has been removed. The old underscore method names (e.g. api.add_files()) will no longer work, please use the camel case method names (e.g. api.addFiles()).

    ๐Ÿ’ฅ Breaking changes

    • โœ‚ Removed deprecated mobile-port flag

    • โœ‚ Removed deprecated raw name from isobuild

    • ๐Ÿ“ฆ Removed deprecated package API method names Package.on_use, Package.on_test, Package._transitional_registerBuildPlugin and api.add_files, if you haven't till now, please use the current camel case versions.

    • [email protected]

      • Deprecated backward compatibility function logoutOtherClients has been removed.
    • [email protected]

      • Deprecated backward compatibility functionality for SRP passwords from pre-Meteor 1.0 days has been removed.
      • Enroll account workflow has been separated from reset password workflow (the enrollment token records are now stored in a separate db field services.password.enroll).
    • [email protected]

      • Removed deprecated backward compatibility method names for Meteor before 1.0
    • [email protected]

      • Removed deprecated backward compatibility method names for Meteor before 1.0
    • [email protected]

      • Removed livedata dependency which was there for packages build for 0.9.0
    • [email protected]

      • Removed the rewind method that was noop for compatibility with Meteor 0.8.1
    • [email protected]

      • Removed the rewind method that was noop for compatibility with Meteor 0.8.1
    • [email protected]

      • Removed deprecated OAuth.initiateLogin and other functionality like the addition of ?close in return URI for deprecated OAuth flow pre Meteor 1.0
    • [email protected]

      • Use lazy imports to prevent it from being added to the initial bundle
      • This package is now deprecated
    • [email protected]

      • Internally http has been replaced by fetch, should still work as previous version, but edge cases might be different. This is to aid you in transition to fetch. Note that this means that the npmRequestOptions parameter to HTTP.call has been removed, as request is no longer used internally.
    • [email protected]

      • Remove IE8 checks

    ๐Ÿš€ Meteor Version Release

    • [email protected]

      • Node.js update to 14.17.1 from 12.22.1 ๐ŸŽ‰
      • This is a major upgrade in Node.js. See the release notes for more details.
      • npm update to 6.14.13.
      • fibers has been updated to v5.0.0.
      • promise has been updated to v8.1.0.
      • node-gyp has been updated to v8.0.0.
      • node-pre-gyp has been updated to v0.15.0.
      • @babel/runtime has been updated to v7.14.0.
      • request has been updated to v2.88.2.
      • uuid has been updated to v3.4.0.
      • graceful-fs has been updated to v4.2.6.
      • tar has been updated to v2.2.2.
      • sqlite3 has been updated to v5.0.2.
      • http-proxy has been updated to v1.18.1.
      • wordwrap has been updated to v1.0.0.
      • moment has been updated to v2.29.1.
      • glob has been updated to v7.1.6.
      • split2 has been updated to v3.2.2.
      • lru-cache has been updated to v4.1.5.
      • anser has been updated to v2.0.1.
      • xmlbuilder2 has been updated to v1.8.1.
      • ws has been updated to v7.4.5.
      • underscore has been updated to v1.13.1
      • optimism has been updated to v0.16.1
      • @wry/context has been update to v0.6.0
      • Reduced time spent by server (re)start in development by adding a cache for Reify. This optimization is on by default in development. Set the new METEOR_TOOL_ENABLE_REIFY_RUNTIME_CACHE and METEOR_REIFY_CACHE_DIR environment variables to adjust it or turn it on for production read more in the PR.
      • New flag --platforms has been added to the build command to specify the platform you want to build for. meteor build . --platforms=android. This is useful for example when you are not using a MacOS and you want to build your app only for Android. Also to save time on CI not building all the platforms all the time. See PR for details.
      • The undocumented environment variable DDP_DEFAULT_CONNECTION_URL behavior has changed. Setting DDP_DEFAULT_CONNECTION_URL when running the server (development: meteor run or production: node main.js) sets the default DDP server value for meteor. But this did not work for cordova apps. Now you can define the cordova app default DDP server value by setting DDP_DEFAULT_CONNECTION_URL when building (meteor build).
      • Skeletons dependencies updated to latest version
      • Svelte skeleton now has HMR
      • New deploy option: --build-only. Helpful if you want to build first and after some validations proceeding with the upload and deploy. Read more
      • Improved watched system to properly rebuild client even when a file is outside of client or imports folders. See PR for details.
      • Fix an issue when App.appendToConfig crashed Cordova build.
      • Reify compiler now uses cache in runtime. Read more
    • [email protected]

      • Removes LaunchScreen from web clients.
    • [email protected] (@meteorjs/babel)

      • Fixes for Samsung Internet v6.2+ to be considered modern browser and addition of logical assignment operators via babel-presets-meteor.
      • This package was renamed to @meteorjs/babel.
    • [email protected]

      • Fixes various HMR bugs and edge cases see PR for more.
    • [email protected]

      • Updates nodemailer to 6.6.0 and it now adds charset=utf-8 to text/plain messages by default.
    • [email protected]

      • Updated npm dependencies
    • [email protected]

      • New hook setAdditionalFindUserOnExternalLogin has been added which allows you to customize user selection on external logins if you want to, for example, login a user who has the same e-mail as the external account.
    • [email protected]

      • Added support for this.unblock() in Meteor.publish() context. See PR for more details.
      • Add support in Meteor.publish() for async functions
    • [email protected]

      • Webapp will respond appropriately to unsupported requests instead of sending content, including handling for new HTTP verbs. See PR for more details.

    ๐Ÿš€ Independent Releases