v3-docs/docs/history.md
This is a complete history of changes for Meteor releases.
rspack atmosphere package (requires at least [email protected])
Orchestrates the full Rspack setup, including the development server and production builds.@meteorjs/rspack npm package
Provides a default rspack.config.js. Applications can extend or override this configuration with their own.tools-core package
Supplies runtime utilities for Meteor, designed to support this integration and future tool integrations.devOnly packages and Npm.devDepends to optimize production builds, PR#13797Meteor.deferDev to optimize server startup during development, PR#14006--raw-logs by default, use --timestamps to keep timestamps, PR#13944collection-extensions into core, PR#13830All Merged PRs@GitHub PRs 3.4
React Packages:
accounts-ui CSS has changed, PR#13840N/A
Please run the following command to update your project:
meteor update --release 3.4
To apply react-meteor-data changes:
meteor add [email protected]
Add this to your package.json to enable the new modern build stack:
"meteor": {
"modern": true
}
Check out the requirements for Meteor Bundler optimizations on existing apps.
Add rspack package to enable the Rspack Bundler integration:
meteor add rspack
This package is added by default for new apps.
Check out the requirements for Rspack Bundler integration on existing apps.
If you find any issues, please report them to the Meteor issues tracker.
✨✨✨
✨✨✨
findUserByEmail method from accounts-password to accounts-base #13859insertedId on client upsert to match Meteor 2.x behavior #13891sha.js #13908All Merged PRs@GitHub PRs 3.3.2
N/A
Please run the following command to update your project:
meteor update --release 3.3.2
If you find any issues, please report them to the Meteor issues tracker.
✨✨✨
✨✨✨
MongoDB Driver Upgrades
6.16.0 to address latest issues reported #13710npm-mongo-legacy to maintain compatibility with MongoDB 3.6 via [email protected] #13736next() and close() operations #13786Improved SWC integration
Tooling and Build System
Mobile Support
Developer Experience
Vite Tooling
Runtime & Dependencies
All Merged PRs@GitHub PRs 3.3.1
If you're using MongoDB 3.6 or earlier, install the new legacy package:
meteor add npm-mongo-legacy
This will pin the MongoDB driver to 6.9.0 for compatibility.
If you’re on MongoDB 4+, the default MongoDB driver 6.16.0 is applied automatically.
Please migrate your database as soon as possible to MongoDB 5 onward, as MongoDB driver 6.17.0 will drop MongoDB 4 support. We’ll keep offering npm-mongo-legacy so you can keep getting Meteor updates with your existing MongoDB legacy version.
The Cordova platform has been upgraded to version 14. Refer to the Cordova Changelog for more details on the changes and migration steps.
N/A
Please run the following command to update your project:
meteor update --release 3.3.1
While this is a patch release, Meteor 3.3, a recent minor update, introduced a modern build stack that’s now the default for new apps. Here’s how you can migrate to it.
Add this to your package.json to enable the new modern build stack:
"meteor": {
"modern": true
}
Check the docs for help with the SWC migration, especially if your project uses many Babel plugins.
If you find any issues, please report them to the Meteor issues tracker.
✨✨✨
✨✨✨
@parcel/watcher for improved native file watching PR#13699, #13707meteor profile: show rebuild steps and total, support --build PR#16, PR#13694useFind and useSubscribe React hooksreplaceEmailAsync helper to Accounts PR#13677DO_NOT_TRACKAll Merged PRs@GitHub PRs 3.3
React Packages Changelog: [email protected]
File watching strategy switched to @parcel/watcher
METEOR_WATCH_FORCE_POLLING=true to enable polling.METEOR_WATCH_POLLING_INTERVAL_MS=1000 to adjust the interval.[email protected] - Depends on Meteor’s webapp package.
async/await or Promise.resolve when defining endpoints to avoid deprecation warnings.Please run the following command to update your project:
meteor update --release 3.3
To apply react-meteor-data changes:
meteor add [email protected]
Add this to your package.json to enable the new modern build stack:
"meteor": {
"modern": true
}
These settings are on by default for new apps.
On activate modern your app will be updated to use SWC transpiler. It will automatically fallback to Babel if your code can't be transpiled wit SWC.
Check the docs for help with the SWC migration, especially if your project uses many Babel plugins.
If you find any issues, please report them to the Meteor issues tracker.
✨✨✨
✨✨✨
x-forwarded-for headers in Session._clientAddress:
N/A
N/A
Please run the following command to update your project:
meteor update --release 3.2.2
✨✨✨
✨✨✨
meteor profile command to show performance metrics of Meteor apps.All detailed PRs can be found here: https://github.com/meteor/meteor/pulls?q=is%3Apr+is%3Amerged+base%3Arelease-3.2
N/A
N/A
Please run the following command to update your project:
meteor update --release 3.2
✨✨✨
✨✨✨
N/A
N/A
Please run the following command to update your project:
meteor update --release 3.1.2
N/A
✨✨✨
✨✨✨
N/A
N/A
Please run the following command to update your project:
meteor update --release 3.1.1
N/A
✨✨✨
✨✨✨
roles package into the coremongo package into TypeScriptunderscore and eliminate it from packageshttp package to 3.0.0N/A
Please run the following command to update your project:
meteor update --release 3.1
Make sure to migrate userland code to use the new Express APIs:
https://expressjs.com/en/guide/migrating-5.html
The MongoDB Node.js driver implemented a significant breaking change regarding operation handling. Applications leveraging rawCollection() or rawDatabase() methods must now utilize Promise-based syntax exclusively, as the callback-pattern API has been deprecated and removed. This modification affects all direct MongoDB operations previously using callback functions.
✨✨✨
✨✨✨
N/A
N/A
Please run the following command to update your project:
meteor update --release 3.0.4
Bumped packages:
N/A
Meteor.userId only being invoked with bindEnvironment.20.17.x.meteor --open opens the browser before the app is started.jam:method package.install.sh.email package to prevent update errors.N/A
Please run the following command to update your project:
meteor update --release 3.0.3
If you've had your Meteor installation for over a year, we suggest reinstalling it to avoid any package installation issues. You can do this by running a few quick commands:
npx meteor uninstall // or rm -rf ~/.meteor
npx meteor
Bumped packages:
N/A
N/A
Please run the following command to update your project:
meteor update --release 3.0.2
Bumped packages:
For making this great framework even better!
N/A
N/A
Please run the following command to update your project:
meteor update --release 3.0.1
Bumped packages:
For making this great framework even better!
Meteor tool
--db option to also remove the local database.Accounts._is2faEnabledForUser(Meteor Method) - generate2faActivationQrCode(Meteor Method) - enableUser2fa(Meteor Method) - disableUser2fa(Meteor Method) - has2faEnabledmethods.removeOtherTokens is now asyncAccounts.destroyToken is now asyncAccounts.insertUserDoc is now asyncAccounts.updateOrCreateUserFromExternalService is now asyncAccounts.expirePasswordToken is now asyncAccounts.setupUsersCollection is now asyncMeteor.user is now async in serverAccounts.sendResetPasswordEmailAccounts.sendEnrollmentEmailAccounts.sendVerificationEmailAccounts.addEmailAccounts.removeEmailAccounts.replaceEmailAsyncAccounts.verifyEmailAccounts.createUserVerifyingEmailAccounts.createUserAccounts.generateVerificationTokenAccounts.generateResetTokenAccounts.forgotPasswordAccounts.setPassword -- no longer exists, you should use Accounts.setPasswordAsync PRAccounts.changePasswordAccounts.setUsernameAccounts.findUserByEmailAccounts.findUserByUsernameAccounts.sendLoginTokenEmail is now async.handlersPromise.await default transform.Build system:
Assets.getTextAssets.getBinarytoHTML is no longer available (it was already deprecated). Use toHTMLStream instead.handlershandlersBrowserPolicy.content.setPolicyBrowserPolicy.content.allowInlineScriptsBrowserPolicy.content.disallowInlineScriptsBrowserPolicy.content.disallowAllBrowserPolicy.setDefaultPolicy[email protected]:
Updated to use async methods from browser-policy-common and browser-policy-content.
afterLink is now async.forEachAsync method.fibers related tests.Some methods are now async. See below:
ConstraintSolver.getVersionCostStepsConstraintSolver.analyzeConstraintSolver.resolveUpdated tests to be async.
Removed a few underscore usage.
Added updated to use async methods
fibers from package.isAsyncCall method to know if call is being made by a async method.fibers from package..fence option.fibers from package.@babel/runtime.@babel/runtime.Email.send is no longer available. Use Email.sendAsync instead.Email.send depracation.ddp to false.http@:
handlersforEachAsync method.@babel/runtime.[email protected]:
Logic.disablingAssertions is now async.
minMaxWS is now async.
promiseEmmiter to help with async methods.fibers from package.Meteor.absoluteUrl in localhost uses 127.0.1 by default.minifyCss is now async.fibers from package.minifyJs is now async.terserMinify no longer takes callbacksfibers from package.[email protected]:
cursor.observe now returns isReady and isReadyPromise wich indicates
if the cursor is ready and if the callbacks are have been called.
If you only use it in the Client or as a LocalCollection things have not
changed.reify version.mongo-decimal@:
async methods.update,insert,remove, fetch are now async, they are
the same as their *Async counterpart.ensureIndex and createIndex are now async.oauth@:
_endOfPopupResponseTemplate and _endOfRedirectResponseTemplate are no longer a property but now a function that returns a promise of the same value as beforeOAuth._renderOauthResultsOAuth._endOfLoginResponseOAuth.renderEndOfLoginResponseOAuth._storePendingCredentialOAuth._retrievePendingCredentialensureConfigured_cleanStaleResultsoauth1@:
OAuth._storeRequestTokenOAuth._retrieveRequestTokenoauth2@:
OAuth._requestHandlers['2'] is now async.forEachAsync method.fibers usageecmascript package to package.jsgetBoilerplate that are now async.createIndexAsync.async code.spiderable@:
handlers that are now using expressfibers usage if flag is set to trueprocessFilesForBundle is now async.async methods.fibers usage.async tests.test name to logs.fibers usage.These methods are now async:
WebAppInternals.reloadClientPrograms()WebAppInternals.pauseClient()WebAppInternals.generateClientProgram()WebAppInternals.generateBoilerplate()WebAppInternals.setInlineScriptsAllowed()WebAppInternals.enableSubresourceIntegrity()WebAppInternals.setBundledJsCssUrlRewriteHook()WebAppInternals.setBundledJsCssPrefix()WebAppInternals.getBoilerplateChanged engine from connect to express and changed api naming to match express. See below:
WebApp.connectHandlers.use(middleware) is now WebApp.handlers.use(middleware)
WebApp.rawConnectHandlers.use(middleware) is now WebApp.rawHandlers.use(middleware)
WebApp.connectApp is now WebApp.expressApp
WebApp.addRuntimeConfigHook accepts async callbacks
Build system PR:
accounts-base: (2.9+)
Meteor.userAsync()callback-hook:forEachAsync
forEachAsyncddp-server: (2.8+)
Meteor.callAsync()minifier-css: (2.9+)
CssTools.minifyCssAsync()mongo:
Mongo.Collection: (2.8+)
createCappedCollectionAsynccreateIndexAsyncdropCollectionAsyncdropIndexAsyncfindOneAsyncinsertAsyncremoveAsyncupdateAsyncupsertAsyncCollection.Cursor: (2.8+)
countAsyncfetchAsyncforEachAsyncmapAsync[Symbol.asyncIterator] so this code should work:
for await (const document of collection.find(query, options)) /* ... */
accounts-base:
_attemptLogin_loginMethod_runLoginHandlersnode-gyp to v9.4.0node-pre-gyp to @mapbox/node-pre-gyp v1.0.11accounts-password:
Accounts._checkPasswordAsyncFor making this great framework even better!