{"push_id":555181423,"size":70,"distinct_size":0,"ref":"refs/heads/master","head":"3228d3b4991af681e57de5ab079c1e1c11cf35cb","before":"f3b088a4e441d68e86e1247e0e4cead2f1304211","commits":[{"sha":"f06f28e018a2f799596e7cd982fc916e211bb551","author":{"email":"e3b6cda228242c30b711ac17cb264f1dbadfd0b6@bacondarwin.com","name":"Peter Bacon Darwin"},"message":"revert: refact(): no need to trim empty hash from $location.absUrl()\n\nThis reverts commit f3b088a4e441d68e86e1247e0e4cead2f1304211.\n\nThe commit didn't take into account that IE9 may actually return empty\nhash URLs for $location.absUrl().","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/f06f28e018a2f799596e7cd982fc916e211bb551"},{"sha":"40cb57c8f6205eb4062b150f829b066d72f9f59c","author":{"email":"bd94e61703c576bc39bbfa6ad030d2b0f5e516fb@gmail.com","name":"Julie Ralph"},"message":"chore(travis): make browserstack unit tests allowed failures","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/40cb57c8f6205eb4062b150f829b066d72f9f59c"},{"sha":"3353afbb5965885e103b374f481d7d4a197c2122","author":{"email":"bd94e61703c576bc39bbfa6ad030d2b0f5e516fb@gmail.com","name":"Julie Ralph"},"message":"chore(travis): split out the docs e2e tests into their own travis job\n\nPreviously, they were in the 'unit' job to save travis VMs, but this\nwas confusing and made it more difficult to track down errors easily.","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/3353afbb5965885e103b374f481d7d4a197c2122"},{"sha":"b146cae02c6345d324b1c53845fb01b783226669","author":{"email":"32007d1617bfd1617ccb1aaf894c6f768b7605d3@gmail.com","name":"Leonardo Braga"},"message":"refactor(minErr): cleanup the generation of the error message\n\nRemoves a \"magic number\" used multiple times in the code\nRemoves unnecessary variables \"arg\" and \"prefix\"\nRemoved a condition within the \"for\" loop that generates query string parameters","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/b146cae02c6345d324b1c53845fb01b783226669"},{"sha":"5765061652eee9726c4e44d783b13af96b3880b4","author":{"email":"77cab308c465996da47095df4df90c8eea7aaecf@gmail.com","name":"Andrew Joslin"},"message":"docs(ngMessages): fix typo on messages\n\nThe css class `.ng-inactive` applies when there is no message present","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/5765061652eee9726c4e44d783b13af96b3880b4"},{"sha":"b5e00cf615b3a1a33b3e57ea3a6bfab23d773306","author":{"email":"3fdf96664eefbda281d1914c961e36acc2825aa6@gmail.com","name":"Jason Deppen"},"message":"docs(ngModel): from makes more sense than the other thing\n\nNot sure if this is a worthy change but it confused me when I read it. It is worthy, thank you for submitting this! Cheers!\n\nIn practice, different from is by far the most common of the three, in both British and American English:\nhttp://www.oxforddictionaries.com/us/words/different-from-than-or-to\n\nCloses #10710","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/b5e00cf615b3a1a33b3e57ea3a6bfab23d773306"},{"sha":"371c1e19d8a73c4e5569669966da0ff69b32328d","author":{"email":"5b4b9c8f835b2f8520b3dd131f61e0c513ea21e1@gmail.com","name":"Jesse Palmer"},"message":"docs(app): increment copyright year\n\nCloses #10712","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/371c1e19d8a73c4e5569669966da0ff69b32328d"},{"sha":"e24f22bdb1740388938d58778aa24d307a79a796","author":{"email":"e93abf4e471b18d410f233bcd309156a9365cee9@gmail.com","name":"Pawel Kozlowski"},"message":"fix($templateRequest): propagate HTTP status on failed requests\n\nFixes #10514\nCloses #10628","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/e24f22bdb1740388938d58778aa24d307a79a796"},{"sha":"034fade3e8b6448231b640948995960db75d8605","author":{"email":"a1ce84a4cae13f7a6a606faf1aad9510d129218d@gmail.com","name":"Petr Peller"},"message":"docs(error/nobase): Added trailing slash for base path\n\nTrailing slash seems to be necessary, otherwise `$routeProvider` does not match routes correctly. Following is not matched:\n\nURL http://www.example.com/b/foo/1234\n`<base href=\"/b/foo\">`\n```\n$routeProvider.when('/:id', {\n            templateUrl: '/view/path.html',\n            controller: 'MyCtrl',\n            reloadOnSearch: false\n        });\n```","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/034fade3e8b6448231b640948995960db75d8605"},{"sha":"5a60302389162c6ef45f311c1aaa65a00d538c66","author":{"email":"79742c4b9c0d9f8e3beba5a2c2f09fdc295b4042@gmail.com","name":"vasileorza"},"message":"feat($timeout): allow `fn` to be an optional parameter\n\nCloses #9176\nClose #9723","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/5a60302389162c6ef45f311c1aaa65a00d538c66"},{"sha":"aa798f123658cb78b5581513d26577016195cafe","author":{"email":"2a5354b8f87bf9843ec8e7bdba299794d5f804fe@gmail.com","name":"Roman Konstantinovich"},"message":"fix($location): right button click in firefox\n\nWhen user click right mouse button on links in firefox, browser goes to\nlink. See http://jsfiddle.net/kromxr/76fKM/12/\n\nCloses #7984","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/aa798f123658cb78b5581513d26577016195cafe"},{"sha":"eb6cb785df63bdd06c0bccee39ea437baa8f628e","author":{"email":"bd94e61703c576bc39bbfa6ad030d2b0f5e516fb@gmail.com","name":"Julie Ralph"},"message":"chore(testing): bump protractor to version 1.6.0","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/eb6cb785df63bdd06c0bccee39ea437baa8f628e"},{"sha":"7fda214c4f65a6a06b25cf5d5aff013a364e9cef","author":{"email":"e3b6cda228242c30b711ac17cb264f1dbadfd0b6@bacondarwin.com","name":"Peter Bacon Darwin"},"message":"fix(ngOptions): ensure that the correct option is selected when options are loaded async\n\n**Major reworking of select and ngOptions**:\n\n* The `SelectController` is now used as an abstraction for the `select` and `ngOptions` directives\nto override to get their desired behaviour\n* The `select` directive is completely oblivious to the ngOptions directive now - the `ngOptions`\ndirective could be deleted without having to make any changes to the `select` directive.\n* Select related directives (single/multiple/ngOptions) can provide specific versions of\n`SelectController.writeValue` and `SelectController.readValue`, which are responsible for getting\nthe `$viewValue` in or out of the actual `<select>` element and its `<option>` children.\n\nBREAKING CHANGE:\n\nWhen using `ngOptions`: the directive applies a surrogate key as the value of the `<option>` element.\nThis commit changes the actual string used as the surrogate key. We now store a string that is computed\nby calling `hashKey` on the item in the options collection; previously it was the index or key of the\nitem in the collection.\n\n(This is in keeping with the way that the unknown option value is represented in the select directive.)\n\nBefore you might have seen:\n\n```\n<select ng-model=\"x\" ng-option=\"i in items\">\n  <option value=\"1\">a</option>\n  <option value=\"2\">b</option>\n  <option value=\"3\">c</option>\n  <option value=\"4\">d</option>\n</select>\n```\n\nNow it will be something like:\n\n```\n<select ng-model=\"x\" ng-option=\"i in items\">\n  <option value=\"string:a\">a</option>\n  <option value=\"string:b\">b</option>\n  <option value=\"string:c\">c</option>\n  <option value=\"string:d\">d</option>\n</select>\n```\n\nIf your application code relied on this value, which it shouldn't, then you will need to modify your\napplication to accommodate this. You may find that you can use the `track by` feaure of `ngOptions`\nas this provides the ability to specify the key that is stored.\n\nBREAKING CHANGE:\n\nWhen iterating over an object's properties using the `(key, value) in obj` syntax\nthe order of the elements used to be sorted alphabetically. This was an artificial\nattempt to create a deterministic ordering since browsers don't guarantee the order.\nBut in practice this is not what people want and so this change iterates over properties\nin the order they are returned by Object.keys(obj), which is almost always the order\nin which the properties were defined.\n\nCloses #8019\nCloses #9714\nCloses #10639","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/7fda214c4f65a6a06b25cf5d5aff013a364e9cef"},{"sha":"408f89d8e6b8092d4abdc0cf617487f5cbb06797","author":{"email":"e3b6cda228242c30b711ac17cb264f1dbadfd0b6@bacondarwin.com","name":"Peter Bacon Darwin"},"message":"refact(ngOptions): move into its own file\n\nSince select is not aware of ngOptions, it makes sense to move it into its\nown file for more easy maintenance.","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/408f89d8e6b8092d4abdc0cf617487f5cbb06797"},{"sha":"9f5ac048d75b115148822425af694bd189aa96f6","author":{"email":"e3b6cda228242c30b711ac17cb264f1dbadfd0b6@bacondarwin.com","name":"Peter Bacon Darwin"},"message":"test(ngOptions): should place non-grouped items in the list where they appear\n\nCloses #10531","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/9f5ac048d75b115148822425af694bd189aa96f6"},{"sha":"02977c5bab87bceab5a0f8c51525bc21c102f3c8","author":{"email":"e3b6cda228242c30b711ac17cb264f1dbadfd0b6@bacondarwin.com","name":"Peter Bacon Darwin"},"message":"test(ngOptions): should not insert a blank option if one of the options maps to null\n\nCloses #7605","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/02977c5bab87bceab5a0f8c51525bc21c102f3c8"},{"sha":"cf9331ac662d5f4d4a4b8470277b42f3e51595b0","author":{"email":"e3b6cda228242c30b711ac17cb264f1dbadfd0b6@bacondarwin.com","name":"Peter Bacon Darwin"},"message":"style(ngOptionsSpec): add extra newline for better formatting","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/cf9331ac662d5f4d4a4b8470277b42f3e51595b0"},{"sha":"933591d69cee2c5580da1d8522ba90a7d924da0e","author":{"email":"e3b6cda228242c30b711ac17cb264f1dbadfd0b6@bacondarwin.com","name":"Peter Bacon Darwin"},"message":"fix(ngOptions): update model if selected option is removed\n\nCloses #7736","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/933591d69cee2c5580da1d8522ba90a7d924da0e"},{"sha":"b4bdec35cb40fb4878b0e7393c39f23e5308e971","author":{"email":"e3b6cda228242c30b711ac17cb264f1dbadfd0b6@bacondarwin.com","name":"Peter Bacon Darwin"},"message":"refact(ngOptions): specialize readValue and writeValue based on multiple attribute","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/b4bdec35cb40fb4878b0e7393c39f23e5308e971"},{"sha":"fc21db8a15545fad53124fc941b3c911a8d57067","author":{"email":"e3b6cda228242c30b711ac17cb264f1dbadfd0b6@bacondarwin.com","name":"Peter Bacon Darwin"},"message":"fix(ngOptions): prevent infinite digest if track by expression is stable\n\nCloses #9464","distinct":false,"url":"https://api.github.com/repos/marcin-wosinek/angular.js/commits/fc21db8a15545fad53124fc941b3c911a8d57067"}]}