From dbaa05f3684a6d6007ac253758e4c7ca82d6d50e Mon Sep 17 00:00:00 2001 From: Dan Bucholtz Date: Wed, 28 Sep 2016 11:28:53 -0500 Subject: [PATCH 1/4] chore(changelog): update changelog update changelog --- CHANGELOG.md | 345 ++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 326 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e96f9f57403..bc12a3345cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,58 @@ # [2.0.0-rc.0](https://github.com/driftyco/ionic/compare/v2.0.0-beta.11...v2.0.0-rc.0) (2016-09-28) +### New Features +* Ionic 2 API finalized for `2.0.0` release +* Angular 2.0.0 (final!) +* ionViewCanEnter / CanLeave lifecycle events +* FAB Button lists +* Ahead of Time (AoT) compiler ready +* Components can now individually set a mode, which means an app can mix and match iOS / Material Design / Windows Platform modes if that’s desired. +* Typescript 2.0 +* @types support for third-party libraries + +### BREAKING CHANGES + +* Angular upgrade to [2.0.0](https://angular.io/docs/ts/latest/cookbook/rc4-to-rc5.html) + +* [Renamed Lifecycle events](#lifecycle-events-renamed). + +* Storage has been removed from ionic-angular and into a separate module, @ionic/storage. Starters have been updated to add this, make sure to add it to your package.json if you’re using the storage system. + +* Nav transitions are queued. For more info on what this means for you see [this section](#nav-transitions). + +* Removed Tabs `preloadTabs` ability. This is no longer needed with the Ahead of Time (AoT) compiler. + +* Icons in buttons require an attribute on the parent button in order to style them. + +* Platform and mode CSS classes have been moved from the element to the element. + +* select: Select’s `alertOptions` input has been renamed to `selectOptions`. It +now allows you to pass options for either the alert or action-sheet +interface. Refer to their documentation for the options each of them +accept. + +http://ionicframework.com/docs/v2/api/components/action-sheet/ActionShee +tController/#create +http://ionicframework.com/docs/v2/api/components/alert/AlertController/# +create + +* colors: Colors should be passed in the `color` input on components, not added +individually as an attribute on the component. See more [details here](#component-colors). + +* buttons: ` +``` + +becomes + +``` + +``` +Icon left of text in a button +``` + +``` + +becomes + +``` + +``` +Icon right of text in a button +``` + +``` + +becomes + +``` + +``` +Item option buttons - the `icon-left` attribute should still be added to the `` container and not the button itself. +`menuToggle` buttons should not get the `icon-only` attribute + +**Reason for this change:** +There was a noticeable performance decrease from us reading in each button to determine where icons were placed and how to style them. This change improves performance. +This adds styling so that the buttons and icons will be padded a certain amount, but the user is free to leave these attributes off and style the components themselves. + +#### Update CSS Link Tags + +Ionic stylesheets are no longer dynamically loaded per platform. Instead there will be one CSS file to import. Note that future build processes will slim down the CSS file even further to only include component CSS actually used. + +In the head of your `index.html` file, replace: + +``` + + + + +``` + +With: + +``` + +``` +#### Sass Import + +The default configuration will be updated, but if your existing app is using Sass and importing Ionic Sass files directly you’ll need to update the `includePaths` of Node Sass. + +``` +node_modules/ionic-angular/themes +``` + +Next, to include Ionic into your custom Sass file you’ll need to update the Ionic import to this: + +``` +@import "ionic.theme.default"; +``` + +#### Typings + +Any type definitions for third party libraries that are included via the `typings` tool and are included in the the typings.json file should +be updated to use `npm @types`. An example of how this looks is: + +``` +npm install @types/lodash --save-dev --save-exact +``` + +Delete the `typings.json` file, and the `typings` directory. + +### Steps to Upgrade to RC0 + +We are providing 2 ways to update your app with this release. The first way will guide you through creating a new Ionic 2 project and copying your project files to it. This is the easiest way to update your app in our opinion. The second way will step through how to update your existing project. There are a lot of steps involved with this way, and we recommend viewing our conference app for any clarification if you choose this way. This is it! We don’t plan on making any more major API changes after this version. + +Note: For details on NgModules you can read the Angular docs on them [here](https://angular.io/docs/ts/latest/guide/ngmodule.html) + +#### Copying Your Project to a New Project + +1. Install the latest Ionic CLI: + +``` +npm install -g ionic +``` +Note: if you have installed the beta cli you should run `npm uninstall -g ionic` first. + + +2. Create a new Ionic 2 RC0 app: + +``` +ionic start --v2 myApp +``` + +3. Copy/paste all of your pages from `app/pages/` of your beta.11 app to `src/pages/`, providers from `app/providers` to `src/providers` pipes from `app/pipes` to `src/pipes` and any custom components to `src/components` in the new RC0 app. + +4. Modify all `templateUrl`'s to be relative to the `.ts` file. For example in `app.component.ts` the url should change from `build/app.html` to `app.html` and in a page referencing `about.html` from `build/pages/about/about.html` to `about.html`. + +5. Import and add each of your pages to the `declarations` array and the `entryComponents` array in `src/app/app.module.ts. + +6. Import and add each of your custom components to the `declarations` array in `src/app/app.module.ts`. + +7. Import and add each of your providers to the `providers` array in `src/app/app.module.ts`. + +8. Remove any use of the `providers` entry in `@Component` from your pages. + +9. Change any uses of the `private` TypeScript keyword to `public`. + +10. Change `