From 140a878a3d48a62bbef4e3ce68f054791cdce618 Mon Sep 17 00:00:00 2001 From: Rado Kirov Date: Tue, 26 Apr 2016 15:17:46 -0700 Subject: [PATCH] chore(changelog): regenerate changelog for beta.16 including refactor - the script explicitly takes input for the starting tag. - the script only prepends changes. --- CHANGELOG.md | 101 +++++++++++++++++++++++++++++------ scripts/publish/changelog.js | 23 ++++++-- 2 files changed, 104 insertions(+), 20 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 784f54a875..90a6c3044d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -23,11 +23,18 @@ ### Features +* **codegen:** produce `.ngfactory.dart/ts` files instead of `.template.dart/ts` files. ([c06b0a2](https://github.com/angular/angular/commit/c06b0a2)) +* **core:** add `Query.read` and remove `DynamicComponentLoader.loadIntoLocation`. ([efbd446](https://github.com/angular/angular/commit/efbd446)) +* **core:** introduce ComponentFactory. ([0c600cf](https://github.com/angular/angular/commit/0c600cf)) +* **core:** separate reflective injector from Injector interface ([0a7d10b](https://github.com/angular/angular/commit/0a7d10b)) +* **core:** support importUri in StaticReflector ([3e11422](https://github.com/angular/angular/commit/3e11422)), closes [#8195](https://github.com/angular/angular/issues/8195) +* **core:** support non reflective bootstrap. ([9092ac7](https://github.com/angular/angular/commit/9092ac7)) * **html_lexer:** support special forms used by i18n { exp, plural, =0 {} } ([7f29766](https://github.com/angular/angular/commit/7f29766)) * **html_parser:** support special forms used by i18n { exp, plural, =0 {} } ([7c9717b](https://github.com/angular/angular/commit/7c9717b)) * **i18n:** add custom placeholder names ([bb9fb21](https://github.com/angular/angular/commit/bb9fb21)), closes [#7799](https://github.com/angular/angular/issues/7799) [#8057](https://github.com/angular/angular/issues/8057) * **i18n:** add support for nested expansion forms ([c6244d1](https://github.com/angular/angular/commit/c6244d1)), closes [#7977](https://github.com/angular/angular/issues/7977) * **i18n:** support plural and gender special forms ([88b0a23](https://github.com/angular/angular/commit/88b0a23)) +* **Location:** out of router and into platform/common ([b602bd8](https://github.com/angular/angular/commit/b602bd8)), closes [#7962](https://github.com/angular/angular/issues/7962) * **NgTemplateOutlet:** add NgTemplateOutlet directive ([f4e6994](https://github.com/angular/angular/commit/f4e6994)), closes [#7615](https://github.com/angular/angular/issues/7615) [#8021](https://github.com/angular/angular/issues/8021) * **router:** add Router and RouterOutlet ([5a897cf](https://github.com/angular/angular/commit/5a897cf)), closes [#8173](https://github.com/angular/angular/issues/8173) * **router:** add router metadata ([ef67a0c](https://github.com/angular/angular/commit/ef67a0c)) @@ -36,10 +43,72 @@ * **router:** implement RouterUrlParser ([f698567](https://github.com/angular/angular/commit/f698567)) * **test:** Implement fakeAsync using the FakeAsyncTestZoneSpec from zone.js. ([bab81a9](https://github.com/angular/angular/commit/bab81a9)), closes [#8142](https://github.com/angular/angular/issues/8142) * **tests:** manage asynchronous tests using zones ([8490921](https://github.com/angular/angular/commit/8490921)), closes [#7735](https://github.com/angular/angular/issues/7735) +* **view_compiler:** codegen DI and Queries ([2b34c88](https://github.com/angular/angular/commit/2b34c88)), closes [#6301](https://github.com/angular/angular/issues/6301) [#6567](https://github.com/angular/angular/issues/6567) ### BREAKING CHANGES +* - pipes now take a variable number of arguments, and not an array that contains all arguments. + +* inject can no longer wrap fakeAsync while fakeAsync can wrap inject. So the order in existing tests with inject and fakeAsync has to be switched as follows: +Before: +``` +inject([...], fakeAsync((...) => {...})) +``` +After: +``` +fakeAsync(inject([...], (...) => {...})) +``` +You will also need to add the dependency +`'node_modules/zone.js/dist/fake-async-test.js'` +as a served file in your Karma or other test configuration. + +* - Injector was renamed into `ReflectiveInjector`, + as `Injector` is only an abstract class with one method on it +- `Injector.getOptional()` was changed into `Injector.get(token, notFoundValue)` + to make implementing injectors simpler +- `ViewContainerRef.createComponent` now takes an `Injector` + instead of `ResolvedProviders`. If a reflective injector + should be used, create one before calling this method. + (e.g. via `ReflectiveInjector.resolveAndCreate(…)`. + +* - `DynamicComponentLoader.loadIntoLocation` has been removed. Use `@ViewChild(‘myVar’, read: ViewContainerRef)` to get hold of a `ViewContainerRef` at an element with variable `myVar`. Then call `DynamicComponentLoader.loadNextToLocation`. +- `DynamicComponentLoader.loadNextToLocation` now takes a `ViewContainerRef` instead of an `ElementRef`. +- `AppViewManager` is renamed into `ViewUtils` and is a mere private utility service. + +* - `Compiler` is renamed to `ComponentResolver`, + `Compiler.compileInHost` has been renamed to `ComponentResolver.resolveComponent`. +- `ComponentRef.dispose` is renamed to `ComponentRef.destroy` +- `ViewContainerRef.createHostView` is renamed to `ViewContainerRef.createComponent` +- `ComponentFixture_` has been removed, the class `ComponentFixture` + can now be created directly as it is no more using private APIs. + +* `Location` and other related providers have been moved out of `router` and into `platform/common`. `BrowserPlatformLocation` is not meant to be used directly however advanced configurations may use it via the following import change. +Before: +``` +import { + PlatformLocation, + Location, + LocationStrategy, + HashLocationStrategy, + PathLocationStrategy, + APP_BASE_HREF} +from 'angular2/router'; +import {BrowserPlatformLocation} from 'angular2/src/router/location/browser_platform_location'; +``` +After: +``` +import { + PlatformLocation, + Location, + LocationStrategy, + HashLocationStrategy, + PathLocationStrategy, + APP_BASE_HREF} +from 'angular2/platform/common'; +import {BrowserPlatformLocation} from 'angular2/src/platform/browser/location/browser_platform_location'; +``` + * `injectAsync` is now deprecated. Instead, use the `async` function to wrap any asynchronous tests. @@ -67,21 +136,24 @@ it('should wait for returned promises', async(() => { })); ``` -* inject can no longer wrap fakeAsync while fakeAsync can wrap inject. So the order in existing tests with inject and fakeAsync has to be switched as follows: -Before: -``` -inject([...], fakeAsync((...) => {...})) -``` -After: -``` -fakeAsync(inject([...], (...) => {...})) -``` +* - Renderer: + * renderComponent method is removed form `Renderer`, only present on `RootRenderer` + * Renderer.setDebugInfo is removed. Renderer.createElement / createText / createTemplateAnchor + now take the DebugInfo directly. +- Query semantics: + * Queries don't work with dynamically loaded components. + * e.g. for router-outlet: loaded components can't be queries via @ViewQuery, + but router-outlet emits an event `activate` now that emits the activated component +- Exception classes and the context inside changed (renamed fields) +- DebugElement.attributes is an Object and not a Map in JS any more +- ChangeDetectorGenConfig was renamed into CompilerConfig +- AppViewManager.createEmbeddedViewInContainer / AppViewManager.createHostViewInContainer + are removed, use the methods in ViewContainerRef instead +- Change detection order changed: + * 1. dirty check component inputs + * 2. dirty check content children + * 3. update render nodes -You will also need to add the dependency -`'node_modules/zone.js/dist/fake-async-test.js'` -as a served file in your Karma or other test configuration. - -* - pipes now take a variable number of arguments, and not an array that contains all arguments. @@ -2621,4 +2693,3 @@ After }) * no longer cache ref - diff --git a/scripts/publish/changelog.js b/scripts/publish/changelog.js index 336109b0b0..165839752a 100755 --- a/scripts/publish/changelog.js +++ b/scripts/publish/changelog.js @@ -7,20 +7,33 @@ * (https://www.npmjs.com/package/conventional-changelog), which also prepends * changes to CHANGELOG.md. * - * Runs with default (latest tag...head) - * $ ./changelog.js + * Appends CHANGELOG.md with the changes between tag and HEAD. + * NOTE: only `fix`, `feat`, `perf` and `revert` commits are used + * see: https://github.com/conventional-changelog/conventional-changelog/blob/v0.2.1/presets/angular.js#L24 */ var fs = require('fs'); var cl = require('conventional-changelog'); +const exec = require('child_process').exec; -var changelogStream = fs.createWriteStream('CHANGELOG.md'); +var changelogStream = fs.createWriteStream('CHANGELOG-delta.md'); + +if (process.argv.length < 3) { + console.log('Usage: ./scripts/publish/changelog.js '); + process.exit(-1); +} var config = { preset: 'angular', releaseCount: 1, }; -cl(config).on('error', function(err) { +var prependDelta = function() { + exec('cat CHANGELOG-delta.md CHANGELOG.md > CHANGELOG-new.md;' + + 'mv CHANGELOG-new.md CHANGELOG.md;' + 'rm CHANGELOG-delta.md'); +} + +cl(config, null, {from: process.argv[2]}).on('error', function(err) { console.error('Failed to generate changelog: ' + err); - }).pipe(changelogStream); + }).pipe(changelogStream).on('close', prependDelta);