docs/long-form/breaking-changes-1.2.md
We've tried to make upgrading your app or package as painless as possible, but in some cases, you will have to make small modifications to your Meteor 1.1 code to get it to run in Meteor 1.2. This document outlines the breaking changes and potential compatibility issues in Meteor 1.2.
This document is meant to be as short as possible so that you can read it all. If you want to learn about all of the new features in Meteor 1.2, read here: XXX to be posted later
standard-minifiers package to get the default CSS and JS handling that was hard-coded in Meteor 1.1. When you update your app to 1.2 or a prerelease of 1.2, Meteor will add the standard-minifiers package to your app automatically. Besides minifying your code in production, the biggest effect of standard-minifiers is in how URLs in CSS are interpreted, such as for fonts and images. In a Meteor 1.1 app or an app with standard-minifiers, the URLs are interpreted relative to the top level, because all CSS is concatenated in development, and concatenated and minified in production. If you remove standard-minifiers in Meteor 1.2, URLs in CSS will be interpreted as relative to the CSS file, as per web standards. This change was made to give developers more control over minification, with less hard-coded functionality.api.addFiles that have no recognizable extension are no longer added as static assets. You must now use api.addAssets to add a static asset. Package authors must make this change to their package.js files before they can publish from Meteor 1.2, but existing published packages will continue to work. The hidden isAsset: true flag to api.addFiles is now deprecated and throws an error suggesting that you should use addAssets instead.jquery, mongo, or a similarly common package in your package.js file, the package would usually still work because most apps had these packages by default. We are now trying to make these parts of Meteor more modular, so package authors should take care to declare all of their package dependencies in package.js.test-packages command to avoid making any packages available globally. If your tests passed before but fail in Meteor 1.2 with a message like $ is undefined, that means that your package had an undeclared dependency on jQuery and the tests only passed because test-packages itself added jQuery to the global namespace. The fix is to make sure your dependencies in package.js are correct.package and let. You should get a nice error that will notify you that some names need to be changed.Meteor.users.findOne({username: x}) or similar to search for users, and this will be a case-sensitive lookup. Instead, the new API method should be used like so: Accounts.findUserByUsername(x) This way, the username will be matched in a case-insensitive fashion. The same thing applies for email addresses and the new API method Accounts.findUserByEmail.react. If your package depends on reactjs:react or another package that loads React, switch to the official one so that users can have one global version of the React library. If you are using the getMeteorData mixin for reactive data, you should depend on react; if you just need the React rendering library itself, then you should depend on react-runtime, which is a subset of the react package.meteor run ios-device to open the project in Xcode and watch the console output in the debug area.