From 93d73fd6c24b29e7c13ae1ece6d9dbdc535b7294 Mon Sep 17 00:00:00 2001 From: Jason Aden Date: Thu, 31 Aug 2017 11:43:55 -0700 Subject: [PATCH] Revert "style(changelog): improving readability (#18949)" This reverts commit c679a6fb7bd44dd0f092d5d5a3d56e29010a4087. --- CHANGELOG.md | 155 +++++++++++++++++++++++++-------------------------- 1 file changed, 77 insertions(+), 78 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23eaa18eb2..be27963a36 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,8 +48,84 @@ ### 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. @@ -62,83 +138,6 @@ * 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)