https://github.com/angular/angular
- HEAD
- refs/heads/10.0.x
- refs/heads/10.1.x
- refs/heads/10.2.x
- refs/heads/11.0.x
- refs/heads/11.1.x
- refs/heads/11.2.x
- refs/heads/12.0.x
- refs/heads/12.1.x
- refs/heads/12.2.x
- refs/heads/12.3.x
- refs/heads/13.0.x
- refs/heads/13.1.x
- refs/heads/13.2.x
- refs/heads/13.3.x
- refs/heads/13.4.x
- refs/heads/14.0.x
- refs/heads/14.1.x
- refs/heads/14.2.x
- refs/heads/14.3.x
- refs/heads/15.0.x
- refs/heads/15.1.x
- refs/heads/15.2.x
- refs/heads/16.0.x
- refs/heads/16.1.x
- refs/heads/16.2.x
- refs/heads/17.0.x
- refs/heads/17.1.x
- refs/heads/17.2.x
- refs/heads/17.3.x
- refs/heads/18.0.x
- refs/heads/18.1.x
- refs/heads/2.0.x
- refs/heads/2.1.x
- refs/heads/2.2.x
- refs/heads/2.3.x
- refs/heads/2.4.x
- refs/heads/4.0.x
- refs/heads/4.1.x
- refs/heads/4.2.x
- refs/heads/4.3.x
- refs/heads/4.4.x
- refs/heads/5.0.x
- refs/heads/5.1.x
- refs/heads/5.2.x
- refs/heads/5.2x
- refs/heads/52695-improve-clarity-of-tutorial-intro
- refs/heads/53015-add-h1-for-skip-to-main-content
- refs/heads/55510/fix-security-guide-links
- refs/heads/55725-fix-visible-snippets
- refs/heads/6.0.x
- refs/heads/6.1.x
- refs/heads/7.0.x
- refs/heads/7.1.x
- refs/heads/7.2.x
- refs/heads/8.0.x
- refs/heads/8.1.x
- refs/heads/8.2.x
- refs/heads/9.0.x
- refs/heads/9.1.x
- refs/heads/JeanMeche-patch-1
- refs/heads/add-adev-docs
- refs/heads/add-ben-to-reviewers
- refs/heads/add-docs-script-command
- refs/heads/add-missing-border-on-editor
- refs/heads/backup-7.2.x
- refs/heads/bazel
- refs/heads/browser-update-test
- refs/heads/docs-developer-preview-fix
- refs/heads/docs/update-security-guide-reference
- refs/heads/dylhunn-patch-1
- refs/heads/dylhunn-zonejs-instructions
- refs/heads/fix-extra-padding-on-tutorial-editor
- refs/heads/fix-missing-security-guide
- refs/heads/fix-playground-spacing-issue
- refs/heads/g3
- refs/heads/image-directive-13.3.x
- refs/heads/in-depth-guides-refactor
- refs/heads/jperrott-test
- refs/heads/main
- refs/heads/publish-snapshots
- refs/heads/redirects-aio
- refs/heads/remove-aio-stuff
- refs/heads/remove-embedded-editor-from-first-app
- refs/heads/robots-aio
- refs/heads/saucelabs-bazel
- refs/heads/signals
- refs/heads/sonukapoor-patch-1
- refs/heads/styling-experiments
- refs/heads/twerske-patch-1
- refs/heads/twerske-patch-2
- refs/heads/twerske-v18-changelog
- refs/heads/update-dropdown-for-v18
- refs/heads/watch-burn-rates
- refs/heads/windows-executor-no-cache
- refs/remotes/presubmit-pr-2853
- refs/renovate/branches/renovate/core-js-3.x
- refs/renovate/branches/renovate/cross-repo-angular-dependencies
- refs/renovate/branches/renovate/firebase-tools-11.x
- refs/reviewable/pr1707/r1
- refs/reviewable/pr1855/r1
- refs/reviewable/pr1977/r1
- refs/reviewable/pr1995/r1
- refs/reviewable/pr2164/r1
- refs/reviewable/pr2218/r1
- refs/reviewable/pr2255/r1
- refs/reviewable/pr2257/r1
- refs/reviewable/pr2317/r1
- refs/reviewable/pr2337/r1
- refs/reviewable/pr2347/r1
- refs/reviewable/pr2407/r1
- refs/reviewable/pr2419/r1
- refs/reviewable/pr2419/r2
- refs/reviewable/pr2419/r3
- refs/reviewable/pr2463/r1
- refs/reviewable/pr2464/r1
- refs/reviewable/pr2464/r2
- refs/reviewable/pr2568/r1
- refs/reviewable/pr2573/r1
- refs/reviewable/pr2573/r2
- refs/reviewable/pr2587/r1
- refs/reviewable/pr2588/r1
- refs/reviewable/pr2593/r1
- refs/reviewable/pr2610/r1
- refs/reviewable/pr2634/r1
- refs/reviewable/pr2641/r1
- refs/reviewable/pr2658/r1
- refs/reviewable/pr2658/r2
- refs/reviewable/pr2665/r1
- refs/reviewable/pr2666/r1
- refs/reviewable/pr2666/r2
- refs/reviewable/pr2667/r1
- refs/reviewable/pr2668/r1
- refs/reviewable/pr2676/r1
- refs/reviewable/pr2679/r1
- refs/reviewable/pr2679/r2
- refs/reviewable/pr2690/r1
- refs/reviewable/pr2695/r1
- refs/reviewable/pr2695/r2
- refs/reviewable/pr2695/r3
- refs/reviewable/pr2699/r1
- refs/reviewable/pr2699/r2
- refs/reviewable/pr2699/r3
- refs/reviewable/pr2699/r4
- refs/reviewable/pr2699/r5
- refs/reviewable/pr2699/r6
- refs/reviewable/pr2703/r1
- refs/reviewable/pr2709/r1
- refs/reviewable/pr2709/r2
- refs/reviewable/pr2711/r1
- refs/reviewable/pr2711/r2
- refs/reviewable/pr2713/r1
- refs/reviewable/pr2713/r2
- refs/reviewable/pr2713/r3
- refs/reviewable/pr2714/r1
- refs/reviewable/pr2714/r2
- refs/reviewable/pr2714/r3
- refs/reviewable/pr2715/r1
- refs/reviewable/pr2715/r2
- refs/reviewable/pr2717/r1
- refs/reviewable/pr2717/r2
- refs/reviewable/pr2719/r1
- refs/reviewable/pr2729/r1
- refs/reviewable/pr2729/r2
- refs/reviewable/pr2731/r1
- refs/reviewable/pr2731/r2
- refs/reviewable/pr2734/r1
- refs/reviewable/pr2735/r1
- refs/reviewable/pr2735/r2
- refs/reviewable/pr2736/r1
- refs/reviewable/pr2737/r1
- refs/reviewable/pr2737/r2
- refs/reviewable/pr2737/r3
- refs/reviewable/pr2737/r4
- refs/reviewable/pr2738/r1
- refs/reviewable/pr2738/r2
- refs/reviewable/pr2742/r1
- refs/reviewable/pr2743/r1
- refs/reviewable/pr2744/r1
- refs/reviewable/pr2744/r2
- refs/reviewable/pr2746/r1
- refs/reviewable/pr2746/r2
- refs/reviewable/pr2749/r1
- refs/reviewable/pr2750/r1
- refs/reviewable/pr2752/r1
- refs/reviewable/pr2757/r1
- refs/reviewable/pr2758/r1
- refs/reviewable/pr2759/r1
- refs/reviewable/pr2760/r1
- refs/reviewable/pr2762/r1
- refs/reviewable/pr2764/r1
- refs/reviewable/pr2767/r1
- refs/reviewable/pr2769/r1
- refs/reviewable/pr2772/r1
- refs/reviewable/pr2772/r2
- refs/reviewable/pr2772/r3
- refs/reviewable/pr2772/r4
- refs/reviewable/pr2773/r1
- refs/reviewable/pr2778/r1
- refs/reviewable/pr2778/r2
- refs/reviewable/pr2780/r1
- refs/reviewable/pr2781/r1
- refs/reviewable/pr2784/r1
- refs/reviewable/pr2789/r1
- refs/reviewable/pr2791/r1
- refs/reviewable/pr2792/r1
- refs/reviewable/pr2792/r2
- refs/reviewable/pr2797/r1
- refs/reviewable/pr2801/r1
- refs/reviewable/pr2802/r1
- refs/reviewable/pr2804/r1
- refs/reviewable/pr2805/r1
- refs/reviewable/pr2854/r1
- refs/reviewable/pr3118/r1
- refs/reviewable/pr3126/r1
- refs/reviewable/pr3132/r1
- refs/reviewable/pr3135/r1
- refs/reviewable/pr3135/r2
- refs/reviewable/pr3135/r3
- refs/reviewable/pr3158/r1
- refs/reviewable/pr3564/r1
- refs/reviewable/pr3592/r1
- refs/reviewable/pr4656/r1
- refs/reviewable/pr4657/r1
- refs/reviewable/pr4702/r1
- refs/reviewable/pr4745/r1
- refs/reviewable/pr864/r1
- refs/tags/10.0.0
- refs/tags/10.0.0-next.0
- refs/tags/10.0.0-next.1
- refs/tags/10.0.0-next.2
- refs/tags/10.0.0-next.3
- refs/tags/10.0.0-next.4
- refs/tags/10.0.0-next.5
- refs/tags/10.0.0-next.6
- refs/tags/10.0.0-next.7
- refs/tags/10.0.0-next.8
- refs/tags/10.0.0-next.9
- refs/tags/10.0.0-rc.0
- refs/tags/10.0.0-rc.2
- refs/tags/10.0.0-rc.3
- refs/tags/10.0.0-rc.4
- refs/tags/10.0.0-rc.5
- refs/tags/10.0.0-rc.6
- refs/tags/10.0.1
- refs/tags/10.0.10
- refs/tags/10.0.11
- refs/tags/10.0.12
- refs/tags/10.0.13
- refs/tags/10.0.14
- refs/tags/10.0.2
- refs/tags/10.0.3
- refs/tags/10.0.4
- refs/tags/10.0.5
- refs/tags/10.0.6
- refs/tags/10.0.7
- refs/tags/10.0.8
- refs/tags/10.0.9
- refs/tags/10.1.0
- refs/tags/10.1.0-next.0
- refs/tags/10.1.0-next.1
- refs/tags/10.1.0-next.2
- refs/tags/10.1.0-next.3
- refs/tags/10.1.0-next.4
- refs/tags/10.1.0-next.5
- refs/tags/10.1.0-next.6
- refs/tags/10.1.0-next.7
- refs/tags/10.1.0-next.8
- refs/tags/10.1.0-rc.0
- refs/tags/10.1.1
- refs/tags/10.1.2
- refs/tags/10.1.3
- refs/tags/10.1.4
- refs/tags/10.1.5
- refs/tags/10.1.6
- refs/tags/10.2.0
- refs/tags/10.2.1
- refs/tags/10.2.2
- refs/tags/10.2.3
- refs/tags/10.2.4
- refs/tags/10.2.5
- refs/tags/11.0.0
- refs/tags/11.0.0-next.0
- refs/tags/11.0.0-next.1
- refs/tags/11.0.0-next.2
- refs/tags/11.0.0-next.3
- refs/tags/11.0.0-next.4
- refs/tags/11.0.0-next.5
- refs/tags/11.0.0-next.6
- refs/tags/11.0.0-rc.0
- refs/tags/11.0.0-rc.1
- refs/tags/11.0.0-rc.2
- refs/tags/11.0.0-rc.3
- refs/tags/11.0.1
- refs/tags/11.0.2
- refs/tags/11.0.3
- refs/tags/11.0.4
- refs/tags/11.0.5
- refs/tags/11.0.6
- refs/tags/11.0.7
- refs/tags/11.0.8
- refs/tags/11.0.9
- refs/tags/11.1.0
- refs/tags/11.1.0-next.0
- refs/tags/11.1.0-next.1
- refs/tags/11.1.0-next.2
- refs/tags/11.1.0-next.3
- refs/tags/11.1.0-next.4
- refs/tags/11.1.0-next.5
- refs/tags/11.1.0-rc.0
- refs/tags/11.1.1
- refs/tags/11.1.2
- refs/tags/11.2.0
- refs/tags/11.2.0-next.0
- refs/tags/11.2.0-next.1
- refs/tags/11.2.0-rc.0
- refs/tags/11.2.1
- refs/tags/11.2.10
- refs/tags/11.2.11
- refs/tags/11.2.12
- refs/tags/11.2.13
- refs/tags/11.2.14
- refs/tags/11.2.2
- refs/tags/11.2.3
- refs/tags/11.2.4
- refs/tags/11.2.5
- refs/tags/11.2.6
- refs/tags/11.2.7
- refs/tags/11.2.8
- refs/tags/11.2.9
- refs/tags/12.0.0-next.0
- refs/tags/12.0.0-next.1
- refs/tags/12.0.0-next.2
- refs/tags/12.0.0-next.3
- refs/tags/12.0.0-next.4
- refs/tags/12.0.0-next.5
- refs/tags/12.0.0-next.6
- refs/tags/12.0.0-next.7
- refs/tags/12.0.0-next.8
- refs/tags/12.0.0-next.9
- refs/tags/12.0.0-rc.0
- refs/tags/12.0.0-rc.1
- refs/tags/12.0.0-rc.2
- refs/tags/12.0.0-rc.3
- refs/tags/12.0.1
- refs/tags/12.0.2
- refs/tags/12.0.3
- refs/tags/12.0.4
- refs/tags/12.0.5
- refs/tags/12.1.0
- refs/tags/12.1.0-next.2
- refs/tags/12.1.0-next.3
- refs/tags/12.1.0-next.4
- refs/tags/12.1.0-next.5
- refs/tags/12.1.0-next.6
- refs/tags/12.1.1
- refs/tags/12.1.2
- refs/tags/12.1.3
- refs/tags/12.1.4
- refs/tags/12.1.5
- refs/tags/12.2.0
- refs/tags/12.2.0-next.0
- refs/tags/12.2.0-next.1
- refs/tags/12.2.0-next.2
- refs/tags/12.2.0-next.3
- refs/tags/12.2.0-rc.0
- refs/tags/12.2.1
- refs/tags/12.2.10
- refs/tags/12.2.11
- refs/tags/12.2.12
- refs/tags/12.2.13
- refs/tags/12.2.14
- refs/tags/12.2.15
- refs/tags/12.2.16
- refs/tags/12.2.17
- refs/tags/12.2.2
- refs/tags/12.2.3
- refs/tags/12.2.4
- refs/tags/12.2.5
- refs/tags/12.2.6
- refs/tags/12.2.7
- refs/tags/12.2.8
- refs/tags/12.2.9
- refs/tags/13.0.0
- refs/tags/13.0.0-next.0
- refs/tags/13.0.0-next.1
- refs/tags/13.0.0-next.10
- refs/tags/13.0.0-next.11
- refs/tags/13.0.0-next.12
- refs/tags/13.0.0-next.13
- refs/tags/13.0.0-next.14
- refs/tags/13.0.0-next.15
- refs/tags/13.0.0-next.2
- refs/tags/13.0.0-next.3
- refs/tags/13.0.0-next.4
- refs/tags/13.0.0-next.5
- refs/tags/13.0.0-next.6
- refs/tags/13.0.0-next.7
- refs/tags/13.0.0-next.8
- refs/tags/13.0.0-next.9
- refs/tags/13.0.0-rc.0
- refs/tags/13.0.0-rc.1
- refs/tags/13.0.0-rc.2
- refs/tags/13.0.0-rc.3
- refs/tags/13.0.1
- refs/tags/13.0.2
- refs/tags/13.0.3
- refs/tags/13.1.0
- refs/tags/13.1.0-next.0
- refs/tags/13.1.0-next.1
- refs/tags/13.1.0-next.2
- refs/tags/13.1.0-next.3
- refs/tags/13.1.1
- refs/tags/13.1.2
- refs/tags/13.1.3
- refs/tags/13.2.0
- refs/tags/13.2.0-next.0
- refs/tags/13.2.0-next.1
- refs/tags/13.2.0-next.2
- refs/tags/13.2.0-rc.0
- refs/tags/13.2.0-rc.1
- refs/tags/13.2.1
- refs/tags/13.2.2
- refs/tags/13.2.3
- refs/tags/13.2.4
- refs/tags/13.2.5
- refs/tags/13.2.6
- refs/tags/13.2.7
- refs/tags/13.3.0
- refs/tags/13.3.0-next.0
- refs/tags/13.3.0-rc.0
- refs/tags/13.3.1
- refs/tags/13.3.10
- refs/tags/13.3.11
- refs/tags/13.3.12
- refs/tags/13.3.2
- refs/tags/13.3.3
- refs/tags/13.3.4
- refs/tags/13.3.5
- refs/tags/13.3.6
- refs/tags/13.3.7
- refs/tags/13.3.8
- refs/tags/13.3.9
- refs/tags/13.4.0
- refs/tags/14.0.0
- refs/tags/14.0.0-next.0
- refs/tags/14.0.0-next.1
- refs/tags/14.0.0-next.10
- refs/tags/14.0.0-next.11
- refs/tags/14.0.0-next.12
- refs/tags/14.0.0-next.13
- refs/tags/14.0.0-next.14
- refs/tags/14.0.0-next.15
- refs/tags/14.0.0-next.16
- refs/tags/14.0.0-next.2
- refs/tags/14.0.0-next.3
- refs/tags/14.0.0-next.4
- refs/tags/14.0.0-next.5
- refs/tags/14.0.0-next.6
- refs/tags/14.0.0-next.7
- refs/tags/14.0.0-next.8
- refs/tags/14.0.0-next.9
- refs/tags/14.0.0-rc.0
- refs/tags/14.0.0-rc.1
- refs/tags/14.0.0-rc.2
- refs/tags/14.0.0-rc.3
- refs/tags/14.0.1
- refs/tags/14.0.2
- refs/tags/14.0.3
- refs/tags/14.0.4
- refs/tags/14.0.5
- refs/tags/14.0.6
- refs/tags/14.0.7
- refs/tags/14.1.0
- refs/tags/14.1.0-next.0
- refs/tags/14.1.0-next.1
- refs/tags/14.1.0-next.2
- refs/tags/14.1.0-next.3
- refs/tags/14.1.0-next.4
- refs/tags/14.1.0-rc.0
- refs/tags/14.1.1
- refs/tags/14.1.2
- refs/tags/14.1.3
- refs/tags/14.2.0
- refs/tags/14.2.0-next.0
- refs/tags/14.2.0-next.1
- refs/tags/14.2.0-rc.0
- refs/tags/14.2.1
- refs/tags/14.2.10
- refs/tags/14.2.11
- refs/tags/14.2.12
- refs/tags/14.2.2
- refs/tags/14.2.3
- refs/tags/14.2.4
- refs/tags/14.2.5
- refs/tags/14.2.6
- refs/tags/14.2.7
- refs/tags/14.2.8
- refs/tags/14.2.9
- refs/tags/14.3.0
- refs/tags/15.0.0
- refs/tags/15.0.0-next.0
- refs/tags/15.0.0-next.1
- refs/tags/15.0.0-next.2
- refs/tags/15.0.0-next.3
- refs/tags/15.0.0-next.4
- refs/tags/15.0.0-next.5
- refs/tags/15.0.0-next.6
- refs/tags/15.0.0-rc.0
- refs/tags/15.0.0-rc.1
- refs/tags/15.0.0-rc.2
- refs/tags/15.0.0-rc.3
- refs/tags/15.0.0-rc.4
- refs/tags/15.0.1
- refs/tags/15.0.2
- refs/tags/15.0.3
- refs/tags/15.0.4
- refs/tags/15.1.0
- refs/tags/15.1.0-next.0
- refs/tags/15.1.0-next.1
- refs/tags/15.1.0-next.2
- refs/tags/15.1.0-next.3
- refs/tags/15.1.0-rc.0
- refs/tags/15.1.1
- refs/tags/15.1.2
- refs/tags/15.1.3
- refs/tags/15.1.4
- refs/tags/15.1.5
- refs/tags/15.2.0
- refs/tags/15.2.0-next.0
- refs/tags/15.2.0-next.1
- refs/tags/15.2.0-next.2
- refs/tags/15.2.0-next.3
- refs/tags/15.2.0-next.4
- refs/tags/15.2.0-rc.0
- refs/tags/15.2.1
- refs/tags/15.2.10
- refs/tags/15.2.2
- refs/tags/15.2.3
- refs/tags/15.2.4
- refs/tags/15.2.5
- refs/tags/15.2.6
- refs/tags/15.2.7
- refs/tags/15.2.8
- refs/tags/15.2.9
- refs/tags/16.0.0
- refs/tags/16.0.0-next.0
- refs/tags/16.0.0-next.1
- refs/tags/16.0.0-next.2
- refs/tags/16.0.0-next.3
- refs/tags/16.0.0-next.4
- refs/tags/16.0.0-next.5
- refs/tags/16.0.0-next.6
- refs/tags/16.0.0-next.7
- refs/tags/16.0.0-rc.0
- refs/tags/16.0.0-rc.1
- refs/tags/16.0.0-rc.2
- refs/tags/16.0.0-rc.3
- refs/tags/16.0.0-rc.4
- refs/tags/16.0.1
- refs/tags/16.0.2
- refs/tags/16.0.3
- refs/tags/16.0.4
- refs/tags/16.0.5
- refs/tags/16.0.6
- refs/tags/16.1.0
- refs/tags/16.1.0-next.0
- refs/tags/16.1.0-next.1
- refs/tags/16.1.0-next.2
- refs/tags/16.1.0-next.3
- refs/tags/16.1.0-rc.0
- refs/tags/16.1.1
- refs/tags/16.1.2
- refs/tags/16.1.3
- refs/tags/16.1.4
- refs/tags/16.1.5
- refs/tags/16.1.6
- refs/tags/16.1.7
- refs/tags/16.1.8
- refs/tags/16.1.9
- refs/tags/16.2.0
- refs/tags/16.2.0-next.0
- refs/tags/16.2.0-next.1
- refs/tags/16.2.0-next.2
- refs/tags/16.2.0-next.3
- refs/tags/16.2.0-next.4
- refs/tags/16.2.0-rc.0
- refs/tags/16.2.1
- refs/tags/16.2.10
- refs/tags/16.2.11
- refs/tags/16.2.12
- refs/tags/16.2.2
- refs/tags/16.2.3
- refs/tags/16.2.4
- refs/tags/16.2.5
- refs/tags/16.2.6
- refs/tags/16.2.7
- refs/tags/16.2.8
- refs/tags/16.2.9
- refs/tags/17.0.0
- refs/tags/17.0.0-next.0
- refs/tags/17.0.0-next.1
- refs/tags/17.0.0-next.2
- refs/tags/17.0.0-next.3
- refs/tags/17.0.0-next.4
- refs/tags/17.0.0-next.5
- refs/tags/17.0.0-next.6
- refs/tags/17.0.0-next.7
- refs/tags/17.0.0-next.8
- refs/tags/17.0.0-rc.0
- refs/tags/17.0.0-rc.1
- refs/tags/17.0.0-rc.2
- refs/tags/17.0.0-rc.3
- refs/tags/17.0.1
- refs/tags/17.0.2
- refs/tags/17.0.3
- refs/tags/17.0.4
- refs/tags/17.0.5
- refs/tags/17.0.6
- refs/tags/17.0.7
- refs/tags/17.0.8
- refs/tags/17.0.9
- refs/tags/17.1.0
- refs/tags/17.1.0-next.0
- refs/tags/17.1.0-next.1
- refs/tags/17.1.0-next.2
- refs/tags/17.1.0-next.3
- refs/tags/17.1.0-next.4
- refs/tags/17.1.0-next.5
- refs/tags/17.1.0-rc.0
- refs/tags/17.1.1
- refs/tags/17.1.2
- refs/tags/17.1.3
- refs/tags/17.2.0
- refs/tags/17.2.0-next.0
- refs/tags/17.2.0-next.1
- refs/tags/17.2.0-rc.0
- refs/tags/17.2.0-rc.1
- refs/tags/17.2.1
- refs/tags/17.2.2
- refs/tags/17.2.3
- refs/tags/17.2.4
- refs/tags/17.3.0
- refs/tags/17.3.0-next.0
- refs/tags/17.3.0-next.1
- refs/tags/17.3.0-rc.0
- refs/tags/17.3.1
- refs/tags/17.3.10
- refs/tags/17.3.11
- refs/tags/17.3.12
- refs/tags/17.3.2
- refs/tags/17.3.3
- refs/tags/17.3.4
- refs/tags/17.3.5
- refs/tags/17.3.6
- refs/tags/17.3.7
- refs/tags/17.3.8
- refs/tags/17.3.9
- refs/tags/18.0.0
- refs/tags/18.0.0-next.0
- refs/tags/18.0.0-next.1
- refs/tags/18.0.0-next.2
- refs/tags/18.0.0-next.3
- refs/tags/18.0.0-next.4
- refs/tags/18.0.0-next.5
- refs/tags/18.0.0-next.6
- refs/tags/18.0.0-rc.0
- refs/tags/18.0.0-rc.1
- refs/tags/18.0.0-rc.2
- refs/tags/18.0.0-rc.3
- refs/tags/18.0.1
- refs/tags/18.0.2
- refs/tags/18.0.3
- refs/tags/18.0.4
- refs/tags/18.0.5
- refs/tags/18.0.6
- refs/tags/18.0.7
- refs/tags/18.1.0
- refs/tags/18.1.0-next.0
- refs/tags/18.1.0-next.1
- refs/tags/18.1.0-next.2
- refs/tags/18.1.0-next.3
- refs/tags/18.1.0-next.4
- refs/tags/18.1.0-rc.0
- refs/tags/18.1.1
- refs/tags/18.1.2
- refs/tags/18.1.3
- refs/tags/18.2.0-next.0
- refs/tags/18.2.0-next.1
- refs/tags/18.2.0-next.2
- refs/tags/18.2.0-next.3
- refs/tags/18.2.0-next.4
- refs/tags/2.0.0
- refs/tags/2.0.0-alpha.13
- refs/tags/2.0.0-alpha.14
- refs/tags/2.0.0-alpha.15
- refs/tags/2.0.0-alpha.16
- refs/tags/2.0.0-alpha.17
- refs/tags/2.0.0-alpha.18
- refs/tags/2.0.0-alpha.19
- refs/tags/2.0.0-alpha.20
- refs/tags/2.0.0-alpha.21
- refs/tags/2.0.0-alpha.22
- refs/tags/2.0.0-alpha.23
- refs/tags/2.0.0-alpha.24
- refs/tags/2.0.0-alpha.25
- refs/tags/2.0.0-alpha.26
- refs/tags/2.0.0-alpha.27
- refs/tags/2.0.0-alpha.28
- refs/tags/2.0.0-alpha.29
- refs/tags/2.0.0-alpha.30
- refs/tags/2.0.0-alpha.31
- refs/tags/2.0.0-alpha.32
- refs/tags/2.0.0-alpha.33
- refs/tags/2.0.0-alpha.34
- refs/tags/2.0.0-alpha.35
- refs/tags/2.0.0-alpha.36
- refs/tags/2.0.0-alpha.37
- refs/tags/2.0.0-alpha.38
- refs/tags/2.0.0-alpha.39
- refs/tags/2.0.0-alpha.40
- refs/tags/2.0.0-alpha.41
- refs/tags/2.0.0-alpha.42
- refs/tags/2.0.0-alpha.44
- refs/tags/2.0.0-alpha.45
- refs/tags/2.0.0-alpha.46
- refs/tags/2.0.0-alpha.47
- refs/tags/2.0.0-alpha.48
- refs/tags/2.0.0-alpha.49
- refs/tags/2.0.0-alpha.50
- refs/tags/2.0.0-alpha.51
- refs/tags/2.0.0-alpha.52
- refs/tags/2.0.0-alpha.53
- refs/tags/2.0.0-alpha.54
- refs/tags/2.0.0-alpha.55
- refs/tags/2.0.0-beta.0
- refs/tags/2.0.0-beta.1
- refs/tags/2.0.0-beta.10
- refs/tags/2.0.0-beta.11
- refs/tags/2.0.0-beta.12
- refs/tags/2.0.0-beta.13
- refs/tags/2.0.0-beta.14
- refs/tags/2.0.0-beta.15
- refs/tags/2.0.0-beta.16
- refs/tags/2.0.0-beta.17
- refs/tags/2.0.0-beta.2
- refs/tags/2.0.0-beta.3
- refs/tags/2.0.0-beta.4
- refs/tags/2.0.0-beta.5
- refs/tags/2.0.0-beta.6
- refs/tags/2.0.0-beta.7
- refs/tags/2.0.0-beta.8
- refs/tags/2.0.0-beta.9
- refs/tags/2.0.0-build.006a96d.js
- refs/tags/2.0.0-build.00822c3.dart
- refs/tags/2.0.0-build.00822c3.js
- refs/tags/2.0.0-build.015faee.dart
- refs/tags/2.0.0-build.015faee.js
- refs/tags/2.0.0-build.016ab31.dart
- refs/tags/2.0.0-build.016ab31.js
- refs/tags/2.0.0-build.019cb41.dart
- refs/tags/2.0.0-build.019cb41.js
- refs/tags/2.0.0-build.01ba94b.dart
- refs/tags/2.0.0-build.01ba94b.js
- refs/tags/2.0.0-build.0206d72.dart
- refs/tags/2.0.0-build.0206d72.js
- refs/tags/2.0.0-build.020ce32.dart
- refs/tags/2.0.0-build.020ce32.js
- refs/tags/2.0.0-build.0290362.dart
- refs/tags/2.0.0-build.0290362.js
- refs/tags/2.0.0-build.03823d4.dart
- refs/tags/2.0.0-build.03823d4.js
- refs/tags/2.0.0-build.039ed3b.dart
- refs/tags/2.0.0-build.039ed3b.js
- refs/tags/2.0.0-build.03e3035.dart
- refs/tags/2.0.0-build.03e3035.js
- refs/tags/2.0.0-build.041c599.dart
- refs/tags/2.0.0-build.041c599.js
- refs/tags/2.0.0-build.046758c.dart
- refs/tags/2.0.0-build.046758c.js
- refs/tags/2.0.0-build.0544e07.dart
- refs/tags/2.0.0-build.0544e07.js
- refs/tags/2.0.0-build.059e09c.dart
- refs/tags/2.0.0-build.059e09c.js
- refs/tags/2.0.0-build.05fa1fd.dart
- refs/tags/2.0.0-build.05fa1fd.js
- refs/tags/2.0.0-build.05fb269.dart
- refs/tags/2.0.0-build.05fb269.js
- refs/tags/2.0.0-build.0614797.dart
- refs/tags/2.0.0-build.0614797.js
- refs/tags/2.0.0-build.065ac93.dart
- refs/tags/2.0.0-build.065ac93.js
- refs/tags/2.0.0-build.06b2aa1.dart
- refs/tags/2.0.0-build.06b2aa1.js
- refs/tags/2.0.0-build.06d076a.dart
- refs/tags/2.0.0-build.06d076a.js
- refs/tags/2.0.0-build.06e32eb.dart
- refs/tags/2.0.0-build.06e32eb.js
- refs/tags/2.0.0-build.070d818.dart
- refs/tags/2.0.0-build.070d818.js
- refs/tags/2.0.0-build.071165f.dart
- refs/tags/2.0.0-build.071165f.js
- refs/tags/2.0.0-build.074075d.dart
- refs/tags/2.0.0-build.074075d.js
- refs/tags/2.0.0-build.080469f.dart
- refs/tags/2.0.0-build.080469f.js
- refs/tags/2.0.0-build.0815a77.dart
- refs/tags/2.0.0-build.0815a77.js
- refs/tags/2.0.0-build.093b794.dart
- refs/tags/2.0.0-build.093b794.js
- refs/tags/2.0.0-build.0a3a17f.dart
- refs/tags/2.0.0-build.0a3a17f.js
- refs/tags/2.0.0-build.0a44fc6.dart
- refs/tags/2.0.0-build.0a44fc6.js
- refs/tags/2.0.0-build.0ae7775.dart
- refs/tags/2.0.0-build.0ae7775.js
- refs/tags/2.0.0-build.0b6e75a.dart
- refs/tags/2.0.0-build.0b6e75a.js
- refs/tags/2.0.0-build.0c9596a.dart
- refs/tags/2.0.0-build.0c9596a.js
- refs/tags/2.0.0-build.0cdf280.dart
- refs/tags/2.0.0-build.0cdf280.js
- refs/tags/2.0.0-build.0db0252.dart
- refs/tags/2.0.0-build.0db0252.js
- refs/tags/2.0.0-build.0df8bc4.dart
- refs/tags/2.0.0-build.0df8bc4.js
- refs/tags/2.0.0-build.0ec9ccf.dart
- refs/tags/2.0.0-build.0ec9ccf.js
- refs/tags/2.0.0-build.0ef6809.dart
- refs/tags/2.0.0-build.0ef6809.js
- refs/tags/2.0.0-build.0f85b36.dart
- refs/tags/2.0.0-build.0f85b36.js
- refs/tags/2.0.0-build.0f8e40b.dart
- refs/tags/2.0.0-build.0f8e40b.js
- refs/tags/2.0.0-build.116015b.dart
- refs/tags/2.0.0-build.116015b.js
- refs/tags/2.0.0-build.125fa38.dart
- refs/tags/2.0.0-build.125fa38.js
- refs/tags/2.0.0-build.132829e.dart
- refs/tags/2.0.0-build.132829e.js
- refs/tags/2.0.0-build.13e6354.dart
- refs/tags/2.0.0-build.13e6354.js
- refs/tags/2.0.0-build.140ce9f.dart
- refs/tags/2.0.0-build.140ce9f.js
- refs/tags/2.0.0-build.1417e12.dart
- refs/tags/2.0.0-build.1417e12.js
- refs/tags/2.0.0-build.15f5f27.dart
- refs/tags/2.0.0-build.15f5f27.js
- refs/tags/2.0.0-build.1607ef8.dart
- refs/tags/2.0.0-build.1607ef8.js
- refs/tags/2.0.0-build.16d9c60.dart
- refs/tags/2.0.0-build.16d9c60.js
- refs/tags/2.0.0-build.16e74cf.dart
- refs/tags/2.0.0-build.16e74cf.js
- refs/tags/2.0.0-rc.0
- refs/tags/2.0.0-rc.1
- refs/tags/2.0.0-rc.2
- refs/tags/2.0.0-rc.3
- refs/tags/2.0.0-rc.4
- refs/tags/2.0.0-rc.5
- refs/tags/2.0.0-rc.6
- refs/tags/2.0.0-rc.7
- refs/tags/2.0.1
- refs/tags/2.0.2
- refs/tags/2.1.0
- refs/tags/2.1.0-beta.0
- refs/tags/2.1.0-rc.0
- refs/tags/2.1.1
- refs/tags/2.1.2
- refs/tags/2.2.0
- refs/tags/2.2.0-beta.0
- refs/tags/2.2.0-beta.1
- refs/tags/2.2.0-rc.0
- refs/tags/2.2.1
- refs/tags/2.2.2
- refs/tags/2.2.3
- refs/tags/2.2.4
- refs/tags/2.3.0
- refs/tags/2.3.0-beta.0
- refs/tags/2.3.0-beta.1
- refs/tags/2.3.0-rc.0
- refs/tags/2.3.1
- refs/tags/2.4.0
- refs/tags/2.4.0-marker
- refs/tags/2.4.1
- refs/tags/2.4.10
- refs/tags/2.4.2
- refs/tags/2.4.3
- refs/tags/2.4.4
- refs/tags/2.4.5
- refs/tags/2.4.6
- refs/tags/2.4.7
- refs/tags/2.4.8
- refs/tags/2.4.9
- refs/tags/4.0.0
- refs/tags/4.0.0-beta.0
- refs/tags/4.0.0-beta.1
- refs/tags/4.0.0-beta.2
- refs/tags/4.0.0-beta.3
- refs/tags/4.0.0-beta.4
- refs/tags/4.0.0-beta.5
- refs/tags/4.0.0-beta.6
- refs/tags/4.0.0-beta.7
- refs/tags/4.0.0-beta.8
- refs/tags/4.0.0-rc.1
- refs/tags/4.0.0-rc.2
- refs/tags/4.0.0-rc.3
- refs/tags/4.0.0-rc.4
- refs/tags/4.0.0-rc.5
- refs/tags/4.0.0-rc.6
- refs/tags/4.0.1
- refs/tags/4.0.2
- refs/tags/4.0.3
- refs/tags/4.1.0
- refs/tags/4.1.0-beta.0
- refs/tags/4.1.0-beta.1
- refs/tags/4.1.0-rc.0
- refs/tags/4.1.1
- refs/tags/4.1.2
- refs/tags/4.1.3
- refs/tags/4.2.0
- refs/tags/4.2.0-beta.0
- refs/tags/4.2.0-beta.1
- refs/tags/4.2.0-rc.0
- refs/tags/4.2.0-rc.1
- refs/tags/4.2.0-rc.2
- refs/tags/4.2.1
- refs/tags/4.2.2
- refs/tags/4.2.3
- refs/tags/4.2.4
- refs/tags/4.2.5
- refs/tags/4.2.6
- refs/tags/4.3.0
- refs/tags/4.3.0-beta.0
- refs/tags/4.3.0-beta.1
- refs/tags/4.3.0-rc.0
- refs/tags/4.3.1
- refs/tags/4.3.2
- refs/tags/4.3.3
- refs/tags/4.3.4
- refs/tags/4.3.5
- refs/tags/4.3.6
- refs/tags/4.4.0
- refs/tags/4.4.0-RC.0
- refs/tags/4.4.1
- refs/tags/4.4.2
- refs/tags/4.4.3
- refs/tags/4.4.4
- refs/tags/4.4.5
- refs/tags/4.4.6
- refs/tags/4.4.7
- refs/tags/5.0.0
- refs/tags/5.0.0-beta.0
- refs/tags/5.0.0-beta.1
- refs/tags/5.0.0-beta.2
- refs/tags/5.0.0-beta.3
- refs/tags/5.0.0-beta.4
- refs/tags/5.0.0-beta.5
- refs/tags/5.0.0-beta.6
- refs/tags/5.0.0-beta.7
- refs/tags/5.0.0-rc.0
- refs/tags/5.0.0-rc.1
- refs/tags/5.0.0-rc.2
- refs/tags/5.0.0-rc.3
- refs/tags/5.0.0-rc.4
- refs/tags/5.0.0-rc.5
- refs/tags/5.0.0-rc.6
- refs/tags/5.0.0-rc.7
- refs/tags/5.0.0-rc.8
- refs/tags/5.0.0-rc.9
- refs/tags/5.0.1
- refs/tags/5.0.2
- refs/tags/5.0.3
- refs/tags/5.0.4
- refs/tags/5.0.5
- refs/tags/5.1.0
- refs/tags/5.1.0-beta.0
- refs/tags/5.1.0-beta.1
- refs/tags/5.1.0-beta.2
- refs/tags/5.1.0-rc.0
- refs/tags/5.1.0-rc.1
- refs/tags/5.1.1
- refs/tags/5.1.2
- refs/tags/5.1.3
- refs/tags/5.2.0
- refs/tags/5.2.0-beta.0
- refs/tags/5.2.0-beta.1
- refs/tags/5.2.0-rc.0
- refs/tags/5.2.1
- refs/tags/5.2.10
- refs/tags/5.2.11
- refs/tags/5.2.2
- refs/tags/5.2.3
- refs/tags/5.2.4
- refs/tags/5.2.5
- refs/tags/5.2.6
- refs/tags/5.2.7
- refs/tags/5.2.8
- refs/tags/5.2.9
- Branches list truncated to 999 entries, 232 were omitted.
- 12.0.0
- Releases list truncated to 1 entries, 8 were omitted.
Take a new snapshot of a software origin
If the archived software origin currently browsed is not synchronized with its upstream version (for instance when new commits have been issued), you can explicitly request Software Heritage to take a new snapshot of it.
Use the form below to proceed. Once a request has been submitted and accepted, it will be processed as soon as possible. You can then check its processing state by visiting this dedicated page.Processing "take a new snapshot" request ...
Permalinks
To reference or cite the objects present in the Software Heritage archive, permalinks based on SoftWare Hash IDentifiers (SWHIDs) must be used.
Select below a type of object currently browsed in order to display its associated SWHID and permalink.
Revision | Author | Date | Message | Commit Date |
---|---|---|---|---|
074266b | atscott | 15 April 2020, 23:09:35 UTC | release: cut the v10.0.0-next.2 release | 15 April 2020, 23:09:35 UTC |
c4dc642 | atscott | 15 April 2020, 23:04:09 UTC | docs: release notes for the v9.1.2 release | 15 April 2020, 23:04:09 UTC |
e041ac6 | George Kalpakas | 12 April 2020, 11:55:57 UTC | fix(ngcc): display output from the unlocker process on Windows (#36569) On Windows, the output of a detached process (such as the unlocker process used by `LockFileWithChildProcess`) is not shown in the parent process' stdout. This commit addresses this by piping the spawned process' stdin/stdout and manually writing to the parent process' stdout. PR Close #36569 | 15 April 2020, 16:25:27 UTC |
66effde | George Kalpakas | 12 April 2020, 11:55:55 UTC | fix(ngcc): do not spawn unlocker processes on cluster workers (#36569) The current ngcc lock-file strategy spawns a new process in order to capture a potential `SIGINT` and remove the lock-file. For more information see #35861. Previously, this unlocker process was spawned as soon as the `LockFile` was instantiated in order to have it available as soon as possible (given that spawning a process is an asynchronous operation). Since the `LockFile` was instantiated and passed to the `Executor`, this meant that an unlocker process was spawned for each cluster worker, when running ngcc in parallel mode. These processes were not needed, since the `LockFile` was not used in cluster workers, but we still had to pay the overhead of each process' own memory and V8 instance. (NOTE: This overhead was small compared to the memory consumed by ngcc's normal operations, but still unnecessary.) This commit avoids the extra processes by only spawning an unlocker process when running on the cluster master process and not on worker processes. PR Close #36569 | 15 April 2020, 16:25:27 UTC |
663b768 | Pete Bacon Darwin | 14 April 2020, 14:40:55 UTC | fix(ngcc): force ngcc to exit on error (#36622) For some reason (possibly related to async/await promises) the ngcc process is not exiting when spawned from the CLI when there has been an error (such as when it timesout waiting for a lockfile to become free). Calling `process.exit()` directly fixes this. Fixes #36616 PR Close #36622 | 15 April 2020, 16:24:54 UTC |
0147de9 | Joey Perrott | 14 April 2020, 20:17:43 UTC | build: fix circular deps failure (#36629) With the large scale refactoring of the repo to the new version of clang-format, some import orders were changed. Specifically the imports found in this range. The file previously read: import {TestBed} from './test_bed'; import {ComponentFixtureAutoDetect, ComponentFixtureNoNgZone, TestBedStatic, TestComponentRenderer, TestModuleMetadata} from './test_bed_common'; import {R3TestBedCompiler} from './r3_test_bed_compiler'; and now reads: import {R3TestBedCompiler} from './r3_test_bed_compiler'; import {TestBed} from './test_bed'; import {ComponentFixtureAutoDetect, ComponentFixtureNoNgZone, TestBedStatic, TestComponentRenderer, TestModuleMetadata} from './test_bed_common'; This change in order cause the circular dependency to be entered earlier and changed the golden file for our circular deps discovery. PR Close #36629 | 14 April 2020, 20:56:55 UTC |
b010849 | Joey Perrott | 06 April 2020, 21:57:52 UTC | build: update to latest version of yarn (#36464) PR Close #36464 | 14 April 2020, 19:47:30 UTC |
698b028 | Joey Perrott | 13 April 2020, 23:40:21 UTC | build: reformat repo to new clang@1.4.0 (#36613) PR Close #36613 | 14 April 2020, 19:08:36 UTC |
5e80e7e | Ayaz Hafiz | 09 April 2020, 03:05:32 UTC | refactor(language-service): clean up and exports and consolidate types (#36533) PR Close #36533 | 14 April 2020, 17:17:43 UTC |
d50cb30 | Greg Magolan | 14 April 2020, 14:24:17 UTC | test: disable failing saucelabs tests (#36620) PR Close #36620 | 14 April 2020, 17:13:33 UTC |
29122c5 | Greg Magolan | 11 April 2020, 16:34:23 UTC | style: lint (#36580) PR Close #36580 | 14 April 2020, 17:12:59 UTC |
58e1753 | Greg Magolan | 11 April 2020, 16:15:16 UTC | build: update to rules_nodejs 1.6.0 (#36580) Lots of bug fixes and stability fixes. Last 1.x release for rules_nodejs. PR Close #36580 | 14 April 2020, 17:12:59 UTC |
f88e635 | Tony Bove | 20 March 2020, 15:58:26 UTC | docs: edit to setup-local (#36168) PR Close #36168 | 14 April 2020, 00:33:35 UTC |
0cc53fb | Alison Gale | 07 April 2020, 23:44:28 UTC | fix(upgrade): update $locationShim to handle Location changes before initialization (#36498) Updates the $locationShim to receive the most recent Location change made, even if it happened before initialize() is called. This is important when AngularJS bootstrapping is deferred and there is a delay between when $locationShim is constructed and when it is initialized. With this change, the $locationShim will correctly reflect any redirects that occurred between construction and initialization. Closes #36492 PR Close #36498 | 14 April 2020, 00:33:00 UTC |
713bce1 | Sonu Kapoor | 03 April 2020, 09:49:16 UTC | docs: move ng-conf 2020 to the already presented section (#36413) PR Close #36413 | 13 April 2020, 15:20:03 UTC |
d972821 | ajitsinghkaler | 11 April 2020, 05:36:37 UTC | fix(docs-infra): contribute page not visible correctly on mobile devices (#36573) on mobile devices screen size < 600px the contribute page is not visible in correct form changed styles to make it visible correctly PR Close #36573 | 13 April 2020, 15:19:01 UTC |
2d16b47 | ajitsinghkaler | 12 April 2020, 11:58:28 UTC | fix(docs-infra): fix About page button text being truncated on small screens (#36576) On small screens (e.g. on mobile), the text on some of the buttons in the About page was truncated. Changed the text size, margin and padding so that the the whole text is visible on such screens (320px to 480px). PR Close #36576 | 13 April 2020, 15:18:11 UTC |
9181b73 | Rajat Soni | 12 April 2020, 16:40:27 UTC | docs: fix typo in Tests guide (#36592) PR Close #36592 | 13 April 2020, 15:17:27 UTC |
5737e65 | Mansour Fall | 12 April 2020, 18:21:37 UTC | docs(zone.js): fix typos in NgZone guide code example (#36597) Fixes #36594 PR Close #36597 | 13 April 2020, 15:16:59 UTC |
ca67748 | Paul Gschwendtner | 09 April 2020, 16:27:07 UTC | fix(core): undecorated-classes-with-decorated-fields migration should avoid error if base class has no value declaration (#36543) The undecorated-classes-with-decorated-fields migration relies on the type checker to resolve base classes of individual classes. It could happen that resolved base classes have no value declaration. e.g. if they are declared through an interface in the default types. Currently the migration will throw in such situations because it assumes that `ts.Symbol#valueDeclaration` is always present. This is not the case, but we don't get good type-checking here due to a bug in the TypeScript types. See: https://github.com/microsoft/TypeScript/issues/24706. Fixes #36522. PR Close #36543 | 10 April 2020, 20:53:15 UTC |
6ab43d7 | George Kalpakas | 10 April 2020, 12:13:20 UTC | fix(ngcc): correctly detect external files from nested `node_modules/` (#36559) Previously, when we needed to detect whether a file is external to a package, we only checked whether the relative path to the file from the package's root started with `..`. This would detect external imports when the packages were siblings (e.g. peer dependencies or hoisted to the top of `node_modules/` by the package manager), but would fail to detect imports from packages located in nested `node_modules/` as external. For example, importing `node_modules/foo/node_modules/bar` from a file in `node_modules/foo/` would be considered internal to the `foo` package. This could result in processing/analyzing more files than necessary. More importantly it could lead to errors due to trying to analyze non-Angular packages that were direct dependencies of Angular packages. This commit fixes it by also verifying that the relative path to a file does not start with `node_modules/`. Jira issue: [FW-2068](https://angular-team.atlassian.net/browse/FW-2068) Fixes #36526 PR Close #36559 | 10 April 2020, 16:10:26 UTC |
fee3161 | Andrew Kushnir | 09 April 2020, 19:07:18 UTC | build: update `REQUIRED_BASE_SHA` in merge script to clang 1.4.0 upgrade commit (#36547) Updating `REQUIRED_BASE_SHA` for master and patch branches to make sure PRs that we merge are rebased after clang 1.4.0 upgrade. PR Close #36547 | 09 April 2020, 23:00:31 UTC |
2e4244d | George Kalpakas | 09 April 2020, 08:42:19 UTC | fix(docs-infra): fix `elements` example when used with ES5 (#36536) Previously, the `elements` docs example only worked in browsers that natively supported Custom Elements and ES2015 modules. Furthermore, it didn't work on StackBlitz, because StackBlitz ignores the specified `target` in `tsconfig.json` and uses the UMD bundles (i.e. ES5 code) even on browsers that do support ES2015. (NOTE: In the past, this was not a problem, because we explicitly did not provide a StackBlitz example. This has changed in #36067.) This commit ensures the example works on all browsers and also on StackBlitz by providing the necessary Custom Elements polyfills. Fixes #36532 PR Close #36536 | 09 April 2020, 20:35:27 UTC |
3bedfda | Pete Bacon Darwin | 09 April 2020, 15:02:57 UTC | perf(ngcc): only load if it is needed (#36486) PR Close #36486 | 09 April 2020, 18:33:28 UTC |
ec0ce60 | Pete Bacon Darwin | 09 April 2020, 13:56:28 UTC | perf(ngcc): reduce the size of the entry-point manifest file (#36486) The base path for package and entry-points is known so there is no need to store these in the file. Also this commit avoids storing empty arrays unnecessarily. PR Close #36486 | 09 April 2020, 18:33:28 UTC |
a185efb | Pete Bacon Darwin | 07 April 2020, 16:47:46 UTC | perf(ngcc): read dependencies from entry-point manifest (#36486) Previously, even if an entry-point did not need to be processed, ngcc would always parse the files of the entry-point to compute its dependencies. This can take a lot of time for large node_modules. Now these dependencies are cached in the entry-point manifest, and read from there rather than computing them every time. See https://github.com/angular/angular/issues/36414\#issuecomment-608401834 FW-2047 PR Close #36486 | 09 April 2020, 18:33:28 UTC |
4aa4e6f | JoostK | 17 March 2020, 15:23:46 UTC | fix(compiler): handle type references to namespaced symbols correctly (#36106) When the compiler needs to convert a type reference to a value expression, it may encounter a type that refers to a namespaced symbol. Such namespaces need to be handled specially as there's various forms available. Consider a namespace named "ns": 1. One can refer to a namespace by itself: `ns`. A namespace is only allowed to be used in a type position if it has been merged with a class, but even if this is the case it may not be possible to convert that type into a value expression depending on the import form. More on this later (case a below) 2. One can refer to a type within the namespace: `ns.Foo`. An import needs to be generated to `ns`, from which the `Foo` property can then be read. 3. One can refer to a type in a nested namespace within `ns`: `ns.Foo.Bar` and possibly even deeper nested. The value representation is similar to case 2, but includes additional property accesses. The exact strategy of how to deal with these cases depends on the type of import used. There's two flavors available: a. A namespaced import like `import * as ns from 'ns';` that creates a local namespace that is irrelevant to the import that needs to be generated (as said import would be used instead of the original import). If the local namespace "ns" itself is referred to in a type position, it is invalid to convert it into a value expression. Some JavaScript libraries publish a value as default export using `export = MyClass;` syntax, however it is illegal to refer to that value using "ns". Consequently, such usage in a type position *must* be accompanied by an `@Inject` decorator to provide an explicit token. b. An explicit namespace declaration within a module, that can be imported using a named import like `import {ns} from 'ns';` where the "ns" module declares a namespace using `declare namespace ns {}`. In this case, it's the namespace itself that needs to be imported, after which any qualified references into the namespace are converted into property accesses. Before this change, support for namespaces in the type-to-value conversion was limited and only worked correctly for a single qualified name using a namespace import (case 2a). All other cases were either producing incorrect code or would crash the compiler (case 1a). Crashing the compiler is not desirable as it does not indicate where the issue is. Moreover, the result of a type-to-value conversion is irrelevant when an explicit injection token is provided using `@Inject`, so referring to a namespace in a type position (case 1) could still be valid. This commit introduces logic to the type-to-value conversion to be able to properly deal with all type references to namespaced symbols. Fixes #36006 Resolves FW-1995 PR Close #36106 | 09 April 2020, 18:32:21 UTC |
078b0be | Terence D. Honles | 30 March 2020, 23:02:19 UTC | fix(common): `locales/global/*.js` are not ES5 compliant (#36342) Although this code has been part of Angular 9.x I only noticed this error when upgrading to Angular 9.1.x because historically the source locale data was not injected when localizing, but as of angular/angular-cli#16394 (9.1.0) it is now included. This tipped me off that my other bundles were not being built properly, and this change allows me to build a valid ES5 bundle (I have also added a verification step to my build pipeline to alert me if this error appears again in any of my bundles). I found the `locales/global/*.js` file paths being referenced by the `I18nOptions` in @angular-devkit/build-angular/src/utils/i18n-options.ts, and following that it looks like it is actually loaded and used in @angular-devkit/build-angular/src/utils/process-bundle.ts. I saw the function `terserMangle` does appear that it is likely aware of the build being ES5, but I'm not sure why this is not producing a valid ES5 bundle. This change updates `tools/gulp-tasks/cldr/extract.js` to produce ES5 compliant `locales/global/*.js` and that fixes my issue. However, I am not sure if @angular-devkit/build-angular should be modified to produce a valid ES5 bundle instead or if the files could be TypeScript rather than JavaScript files. A test that a valid ES5 bundle is produced would be helpful, and I hope this is reproducible and not some issue with my config. PR Close #36342 | 09 April 2020, 18:30:32 UTC |
13ae2d7 | Andrew Scott | 09 April 2020, 17:54:59 UTC | style: format forms validators to fix lint error (#36546) PR Close #36546 | 09 April 2020, 18:18:22 UTC |
99b93e5 | Sonu Kapoor | 28 March 2020, 13:59:40 UTC | docs(forms): clarify the description of `minLength` and `maxLength` (#36297) Previously, it was not clear that the `minLength` and `maxLength` validators can only be used with objects that contain a `length` property. This commit clarifies this. PR Close #36297 | 09 April 2020, 17:31:03 UTC |
80e6c07 | Martin Sikora | 29 March 2020, 09:13:27 UTC | fix(router): pass correct component to canDeactivate checks when using two or more sibling router-outlets (#36302) fixes #34614 There's an edge case where if I use two (or more) sibling <router-outlet>s in two (or more) child routes where their parent route doesn't have a component then preactivation will trigger all canDeactivate checks with the same component because it will use wrong OutletContext. PR Close #36302 | 09 April 2020, 17:09:43 UTC |
34aa557 | George Kalpakas | 08 April 2020, 20:56:05 UTC | fix(dev-infra): fix commit message validation in git worktrees (#36507) Previously, the `pre-commit-validate` command (used in the `commit-msg` git hook) assumed that the commit message was stored in `.git/COMMIT_EDITMSG` file. This is usually true, but not when using [git worktrees](https://git-scm.com/docs/git-worktree), where `.git` is a file containing the path to the actual git directory. This commit fixes it by taking advantage of the fact that git passes the actual path of the file holding the commit message to the `commit-msg` hook and husky exposes the arguments passed by git as `$HUSKY_GIT_PARAMS`. NOTE: We cannot use the environment variable directly in the `commit-msg` hook command, because environment variables need to be referenced differently on Windows (`%VAR_NAME%`) vs macOS/Linux (`$VAR_NAME`). Instead, we pass the name of the environment variable and the validation script reads the variable's value off of `process.env`. PR Close #36507 | 09 April 2020, 16:46:18 UTC |
e526f74 | Pete Bacon Darwin | 01 April 2020, 09:02:26 UTC | refactor(compiler): create a new root `BindingScope` for each template (#36362) Previously we had a singleton `ROOT_SCOPE` object, from which all `BindingScope`s derived. But this caused ngcc to produce non-deterministic output when running multiple workers in parallel, since each process had its own `ROOT_SCOPE`. In reality there is no need for `BindingScope` reference names to be unique across an entire application (or in the case of ngcc across all the libraries). Instead we just need uniqueness within a template. This commit changes the compiler to create a new root `BindingScope` each time it compiles a component's template. Resolves #35180 PR Close #36362 | 09 April 2020, 16:44:56 UTC |
9e78f55 | Greg Magolan | 09 April 2020, 00:37:04 UTC | style: typescript lint fix (#36531) PR Close #36531 | 09 April 2020, 00:59:21 UTC |
f1731d8 | Greg Magolan | 09 April 2020, 00:25:54 UTC | Revert "refactor(bazel): use runfiles helper in ts-api-guardian (#36471)" (#36531) This reverts commit 92c4f3d5085b0fa1c30cd5c9d658d20871419320. PR Close #36531 | 09 April 2020, 00:59:21 UTC |
92c4f3d | Greg Magolan | 07 April 2020, 04:32:44 UTC | refactor(bazel): use runfiles helper in ts-api-guardian (#36471) Pre-fractor for future rules_nodejs release when require.resolve patches are removed. PR Close #36471 | 08 April 2020, 22:57:52 UTC |
e92fce1 | Joey Perrott | 06 April 2020, 21:45:13 UTC | fix(language-service): remove circular dependency instance (#36463) PR Close #36463 | 08 April 2020, 22:29:09 UTC |
83a9159 | Alex Rickabaugh | 08 April 2020, 17:14:18 UTC | style(compiler): reformat of codebase with new clang-format version (#36520) This commit reformats the packages/compiler tree using the new version of clang-format. PR Close #36520 | 08 April 2020, 21:51:08 UTC |
0a69a28 | Alex Rickabaugh | 07 April 2020, 19:43:43 UTC | style(compiler-cli): reformat of codebase with new clang-format version (#36520) This commit reformats the packages/compiler-cli tree using the new version of clang-format. PR Close #36520 | 08 April 2020, 21:51:08 UTC |
717df13 | Pete Bacon Darwin | 08 April 2020, 18:34:19 UTC | fix(ngcc): do not warn if `paths` mapping does not exist (#36525) In cc4b813e759f16fb0f4dfa92a0e6464ed768a629 the `getBasePaths()` function was changed to log a warning if a `basePath()` computed from the `paths` mappings did not exist. It turns out this is a common and accepted scenario, so we should not log warnings in this case. Fixes #36518 PR Close #36525 | 08 April 2020, 21:29:57 UTC |
b40b557 | Kara Erickson | 08 April 2020, 19:28:12 UTC | release: cut the v10.0.0-next.1 release | 08 April 2020, 19:28:12 UTC |
03f2f1a | Greg Magolan | 08 April 2020, 15:28:03 UTC | build(bazel): fix runfiles resolve in karma-saucelabs.js after $location => $rootpath cleanup (#36511) This wasn't caught by CI on the PR as this binary is only run once daily via a monitor job. PR Close #36511 | 08 April 2020, 19:13:27 UTC |
a8978eb | Paul Gschwendtner | 08 April 2020, 12:50:10 UTC | build: ts-circular-deps tool should normalize golden (#36505) Currently the golden output of the circular-deps tool is purely based on the order of source files passed to the tool, and on the amount of imports inside source files. This is actually resulting in deterministic output as running the tool multiple times without any changes to source files, results in the same output. Though it seems like the tool is too strict and we can avoid unnecessary golden changes if: 1. A source file that is part of a cycle is imported earlier (in terms of how the analyzer visits them). This could result in the cycle path starting with a different source file. 2. Source files which are not part of a cycle are imported earlier (in terms of how the analyzer visits them). This could result in moved items in the golden if re-approved (even though the cycles remain the same) To fix this, we normalize the cycle path array that serves as serializable data structure for the text-based goldens. Since the paths represents a cycle, the path can be shifted in a deterministic way so that cycles don't change unnecessarily in the golden, and to simplify comparison of cycles. Additionally, we sort the cycles in a deterministic way so that the golden doesn't change unnecessarily (as explained above). PR Close #36505 | 08 April 2020, 19:12:58 UTC |
7d7b59e | Sachin Grover | 12 February 2020, 17:46:59 UTC | docs: update the Support policy and schedule (#35390) PR Close #35359 PR Close #35390 | 08 April 2020, 19:12:32 UTC |
4cf89d4 | Alan Agius | 08 April 2020, 09:07:58 UTC | docs: replace `browserslist` with `.browserslistrc` (#36504) In version 10, this file has been changed. See: https://github.com/angular/angular-cli/pull/17367 PR Close #36504 | 08 April 2020, 19:12:03 UTC |
d47b318 | Alan Agius | 08 April 2020, 11:36:07 UTC | build: remove `fullTemplateTypeCheck` from aio tsconfig (#36502) `fullTemplateTypeCheck` is no longer required since we now use `strictTemplates` which is a superset of the former option. Follow-up on: https://github.com/angular/angular/commit/04f61c0c3ee9b3616b1719b4ae9c3eb097698218#r38354112 PR Close #36502 | 08 April 2020, 19:11:28 UTC |
e485236 | Keen Yee Liau | 07 April 2020, 21:58:39 UTC | test(language-service): Inline test cases in parsing-cases.ts (#36495) This commit removes individual components from parsing-cases.ts and colocate them with the actual tests. This makes the tests more readable. PR Close #36495 | 08 April 2020, 19:11:04 UTC |
41667de | JiaLiPassion | 30 March 2020, 15:22:25 UTC | fix(zone.js): add issue numbers of `@types/jasmine` to the test cases (#34625) Some cases will still need to use `spy as any` cast, because `@types/jasmine` have some issues, 1. The issue jasmine doesn't handle optional method properties, https://github.com/DefinitelyTyped/DefinitelyTyped/issues/43486 2. The issue jasmine doesn't handle overload method correctly, https://github.com/DefinitelyTyped/DefinitelyTyped/issues/42455 PR Close #34625 | 08 April 2020, 19:10:34 UTC |
ef4736d | JiaLiPassion | 03 January 2020, 05:28:06 UTC | build: update jasmine to 3.5 (#34625) 1. update jasmine to 3.5 2. update @types/jasmine to 3.5 3. update @types/jasminewd2 to 2.0.8 Also fix several cases, the new jasmine 3 will help to create test cases correctly, such as in the `jasmine 2.x` version, the following case will pass ``` expect(1 == 2); ``` But in jsamine 3, the case will need to be ``` expect(1 == 2).toBeTrue(); ``` PR Close #34625 | 08 April 2020, 19:10:34 UTC |
db4a448 | Kara Erickson | 08 April 2020, 18:08:01 UTC | release: cut the v10.0.0-next.0 release | 08 April 2020, 18:08:01 UTC |
7549c65 | Joey Perrott | 08 April 2020, 17:38:51 UTC | build: update matching regex for bazel stamping (#36523) Previously, the bazel stamping regex only matched on versions 0-9 for major and minor numbers, this update allows for matching on any number for major, minor or patch. PR Close #36523 | 08 April 2020, 18:04:08 UTC |
1beccc1 | Kara Erickson | 07 April 2020, 23:37:55 UTC | docs: release notes for the v9.1.1 release | 07 April 2020, 23:37:55 UTC |
0075017 | Judy Bogart | 05 March 2020, 00:40:56 UTC | docs: update reactive forms page (#35969) PR Close #35969 | 07 April 2020, 22:24:17 UTC |
4374931 | JiaLiPassion | 11 March 2020, 16:41:19 UTC | fix(zone.js): zone.js patch jest should handle done correctly (#36022) `zone.js` supports jest `test.each()` methods, but it introduces a bug, which is the `done()` function will not be handled correctly. ``` it('should work with done', done => { // done will be undefined. }); ``` The reason is the logic of monkey patching `test` method is different from `jasmine` patch // jasmine patch ``` return testBody.length === 0 ? () => testProxyZone.run(testBody, null) : done => testProxyZone.run(testBody, null, [done]); ``` // jest patch ``` return function(...args) { return testProxyZone.run(testBody, null, args); }; ``` the purpose of this change is to handle the following cases. ``` test.each([1, 2])('test.each', (arg1, arg2) => { expect(arg1).toBe(1); expect(arg2).toBe(2); }); ``` so in jest, it is a little complex, because the `testBody`'s parameter may be bigger than 1, so the logic in `jasmine` ``` return testBody.length === 0 ? () => testProxyZone.run(testBody, null) : done => testProxyZone.run(testBody, null, [done]); ``` will not work for `test.each` in jest. So in this PR, I created a dynamic `Function` to return the correct length of paramters (which is required by jest core), to handle 1. normal `test` with or without `done`. 2. each with parameters with or without done. PR Close #36022 | 07 April 2020, 22:22:16 UTC |
64022f5 | JoostK | 06 April 2020, 20:33:38 UTC | fix(compiler): resolve enum values in binary operations (#36461) During static evaluation of expressions, the partial evaluator may come across a binary + operator for which it needs to evaluate its operands. Any of these operands may be a reference to an enum member, in which case the enum member's value needs to be used as literal value, not the enum member reference itself. This commit fixes the behavior by resolving an `EnumValue` when used as a literal value. Fixes #35584 Resolves FW-1951 PR Close #36461 | 07 April 2020, 22:21:51 UTC |
f9f6e2e | JoostK | 06 April 2020, 19:47:40 UTC | style(compiler): reformat partial evaluator source tree (#36461) PR Close #36461 | 07 April 2020, 22:21:51 UTC |
aecf9de | George Kalpakas | 01 April 2020, 14:31:04 UTC | fix(ngcc): correctly identify relative Windows-style import paths (#36372) Previously, `isRelativePath()` assumed paths are *nix-style. This caused Windows-style paths (such as `C:\foo\some-package\some-file.js`) to not be recognized as "relative" imports. This commit fixes this by using the OS-agnostic `isRooted()` helper and also accounting for both styles of path delimiters: `/` and `\` PR Close #36372 | 07 April 2020, 22:21:27 UTC |
81195a2 | ivanwonder | 01 April 2020, 13:29:01 UTC | fix(language-service): use the `HtmlAst` to get the span of HTML tag (#36371) The HTML tag may include `-` (e.g. `app-root`), so use the `HtmlAst` to get the span. PR Close #36371 | 07 April 2020, 22:10:33 UTC |
96a3de6 | Ajit Singh | 08 March 2020, 14:45:42 UTC | style(docs-infra): removed extra , from _resources.scss file (#35935) there was a typo in _resourcess.scss file there was an extra comma added some spaces too that were needed for proper styling of the code PR Close #35935 | 07 April 2020, 22:08:57 UTC |
0002713 | Ajit Singh | 08 March 2020, 11:06:37 UTC | fix(docs-infra): fix resources page tabs text which is not visible on small screens (#35935) on small mobile screens the top tab bar contains text which was not visible on small screens changed text size, margin and padding so that the text could be contained in these screens (320px to 480px) PR Close #35935 | 07 April 2020, 22:08:57 UTC |
4a18428 | Stanislav Usov | 07 April 2020, 08:23:21 UTC | docs(forms): Remove unnecessary repeating periods (#36474) PR Close #36474 | 07 April 2020, 18:35:43 UTC |
7f28845 | Keen Yee Liau | 07 April 2020, 03:04:56 UTC | test(language-service): remove ng-for-cases.ts (#36470) This commit removes ng-for-cases.ts and moves all test cases to inline expressions in TEST_TEMPLATE. PR Close #36470 | 07 April 2020, 18:34:38 UTC |
1dd0b6c | Keen Yee Liau | 07 April 2020, 02:47:29 UTC | test(language-service): remove ng-if-cases.ts (#36470) This commit removes ng-if-cases.ts and moves all test cases to inline expressions in TEST_TEMPLATE. PR Close #36470 | 07 April 2020, 18:34:38 UTC |
e0415db | Andrew Scott | 06 April 2020, 20:39:33 UTC | fix(router): state data missing in routerLink (#36462) fixes #33173 - router state data is missing on routerLink when used with non-anchor elements. PR Close #36462 | 07 April 2020, 18:31:25 UTC |
95fc3d4 | crisbeto | 03 March 2020, 20:05:26 UTC | fix(core): ngOnDestroy on multi providers called with incorrect context (#35840) Currently destroy hooks are stored in memory as `[1, hook, 5, hook]` where the numbers represent the index at which to find the context and `hook` is the function to be invoked. This breaks down for `multi` providers, because the value at the index will be an array of providers, resulting in the hook being invoked with an array of all the multi provider values, rather than the provider that was destroyed. In ViewEngine `ngOnDestroy` wasn't being called for `multi` providers at all. These changes fix the issue by changing the structure of the destroy hooks to `[1, hook, 5, [0, hook, 3, hook]]` where the indexes inside the inner array point to the provider inside of the multi provider array. Note that this is slightly different from the original design which called for the structure to be `[1, hook, 5, [hook, hook]`, because in the process of implementing it, I realized that we wouldn't get passing the correct context if only some of the `multi` providers have `ngOnDestroy` and others don't. I've run the newly-added `view_destroy_hooks` benchmark against these changes and compared it to master. The difference seems to be insignificant (between 1% and 2% slower). Fixes #35231. PR Close #35840 | 07 April 2020, 17:31:41 UTC |
e145fa1 | Keen Yee Liau | 06 April 2020, 23:14:09 UTC | test(language-service): delete expression-cases.ts (#36468) This commit deletes `expression-cases.ts` and moves the test cases to inline expressions in TEST_TEMPLATE. PR Close #36468 | 07 April 2020, 17:20:27 UTC |
5fa7b8b | George Kalpakas | 07 April 2020, 16:14:57 UTC | fix(ngcc): detect non-emitted, non-imported TypeScript helpers (#36418) When TypeScript downlevels ES2015+ code to ES5, it uses some helper functions to emulate some ES2015+ features, such as spread syntax. The TypeScript compiler can be configured to emit these helpers into the transpiled code (which is controlled by the `noEmitHelpers` option - false by default). It can also be configured to import these helpers from the `tslib` module (which is controlled by the `importHelpers` option - false by default). While most of the time the helpers will be either emitted or imported, it is possible that one configures their app to neither emit nor import them. In that case, the helpers could, for example, be made available on the global object. This is what `@nativescript/angular` v9.0.0-next-2019-11-12-155500-01 does. See, for example, [common.js][1]. Ngcc must be able to detect and statically evaluate these helpers. Previously, it was only able to detect emitted or imported helpers. This commit adds support for detecting these helpers if they are neither emitted nor imported. It does this by checking identifiers for which no declaration (either concrete or inline) can be found against a list of known TypeScript helper function names. [1]: https://unpkg.com/browse/@nativescript/angular@9.0.0-next-2019-11-12-155500-01/common.js PR Close #36418 | 07 April 2020, 17:19:22 UTC |
2c7d366 | Ayaz Hafiz | 29 March 2020, 06:26:51 UTC | refactor(language-service): provide service for attribute binding type (#36301) This commit refactors the process for determining the type of an Angular attribute to be use a function that takes an attribute name and returns the Angular attribute kind and name, rather than requiring the user to query match the attribute name with the regex and query the matching array. This refactor prepares for a future change that will improve the experience of completing attributes in `()`, `[]`, or `[()]` contexts. PR Close #36301 | 07 April 2020, 17:18:32 UTC |
2dd6f25 | Joey Perrott | 06 April 2020, 19:15:05 UTC | ci: manually set available resources for bazel on windows CI (#36458) PR Close #36458 | 07 April 2020, 17:12:29 UTC |
d2623f1 | Andrew Kushnir | 07 April 2020, 16:59:25 UTC | style(zone.js): fix lint errors after clang update (#36487) Recent ZoneJS-related commit (https://github.com/angular/angular/commit/416c786774dccc20d824737207be4e55cb53c9cc) update the `promise.ts` file, but it looks like original PR was not rebased after clang update. As a result, the `lint` CircleCI job started to fail in master after merging that PR (https://github.com/angular/angular/pull/36311). This commit updates the format of the `promise.ts` script according to the new clang rules. PR Close #36487 | 07 April 2020, 17:10:34 UTC |
7d0af17 | Andrew Kushnir | 06 April 2020, 22:44:00 UTC | style(forms): reformat of the `forms` package after clang update (#36466) PR Close #36466 | 07 April 2020, 16:47:09 UTC |
416c786 | JiaLiPassion | 30 March 2020, 00:14:02 UTC | fix(zone.js): should not try to patch fetch if it is not writable (#36311) Close #36142 In Firefox extensions, the `window.fetch` is not configurable, that means ``` const desc = Object.getOwnPropertyDescriptor(window, 'fetch'); desc.writable === false; ``` So in this case, we should not try to patch `fetch`, otherwise, it will throw error ('fetch is ReadOnly`) PR Close #36311 | 06 April 2020, 22:34:33 UTC |
93302b7 | Joey Perrott | 06 April 2020, 20:21:00 UTC | build: update to latest version of husky (#36459) PR Close #36459 | 06 April 2020, 22:33:26 UTC |
eb8c6c7 | Keen Yee Liau | 03 April 2020, 04:48:16 UTC | test(language-service): Move pipe tests to TEST_TEMPLATE (#36407) This commit simplifies the completion tests for pipes by moving them to TEST_TEMPLATE. PR Close #36407 | 06 April 2020, 22:32:33 UTC |
8660806 | George Kalpakas | 23 March 2020, 15:31:56 UTC | build(docs-infra): renamed `e2e` property of `example-config.json` to `tests` (#36143) Each docs example has an `example-config.json` configuration file. Among other things, this file can be used to specify what commands to run in order to test the example. (If not specified, the `run-example-e2e.js` script will run a default `yarn e2e` command.) Previously, the property specifying the test commands was called `e2e`. This is because in the past only e2e tests were run for docs examples. Since recently, some examples may specify commands for other types of tests (such as unit tests). Therefore, calling the property that holds the list of test commands `e2e` no longer makes sense and can be misleading to people looking at the configuration files. This commit renamed the property to the more generic `tests`. In the future, the `run-example-e2e.js` script (and corresponding npm script) should be renamed and refactored to also avoid giving the impression that only e2e tests are run. Discussed in: https://github.com/angular/angular/pull/36143#discussion_r395148379 PR Close #36143 | 06 April 2020, 22:31:07 UTC |
4c5e085 | George Kalpakas | 23 March 2020, 15:31:56 UTC | build(docs-infra): update docs examples `package.json` templates wrt `core-js` (#36143) The `core-js` dependency is no longer included in `package.json` for `cli`-type examples, but only for the `systemjs` ones. This commit updates the `package.json` templates to reflect that (and also updates the `npm-packages` guide accordingly). PR Close #36143 | 06 April 2020, 22:31:07 UTC |
d707124 | George Kalpakas | 23 March 2020, 15:31:55 UTC | test(docs-infra): fix unit tests and run them for specific docs examples on CI (#36143) Previously, only e2e tests were run for docs examples on CI. As a result, unit tests (which are included in the zipped archives we provide for users to download and play with the examples locally) were often outdated and broken. This commit configures specific docs examples that have meaningful unit tests to run them on CI (via the `run-example-e2e.js` script). Where necessary, the unit tests are fixed to ensure they pass and reflect the changes in the corresponding component/service. This commit also removes some auto-generated unit tests that are not meaningful (e.g. make trivial assertions, such that a component instance is truthy) and are often broken anyway (e.g. because the corresponding component has been changed in ways that make the tests fail). PR Close #36143 | 06 April 2020, 22:31:07 UTC |
aece366 | George Kalpakas | 06 April 2020, 19:57:58 UTC | build(docs-infra): switch docs examples to Ivy (#36143) The docs examples are switched to Ivy. On CI, the tests are run with both Ivy and ViewEngine. Partially addresses: [FW-1609](https://angular-team.atlassian.net/browse/FW-1609) PR Close #36143 | 06 April 2020, 22:31:07 UTC |
09c8416 | Priyash Patil | 06 April 2020, 19:54:44 UTC | docs: fix broken guide link (tutorial/index --> tutorial) (#36453) Replace broken link (`tutorial/index`) with `tutorial`. PR Close #36453 | 06 April 2020, 20:56:00 UTC |
d43c306 | Paul Gschwendtner | 02 April 2020, 09:01:43 UTC | fix(core): avoid migration error when non-existent symbol is imported (#36367) In rare cases a project with configured `rootDirs` that has imports to non-existent identifiers could fail in the migration. This happens because based on the application code, the migration could end up trying to resolve the `ts.Symbol` of such non-existent identifiers. This isn't a problem usually, but due to a upstream bug in the TypeScript compiler, a runtime error is thrown. This is because TypeScript is unable to compute a relative path from the originating source file to the imported source file which _should_ provide the non-existent identifier. An issue for this has been reported upstream: https://github.com/microsoft/TypeScript/issues/37731. The issue only surfaces since our migrations don't provide an absolute base path that is used for resolving the root directories. To fix this, we ensure that we never use relative paths when parsing tsconfig files. More details can be found in the TS issue. Fixes #36346. PR Close #36367 | 06 April 2020, 20:21:54 UTC |
ee70a18 | Pete Bacon Darwin | 06 April 2020, 12:41:41 UTC | fix(ngcc): don't crash on cyclic source-map references (#36452) The source-map flattening was throwing an error when there is a cyclic dependency between source files and source-maps. The error was either a custom one describing the cycle, or a "Maximum call stack size exceeded" one. Now this is handled more leniently, resulting in a partially loaded source file (or source-map) and a warning logged. Fixes #35727 Fixes #35757 Fixes https://github.com/angular/angular-cli/issues/17106 Fixes https://github.com/angular/angular-cli/issues/17115 PR Close #36452 | 06 April 2020, 20:19:53 UTC |
76a8cd5 | Alan Agius | 06 April 2020, 08:43:47 UTC | fix(ngcc): add process title (#36448) Add process.title, so it's clearly in the task manager when ngcc is running See: https://github.com/angular/angular/issues/36414#issuecomment-609644282 PR Close #36448 | 06 April 2020, 20:19:17 UTC |
4c7f89f | Pete Bacon Darwin | 07 March 2020, 16:23:11 UTC | ci: exclude ngcc directory from fw-compiler pull-approve rule (#35933) ngcc has its own pull-approve group PR Close #35933 | 06 April 2020, 20:16:37 UTC |
f9fb833 | Pete Bacon Darwin | 03 April 2020, 21:00:51 UTC | fix(ngcc): support ignoring deep-imports via package config (#36423) Recently we added support for ignoring specified deep-import warnings by providing sets of regular expressions within the `ngcc.config.js` file. But this was only working for the project level configuration. This commit fixes ngcc so that it will also read these regular expressions from package level configuration too. Fixes #35750 PR Close #36423 | 06 April 2020, 18:32:09 UTC |
6b3aa60 | Pete Bacon Darwin | 02 April 2020, 15:47:17 UTC | fix(ngcc): support simple `browser` property in entry-points (#36396) The `browser` package.json property is now supported to the same level as `main` - i.e. it is sniffed for UMD, ESM5 and CommonJS. The `browser` property can also contain an object with file overrides but this is not supported by ngcc. Fixes #36062 PR Close #36396 | 06 April 2020, 18:31:10 UTC |
2463548 | Pete Bacon Darwin | 02 April 2020, 10:03:11 UTC | fix(ngcc): sniff `main` property for ESM5 format (#36396) Previously, `main` was only checked for `umd` or `commonjs` formats. Now if there are `import` or `export` statements in the source file it will be deemed to be in `esm5` format. Fixes #35788 PR Close #36396 | 06 April 2020, 18:31:10 UTC |
1140bbc | Keen Yee Liau | 04 April 2020, 03:57:39 UTC | refactor(language-service): reformat using clang-format (#36426) clang-format was recently updated and any PRs that touch files in the language service will have to reformat all the files. Instead of changing the formatting in those PRs, this PR formats all files in language-service package once and for all. PR Close #36426 | 06 April 2020, 16:29:42 UTC |
1b4df64 | George Kalpakas | 02 April 2020, 16:47:02 UTC | docs: add missing command in `WebWorker` guide (#36397) The command was accidentally removed in #36383 PR Close #36397 | 06 April 2020, 16:29:17 UTC |
f40d517 | Joey Perrott | 20 March 2020, 19:24:12 UTC | fix(dev-infra): use commit message validation from @angular/dev-infra-private (#36172) Prior to this change we manage a local version of commit message validation in addition to the commit message validation tool contained in the ng-dev tooling. By adding the ability to validate a range of commit messages together, the remaining piece of commit message validation that is in the local version is replicated. We use both commands provided by the `ng-dev commit-message` tooling: - pre-commit-validate: Set to automatically run on an git hook to validate commits as they are created locally. - validate-range: Run by CI for every PR, testing that all of the commits added by the PR are valid when considered together. Ensuring that all fixups are matched to another commit in the change. PR Close #36172 | 06 April 2020, 16:28:52 UTC |
e893c5a | Ayaz Hafiz | 23 July 2019, 19:32:14 UTC | fix(compiler-cli): pass real source spans where they are empty (#31805) Some consumers of functions that take `ParseSourceSpan`s currently pass empty and incorrect source spans. This fixes those cases. PR Close #31805 | 06 April 2020, 16:28:27 UTC |
8be8466 | Pete Bacon Darwin | 06 April 2020, 07:30:08 UTC | style(ngcc): reformat of ngcc after clang update (#36447) PR Close #36447 | 06 April 2020, 16:26:57 UTC |
c8bef12 | Doguhan Uluca | 15 January 2020, 18:03:24 UTC | docs: adding Doguhan Uluca as GDE resource (#34789) PR Close #34789 | 03 April 2020, 21:03:57 UTC |
568e9df | Mikel Ward | 13 February 2020, 21:34:02 UTC | fix(router): allow UrlMatcher to return null (#36402) The matcher is allowed to return null per https://angular.io/api/router/UrlMatcher#usage-notes And run `yarn gulp format` to pick up recent clang format changes. Closes #29824 BREAKING CHANGE: UrlMatcher's type now reflects that it could always return null. If you implemented your own Router or Recognizer class, please update it to handle matcher returning null. PR Close #36402 | 03 April 2020, 18:16:23 UTC |
a555fdb | Joey Perrott | 30 March 2020, 15:25:39 UTC | build: update pullapprove config to better handle global approvals (#36384) Beginning with this change, global approvals will now require the approver to include `Reviewed-for: global-approvers`, and a docs global approval requires `Reviewed-for: global-docs-approvers`. Historically, providing a review by any member of the global reviewer groups would automatically be considered a global review. This change enforces that global approval should be an intentional, explicit action. The global-approvers and global-docs-approvers group will not be requested as reviews by pullapprove. PR Close #36384 | 03 April 2020, 18:11:30 UTC |
36535e9 | Joey Perrott | 01 April 2020, 22:08:25 UTC | fix(dev-infra): correct pullapprove global approval regex (#36384) PR Close #36384 | 03 April 2020, 18:11:30 UTC |
6402a9a | Joey Perrott | 24 March 2020, 17:20:28 UTC | build: rebuild yarn lock from scratch (#36377) Rebuild the yarn lock file from scratch to collapse instances where one package is able to satisfy multiple dependencies. Currently we have some situations where we have multiple versions when one would work. Example: ``` "@babel/code-frame@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/@babel/cod integrity sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij dependencies: "@babel/highlight" "^7.0.0" "@babel/code-frame@^7.5.5": version "7.5.5" resolved "https://registry.yarnpkg.com/@babel/cod integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQ dependencies: "@babel/highlight" "^7.0.0" "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/cod integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0j dependencies: "@babel/highlight" "^7.8.3" ``` becomes ``` "@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5", "@babel/code-frame@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/cod integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0j dependencies: "@babel/highlight" "^7.8.3" ``` PR Close #36377 | 03 April 2020, 18:09:17 UTC |
ca25c95 | George Kalpakas | 03 April 2020, 13:37:46 UTC | fix(ngcc): correctly detect imported TypeScript helpers (#36284) The `NgccReflectionHost`s have logic for detecting certain known declarations (such as `Object.assign()` and TypeScript helpers), which allows the `PartialEvaluator` to evaluate expressions it would not be able to statically evaluate otherwise. In #36089, `DelegatingReflectionHost` was introduced, which delegates to a TypeScript `ReflectionHost` when reflecting on TypeScript files, which for ngcc's case means `.d.ts` files of dependencies. As a result, ngcc lost the ability to detect TypeScript helpers imported from `tslib`, because `DelegatingReflectionHost` was not able to apply the known declaration detection logic while reflecting on `tslib`'s `.d.ts` files. This commit fixes this by ensuring `DelegatingReflectionHost` calls the `NgccReflectionHost`'s `detectKnownDeclaration()` method as necessary, even when using the TypeScript `ReflectionHost`. NOTE: The previous commit exposed a bug in ngcc that was hidden due to the tests' being inconsistent with how the `ReflectionHost`s are used in the actual program. The changes in this commit are verified by ensuring the failing tests are now passing (hence no new tests are added). PR Close #36284 | 03 April 2020, 18:08:46 UTC |
93f07ae | George Kalpakas | 03 April 2020, 13:37:45 UTC | test(ngcc): use `DelegatingReflectionHost` for testing `NgccReflectionHost`s (#36284) In #36089, `DelegatingReflectionHost` was introduced. Under the hood, it delegates another `NgccReflectionHost` in order to reflect over the program's source files, while using a different TypeScript `ReflectionHost` to reflect over `.d.ts` files (which is how external dependencies are represented in the program). Previously, the `NgccReflectionHost`s were used directly in tests. This does not exercise them in the way they are exercised in the actual program, because (when used directly) they will also reflect on `.d.ts` files too (instead of delegating to the TypeScript `ReflectionHost`). This could hide bugs that would happen on the actual program. This commit fixes this by using the `DelegatingReflectionHost` in the various `NgccReflectionHost` tests. NOTE: This change will cause some of the existing tests to start failing. These failures demonstrate pre-existing bugs in ngcc, that were hidden due to the tests' being inconsistent with how the `ReflectionHost`s are used in the actual program. They will be fixed in the next commit. PR Close #36284 | 03 April 2020, 18:08:46 UTC |
0af6e9f | George Kalpakas | 03 April 2020, 13:37:43 UTC | refactor(ngcc): move logic for identifying known declarations to method (#36284) The `NgccReflectionHost`s have logic for detecting certain known declarations (such as `Object.assign()` and TypeScript helpers), which allows the `PartialEvaluator` to evaluate expressions it would not be able to statically evaluate otherwise. This commit moves the logic for identifying these known declarations to dedicated methods. This is in preparation of allowing ngcc's `DelegatingReflectionHost` (introduced in #36089) to also apply the known declaration detection logic when reflecting on TypeScript sources. PR Close #36284 | 03 April 2020, 18:08:46 UTC |
008e12e | Wagner Maciel | 23 March 2020, 19:58:52 UTC | fix(benchpress): fix typings in lview_debug.ts (#36236) * Installing & using benchpress was throwing typescript errors because typings were not defined for the getters in lview_debug.ts PR Close #36236 | 03 April 2020, 18:06:07 UTC |