diff --git a/.circleci/config.yml b/.circleci/config.yml index a5730630c8db..2a2130d6e838 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -28,7 +28,7 @@ executors: type: string default: medium docker: - - image: circleci/node:12.16.3@sha256:8fe514dae7585bbee1c64bf5a6cd4dcdf393316b5c87565b47e31014872c8860 + - image: circleci/node:14.16.1@sha256:b094e85848b43209ca83d9bb114d406fe62c75cb73b18c9d8eb1a9c6462c97d4 resource_class: << parameters.resource_class >> working_directory: ~/ng cloud-sdk: @@ -52,6 +52,17 @@ var-filter-run-always: &run-always tags: only: /v1\.\d+\.\d.*/ +# Filter to run a job when code might need to be deployed - i.e. on builds for the `master` branch. +# (Further checks are needed to determine whether a deployment is actually needed, but these are not +# possible via filters.) +var-filter-run-on-master: &run-on-master + filters: + branches: + only: + - master + tags: + ignore: /.*/ + # Filter to run a job when code/docs might need to be deployed - i.e. on tagged builds and on builds # for master and `v1.*.x` branches. # (Further checks are needed to determine whether a deployment is actually needed, but these are not @@ -346,13 +357,13 @@ jobs: paths: - ./ng - # The `deploy-code` job should only run when all of these conditions are true for the build: + # The `deploy-code-files` job should only run when all of these conditions are true for the build: # - It is for the `angular/angular.js` repository (not a fork). # - It is not for a pull request. # - It is for a tag or the master branch or the stable branch(*). # # *: The stable branch is the one that has the value `latest` in `package.json > distTag`. - deploy-code: + deploy-code-files: executor: name: cloud-sdk steps: @@ -360,7 +371,7 @@ jobs: - custom_attach_workspace - init_environment - skip_unless_tag_or_master_or_stable_branch - - run: ls deploy/code + - run: ls scripts/code.angularjs.org-firebase/deploy - run: name: Authenticate and configure Docker command: | @@ -369,7 +380,35 @@ jobs: - run: name: Sync files to code.angularjs.org command: | - gsutil -m rsync -r deploy/code gs://code-angularjs-org-338b8.appspot.com + gsutil -m rsync -r scripts/code.angularjs.org-firebase/deploy gs://code-angularjs-org-338b8.appspot.com + + # The `deploy-code-firebase` job should only run when all of these conditions are true for the build: + # - It is for the `angular/angular.js` repository (not a fork). + # - It is not for a pull request. + # - It is for the master branch. + # (This is enforced via job filters, so we don't need to a step to check it here.) + deploy-code-firebase: + executor: + name: default-executor + steps: + - skip_on_pr_and_fork_builds + - custom_attach_workspace + - init_environment + # Install dependencies for Firebase functions to prevent parsing errors during deployment. + # See https://github.com/angular/angular.js/pull/16453. + - run: + name: Install dependencies in `scripts/code.angularjs.org-firebase/functions/`. + working_directory: scripts/code.angularjs.org-firebase/functions + command: yarn install --frozen-lockfile --ignore-engines --non-interactive + - run: + name: Deploy to Firebase from `scripts/code.angularjs.org-firebase/`. + working_directory: scripts/code.angularjs.org-firebase + command: | + # Do not use `yarn firebase` as that causes the Firebase CLI to look for `firebase.json` + # in the root directory, even if run from inside `scripts/code.angularjs.org-firebase/`. + firebase=$(yarn bin)/firebase + $firebase use + $firebase deploy --message "Commit:\ $CI_COMMIT" --non-interactive --token "$FIREBASE_TOKEN" # The `deploy-docs` job should only run when all of these conditions are true for the build: # - It is for the `angular/angular.js` repository (not a fork). @@ -385,10 +424,21 @@ jobs: - custom_attach_workspace - init_environment - skip_unless_stable_branch - # Install dependencies for Firebase functions to prevent parsing errors during deployment - # See https://github.com/angular/angular.js/pull/16453 - - run: yarn --cwd scripts/docs.angularjs.org-firebase/functions --ignore-engines - - run: yarn firebase deploy --message "Commit:\ $CI_COMMIT" --non-interactive --only hosting --project "docs-angularjs-org-9p2" --token "$FIREBASE_TOKEN" + # Install dependencies for Firebase functions to prevent parsing errors during deployment. + # See https://github.com/angular/angular.js/pull/16453. + - run: + name: Install dependencies in `scripts/docs.angularjs.org-firebase/functions/`. + working_directory: scripts/docs.angularjs.org-firebase/functions + command: yarn install --frozen-lockfile --ignore-engines --non-interactive + - run: + name: Deploy to Firebase from `scripts/docs.angularjs.org-firebase/`. + working_directory: scripts/docs.angularjs.org-firebase + command: | + # Do not use `yarn firebase` as that causes the Firebase CLI to look for `firebase.json` + # in the root directory, even if run from inside `scripts/docs.angularjs.org-firebase/`. + firebase=$(yarn bin)/firebase + $firebase use + $firebase deploy --message "Commit:\ $CI_COMMIT" --non-interactive --token "$FIREBASE_TOKEN" workflows: version: 2 @@ -445,10 +495,14 @@ workflows: - e2e-test-jquery-1 - e2e-test-jquery-2a - e2e-test-jquery-2b - - deploy-code: + - deploy-code-files: <<: *run-on-tags-and-master-and-version-branches requires: - prepare-deployment + - deploy-code-firebase: + <<: *run-on-master + requires: + - prepare-deployment - deploy-docs: <<: *run-on-version-branches requires: diff --git a/.gitignore b/.gitignore index 8226c42f29c4..9641ed4fd609 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,4 @@ /build/ -/deploy/ /benchpress-build/ .DS_Store gen_docs.disable @@ -23,5 +22,6 @@ npm-debug.log .vscode *.log *.stackdump +scripts/code.angularjs.org-firebase/deploy +scripts/docs.angularjs.org-firebase/deploy scripts/docs.angularjs.org-firebase/functions/content -/firebase.json diff --git a/.nvmrc b/.nvmrc index 48082f72f087..6b17d228d335 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -12 +14.16.1 diff --git a/CHANGELOG.md b/CHANGELOG.md index e823d02f9477..c720bd43ffa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,14 @@ +**AngularJS support has officially ended as of January 2022. +[See what ending support means](https://docs.angularjs.org/misc/version-support-status) +and [read the end of life announcement](https://goo.gle/angularjs-end-of-life).** + +**Visit [angular.io](https://angular.io) for the actively supported Angular.** + + +# 1.8.3 ultimate-farewell (2022-04-07) + +One final release of AngularJS in order to update package README files on npm. + # 1.8.2 meteoric-mining (2020-10-21) diff --git a/Gruntfile.js b/Gruntfile.js index fd52c82ce11a..4b647bb8f438 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -14,6 +14,7 @@ var semver = require('semver'); var exec = require('shelljs').exec; var pkg = require(__dirname + '/package.json'); +var codeScriptFolder = util.codeScriptFolder; var docsScriptFolder = util.docsScriptFolder; // Node.js version checks @@ -166,9 +167,9 @@ module.exports = function(grunt) { build: ['build'], tmp: ['tmp'], deploy: [ - 'deploy/docs', - 'deploy/code', - docsScriptFolder + '/functions/html' + codeScriptFolder + '/deploy', + docsScriptFolder + '/deploy', + docsScriptFolder + '/functions/content' ] }, @@ -372,7 +373,7 @@ module.exports = function(grunt) { { cwd: 'build', src: '**', - dest: 'deploy/code/' + deployVersion + '/', + dest: codeScriptFolder + '/deploy/' + deployVersion + '/', expand: true } ] @@ -382,19 +383,19 @@ module.exports = function(grunt) { // The source files are needed by the embedded examples in the docs app. { src: ['build/angular*.{js,js.map,min.js}', 'build/sitemap.xml'], - dest: 'deploy/docs/', + dest: docsScriptFolder + '/deploy/', expand: true, flatten: true }, { cwd: 'build/docs', src: ['**', '!ptore2e/**', '!index*.html'], - dest: 'deploy/docs/', + dest: docsScriptFolder + '/deploy/', expand: true }, { src: 'build/docs/index-production.html', - dest: 'deploy/docs/index.html' + dest: docsScriptFolder + '/deploy/index.html' }, { src: 'build/docs/index-production.html', @@ -403,7 +404,7 @@ module.exports = function(grunt) { { cwd: 'build/docs', src: 'partials/**', - dest: docsScriptFolder + '/functions/content', + dest: docsScriptFolder + '/functions/content/', expand: true } ] @@ -517,7 +518,6 @@ module.exports = function(grunt) { ]); grunt.registerTask('prepareDeploy', [ 'copy:deployFirebaseCode', - 'firebaseDocsJsonForCI', 'copy:deployFirebaseDocs' ]); grunt.registerTask('default', ['package']); diff --git a/README.md b/README.md index 3f03e5e79618..9a86e8b34858 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,11 @@ piece of cake. Best of all? It makes development fun! -------------------- -**On July 1, 2018 AngularJS entered a 3 year Long Term Support period:** [Find out more](https://docs.angularjs.org/misc/version-support-status) +**AngularJS support has officially ended as of January 2022. +[See what ending support means](https://docs.angularjs.org/misc/version-support-status) +and [read the end of life announcement](https://goo.gle/angularjs-end-of-life).** -**Looking for the new Angular? Go here:** https://github.com/angular/angular +**Visit [angular.io](https://angular.io) for the actively supported Angular.** -------------------- @@ -55,11 +57,12 @@ component in an interconnected way like a well-oiled machine. AngularJS is JavaS and done right. (Well it is not really MVC, read on, to understand what this means.) #### MVC, no, MV* done the right way! -MVC, short for Model-View-Controller, is a design pattern, i.e. how the code should be organized and -how the different parts of an application separated for proper readability and debugging. Model is -the data and the database. View is the user interface and what the user sees. Controller is the main -link between Model and View. These are the three pillars of major programming frameworks present on -the market today. On the other hand AngularJS works on MV*, short for Model-View-_Whatever_. The +[MVC](https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller), short for +Model-View-Controller, is a design pattern, i.e. how the code should be organized and how the +different parts of an application separated for proper readability and debugging. Model is the data +and the database. View is the user interface and what the user sees. Controller is the main link +between Model and View. These are the three pillars of major programming frameworks present on the +market today. On the other hand AngularJS works on MV*, short for Model-View-_Whatever_. The _Whatever_ is AngularJS's way of telling that you may create any kind of linking between the Model and the View here. diff --git a/SECURITY.md b/SECURITY.md index 47aebc7052e2..584eca530514 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -2,19 +2,15 @@ ## Supported Versions -| Version | Supported | Status | Comments | -| ----------- | ------------------ | --------------------- | ------------------------------------ | -| 1.8.x | :white_check_mark: | Long Term Support | See [Long Term Support policy][0] | -| 1.3.x-1.7.x | :x: | | | -| 1.2.x | :warning: | Security patches only | Last version to provide IE 8 support | -| <1.2.0 | :x: | | | - -## Reporting a Vulnerability +**AngularJS support has officially ended as of January 2022.** +[See what ending support means](https://docs.angularjs.org/misc/version-support-status) +and [read the end of life announcement](https://goo.gle/angularjs-end-of-life). -Email us at [security@angularjs.org](mailto:security@angularjs.org) to report any potential security issues in AngularJS. +Visit [angular.io](https://angular.io) for the actively supported Angular. -Please [use the latest AngularJS possible](https://docs.angularjs.org/guide/security#use-the-latest-angularjs-possible) -and keep in mind the guidance around AngularJS' -[expression language](https://docs.angularjs.org/guide/security#angularjs-templates-and-expressions). - -[0]: https://docs.angularjs.org/misc/version-support-status#long-term-support +| Version | Supported | Status | Comments | +| ----------- | ------------------ | --------------------- | ------------------------------------ | +| 1.8.x | :x: | All support ended | | +| 1.3.x-1.7.x | :x: | All support ended | | +| 1.2.x | :x: | All support ended | Last version to provide IE 8 support | +| <1.2.0 | :x: | All support ended | | diff --git a/docs/app/assets/css/docs.css b/docs/app/assets/css/docs.css index 65abc5247f0c..eb28ad39d044 100644 --- a/docs/app/assets/css/docs.css +++ b/docs/app/assets/css/docs.css @@ -478,10 +478,10 @@ iframe.example { #navbar-sub { padding-top: 10px; padding-bottom: 5px; - background: rgba(245,245,245,0.88); + background: rgba(245,245,245,1); box-shadow: 0 0 2px #999; z-index: 1028; - top: 83px; + top: 57px; } .main-body-grid { @@ -982,7 +982,7 @@ toc-container > div > toc-tree > ul > li > toc-tree > ul > li toc-tree > ul li { #navbar-sub { position: relative; - top: 17px; + top: 0; margin-top: 80px; padding-bottom: 0; margin-bottom: 0; diff --git a/docs/config/templates/app/indexPage.template.html b/docs/config/templates/app/indexPage.template.html index 37c87ed112d8..126aab449e5e 100644 --- a/docs/config/templates/app/indexPage.template.html +++ b/docs/config/templates/app/indexPage.template.html @@ -142,21 +142,18 @@

{{ key }}

-