Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: angular/angular.js
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.7.9
Choose a base ref
...
head repository: angular/angular.js
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.8.0
Choose a head ref
Loading
Showing with 20,912 additions and 8,589 deletions.
  1. +358 −0 .circleci/config.yml
  2. +73 −0 .circleci/env-helpers.inc.sh
  3. +68 −0 .circleci/env.sh
  4. +1 −1 .editorconfig
  5. +9 −4 .github/ISSUE_TEMPLATE.md
  6. +6 −1 .github/PULL_REQUEST_TEMPLATE.md
  7. +3 −0 .gitignore
  8. +1 −1 .nvmrc
  9. +0 −103 .travis.yml
  10. +355 −4 CHANGELOG.md
  11. +5 −5 CONTRIBUTING.md
  12. +2 −3 DEVELOPERS.md
  13. +66 −34 Gruntfile.js
  14. +1 −1 LICENSE
  15. +3 −3 README.md
  16. +98 −0 RELEASE.md
  17. +80 −13 angularFiles.js
  18. +9 −0 benchmarks/repeat-animate-bp/app-classfilter.js
  19. +6 −0 benchmarks/repeat-animate-bp/app-noanimate.js
  20. +7 −0 benchmarks/repeat-animate-bp/app.js
  21. +24 −0 benchmarks/repeat-animate-bp/bp.conf.js
  22. +120 −0 benchmarks/repeat-animate-bp/common.js
  23. +70 −0 benchmarks/repeat-animate-bp/main.html
  24. +5 −2 docs/app/src/directives.js
  25. +1 −0 docs/config/index.js
  26. +1 −1 docs/config/services/deployments/production.js
  27. +25 −39 docs/config/templates/app/indexPage.template.html
  28. +1 −1 docs/config/templates/ngdoc/lib/methods.template.html
  29. +2 −2 docs/config/templates/ngdoc/lib/this.template.html
  30. +1 −1 docs/content/api/index.ngdoc
  31. +13 −0 docs/content/error/$compile/ctxoverride.ngdoc
  32. +5 −5 docs/content/error/$compile/nodomevents.ngdoc
  33. +17 −0 docs/content/error/ngRef/noctrl.ngdoc
  34. +27 −0 docs/content/error/ngRef/nonassign.ngdoc
  35. +32 −116 docs/content/guide/$location.ngdoc
  36. +13 −10 docs/content/guide/animations.ngdoc
  37. +1 −1 docs/content/guide/component.ngdoc
  38. +3 −3 docs/content/guide/concepts.ngdoc
  39. +8 −3 docs/content/guide/di.ngdoc
  40. +2 −3 docs/content/guide/ie.ngdoc
  41. +1 −1 docs/content/guide/index.ngdoc
  42. +171 −101 docs/content/guide/migration.ngdoc
  43. +1 −1 docs/content/guide/security.ngdoc
  44. +1 −2 docs/content/misc/downloading.ngdoc
  45. +3 −2 docs/content/misc/faq.ngdoc
  46. +25 −32 docs/content/misc/version-support-status.ngdoc
  47. +67 −23 docs/content/tutorial/index.ngdoc
  48. +7 −6 docs/content/tutorial/step_00.ngdoc
  49. +4 −4 docs/content/tutorial/step_02.ngdoc
  50. +13 −6 docs/content/tutorial/step_03.ngdoc
  51. +2 −0 docs/content/tutorial/step_06.ngdoc
  52. +2 −2 docs/content/tutorial/step_07.ngdoc
  53. +6 −5 docs/content/tutorial/step_08.ngdoc
  54. +39 −50 docs/content/tutorial/step_09.ngdoc
  55. +20 −35 docs/content/tutorial/step_13.ngdoc
  56. +27 −43 docs/content/tutorial/step_14.ngdoc
  57. +1 −1 docs/content/tutorial/the_end.ngdoc
  58. +1 −1 i18n/ucd/src/extract.js
  59. +12 −0 karma-modules-ngAnimate.conf.js
  60. +12 −0 karma-modules-ngMock.conf.js
  61. +11 −8 karma-modules.conf.js
  62. +8 −45 karma-shared.conf.js
  63. +0 −50 lib/browserstack/start_tunnel.js
  64. +0 −3 lib/browserstack/start_tunnel.sh
  65. +0 −8 lib/browserstack/teardown_tunnel.sh
  66. +2 −2 lib/grunt/plugins.js
  67. +21 −12 lib/grunt/utils.js
  68. +459 −0 lib/saucelabs/sauce-service.sh
  69. +0 −50 lib/saucelabs/start_tunnel.sh
  70. +0 −16 lib/saucelabs/teardown_tunnel.sh
  71. +3 −3 lib/versions/version-info.js
  72. +34 −26 package.json
  73. +44 −0 protractor-circleci-conf.js
  74. +0 −42 protractor-jenkins-conf.js
  75. +0 −84 protractor-travis-conf.js
  76. +0 −1 scripts/angular.js/tag-release.sh
  77. +1 −1 scripts/bower/publish.sh
  78. +18 −14 scripts/code.angularjs.org-firebase/functions/index.js
  79. +2,028 −0 scripts/code.angularjs.org-firebase/functions/package-lock.json
  80. +6 −3 scripts/code.angularjs.org-firebase/functions/package.json
  81. +2 −2 scripts/code.angularjs.org-firebase/readme.firebase.code.md
  82. +2 −2 scripts/code.angularjs.org/publish.sh
  83. +0 −4,265 scripts/docs.angularjs.org-firebase/functions/package-lock.json
  84. +2 −2 scripts/docs.angularjs.org-firebase/functions/package.json
  85. +2,536 −0 scripts/docs.angularjs.org-firebase/functions/yarn.lock
  86. +11 −6 scripts/docs.angularjs.org-firebase/readme.firebase.docs.md
  87. +0 −44 scripts/jenkins/build.sh
  88. +0 −18 scripts/jenkins/init-node.sh
  89. +0 −38 scripts/jenkins/master.sh
  90. +2 −3 scripts/{jenkins → release}/release.sh
  91. +1 −1 scripts/{jenkins → release}/undo-release.sh
  92. +0 −30 scripts/travis/before_build.sh
  93. +0 −110 scripts/travis/build.sh
  94. +0 −11 scripts/travis/print_logs.sh
  95. +0 −14 scripts/travis/start_browser_provider.sh
  96. +0 −4 scripts/travis/tear_down_browser_provider.sh
  97. +0 −19 scripts/travis/wait_for_browser_provider.sh
  98. +7 −0 src/.eslintrc.json
  99. +57 −10 src/Angular.js
  100. +10 −2 src/AngularPublic.js
  101. +1 −1 src/angular.prefix
  102. +8 −4 src/apis.js
  103. +58 −15 src/jqLite.js
  104. +1 −1 src/loader.prefix
  105. +17 −4 src/minErr.js
  106. +1 −1 src/module.prefix
  107. +28 −5 src/ng/animate.js
  108. +50 −64 src/ng/browser.js
  109. +624 −119 src/ng/compile.js
  110. +6 −3 src/ng/directive/attrs.js
  111. +25 −0 src/ng/directive/form.js
  112. +148 −33 src/ng/directive/input.js
  113. +5 −0 src/ng/directive/ngClass.js
  114. +34 −23 src/ng/directive/ngEventDirs.js
  115. +3 −1 src/ng/directive/ngModel.js
  116. +86 −8 src/ng/directive/ngModelOptions.js
  117. +296 −0 src/ng/directive/ngRef.js
  118. +26 −22 src/ng/directive/ngRepeat.js
  119. +4 −4 src/ng/directive/ngStyle.js
  120. +1 −13 src/ng/directive/select.js
  121. +103 −37 src/ng/directive/validators.js
  122. +2 −2 src/ng/http.js
  123. +1 −1 src/ng/interpolate.js
  124. +13 −48 src/ng/interval.js
  125. +48 −0 src/ng/intervalFactory.js
  126. +36 −44 src/ng/location.js
  127. +7 −1 src/ng/q.js
  128. +2 −2 src/ng/rootScope.js
  129. +2 −2 src/ng/sce.js
  130. +122 −0 src/ng/taskTrackerFactory.js
  131. +9 −1 src/ng/testability.js
  132. +1 −1 src/ng/timeout.js
  133. +13 −1 src/ng/urlUtils.js
  134. +2 −1 src/ngAnimate/.eslintrc.json
  135. +57 −0 src/ngAnimate/animateCache.js
  136. +38 −62 src/ngAnimate/animateCss.js
  137. +23 −5 src/ngAnimate/animateQueue.js
  138. +56 −17 src/ngAnimate/animation.js
  139. +37 −15 src/ngAnimate/module.js
  140. +2 −1 src/ngAnimate/ngAnimateSwap.js
  141. +12 −10 src/ngAnimate/shared.js
  142. +28 −6 src/ngAria/aria.js
  143. +4 −4 src/ngMessageFormat/messageFormatService.js
  144. +129 −47 src/ngMessages/messages.js
  145. +478 −284 src/ngMock/angular-mocks.js
  146. +3 −0 src/ngMock/browserTrigger.js
  147. +6 −0 src/ngParseExt/module.js
  148. +50 −53 src/ngRoute/route.js
  149. +46 −0 src/routeToRegExp.js
  150. +13 −0 test/AngularSpec.js
  151. +28 −0 test/ApiSpecs.js
  152. +13 −0 test/e2e/fixtures/back2dom/index.html
  153. +11 −0 test/e2e/fixtures/back2dom/script.js
  154. +8 −0 test/e2e/fixtures/directive-require-html/index.html
  155. +28 −0 test/e2e/fixtures/directive-require-html/script.js
  156. +2 −0 test/e2e/tests/anchor-scroll.spec.js
  157. +1 −1 test/e2e/tests/base-tag.spec.js
  158. +10 −0 test/e2e/tests/directive-require-html.spec.js
  159. +68 −0 test/e2e/tests/input-hidden.spec.js
  160. +2 −4 test/e2e/tests/ng-route-promise.spec.js
  161. +9 −0 test/e2e/tests/sample.spec.js
  162. +1 −0 test/helpers/matchers.js
  163. +22 −0 test/helpers/testabilityPatch.js
  164. +102 −0 test/jqLiteSpec.js
  165. +48 −16 test/minErrSpec.js
  166. +261 −46 test/ng/browserSpecs.js
  167. +284 −14 test/ng/compileSpec.js
  168. +46 −0 test/ng/directive/formSpec.js
  169. +471 −6 test/ng/directive/inputSpec.js
  170. +6 −0 test/ng/directive/ngClassSpec.js
  171. +127 −0 test/ng/directive/ngEventDirsSpec.js
  172. +38 −2 test/ng/directive/ngHrefSpec.js
  173. +8 −3 test/ng/directive/ngModelSpec.js
  174. +561 −0 test/ng/directive/ngRefSpec.js
  175. +37 −0 test/ng/directive/ngRepeatSpec.js
  176. +14 −0 test/ng/directive/ngSrcSpec.js
  177. +44 −0 test/ng/directive/ngStyleSpec.js
  178. +39 −16 test/ng/directive/selectSpec.js
  179. +137 −1 test/ng/directive/validatorsSpec.js
  180. +20 −20 test/ng/httpSpec.js
  181. +117 −9 test/ng/locationSpec.js
  182. +188 −0 test/ng/ngOnSpec.js
  183. +878 −0 test/ng/ngPropSpec.js
  184. +0 −1 test/ng/rootScopeSpec.js
  185. +9 −0 test/ng/testabilitySpec.js
  186. +13 −0 test/ng/urlUtilsSpec.js
  187. +2 −0 test/ngAnimate/.eslintrc.json
  188. +99 −0 test/ngAnimate/animateCacheSpec.js
  189. +2 −2 test/ngAnimate/animateCssSpec.js
  190. +273 −0 test/ngAnimate/animateSpec.js
  191. +44 −9 test/ngAnimate/animationSpec.js
  192. +192 −0 test/ngAnimate/integrationSpec.js
  193. +48 −29 test/ngAnimate/ngAnimateSwapSpec.js
  194. +431 −97 test/ngAria/ariaSpec.js
  195. +1 −0 test/ngCookies/cookieWriterSpec.js
  196. +94 −0 test/ngMessages/messagesSpec.js
  197. +416 −57 test/ngMock/angular-mocksSpec.js
  198. +2 −0 test/ngResource/resourceSpec.js
  199. +40 −0 test/ngRoute/routeParamsSpec.js
  200. +392 −81 test/ngRoute/routeSpec.js
  201. +2 −2 test/ngSanitize/sanitizeSpec.js
  202. +5,256 −1,583 yarn.lock
358 changes: 358 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,358 @@
# Configuration file for https://circleci.com/gh/angular/angular.js

# Note: YAML anchors allow an object to be re-used, reducing duplication.
# The ampersand declares an alias for an object, then later the `<<: *name`
# syntax dereferences it.
# See http://blog.daemonl.com/2016/02/yaml.html
# To validate changes, use an online parser, eg.
# http://yaml-online-parser.appspot.com/

# CircleCI configuration version
# Version 2.1 allows for extra config reuse features
# https://circleci.com/docs/2.0/reusing-config/#getting-started-with-config-reuse
version: 2.1

# Workspace persisted by the `setup` job to share build artifacts with other jobs.
# https://circleci.com/docs/2.0/workflows/#using-workspaces-to-share-data-among-jobs
# https://circleci.com/blog/deep-diving-into-circleci-workspaces/
var_workspace_location: &workspace_location ~/

# Executor Definitions
# https://circleci.com/docs/2.0/reusing-config/#authoring-reusable-executors
# **NOTE 1**: Pin to exact images using an ID (SHA). See https://circleci.com/docs/2.0/circleci-images/#using-a-docker-image-id-to-pin-an-image-to-a-fixed-version.
# (Using the tag in not necessary when pinning by ID, but include it anyway for documentation purposes.)
executors:
default-executor:
parameters:
resource_class:
type: string
default: medium
docker:
- image: circleci/node:12.16.3@sha256:8fe514dae7585bbee1c64bf5a6cd4dcdf393316b5c87565b47e31014872c8860
resource_class: << parameters.resource_class >>
working_directory: ~/ng
cloud-sdk:
description: The docker container to use when running gcp-gcs commands
docker:
- image: google/cloud-sdk:alpine@sha256:7d0cae28cb282b76f2d9babe278c63c910d54f0cceca7a65fdf6806e2b43882e


# Command Definitions
# https://circleci.com/docs/2.0/reusing-config/#authoring-reusable-commands
commands:
custom_attach_workspace:
description: Attach workspace at a predefined location
steps:
- attach_workspace:
at: *workspace_location

# Java is needed for running the Closure Compiler (during the `minall` task).
install_java:
description: Install java
steps:
- run:
name: Install java
command: |
sudo apt-get update
# Install java runtime
sudo apt-get install default-jre
# Initializes the CI environment by setting up common environment variables.
init_environment:
description: Initializing environment (setting up variables)
steps:
- run:
name: Set up environment
environment:
CIRCLE_GIT_BASE_REVISION: << pipeline.git.base_revision >>
CIRCLE_GIT_REVISION: << pipeline.git.revision >>
command: ./.circleci/env.sh
- run:
# Configure git as the CircleCI `checkout` command does.
# This is needed because we only checkout on the setup job.
# Add GitHub to known hosts
name: Configure git
command: |
mkdir -p ~/.ssh
echo 'github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==' >> ~/.ssh/known_hosts
git config --global url."ssh://git@github.com".insteadOf "https://github.com" || true
git config --global gc.auto 0 || true
- install_java

init_saucelabs_environment:
description: Sets up a domain that resolves to the local host.
steps:
- run:
name: Preparing environment for running tests on Saucelabs.
command: |
# For SauceLabs jobs, we set up a domain which resolves to the machine which launched
# the tunnel. We do this because devices are sometimes not able to properly resolve
# `localhost` or `127.0.0.1` through the SauceLabs tunnel. Using a domain that does not
# resolve to anything on SauceLabs VMs ensures that such requests are always resolved
# through the tunnel, and resolve to the actual tunnel host machine (i.e. the CircleCI VM).
# More context can be found in: https://github.com/angular/angular/pull/35171.
setPublicVar SAUCE_LOCALHOST_ALIAS_DOMAIN "angular-ci.local"
setSecretVar SAUCE_ACCESS_KEY $(echo $SAUCE_ACCESS_KEY | rev)
- run:
# Sets up a local domain in the machine's host file that resolves to the local
# host. This domain is helpful in Saucelabs tests where devices are not able to
# properly resolve `localhost` or `127.0.0.1` through the sauce-connect tunnel.
name: Setting up alias domain for local host.
command: echo "127.0.0.1 $SAUCE_LOCALHOST_ALIAS_DOMAIN" | sudo tee -a /etc/hosts

start_saucelabs:
steps:
- run:
name: Starting Saucelabs tunnel service
command: ./lib/saucelabs/sauce-service.sh start-ready-wait

stop_saucelabs:
steps:
- run:
name: Stopping Saucelabs tunnel service
command: ./lib/saucelabs/sauce-service.sh stop


run_e2e_tests:
parameters:
specs:
type: string
steps:
- custom_attach_workspace
- init_environment
- init_saucelabs_environment
- start_saucelabs
- run:
command: yarn grunt test:circleci-protractor --specs="<< parameters.specs >>"
no_output_timeout: 30m
- stop_saucelabs

run_e2e_tests_jquery:
parameters:
specs:
type: string
steps:
- custom_attach_workspace
- init_environment
- init_saucelabs_environment
- start_saucelabs
- run:
environment:
USE_JQUERY: 1
command: yarn grunt test:circleci-protractor --specs="<< parameters.specs >>"
no_output_timeout: 30m
- stop_saucelabs

# Job definitions
# Jobs can include parameters that are passed in the workflow job invocation.
# https://circleci.com/docs/2.0/reusing-config/#authoring-parameterized-jobs
jobs:
setup:
executor: default-executor
steps:
- checkout
- init_environment
- run:
name: Running Yarn install
command: yarn install --frozen-lockfile --non-interactive
# Yarn's requests sometimes take more than 10mins to complete.
no_output_timeout: 45m
- run: yarn grunt package
# Persist any changes at this point to be reused by further jobs.
# **NOTE**: To add new content to the workspace, always persist on the same root.
- persist_to_workspace:
root: *workspace_location
paths:
- ./ng

lint:
executor: default-executor
steps:
- custom_attach_workspace
- init_environment
- run: yarn grunt ci-checks
- run: yarn commitplease "$CI_COMMIT_RANGE"
- run: yarn grunt validate-angular-files

unit-test:
executor:
name: default-executor
steps:
- custom_attach_workspace
- init_environment
- init_saucelabs_environment
- run: yarn grunt test:promises-aplus
- run:
command: yarn grunt test:jqlite --browsers="$BROWSERS" --reporters=spec
no_output_timeout: 10m
- run:
command: yarn grunt test:modules --browsers="$BROWSERS" --reporters=spec
no_output_timeout: 10m
- run:
command: yarn grunt test:docs --browsers="$BROWSERS" --reporters=spec
no_output_timeout: 10m

unit-test-jquery:
executor:
name: default-executor
steps:
- custom_attach_workspace
- init_environment
- init_saucelabs_environment
- run:
command: yarn grunt test:jquery --browsers="$BROWSERS" --reporters=spec
no_output_timeout: 10m
- run:
command: yarn grunt test:jquery-2.2 --browsers="$BROWSERS" --reporters=spec
no_output_timeout: 10m
- run:
command: yarn grunt test:jquery-2.1 --browsers="$BROWSERS" --reporters=spec
no_output_timeout: 10m

e2e-test-1:
executor:
name: default-executor
steps:
- run_e2e_tests:
specs: test/e2e/tests/**/*.js

e2e-test-2a:
executor:
name: default-executor
steps:
- run_e2e_tests:
specs: build/docs/ptore2e/example-ng*/**/default_test.js

e2e-test-2b:
executor:
name: default-executor
steps:
- run_e2e_tests:
specs: "build/docs/ptore2e/!(example-ng*)/**/default_test.js"

e2e-test-jquery-1:
executor:
name: default-executor
steps:
- run_e2e_tests_jquery:
specs: test/e2e/tests/**/*.js

e2e-test-jquery-2a:
executor:
name: default-executor
steps:
- run_e2e_tests_jquery:
specs: build/docs/ptore2e/example-ng*/**/jquery_test.js

e2e-test-jquery-2b:
executor:
name: default-executor
steps:
- run_e2e_tests_jquery:
specs: build/docs/ptore2e/!(example-ng*)/**/jquery_test.js

prepare-deployment:
executor:
name: default-executor
steps:
- custom_attach_workspace
- init_environment
- run: yarn grunt prepareDeploy
# Write the deployment files to the workspace to be used by deploy-docs and deploy-code
- persist_to_workspace:
root: *workspace_location
paths:
- ./ng/deploy

deploy-docs:
executor:
name: default-executor
steps:
- custom_attach_workspace
- init_environment
- run: yarn grunt prepareDeploy
# Install dependencies for Firebase functions to prevent parsing errors during deployment
# See https://github.com/angular/angular.js/pull/16453
- run: yarn -cwd ~/ng/scripts/docs.angularjs.org-firebase/functions
- run: yarn firebase deploy --token "$FIREBASE_TOKEN" --only hosting

deploy-code:
executor:
name: cloud-sdk
steps:
- custom_attach_workspace
- run: ls ~/ng/deploy/code
- run:
name: Authenticate and configure Docker
command: |
echo $GCLOUD_SERVICE_KEY | gcloud auth activate-service-account --key-file=-
gcloud --quiet config set project ${GOOGLE_PROJECT_ID}
- run:
name: Sync files to code.angularjs.org
command: |
gsutil -m rsync -r ~/ng/deploy/code gs://code-angularjs-org-338b8.appspot.com
workflows:
version: 2
default_workflow:
jobs:
- setup
- lint:
requires:
- setup
- unit-test:
requires:
- setup
- unit-test-jquery:
requires:
- setup
- e2e-test-1:
requires:
- setup
- e2e-test-2a:
requires:
- setup
- e2e-test-2b:
requires:
- setup
- e2e-test-jquery-1:
requires:
- setup
- e2e-test-jquery-2a:
requires:
- setup
- e2e-test-jquery-2b:
requires:
- setup
- prepare-deployment:
filters:
branches:
only:
- master
- latest
requires:
- setup
- unit-test
- unit-test-jquery
- e2e-test-1
- e2e-test-2a
- e2e-test-2b
- e2e-test-jquery-1
- e2e-test-jquery-2a
- e2e-test-jquery-2b

- deploy-docs:
filters:
branches:
only:
- latest
requires:
- prepare-deployment
- deploy-code:
filters:
branches:
only:
- master
- latest
requires:
- prepare-deployment
Loading