From c679a6fb7bd44dd0f092d5d5a3d56e29010a4087 Mon Sep 17 00:00:00 2001 From: Olivier Combe Date: Wed, 30 Aug 2017 10:59:02 +0200 Subject: [PATCH] style(changelog): improving readability (#18949) PR Close #18949 --- CHANGELOG.md | 155 ++++++++++++++++++++++++++------------------------- 1 file changed, 78 insertions(+), 77 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index be27963a36..23eaa18eb2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,84 +48,8 @@ ### BREAKING CHANGES +#### Deprecated code * router: `RouterOutlet` properties `locationInjector` and `locationFactoryResolver` have been removed as they were deprecated since v4. -* compiler: - `@angular/platform-server` now additionally depends on - `@angular/platform-browser-dynamic` as a peer dependency. -* common: Because of multiple bugs and browser inconsistencies, we have dropped the intl api in favor of data exported from the Unicode Common Locale Data Repository (CLDR). -Unfortunately we had to change the i18n pipes (date, number, currency, percent) and there are some breaking changes. - -1. I18n pipes -* Breaking change: - - By default Angular now only contains locale data for the language `en-US`, if you set the value of `LOCALE_ID` to another locale, you will have to import new locale data for this language because we don't use the intl API anymore. - -* Features: - - you don't need to use the intl polyfill for Angular anymore. - - all i18n pipes now have an additional last parameter `locale` which allows you to use a specific locale instead of the one defined in the token `LOCALE_ID` (whose value is `en-US` by default). - - the new locale data extracted from CLDR are now available to developers as well and can be used through an API (which should be especially useful for library authors). - - you can still use the old pipes for now, but their names have been changed and they are no longer included in the `CommonModule`. To use them, you will have to import the `DeprecatedI18NPipesModule` after the `CommonModule` (the order is important): - - ```ts - import { NgModule } from '@angular/core'; - import { CommonModule, DeprecatedI18NPipesModule } from '@angular/common'; - - @NgModule({ - imports: [ - CommonModule, - // import deprecated module after - DeprecatedI18NPipesModule - ] - }) - export class AppModule { } - ``` - - Dont forget that you will still need to import the intl API polyfill if you want to use those deprecated pipes. - -2. Date pipe -* Breaking changes: - - the predefined formats (`short`, `shortTime`, `shortDate`, `medium`, ...) now use the patterns given by CLDR (like it was in AngularJS) instead of the ones from the intl API. You might notice some changes, e.g. `shortDate` will be `8/15/17` instead of `8/15/2017` for `en-US`. - - the narrow version of eras is now `GGGGG` instead of `G`, the format `G` is now similar to `GG` and `GGG`. - - the narrow version of months is now `MMMMM` instead of `L`, the format `L` is now the short standalone version of months. - - the narrow version of the week day is now `EEEEE` instead of `E`, the format `E` is now similar to `EE` and `EEE`. - - the timezone `z` will now fallback to `O` and output `GMT+1` instead of the complete zone name (e.g. `Pacific Standard Time`), this is because the quantity of data required to have all the zone names in all of the existing locales is too big. - - the timezone `Z` will now output the ISO8601 basic format, e.g. `+0100`, you should now use `ZZZZ` to get `GMT+01:00`. - - | Field type | Format | Example value | v4 | v5 | - |------------|---------------|-----------------------|----|---------------| - | Eras | Narrow | A for AD | G | GGGGG | - | Months | Narrow | S for September | L | MMMMM | - | Week day | Narrow | M for Monday | E | EEEEE | - | Timezone | Long location | Pacific Standard Time | z | Not available | - | Timezone | Long GMT | GMT+01:00 | Z | ZZZZ | - -* Features - - new predefined formats `long`, `full`, `longTime`, `fullTime`. - - the format `yyy` is now supported, e.g. the year `52` will be `052` and the year `2017` will be `2017`. - - standalone months are now supported with the formats `L` to `LLLLL`. - - week of the year is now supported with the formats `w` and `ww`, e.g. weeks `5` and `05`. - - week of the month is now supported with the format `W`, e.g. week `3`. - - fractional seconds are now supported with the format `S` to `SSS`. - - day periods for AM/PM now supports additional formats `aa`, `aaa`, `aaaa` and `aaaaa`. The formats `a` to `aaa` are similar, while `aaaa` is the wide version if available (e.g. `ante meridiem` for `am`), or equivalent to `a` otherwise, and `aaaaa` is the narrow version (e.g. `a` for `am`). - - extra day periods are now supported with the formats `b` to `bbbbb` (and `B` to `BBBBB` for the standalone equivalents), e.g. `morning`, `noon`, `afternoon`, .... - - the short non-localized timezones are now available with the format `O` to `OOOO`. The formats `O` to `OOO` will output `GMT+1` while the format `OOOO` will be `GMT+01:00`. - - the ISO8601 basic time zones are now available with the formats `Z` to `ZZZZZ`. The formats `Z` to `ZZZ` will output `+0100`, while the format `ZZZZ` will be `GMT+01:00` and `ZZZZZ` will be `+01:00`. - -* Bug fixes - - the date pipe will now work exactly the same across all browsers, which will fix a lot of bugs for safari and IE. - - eras can now be used on their own without the date, e.g. the format `GG` will be `AD` instead of `8 15, 2017 AD`. - -3. Currency pipe -* Breaking change: - - the default value for `symbolDisplay` is now `symbol` instead of `code`. This means that by default you will see `$4.99` for `en-US` instead of `USD4.99` previously. - -* Deprecation: - - the second parameter of the currency pipe (`symbolDisplay`) is no longer a boolean, it now takes the values `code`, `symbol` or `symbol-narrow`. A boolean value is still valid for now, but it is deprecated and it will print a warning message in the console. - -* Features: - - you can now choose between `code`, `symbol` or `symbol-narrow` which gives you access to more options for some currencies (e.g. the canadian dollar with the code `CAD` has the symbol `CA$` and the symbol-narrow `$`). - -4. Percent pipe -* Breaking change - - if you don't specify the number of digits to round to, the local format will be used (and it usually rounds numbers to 0 digits, instead of not rounding previously), e.g. `{{ 3.141592 | percent }}` will output `314%` for the locale `en-US` instead of `314.1592%` previously. * common: `NgFor` has been removed as it was deprecated since v4. Use `NgForOf` instead. This does not impact the use of`*ngFor` in your templates. * common: `NgTemplateOutlet#ngOutletContext` has been removed as it was deprecated since v4. Use `NgTemplateOutlet#ngTemplateOutletContext` instead. * core: `Testability#findBindings` has been removed as it was deprecated since v4. Use `Testability#findProviders` instead. @@ -138,6 +62,83 @@ Unfortunately we had to change the i18n pipes (date, number, currency, percent) * core: `ErrorHandler` no longer takes a parameter as it was not used and deprecated since v4. * compiler: the option `useDebug` for the compiler has been removed as it had no effect and was deprecated since v4. +#### Other breaking changes +* compiler: - `@angular/platform-server` now additionally depends on + `@angular/platform-browser-dynamic` as a peer dependency. +* common: Because of multiple bugs and browser inconsistencies, we have dropped the intl api in favor of data exported from the Unicode Common Locale Data Repository (CLDR). +Unfortunately we had to change the i18n pipes (date, number, currency, percent) and there are some breaking changes. + ##### I18n pipes: + - Breaking change: + - By default Angular now only contains locale data for the language `en-US`, if you set the value of `LOCALE_ID` to another locale, you will have to import new locale data for this language because we don't use the intl API anymore. + - Features: + - you don't need to use the intl polyfill for Angular anymore. + - all i18n pipes now have an additional last parameter `locale` which allows you to use a specific locale instead of the one defined in the token `LOCALE_ID` (whose default value is `en-US`). + - the new locale data extracted from CLDR are now available to developers as well and can be used through an API (which should be especially useful for library authors). + - you can still use the old pipes for now, but their names have been changed and they are no longer included in the `CommonModule`. To use them, you will have to import the `DeprecatedI18NPipesModule` after the `CommonModule` (the order is important): + + ```ts + import { NgModule } from '@angular/core'; + import { CommonModule, DeprecatedI18NPipesModule } from '@angular/common'; + + @NgModule({ + imports: [ + CommonModule, + // import deprecated module after + DeprecatedI18NPipesModule + ] + }) + export class AppModule { } + ``` + + Don't forget that you will still need to import the intl API polyfill if you want to use those deprecated pipes. + + ##### Date pipe + - Breaking changes: + - the predefined formats (`short`, `shortTime`, `shortDate`, `medium`, ...) now use the patterns given by CLDR (like it was in AngularJS) instead of the ones from the intl API. You might notice some changes, e.g. `shortDate` will be `8/15/17` instead of `8/15/2017` for `en-US`. + - the narrow version of eras is now `GGGGG` instead of `G`, the format `G` is now similar to `GG` and `GGG`. + - the narrow version of months is now `MMMMM` instead of `L`, the format `L` is now the short standalone version of months. + - the narrow version of the week day is now `EEEEE` instead of `E`, the format `E` is now similar to `EE` and `EEE`. + - the timezone `z` will now fallback to `O` and output `GMT+1` instead of the complete zone name (e.g. `Pacific Standard Time`), this is because the quantity of data required to have all the zone names in all of the existing locales is too big. + - the timezone `Z` will now output the ISO8601 basic format, e.g. `+0100`, you should now use `ZZZZ` to get `GMT+01:00`. + + | Field type | Format | Example value | v4 | v5 | + |------------|---------------|-----------------------|----|---------------| + | Eras | Narrow | A for AD | G | GGGGG | + | Months | Narrow | S for September | L | MMMMM | + | Week day | Narrow | M for Monday | E | EEEEE | + | Timezone | Long location | Pacific Standard Time | z | Not available | + | Timezone | Long GMT | GMT+01:00 | Z | ZZZZ | + + - Features + - new predefined formats `long`, `full`, `longTime`, `fullTime`. + - the format `yyy` is now supported, e.g. the year `52` will be `052` and the year `2017` will be `2017`. + - standalone months are now supported with the formats `L` to `LLLLL`. + - week of the year is now supported with the formats `w` and `ww`, e.g. weeks `5` and `05`. + - week of the month is now supported with the format `W`, e.g. week `3`. + - fractional seconds are now supported with the format `S` to `SSS`. + - day periods for AM/PM now supports additional formats `aa`, `aaa`, `aaaa` and `aaaaa`. The formats `a` to `aaa` are similar, while `aaaa` is the wide version if available (e.g. `ante meridiem` for `am`), or equivalent to `a` otherwise, and `aaaaa` is the narrow version (e.g. `a` for `am`). + - extra day periods are now supported with the formats `b` to `bbbbb` (and `B` to `BBBBB` for the standalone equivalents), e.g. `morning`, `noon`, `afternoon`, .... + - the short non-localized timezones are now available with the format `O` to `OOOO`. The formats `O` to `OOO` will output `GMT+1` while the format `OOOO` will be `GMT+01:00`. + - the ISO8601 basic time zones are now available with the formats `Z` to `ZZZZZ`. The formats `Z` to `ZZZ` will output `+0100`, while the format `ZZZZ` will be `GMT+01:00` and `ZZZZZ` will be `+01:00`. + + - Bug fixes + - the date pipe will now work exactly the same across all browsers, which will fix a lot of bugs for safari and IE. + - eras can now be used on their own without the date, e.g. the format `GG` will be `AD` instead of `8 15, 2017 AD`. + + ##### Currency pipe + - Breaking change: + - the default value for `symbolDisplay` is now `symbol` instead of `code`. This means that by default you will see `$4.99` for `en-US` instead of `USD4.99` previously. + + * Deprecation: + - the second parameter of the currency pipe (`symbolDisplay`) is no longer a boolean, it now takes the values `code`, `symbol` or `symbol-narrow`. A boolean value is still valid for now, but it is deprecated and it will print a warning message in the console. + + - Features: + - you can now choose between `code`, `symbol` or `symbol-narrow` which gives you access to more options for some currencies (e.g. the canadian dollar with the code `CAD` has the symbol `CA$` and the symbol-narrow `$`). + + ##### Percent pipe + - Breaking change + - if you don't specify the number of digits to round to, the local format will be used (and it usually rounds numbers to 0 digits, instead of not rounding previously), e.g. `{{ 3.141592 | percent }}` will output `314%` for the locale `en-US` instead of `314.1592%` previously. + ## [4.3.6](https://github.com/angular/angular/compare/4.3.5...4.3.6) (2017-08-23)