Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

2.4.x staging PR #14265

Closed
wants to merge 44 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
f3d5506
fix(compiler): allow empty translations for attributes (#14085)
vicb Jan 26, 2017
777ba46
refactor(compiler): improve error messages in aot compiler (#14017)
bowenni Jan 19, 2017
117fa79
fix(upgrade): detect async downgrade component changes (#14039)
petebacondarwin Jan 20, 2017
d5f1419
refactor(size): Use abstract keyword where possible to decrease file …
mhevery Jan 26, 2017
32cc675
fix(common): DatePipe doesn't throw for NaN (#14117)
DzmitryShylovich Jan 26, 2017
bc47a8c
refactor(compiler): add ability to get the context around a `ParseLoc…
vicb Jan 26, 2017
14e9751
refactor(abstract): Use abstract keyword where possible to decrease f…
mhevery Jan 26, 2017
8d4aa82
fix(i18n): parse ICU messages while normalizing templates (#14153)
vicb Feb 1, 2017
c827097
ci: add pullapprove config for angular.io
IgorMinar Jan 25, 2017
3d1e536
docs(router): remove invalid jsdoc tags (#14097)
petebacondarwin Dec 2, 2016
23bd0fb
docs(http): vanilla links do not need link tags (#14097)
petebacondarwin Dec 12, 2016
07cfd8c
docs: remove obsolete bundles/overview.md file (#14132)
IgorMinar Jan 27, 2017
458ccc1
refactor(core): simplify ReflectiveInjector by removing code for Dart…
jasonaden Jan 26, 2017
6c8b5dd
style(docs): update copyright years (#13736)
nunoarruda Jan 28, 2017
dd53606
docs(public_api): change description (#13583)
lightningtgc Jan 28, 2017
94500e0
ci: configure pullapprove to cover the whole repository
IgorMinar Jan 28, 2017
1ef3eee
docs: update COMITTER.md with info about pullapprove.com
IgorMinar Jan 28, 2017
1eece50
fix(http): remove dots from jsonp callback name (#13219)
Dec 3, 2016
41b8d95
fix(core): ViewContainerRef.indexOf doesn't throw error when empty (#…
Dec 3, 2016
70bbdf5
fix(testing): async/fakeAsync/inject/withModule helpers should pass t…
BendingBender Dec 31, 2016
250dbc4
fix(core): add bootstrapped modules into platform modules list (#13740)
Jan 1, 2017
7c344a4
refactor(platform-browser): polishing (#13744)
Jan 2, 2017
0614289
fix(platform-browser): remove style nodes on destroy (#13744)
Jan 2, 2017
e3bdf82
docs(developer): add description of `npm-run` to run locally installe…
BendingBender Jan 4, 2017
09e2d20
fix(forms): select shows blank line when nothing is selected in IE/Ed…
DzmitryShylovich Jan 12, 2017
a047124
fix(router): fix CanActivate redirect to the root on initial load (#1…
DzmitryShylovich Jan 14, 2017
4d2901d
fix(router): fix navigation from the root component ngOnInit hook (#1…
DzmitryShylovich Jan 14, 2017
0965636
fix(router): fix CanActivateChild guard provided in a lazy loaded mod…
DzmitryShylovich Jan 18, 2017
8882b86
fix(common) add interface PipeTransform to Async pipe (#14049)
wKoza Jan 21, 2017
1dbebb1
ci: fix pullapprove groups and conditions (#14167)
IgorMinar Jan 29, 2017
e98d6f0
ci: fix `compiler-cli` paths (#14177)
gkalpak Jan 30, 2017
bb71acc
build: fix red travis: fetch more github history (#14193)
alexeagle Jan 30, 2017
71567d1
fix(common): add PopStateEvent interface (#13400)
Dec 12, 2016
109f0d1
fix(common): introduce isObservable method (#14067)
DzmitryShylovich Jan 23, 2017
774e1db
fix(forms): Verify functions passed into async validators returns Obs…
Jan 22, 2017
d942031
docs(forms): fix FormArray description (#14094)
DzmitryShylovich Jan 25, 2017
a5b4af0
fix(language-service): do not crash when Angular cannot be located (#…
chuckjaz Jan 26, 2017
0101aa3
ci: fix .pullapprove.yaml's`file` conditions (#14214)
gkalpak Feb 1, 2017
c409860
refactor(common): remove isDate from facade (#13895)
DzmitryShylovich Jan 30, 2017
e641636
fix(common): DatePipe parses input string if it's not a valid date in…
DzmitryShylovich Jan 30, 2017
83dafd3
ci: increase git fetch depth to 150
mhevery Feb 1, 2017
7e639aa
fix: ngModel should use rxjs/symbol/observable to detect observable (…
mhevery Feb 1, 2017
223b5eb
chore(release): cut the 2.4.6 release
mhevery Feb 2, 2017
657e509
docs(changelog): add changelog for 2.4.6
mhevery Feb 2, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
225 changes: 213 additions & 12 deletions .pullapprove.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
# Configuration for pullapprove.com
# See ownership spreadsheet:
#
# Approval access and primary role is determined by info in the project ownership spreadsheet:
# https://docs.google.com/spreadsheets/d/1-HIlzfbPYGsPr9KuYMe6bLfc4LXzPjpoALqtYRYTZB0/edit?pli=1#gid=0&vpid=A5
#
# === GitHub username to Full name map ===
#
# alexeagle - Alex Eagle
# alxhub - Alex Rickabaugh
# chuckjaz - Chuck Jazdzewski
# gkalpak - George Kalpakas
# IgorMinar - Igor Minar
# kara - Kara Erickson
# matsko - Matias Niemelä
# mhevery - Misko Hevery
# petebacondarwin - Pete Bacon Darwin
# pkozlowski-opensource - Pawel Kozlowski
# robwormald - Rob Wormald
# tbosch - Tobias Bosch
# vicb - Victor Berchet
# vikerman - Vikram Subramanian

version: 2

Expand All @@ -9,24 +27,207 @@ group_defaults:
reset_on_reopened:
enabled: true
approve_by_comment:
enabled: true
approve_regex: '^(Approved|:\+1:|LGTM)'
enabled: false

groups:
config:
root:
conditions:
files:
include:
- "*"
exclude:
- "angular.io/*"
- "integration/*"
- "modules/*"
- "tools/*"
users:
- IgorMinar
- mhevery

build-and-ci:
conditions:
files:
- "*.yml"
- "*.json"
teams:
- repoowners
include:
- "*.yml"
- "*.json"
- "*.lock"
- "tools/*"
exclude:
- "tools/@angular/tsc-wrapped/*"
users:
- IgorMinar #primary
- mhevery

integration:
conditions:
files:
- "integration/*"
users:
- alexeagle
- mhevery
- tbosch
- vicb
- IgorMinar #fallback


core:
conditions:
files:
- "modules/@angular/core/*"
users:
- tbosch #primary
- mhevery
- vicb
- IgorMinar #fallback

compiler/animations:
conditions:
files:
- "modules/@angular/compiler/src/animation/*"
users:
- matsko #primary
- tbosch
- IgorMinar #fallback
- mhevery #fallback

compiler/i18n:
conditions:
files:
- "modules/@angular/compiler/src/i18n/*"
users:
- vicb #primary
- tbosch
- IgorMinar #fallback
- mhevery #fallback

compiler:
conditions:
files:
- "tools/@angular/tsc-wrapped/*"
- "modules/@angular/compiler/*"
users:
- tbosch #primary
- mhevery
- IgorMinar #fallback

compiler-cli:
conditions:
files:
- "tools/@angular/tsc-wrapped/*"
- "modules/@angular/compiler-cli/*"
teams:
- compiler-owners
- repoowners
users:
- alexeagle
- chuckjaz
- tbosch
- IgorMinar #fallback
- mhevery #fallback

common:
conditions:
files:
- "modules/@angular/common/*"
users:
- pkozlowski-opensource #primary
- vicb
- IgorMinar #fallback
- mhevery #fallback

forms:
conditions:
files:
- "modules/@angular/forms/*"
users:
- kara #primary
# needs secondary
- IgorMinar #fallback
- mhevery #fallback

http:
conditions:
files:
- "modules/@angular/http/*"
users:
- vikerman #primary
- alxhub
- IgorMinar #fallback
- mhevery #fallback

language-service:
conditions:
files:
- "modules/@angular/language-service/*"
users:
- chuckjaz #primary
# needs secondary
- IgorMinar #fallback
- mhevery #fallback

router:
conditions:
files:
- "modules/@angular/router/*"
users:
- vicb #primary
# needs secondary
- IgorMinar #fallback
- mhevery #fallback

upgrade:
conditions:
files:
- "modules/@angular/upgrade/*"
users:
- petebacondarwin #primary
- gkalpak
- IgorMinar #fallback
- mhevery #fallback

platform-browser:
conditions:
files:
- "modules/@angular/platform-browser/*"
users:
- tbosch #primary
- vicb
- IgorMinar #fallback
- mhevery #fallback

platform-server:
conditions:
files:
- "modules/@angular/platform-server/*"
users:
- vikerman #primary
- alxhub
- IgorMinar #fallback
- mhevery #fallback

platform-webworker:
conditions:
files:
- "modules/@angular/platform-webworker/*"
users:
- vicb #primary
# needs secondary
- IgorMinar #fallback
- mhevery #fallback



benchpress:
conditions:
files:
- "modules/@angular/benchpress/*"
users:
- tbosch #primary
# needs secondary
- IgorMinar #fallback
- mhevery #fallback

angular.io:
conditions:
files:
- "angular.io/*"
users:
- IgorMinar
- robwormald
- mhevery #fallback
3 changes: 3 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@ language: node_js
sudo: false
node_js:
- '6.6.0'
git:
# Increased from default (50) to ensure last release tag is in this range
depth: 150

addons:
# firefox: "38.0"
Expand Down
30 changes: 30 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,33 @@
<a name="2.4.6"></a>
## [2.4.6](https://github.com/angular/angular/compare/2.4.5...2.4.6) (2017-02-02)


### Bug Fixes

* **common:** add PopStateEvent interface ([#13400](https://github.com/angular/angular/issues/13400)) ([e740bff](https://github.com/angular/angular/commit/e740bff)), closes [#13378](https://github.com/angular/angular/issues/13378)
* **common:** DatePipe should not throw for NaN ([#14117](https://github.com/angular/angular/issues/14117)) ([32cc675](https://github.com/angular/angular/commit/32cc675)), closes [#14103](https://github.com/angular/angular/issues/14103)
* **common:** DatePipe parses input string if it's not a valid date in browser ([#13895](https://github.com/angular/angular/issues/13895)) ([71adb70](https://github.com/angular/angular/commit/71adb70)), closes [#12334](https://github.com/angular/angular/issues/12334) [#13874](https://github.com/angular/angular/issues/13874)
* **common:** introduce isObservable method ([#14067](https://github.com/angular/angular/issues/14067)) ([3226562](https://github.com/angular/angular/commit/3226562)), closes [#8848](https://github.com/angular/angular/issues/8848)
* **compiler:** allow empty translations for attributes ([#14085](https://github.com/angular/angular/issues/14085)) ([f3d5506](https://github.com/angular/angular/commit/f3d5506)), closes [#13897](https://github.com/angular/angular/issues/13897)
* **core:** add bootstrapped modules into platform modules list ([#13740](https://github.com/angular/angular/issues/13740)) ([32870d8](https://github.com/angular/angular/commit/32870d8)), closes [#12015](https://github.com/angular/angular/issues/12015)
* **core:** ViewContainerRef.indexOf doesn't throw error when empty ([#13220](https://github.com/angular/angular/issues/13220)) ([d4b9669](https://github.com/angular/angular/commit/d4b9669))
* **forms:** async validator cancels previous subscription when input has changed ([#13222](https://github.com/angular/angular/issues/13222)) ([5f2e6c9](https://github.com/angular/angular/commit/5f2e6c9)), closes [#12709](https://github.com/angular/angular/issues/12709) [#9120](https://github.com/angular/angular/issues/9120) [#10074](https://github.com/angular/angular/issues/10074) [#8923](https://github.com/angular/angular/issues/8923)
* **forms:** select shows blank line when nothing is selected in IE/Edge ([#13903](https://github.com/angular/angular/issues/13903)) ([85def06](https://github.com/angular/angular/commit/85def06)), closes [#10010](https://github.com/angular/angular/issues/10010)
* **forms:** Verify functions passed into async validators returns Observable or Promise ([#14053](https://github.com/angular/angular/issues/14053)) ([b00b038](https://github.com/angular/angular/commit/b00b038))
* **http:** remove dots from jsonp callback name ([#13219](https://github.com/angular/angular/issues/13219)) ([2c42887](https://github.com/angular/angular/commit/2c42887))
* **http:** use params without RequestOptions ([#14101](https://github.com/angular/angular/issues/14101)) ([fa18c83](https://github.com/angular/angular/commit/fa18c83)), closes [#14100](https://github.com/angular/angular/issues/14100)
* **i18n:** parse ICU messages while normalizing templates ([#14153](https://github.com/angular/angular/issues/14153)) ([8d4aa82](https://github.com/angular/angular/commit/8d4aa82))
* **language-service:** do not crash when Angular cannot be located ([#14123](https://github.com/angular/angular/issues/14123)) ([4de425a](https://github.com/angular/angular/commit/4de425a)), closes [#14122](https://github.com/angular/angular/issues/14122)
* **platform-browser:** remove style nodes on destroy ([#13744](https://github.com/angular/angular/issues/13744)) ([664262b](https://github.com/angular/angular/commit/664262b)), closes [#11746](https://github.com/angular/angular/issues/11746)
* **router:** fix CanActivate redirect to the root on initial load ([#13929](https://github.com/angular/angular/issues/13929)) ([91f450d](https://github.com/angular/angular/commit/91f450d)), closes [#13530](https://github.com/angular/angular/issues/13530)
* ngModel should use rxjs/symbol/observable to detect observable ([#14236](https://github.com/angular/angular/issues/14236)) ([e168baa](https://github.com/angular/angular/commit/e168baa))
* **router:** fix CanActivateChild guard provided in a lazy loaded module ([#13989](https://github.com/angular/angular/issues/13989)) ([52b3d2c](https://github.com/angular/angular/commit/52b3d2c)), closes [#12275](https://github.com/angular/angular/issues/12275)
* **router:** fix navigation from the root component ngOnInit hook ([#13932](https://github.com/angular/angular/issues/13932)) ([96c61a1](https://github.com/angular/angular/commit/96c61a1)), closes [#13795](https://github.com/angular/angular/issues/13795)
* **testing:** async/fakeAsync/inject/withModule helpers should pass through context to callback functions ([#13718](https://github.com/angular/angular/issues/13718)) ([f787f5c](https://github.com/angular/angular/commit/f787f5c))
* **upgrade:** detect async downgrade component changes ([#14039](https://github.com/angular/angular/issues/14039)) ([117fa79](https://github.com/angular/angular/commit/117fa79)), closes [#6385](https://github.com/angular/angular/issues/6385) [#6385](https://github.com/angular/angular/issues/6385)



<a name="2.4.5"></a>
## [2.4.5](https://github.com/angular/angular/compare/2.4.4...2.4.5) (2017-01-25)

Expand Down
27 changes: 7 additions & 20 deletions COMMITTER.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,29 +6,16 @@ for details about how we maintain a linear commit history, and the rules for com
As a contributor, just read the instructions in [CONTRIBUTING.md](CONTRIBUTING.md) and send a pull request.
Someone with committer access will do the rest.

## The `PR: merge` label and `presubmit-*` branches
# Change approvals

We have automated the process for merging pull requests into master. Our goal is to minimize the disruption for
Angular committers and also prevent breakages on master.
Change approvals in our monorepo are managed via [pullapprove.com](https://about.pullapprove.com/) and are configured via the `.pullapprove.yaml` file.

When a PR has `pr_state: LGTM` and is ready to merge, you should add the `pr_action: merge` label.
Currently (late 2015), we need to ensure that each PR will cleanly merge into the Google-internal version control,
so the caretaker reviews the changes manually.

After this review, the caretaker adds `zomg_admin: do_merge` which is restricted to admins only.
A robot running as [mary-poppins](https://github.com/mary-poppins)
is notified that the label was added by an authorized person,
and will create a new branch in the angular project, using the convention `presubmit-{username}-pr-{number}`.
# Merging

(Note: if the automation fails, committers can instead push the commits to a branch following this naming scheme.)
Once a change has all the approvals either the last approver or the PR author (if PR author has the project collaborator status) should mark the PR with "PR: merge" label.
This signals to the caretaker that the PR should be merged.

When a Travis build succeeds for a presubmit branch named following the convention,
Travis will re-base the commits, merge to master, and close the PR automatically.
# Who is the Caretaker?

Finally, after merge `mary-poppins` removes the presubmit branch.

## Administration

The list of users who can trigger a merge by adding the `zomg_admin: do_merge` label is stored in our appengine app datastore.
Edit the contents of the [CoreTeamMember Table](
https://console.developers.google.com/project/angular2-automation/datastore/query?queryType=KindQuery&namespace=&kind=CoreTeamMember)
See [this explanation](https://twitter.com/IgorMinar/status/799365744806854656).
8 changes: 7 additions & 1 deletion DEVELOPER.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,13 @@ particular `gulp` and `protractor` commands. If you prefer, you can drop this pa
Since global installs can become stale, and required versions can vary by project, we avoid their
use in these instructions.

*Option 2*: defining a bash alias like `alias nbin='PATH=$(npm bin):$PATH'` as detailed in this
*Option 2*: globally installing the package `npm-run` by running `npm install -g npm-run`
(you might need to prefix this command with `sudo`). You will then be able to run locally installed
package scripts by invoking: e.g., `npm-run gulp build`
(see [npm-run project page](https://github.com/timoxley/npm-run) for more details).


*Option 3*: defining a bash alias like `alias nbin='PATH=$(npm bin):$PATH'` as detailed in this
[Stackoverflow answer](http://stackoverflow.com/questions/9679932/how-to-use-package-installed-locally-in-node-modules/15157360#15157360) and used like this: e.g., `nbin gulp build`.

## Installing Bower Modules
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License

Copyright (c) 2014-2016 Google, Inc. http://angular.io
Copyright (c) 2014-2017 Google, Inc. http://angular.io

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
4 changes: 2 additions & 2 deletions docs/PUBLIC_API.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ One intentional omission from this list is `@angular/compiler`, which is current

Additionally only the command line usage (not direct use of APIs) of `@angular/compiler-cli` is covered.

Other projects developed by the Angular team like angular-cli, Angular Material, benchpress, will be covered by these or similar guarantees in the future as they mature.
Other projects developed by the Angular team like angular-cli, Angular Material, will be covered by these or similar guarantees in the future as they mature.

Within the supported packages, we provide guarantees for:

Expand All @@ -37,4 +37,4 @@ We explicitly don't consider the following to be our public API surface:
- the contents and API surface of the code generated by Angular's compiler (with one notable exception: the existence and name of `NgModuleFactory` instances exported from generated code is guaranteed)


Our peer dependencies (e.g. typescript, zone.js, or rxjs) are not considered part of our API surface, but they are included in our SemVer policies. We might update the required version of any of these dependencies in minor releases if the update doesn't cause breaking changes for Angular applications. Peer dependency updates that result in non-trivial breaking changes must be deferred to major Angular releases.
Our peer dependencies (e.g. TypeScript, Zone.js, or RxJS) are not considered part of our API surface, but they are included in our SemVer policies. We might update the required version of any of these dependencies in minor releases if the update doesn't cause breaking changes for Angular applications. Peer dependency updates that result in non-trivial breaking changes must be deferred to major Angular releases.
8 changes: 7 additions & 1 deletion modules/@angular/common/src/location/location.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,12 @@ import {EventEmitter, Injectable} from '@angular/core';

import {LocationStrategy} from './location_strategy';

/** @experimental */
export interface PopStateEvent {
pop?: boolean;
type?: string;
url?: string;
}

/**
* @whatItDoes `Location` is a service that applications can use to interact with a browser's URL.
Expand Down Expand Up @@ -122,7 +128,7 @@ export class Location {
* Subscribe to the platform's `popState` events.
*/
subscribe(
onNext: (value: any) => void, onThrow: (exception: any) => void = null,
onNext: (value: PopStateEvent) => void, onThrow: (exception: any) => void = null,
onReturn: () => void = null): Object {
return this._subject.subscribe({next: onNext, error: onThrow, complete: onReturn});
}
Expand Down
Loading