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.![swh spinner](/static/img/swh-spinner.gif)
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 |
---|---|---|---|---|
7bd9e09 | Alex Rickabaugh | 04 May 2020, 21:48:09 UTC | release: cut the v10.0.0-next.5 release | 04 May 2020, 21:48:09 UTC |
42c58d9 | Issei Horie | 04 May 2020, 02:37:21 UTC | docs(dev-infra): update format commands described in DEVELOPER.md (#36910) This commit updates DEVELOPER.md to describe the latest formatting command 'ng-dev' and removed deprecated 'gulp' command. Fixes #36909 PR Close #36910 | 04 May 2020, 19:51:21 UTC |
b3713a1 | Keen Yee Liau | 01 May 2020, 22:49:10 UTC | test(language-service): Add method to override inline template (#36890) This commit adds a method `overrideInlineTemplate` to the `MockTypescriptHost`. This allows us to override an inline template in a Component without changing the TypeScript parts. This methods works in a similar way as `MockTypescriptHost.override()`, which is used for overriding external template. PR Close #36890 | 04 May 2020, 19:50:47 UTC |
e037840 | Pete Bacon Darwin | 01 May 2020, 14:13:28 UTC | perf(ngcc): speed up the `getBasePaths()` computation (#36881) This function needs to deduplicate the paths that are found from the paths mappings. Previously this deduplication was not linear and also called the expensive `relative()` function many times. This commit, suggested by @JoostK, reduces the complexity of the deduplication by using a tree structure built from the segments of each path. PR Close #36881 | 04 May 2020, 19:50:02 UTC |
ec6b9cc | Pete Bacon Darwin | 01 May 2020, 09:13:30 UTC | perf(ngcc): only compute basePaths in TargetedEntryPointFinder when needed (#36881) Previously the `basePaths` were computed when the finder was instantiated. This was a waste of effort in the case that the targeted entry-point is already processed. This change makes the computation of `basePaths` lazy, so that the work is only done if they are actually needed. Fixes #36874 PR Close #36881 | 04 May 2020, 19:50:02 UTC |
db4c59d | Pete Bacon Darwin | 01 May 2020, 13:33:31 UTC | fix(ngcc): support TS 3.9 wrapped ES2015 classes (#36884) In TS 3.9 the compiler will start to wrap ES2015 classes in an IIFE to help with tree-shaking when the class has "associated" statements. E.g. ```ts let PlatformLocation = /** @class */ (() => { ... class PlatformLocation { } ... return PlatformLocation; })(); ``` This commit updates `Esm2015ReflectionHost` to support this format. PR Close #36884 | 04 May 2020, 19:48:26 UTC |
58ea040 | Keen Yee Liau | 30 April 2020, 22:48:20 UTC | test(language-service): add new mock host for testing ivy (#36879) This commit adds a new mock host for testing the ivy language service. Unlike the existing mock_host which mocks the LanguageServiceHost, the Ivy mock host mocks just the filesystem interface, aka ts.ServerHost. This is because Ivy language service requires an actual Project to perform operations like adding synthetic typecheck files to the project, and by extension, to the ts.Program. These requirements make the existing mock host unsuitable to be reused. This new testing structure also improves test performance, because the old mock host copies (it actually creates symlinks, but still that's relatively expensive due to the sheer number of files involved) all @angular/* packages along with the typescript package to a temporary node_modules directory. This is done every time setup() is called. Instead, this new mock host just loads them from a pre-determined path in Bazel runfiles. PR Close #36879 | 04 May 2020, 19:47:15 UTC |
6046e86 | Joey Perrott | 28 April 2020, 23:02:29 UTC | build: update setup-rbe.sh script to accept non google.com/angular.io (#36846) Previously the setup-rbe.sh script did not allow accounts that did have domains of angular.io or google.com. Since we add emails from other domains into everyone@angular.io, we are unable to be certain in the script that the account is not actually a member of the required group. This change adds the option to choose to continue with an email account logged in which we cannot verify by domain. PR Close #36846 | 04 May 2020, 19:45:48 UTC |
297dab8 | Joey Perrott | 28 April 2020, 19:32:06 UTC | build: migrate bazel related formatting/linting to ng-dev format (#36842) Migrates away from inline searching for files and running buildifier directly, instead using ng-dev for formatting. Additionally, provides a deprecation message for any usages of the previous commands. PR Close #36842 | 04 May 2020, 19:45:00 UTC |
2cb5f59 | Joey Perrott | 24 April 2020, 23:29:53 UTC | feat(dev-infra): run buildifier formatting and linting via ng-dev (#36842) In an effort to centralize formatting and linting enforcement into one location, buildifier is being added as a formatter for ng-dev's format command. Allowing for format enforcement for all .bzl, .bazel, WORKSPACE and BUILD files. PR Close #36842 | 04 May 2020, 19:45:00 UTC |
0f3831b | Joey Perrott | 24 April 2020, 20:48:14 UTC | build: create macro for transpiling javascript file to es5 (#36802) For testing on IE, shims must be served in es5. Because the shims served in these tests come from node_modules and are not part of the angular/angular source code, they must be transpiled to es5 if they are published as es6. This macro allows for a uniform method for running this transpilation during the build process. PR Close #36802 | 04 May 2020, 19:43:50 UTC |
9d9d46f | crisbeto | 02 April 2020, 18:58:03 UTC | fix(core): log error instead of warning for unknown properties and elements (#36399) Changes the Ivy unknown element/property messages from being logged with `console.warn` to `console.error`. This should make them a bit more visible without breaking existing apps. Furthermore, a lot of folks filter out warning messages in the dev tools' console, whereas errors are usually still shown. BREAKING CHANGE: Warnings about unknown elements are now logged as errors. This won't break your app, but it may trip up tools that expect nothing to be logged via `console.error`. Fixes #35699. PR Close #36399 | 04 May 2020, 19:37:42 UTC |
d9c4840 | Martin Sikora | 17 April 2020, 09:48:19 UTC | fix(router): cancel navigation when at least one resolver completes with no "next" emission (#24621) This change aligns behavior for resolvers which return EMPTY. Currently EMPTY resolvers have inconsistent behavior: - One resolver that returns EMPTY => won't navigate and just ends on ResolveStart router event. - Two resolvers where both return EMPTY => throws "Error: Uncaught (in promise): EmptyError: no elements in sequence" - Two resolvers where one returns a value and the other one returns EMPTY => Navigates successfully. With this change any EMPTY resolver will cancel navigation. BREAKING CHANGE: Any resolver which return EMPTY will cancel navigation. If you want to allow the navigation to continue, you will need to update the resolvers to emit some value, (i.e. defaultIfEmpty(...), of(...), etc). PR Close #24195 PR Close #24621 | 04 May 2020, 19:36:49 UTC |
12fcc7c | Keen Yee Liau | 29 April 2020, 23:02:55 UTC | build(language-service): make test project a filegroup (#36865) This commit makes the test project a filegroup so that it could be shared with the Ivy tests. Also removed `project/foo.ts` since it is no longer used. PR Close #36865 | 01 May 2020, 17:02:34 UTC |
95a407d | Keen Yee Liau | 29 April 2020, 22:08:22 UTC | build: Add entry point for Ivy language service (#36864) This commit adds a new entry point for the Ivy version of language service. The entry point is just a shell for now, implementation will be added in subsequent PRs. The Ivy version of language service could be loaded from the NPM package via `require(@angular/language-service/bundles/ivy.umd.js)` PR Close #36864 | 01 May 2020, 17:02:03 UTC |
e9300c9 | Joey Perrott | 20 April 2020, 21:45:34 UTC | build: use @angular/dev-infra-private for bazel stamping (#36844) Migrate to using new common environment stamping script for stamping during bazel build/release tasks. PR Close #36844 | 01 May 2020, 17:00:04 UTC |
df274b4 | Joey Perrott | 20 April 2020, 21:44:25 UTC | feat(dev-infra): create environment stamping script in ng-dev (#36844) Create a common environment stamping script in the ng-dev tooling as to be used in common release tasks. This is the first step in consolidating pieces of the release scripting process into a single location to develop a release tool. PR Close #36844 | 01 May 2020, 17:00:04 UTC |
f8941a5 | Pete Bacon Darwin | 28 April 2020, 15:42:31 UTC | refactor(ngcc): change async locker timeout to 250 secs (#36838) Previously the `AsyncLocker` was configured to only wait 50x500ms before timing out. This is 25secs, which is often less than a normal run of ngcc, so the chance of a timeout flake was quite high. The default is now 500x500ms, which is 250secs. If this is too high for some projects then it can be changed via the `ngcc.config.js` project file. PR Close #36838 | 01 May 2020, 16:52:10 UTC |
38f805c | Pete Bacon Darwin | 28 April 2020, 14:32:05 UTC | feat(ngcc): allow async locking timeouts to be configured (#36838) The commit adds support to the ngcc.config.js file for setting the `retryAttempts` and `retryDelay` options for the `AsyncLocker`. An integration test adds a new check for a timeout and actually uses the ngcc.config.js to reduce the timeout time to prevent the test from taking too long to complete. PR Close #36838 | 01 May 2020, 16:52:10 UTC |
98931bf | Pete Bacon Darwin | 28 April 2020, 13:39:27 UTC | refactor(ngcc): rename `Configuration.getConfig()` (#36838) Strictly this method only returns config for packages. So this commit renames it to `getPackageConfig()`, which frees us up to add other "getXxxxConfig()` methods later. PR Close #36838 | 01 May 2020, 16:52:09 UTC |
9b85b53 | Pete Bacon Darwin | 28 April 2020, 13:35:28 UTC | test(ngcc): remove duplicate test (#36838) This test is basically duplicated (and slightly enhanced) in the following test. So it is superfluous. (I suspect it was the result of a broken rebase.) PR Close #36838 | 01 May 2020, 16:52:09 UTC |
d805526 | Pete Bacon Darwin | 28 April 2020, 11:11:18 UTC | fix(ngcc): provide a unique exit code for timeouts (#36838) When ngcc fails due to a timeout waiting for another process to complete, it was not failing with a unique exit code, so that it was not possible to know if the process can be restarted; compared to ngcc failing for some more fatal reason. Now if ngcc exits because of a timeout, the exit code will be 177. PR Close #36838 | 01 May 2020, 16:52:09 UTC |
ee43576 | Pete Bacon Darwin | 28 April 2020, 14:30:45 UTC | refactor(ngcc): improve locker pausing message (#36838) When ngcc is having to pause and wait for another process it provides a message to the user. This commit adds the extra information about how to remove the lockfile if desired, since this message is not shown if you Ctrl-C out of the process before the timeout period ends. PR Close #36838 | 01 May 2020, 16:52:09 UTC |
35c6ed2 | Aleksander | 15 April 2020, 04:14:32 UTC | docs(di): fix typo in advanced di doc (#36634) PR Close #36634 | 01 May 2020, 16:50:28 UTC |
72f534f | Pete Bacon Darwin | 21 April 2020, 18:58:58 UTC | feat(localize): support merging multiple translation files (#36792) Previously only one translation file per locale could be loaded. Now the user can specify multiple files per locale, and the translations from each of these files will be merged together by message id. The merging is on a first-wins approach. So if to you have three files to be merged: ``` ['a.xlf', 'b.xmb', 'c.json'] ``` Then any message from `a.xlf` will be used rather than a message from `b.xmb` or `c.json` and so on. In practice this means that you should put the files in order of most important first, with "fallback" translations later. PR Close #36792 | 01 May 2020, 16:46:12 UTC |
3cb9b43 | Pete Bacon Darwin | 29 April 2020, 08:10:40 UTC | refactor(localize): hide merging diagnostics messages behind a method (#36792) This commit introduces `Diagnostics.merge(other)` which will take the messages from `other` and append them to the messages of `this`. The translation loader is updated to use this new method. PR Close #36792 | 01 May 2020, 16:46:12 UTC |
bf0c520 | Pete Bacon Darwin | 28 April 2020, 18:33:12 UTC | refactor(localize): simplify adding condition diagnostics (#36792) Previously the `missingTranslation` option had to be checked before calling `warn` or `error` on the `diagnostics` object. Now this boilerplate is hidden inside the `Diagnostics.add()` method, which will open it up to being used for other conditional diagnostics. PR Close #36792 | 01 May 2020, 16:46:11 UTC |
ee35e22 | Maximilian Koeller | 29 April 2020, 14:59:15 UTC | feat(service-worker): use `ignoreVary: true` when retrieving responses from cache (#34663) The Angular ServiceWorker always uses a copy of the request without headers for caching assets (in order to avoid issues with opaque responses). Therefore, it was previously not possible to retrieve resources from the cache if the response contained [Vary](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Vary) headers. In addition to that, `Vary` headers do not work in all browsers (or work differently) and may not work as intended with ServiceWorker caches. See [this article](https://www.smashingmagazine.com/2017/11/understanding-vary-header) and the linked resources for more info. This commit avoids the aforementioned issues by making sure the Angular ServiceWorker always sets the `ignoreVary` option passed to [Cache#match()](https://developer.mozilla.org/en-US/docs/Web/API/Cache/match) to `true`. This allows the ServiceWorker to correctly retrieve cached responses with `Vary` headers, which was previously not possible. Fixes #36638 BREAKING CHANGE: Previously, [Vary](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Vary) headers would be taken into account when retrieving resources from the cache, completely preventing the retrieval of cached assets (due to ServiceWorker implementation details) and leading to unpredictable behavior due to inconsistent/buggy implementations in different browsers. Now, `Vary` headers are ignored when retrieving resources from the ServiceWorker caches, which can result in resources being retrieved even when their headers are different. If your application needs to differentiate its responses based on request headers, please make sure the Angular ServiceWorker is [configured](https://angular.io/guide/service-worker-config) to avoid caching the affected resources. PR Close #34663 | 01 May 2020, 16:44:07 UTC |
dc9f4b9 | Maximilian Koeller | 29 April 2020, 14:07:34 UTC | feat(service-worker): include `CacheQueryOptions` options in ngsw-config (#34663) Previously it was not possible to provide `CacheQueryOptions` ([MDN](https://developer.mozilla.org/en-US/docs/Web/API/Cache)) for querying the Cache. This commit introduces a new parameter called `cacheQueryOptions` for `DataGroup` and `AssetGroup`. Currently only `ignoreSearch` is supported as `ignoreVary` and `ignoreMethod` would require using the complete Request object for matching which is not possible with the current implementation. Closes #28443 PR Close #34663 | 01 May 2020, 16:44:07 UTC |
49be32c | Andrew Scott | 15 April 2020, 01:52:32 UTC | refactor(common): remove WrappedValue from AsyncPipe (#36633) `AsyncPipe` only uses `WrappedValue` when the latest value from the `Promise` or `Observable` is different from the previous one. This is already enough to trigger change detection so the `WrappedValue` is not necessary. Fixes #29927 BREAKING CHANGE: This change could result in ExpressionChangedAfterItHasBeenChecked errors that were not detected before. The error could previously have gone undetected because two WrappedValues are considered "equal" in all cases for the purposes of the check, even if their respective unwrapped values are not. Additionally, `[val]=(observable | async).someProperty` will no longer trigger change detection if the value of `someProperty` is identical to the value in the previous emit. If you need to force change detection, either update the binding to use an object whose reference changes or subscribe to the observable and call markForCheck as needed. PR Close #36633 | 30 April 2020, 18:41:49 UTC |
1786586 | Andrew Scott | 13 January 2020, 23:12:16 UTC | fix(core): Refresh transplanted views at insertion point only (#35968) Only refresh transplanted views at the insertion location in Ivy. Previously, Ivy would check transplanted views at both the insertion and declaration points. This is achieved by adding a marker to the insertion tree when we encounter a transplanted view that needs to be refreshed at its declaration. We use this marker as an extra indication that we still need to descend and refresh those transplanted views at their insertion locations even if the insertion view and/or its parents are not dirty. This change fixes several issues: * Transplanted views refreshed twice if both insertion and declaration are dirty. This could be an error if the insertion component changes result in data not being available to the transplanted view because it is slated to be removed. * CheckAlways transplanted views not refreshed if shielded by non-dirty OnPush (fixes #35400) * Transplanted views still refreshed when insertion tree is detached (fixes #21324) PR Close #35968 | 29 April 2020, 21:31:12 UTC |
45c0941 | George Kalpakas | 29 April 2020, 18:28:29 UTC | refactor(ngcc): move `PathMappings` to separate file to avoid circular dependency (#36626) Now that `ngcc/src/ngcc_options` imports `FileWriter` type, there is a circular dependency detected by the `ts-circular-deps:check` lint check: ``` ngcc/src/ngcc_options.ts → ngcc/src/writing/file_writer.ts → ngcc/src/packages/entry_point_bundle.ts → ngcc/src/ngcc_options.ts ``` This commit moves the `PathMappings` type (and related helpers) to a separate file to avoid the circular dependency. NOTE: The circular dependency was only with taking types into account. There was no circular dependency for the actual (JS) code. PR Close #36626 | 29 April 2020, 21:28:26 UTC |
4779c4b | George Kalpakas | 29 April 2020, 18:28:27 UTC | fix(ngcc): handle `ENOMEM` errors in worker processes (#36626) When running in parallel mode, worker processes forward errors thrown during task processing to the master process, which in turn exits with an error. However, there are cases where the error is not directly related to processing the entry-point. One such case is when there is not enough memory (for example, due to all the other tasks being processed simultaneously). Previously, an `ENOMEM` error thrown on a worker process would propagate to the master process, eventually causing ngcc to exit with an error. Example failure: https://circleci.com/gh/angular/angular/682198 This commit improves handling of these low-memory situations by detecting `ENOMEM` errors and killing the worker process, thus allowing the master process to decide how to handle that. The master process will put the task back into the tasks queue and continue processing tasks with the rest of the worker processes (and thus with lower memory pressure). PR Close #36626 | 29 April 2020, 21:28:26 UTC |
793cb32 | George Kalpakas | 29 April 2020, 18:28:26 UTC | fix(ngcc): give up re-spawing crashed worker process after 3 attempts (#36626) Previously, when the last worker process crashed, the master process would try to re-spawn it indefinitely. This could lead to an infinite loop (if for some reason the worker process kept crashing). This commit avoids this by limiting the number of re-spawn attempts to 3, after which ngcc will exit with an error. PR Close #36626 | 29 April 2020, 21:28:26 UTC |
966598c | George Kalpakas | 29 April 2020, 18:28:22 UTC | fix(ngcc): support recovering when a worker process crashes (#36626) Previously, when running in parallel mode and a worker process crashed while processing a task, it was not possible for ngcc to continue without risking ending up with a corrupted entry-point and therefore it exited with an error. This, for example, could happen when a worker process received a `SIGKILL` signal, which was frequently observed in CI environments. This was probably the result of Docker killing processes due to increased memory pressure. One factor that amplifies the problem under Docker (which is often used in CI) is that it is not possible to distinguish between the available CPU cores on the host machine and the ones made available to Docker containers, thus resulting in ngcc spawning too many worker processes. This commit addresses these issues in the following ways: 1. We take advantage of the fact that files are written to disk only after an entry-point has been fully analyzed/compiled. The master process can now determine whether a worker process has not yet started writing files to disk (even if it was in the middle of processing a task) and just put the task back into the tasks queue if the worker process crashes. 2. The master process keeps track of the transformed files that a worker process will attempt to write to disk. If the worker process crashes while writing files, the master process can revert any changes and put the task back into the tasks queue (without risking corruption). 3. When a worker process crashes while processing a task (which can be a result of increased memory pressure or too many worker processes), the master process will not try to re-spawn it. This way the number or worker processes is gradually adjusted to a level that can be accomodated by the system's resources. Examples of ngcc being able to recover after a worker process crashed: - While idling: https://circleci.com/gh/angular/angular/682197 - While compiling: https://circleci.com/gh/angular/angular/682209 - While writing files: https://circleci.com/gh/angular/angular/682267 Jira issue: [FW-2008](https://angular-team.atlassian.net/browse/FW-2008) Fixes #36278 PR Close #36626 | 29 April 2020, 21:28:26 UTC |
772ccf0 | George Kalpakas | 29 April 2020, 18:28:17 UTC | feat(ngcc): support reverting a file written by `FileWriter` (#36626) This commit adds a `revertFile()` method to `FileWriter`, which can revert a transformed file (and its backup - if any) written by the `FileWriter`. In a subsequent commit, this will be used to allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 | 29 April 2020, 21:28:26 UTC |
ff6e931 | George Kalpakas | 29 April 2020, 18:28:16 UTC | refactor(ngcc): keep track of transformed files per task (#36626) With this commit, the master process will keep track of the transformed files that each worker process is intending to write to disk. In a subsequent commit, this info will be used to allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 | 29 April 2020, 21:28:26 UTC |
dff5129 | George Kalpakas | 29 April 2020, 18:28:13 UTC | refactor(ngcc): notify master process about transformed files before writing (#36626) With this commit, worker processes will notify the master process about the transformed files they are about to write to disk before starting writing them. In a subsequent commit, this will be used to allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 | 29 April 2020, 21:28:26 UTC |
e367593 | George Kalpakas | 29 April 2020, 18:28:11 UTC | refactor(ngcc): support running callback before writing transformed files (#36626) This commit enhances the `CompileFn`, which is used to process each entry-point, to support running a passed-in callback (and wait for it to complete) before proceeding with writing the transformed files to disk. This functionality is currently not used. In a subsequent commit, it will be used for passing info from worker processes to the master process that will allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 | 29 April 2020, 21:28:26 UTC |
16039d8 | George Kalpakas | 29 April 2020, 18:28:09 UTC | refactor(ngcc): rename `TaskQueue#markTaskCompleted()` to `markAsCompleted()` (#36626) Rename the `markTaskCompleted()` method to be consistent with the other similar methods of `TaskQueue` (`markAsFailed()` and `markAsUnprocessed()`). PR Close #36626 | 29 April 2020, 21:28:26 UTC |
4665c35 | George Kalpakas | 29 April 2020, 18:28:06 UTC | feat(ngcc): support marking an in-progress task as unprocessed (#36626) This commit adds support for stopping processing an in-progress task and moving it back to the list of pending tasks. In a subsequent commit, this will be used to allow ngcc to recover when a worker process crashes in the middle of processing a task. PR Close #36626 | 29 April 2020, 21:28:25 UTC |
4c63241 | George Kalpakas | 29 April 2020, 18:28:03 UTC | fix(ngcc): do not run in parallel mode if there are less than 3 CPU cores (#36626) Previously, ngcc would run in parallel mode (using the `ClusterExecutor`) when there were at least 2 CPU cores (and all other requirements where met). On systems with just 2 CPU cores, this meant there would only be one worker process (since one CPU core is always reserved for the master process). In these cases, the tasks would still be processed serially (on the one worker process), but we would also pay the overhead of communicating between the master and worker processes. This commit fixes this by only running in parallel mode if there are more than 2 CPU cores (i.e. at least 2 worker processes). PR Close #36626 | 29 April 2020, 21:28:25 UTC |
9aa778e | George Kalpakas | 29 April 2020, 18:28:02 UTC | refactor(ngcc): move "Compiling" log message before starting work on a task (#36626) Previously, the "Compiling <entryPoint>" log message was printed before starting to analyze and transform files, but after creating the `EntryPointBundle` (which includes creating the TS program). Since creating the `EntryPointBundle` involves some work, it is more accurate to move the log message before creating the bundle. PR Close #36626 | 29 April 2020, 21:28:25 UTC |
62ba0ac | Keen Yee Liau | 28 April 2020, 21:56:56 UTC | test(language-service): do not invalidate @angular/core (#36845) Fix typo and add test cases for https://github.com/angular/angular/pull/36783 PR closes https://github.com/angular/vscode-ng-language-service/issues/713 PR Close #36845 | 29 April 2020, 21:27:33 UTC |
52d2e46 | Andrew Kushnir | 29 April 2020, 21:07:45 UTC | release: cut the v10.0.0-next.4 release | 29 April 2020, 21:07:45 UTC |
c89421b | Andrew Kushnir | 29 April 2020, 20:59:31 UTC | docs: release notes for the v9.1.4 release | 29 April 2020, 20:59:31 UTC |
cebd4fa | Joey Perrott | 29 April 2020, 19:40:52 UTC | build: use sh instead of exec for release scripts (#36862) Previously the exec command was used, however the exec command would exit the original calling script regardless of the whether exit was called. This caused the release script to always exit after the pre-check phase. PR Close #36862 | 29 April 2020, 20:04:43 UTC |
3d82aa7 | crisbeto | 20 April 2020, 18:49:08 UTC | fix(core): attempt to recover from user errors during creation (#36381) If there's an error during the first creation pass of a `TView`, the data structure may be corrupted which will cause framework assertion failures downstream which can mask the user's error. These changes add a new flag to the `TView` that indicates whether the first creation pass was successful, and if it wasn't we try re-create the `TView`. Fixes #31221. PR Close #36381 | 29 April 2020, 15:36:42 UTC |
89c5890 | JoostK | 09 April 2020, 22:35:40 UTC | fix(ngcc): recognize enum declarations emitted in JavaScript (#36550) An enum declaration in TypeScript code will be emitted into JavaScript as a regular variable declaration, with the enum members being declared inside an IIFE. For ngcc to support interpreting such variable declarations as enum declarations with its members, ngcc needs to recognize the enum declaration emit structure and extract all member from the statements in the IIFE. This commit extends the `ConcreteDeclaration` structure in the `ReflectionHost` abstraction to be able to capture the enum members on a variable declaration, as a substitute for the original `ts.EnumDeclaration` as it existed in TypeScript code. The static interpreter has been extended to handle the extracted enum members as it would have done for `ts.EnumDeclaration`. Fixes #35584 Resolves FW-2069 PR Close #36550 | 28 April 2020, 22:59:57 UTC |
a6a7e1b | crisbeto | 24 April 2020, 17:44:30 UTC | build: enable platform-browser tests on Saucelabs (#36797) Enables some passing `platform-browser` tests on Saucelabs. The reason they were disabled was an error log which doesn't actually fail the test run and has been there for a long time. PR Close #36797 | 28 April 2020, 22:10:27 UTC |
70dd27f | Pete Bacon Darwin | 26 April 2020, 17:15:43 UTC | fix(compiler): normalize line endings in ICU expansions (#36741) The html parser already normalizes line endings (converting `\r\n` to `\n`) for most text in templates but it was missing the expressions of ICU expansions. In ViewEngine backticked literal strings, used to define inline templates, were already normalized by the TypeScript parser. In Ivy we are parsing the raw text of the source file directly so the line endings need to be manually normalized. This change ensures that inline templates have the line endings of ICU expression normalized correctly, which matches the ViewEngine. In ViewEngine external templates, defined in HTML files, the behavior was different, since TypeScript was not normalizing the line endings. Specifically, ICU expansion "expressions" are not being normalized. This is a problem because it means that i18n message ids can be different on different machines that are setup with different line ending handling, or if the developer moves a template from inline to external or vice versa. The goal is always to normalize line endings, whether inline or external. But this would be a breaking change since it would change i18n message ids that have been previously computed. Therefore this commit aligns the ivy template parsing to have the same "buggy" behavior for external templates. There is now a compiler option `i18nNormalizeLineEndingsInICUs`, which if set to `true` will ensure the correct non-buggy behavior. For the time being this option defaults to `false` to ensure backward compatibility while allowing opt-in to the desired behavior. This option's default will be flipped in a future breaking change release. Further, when this option is set to `false`, any ICU expression tokens, which have not been normalized, are added to the `ParseResult` from the `HtmlParser.parse()` method. In the future, this collection of tokens could be used to diagnose and encourage developers to migrate their i18n message ids. See FW-2106. Closes #36725 PR Close #36741 | 28 April 2020, 19:22:40 UTC |
7bc5bcd | Pete Bacon Darwin | 27 April 2020, 11:20:17 UTC | test(compiler): check extracted translations for line endings (#36741) When there are `CRLF` line endings some translations get different message ids. This commit adds tests to track this in ViewEngine. PR Close #36741 | 28 April 2020, 19:22:40 UTC |
aa0dd0d | Pete Bacon Darwin | 27 April 2020, 11:18:53 UTC | test(compiler): fix unwanted `!` operators (#36741) The `I18nComponent` was using `!` for some of its properties because it had not initialized them. This is now resolved by explictly marking them as optional. PR Close #36741 | 28 April 2020, 19:22:40 UTC |
e0aa399 | Pete Bacon Darwin | 26 April 2020, 17:15:43 UTC | refactor(compiler): simplify tokenizer and parser results (#36741) Move the creation of the results objects into the wrapper functions. This makes it easier to reason about what the parser and lexer classes are responsible for - you create a new object for each tokenization or parsing activity and they hold the state of the activity. PR Close #36741 | 28 April 2020, 19:22:39 UTC |
4172707 | Pete Bacon Darwin | 26 April 2020, 17:15:43 UTC | refactor(compiler): tighten type of `TemplateParser._console` (#36741) This property can actually be `null` when called from the language-service. This change allows us to remove the use of `!` to subvert the type system. PR Close #36741 | 28 April 2020, 19:22:39 UTC |
7c8c413 | George Kalpakas | 28 April 2020, 13:36:51 UTC | build(docs-infra): upgrade cli command docs sources to c1cf42fd4 (#36832) Updating [angular#master](https://github.com/angular/angular/tree/master) from [cli-builds#master](https://github.com/angular/cli-builds/tree/master). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/9459c8519...c1cf42fd4): **Modified** - help/build.json - help/serve.json - help/test.json PR Close #36832 | 28 April 2020, 18:52:52 UTC |
1d9375d | Joey Perrott | 27 April 2020, 23:35:38 UTC | ci: fix bad reference to `head` property in rebase-pr script (#36825) Update rebase-pr script to properly reference a property on the refs object using `target` rather than the previously named `head`. PR Close #36825 | 28 April 2020, 16:13:35 UTC |
f27deea | Andrew Kushnir | 19 February 2020, 01:49:37 UTC | fix(core): handle synthetic props in Directive host bindings correctly (#35568) Prior to this change, animations-related runtime logic assumed that the @HostBinding and @HostListener with synthetic (animations) props are used for Components only. However having @HostBinding and @HostListener with synthetic props on Directives is also supported by View Engine. This commit updates the logic to select correct renderer to execute instructions (current renderer for Directives and sub-component renderer for Components). This PR resolves #35501. PR Close #35568 | 27 April 2020, 21:55:16 UTC |
00e6cb1 | Andrew Scott | 13 April 2020, 17:50:44 UTC | feat(router): allow CanLoad guard to return UrlTree (#36610) A CanLoad guard returning UrlTree cancels current navigation and redirects. This matches the behavior available to `CanActivate` guards added in #26521. Note that this does not affect preloading. A `CanLoad` guard blocks any preloading. That is, any route with a `CanLoad` guard is not preloaded and the guards are not executed as part of preloading. fixes #28306 PR Close #36610 | 27 April 2020, 19:53:49 UTC |
cae2a89 | Grant Fleming | 24 April 2020, 08:26:40 UTC | docs: fix typo (#36786) Correct typo in the router docs, changing "as your app growns" to "as your app grows". Previously the wrong spelling was used and this commit rectifies this. PR Close #36786 | 27 April 2020, 19:50:42 UTC |
b34fb04 | George Kalpakas | 25 April 2020, 13:35:22 UTC | build(docs-infra): upgrade cli command docs sources to 9459c8519 (#36808) Updating [angular#master](https://github.com/angular/angular/tree/master) from [cli-builds#master](https://github.com/angular/cli-builds/tree/master). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/730657c86...9459c8519): **Modified** - help/analytics.json PR Close #36808 | 27 April 2020, 19:11:18 UTC |
2365bb8 | Joey Perrott | 20 April 2020, 20:04:08 UTC | build: migrate from gulp to ng-dev for running formatting (#36726) Migrates away from gulp to ng-dev for running our formatter. Additionally, provides a deprecation warning for any attempted usage of the previous `gulp format:*` tasks. PR Close #36726 | 24 April 2020, 19:32:18 UTC |
7b5a0ba | Joey Perrott | 20 April 2020, 20:00:10 UTC | feat(dev-infra): create format tool in @angular/dev-infra-private (#36726) Previously we used gulp to run our formatter, currently clang-format, across our repository. This new tool within ng-dev allows us to migrate away from our gulp based solution as our gulp solution had issue with memory pressure and would cause OOM errors with too large of change sets. PR Close #36726 | 24 April 2020, 19:32:18 UTC |
ad8c4cd | Wagner Maciel | 24 April 2020, 17:26:36 UTC | revert: "feat(dev-infra): exposed new rule 'component_benchmark' via dev_infra (#36434)" (#36798) This reverts commit b7f2a033df47080084e73340f25286c8ec1a419a. PR Close #36798 | 24 April 2020, 18:03:38 UTC |
f5ff206 | Wagner Maciel | 24 April 2020, 17:26:32 UTC | revert: "build(dev-infra): update package.json and :npm_package (#36434)" (#36798) This reverts commit d6f6cd0cb17efceacf1da7bf814865bd0608d4c5. PR Close #36798 | 24 April 2020, 18:03:37 UTC |
90a2796 | Wagner Maciel | 24 April 2020, 17:26:24 UTC | revert: "build(core): use dev-infra's component_benchmark to show PoC (#36434)" (#36798) This reverts commit e6161ca307be01eb1142092b53cbd7ddbd33312a. PR Close #36798 | 24 April 2020, 18:03:37 UTC |
76190c7 | Joey Perrott | 06 April 2020, 16:42:02 UTC | ci: migrate payload size tracking goldens to the golden directory (#36455) This change is part of a larger effort to migrate all golden type tracking files to a single location. Additionally, this makes it a bit easier to manage file ownership in pullapprove. PR Close #36455 | 24 April 2020, 16:05:11 UTC |
dd049ca | ivanwonder | 24 April 2020, 02:45:31 UTC | fix(language-service): disable update the `@angular/core` module (#36783) After the user edits the file `core.d.ts`, the symbol from the core module will be invalided, which only is created when init the language service. Then the language-service will crash. PR Close #36783 | 24 April 2020, 16:04:25 UTC |
bcd31cb | George Kalpakas | 24 April 2020, 13:34:29 UTC | build(docs-infra): upgrade cli command docs sources to 730657c86 (#36790) Updating [angular#master](https://github.com/angular/angular/tree/master) from [cli-builds#master](https://github.com/angular/cli-builds/tree/master). ## Relevant changes in [commit range](https://github.com/angular/cli-builds/compare/56c648827...730657c86): **Modified** - help/build.json - help/generate.json PR Close #36790 | 24 April 2020, 16:03:56 UTC |
e6161ca | Wagner Maciel | 22 April 2020, 16:57:30 UTC | build(core): use dev-infra's component_benchmark to show PoC (#36434) This change demonstrates how to use the newly created rule in one of our performance tests. Future commits and PRs will migrate the remaining tests to this new bazel rule. PR Close #36434 | 23 April 2020, 20:31:53 UTC |
d6f6cd0 | Wagner Maciel | 22 April 2020, 16:56:40 UTC | build(dev-infra): update package.json and :npm_package (#36434) * Set up dev-infra's :npm_package to also contain benchmarking suite * Add benchmarking deps to dev-infra's package.json * Add a bazel workspace to dev-infra's package.json. This is so that when a project wants to use dev-infra's code and macros, they can just import the macros from their node_modules instead of loading it separately PR Close #36434 | 23 April 2020, 20:31:53 UTC |
b7f2a03 | Wagner Maciel | 22 April 2020, 16:41:04 UTC | feat(dev-infra): exposed new rule 'component_benchmark' via dev_infra (#36434) * Move tools/brotli-cli, tools/browsers, tools/components, tools/ng_rollup_bundle, and modules/e2e_util to dev-infra/benchmarking * Fix imports and references to moved folders and files * Set up BUILD.bazel files for moved folders so they can be packaged with dev-infra's :npm_package PR Close #36434 | 23 April 2020, 20:31:53 UTC |
e37f266 | Joey Perrott | 06 April 2020, 20:18:59 UTC | build: require a commit body in commit messages (#36632) Enforces a requirement that all PR commit messages contain a body of at least 100 characters. This is meant to encourage commits within the repo to be more descriptive of each change. PR Close #36632 | 23 April 2020, 19:18:56 UTC |
5e579c4 | Joey Perrott | 14 April 2020, 22:25:05 UTC | fix(dev-infra): properly handle multiline regex of commit body (#36632) Previously, the commit message body regex only matched the first line of the body. This change corrects the regex to match the entire line. PR Close #36632 | 23 April 2020, 19:18:56 UTC |
f0ec4ae | Paul Gschwendtner | 16 April 2020, 21:18:16 UTC | ci: fix pullapprove incorrectly skipping fw-compiler as owner (#36661) Currently, if changes are made to `compiler-cli/ngcc` and to other compiler-related files, then only the `fw-ngcc` group is requested for review. This is because the `not contains_any_globs` condition will be false for `fw-compiler` and the group will never become active. We fix this by removing the incorrect condition and filtering out ngcc files before checking `contains_any_globs` in the primary fw-compiler condition. PR Close #36661 | 23 April 2020, 19:17:10 UTC |
b80b43d | Paul Gschwendtner | 16 April 2020, 21:27:33 UTC | ci: add codeowner group for migrations (#36661) Adds a new codeowner group that is dedicated for changes to the migrations stored in `packages/core/schematics`. PR Close #36661 | 23 April 2020, 19:17:10 UTC |
f0c570b | Paul Gschwendtner | 16 April 2020, 18:12:25 UTC | feat(dev-infra): pullapprove verify should handle `files` in conditions (#36661) Currently, when verifying our pullapprove configuration, we don't respect modifications to the set of files in a condition. e.g. It's not possible to do the following: ``` contains_any_globs(files.exclude(...), [ ``` This prevents us from having codeowner groups which match a directory, but want to filter out specific sub directories. For example, `fw-core` matches all files in the core package. We want to exclude the schematics from that glob. Usually we do this by another exclude condition. This has a *significant* downside though. It means that fw-core will not be requested if a PR changes schematic code, _and_ actual fw-core code. To support these conditions, the pullapprove verification tool is refactored, so that it no longer uses Regular expressions for parsing, but rather evaluates the code through a dynamic function. This is possible since the conditions are written in simple Python that can be run in NodeJS too (with small modifications/transformations). PR Close #36661 | 23 April 2020, 19:17:10 UTC |
e5d2853 | Santosh Yadav | 22 April 2020, 07:57:01 UTC | docs: correct ngSwitch definition (#35489) PR Close #35489 | 23 April 2020, 19:13:39 UTC |
152293d | Andrew Scott | 21 April 2020, 16:59:39 UTC | test(router): fix router test failing on IE (#36742) This was originally fixed in #35976, but one of the window.scrollY assertions was missed. Also updated tests to use toBeGreater/LessThan to improve failure messages. PR Close #36742 | 23 April 2020, 16:13:27 UTC |
ceb61d1 | Andrew Scott | 17 April 2020, 23:12:24 UTC | test(router): add canDeactivate test for forChild route (#36699) This PR adds test case to cover a failure that was detected after merging #36302. That commit will be reverted and will need a new PR that does not cause this test to fail. PR Close #36699 | 23 April 2020, 16:08:44 UTC |
dd806b0 | Annie Wang | 13 April 2020, 22:11:52 UTC | docs: add Annie Wang to contributors.json (#36612) PR Close #36612 | 23 April 2020, 16:08:09 UTC |
113c75d | Pete Bacon Darwin | 20 April 2020, 12:46:49 UTC | refactor(localize): remove unused code (#36745) PR Close #36745 | 23 April 2020, 16:07:33 UTC |
b7acf07 | Pete Bacon Darwin | 20 April 2020, 10:53:31 UTC | refactor(localize): consolidate message/translation metadata (#36745) PR Close #36745 | 23 April 2020, 16:07:33 UTC |
519f2ba | Pete Bacon Darwin | 20 April 2020, 09:32:53 UTC | test(localize): tidy up translation parser tests (#36745) There was a lot of duplication and multiline backtick strings that made it hard to maintain. PR Close #36745 | 23 April 2020, 16:07:33 UTC |
3962908 | Pete Bacon Darwin | 19 April 2020, 16:42:37 UTC | refactor(localize): tighten up recognition of simple JSON translations (#36745) PR Close #36745 | 23 April 2020, 16:07:33 UTC |
afd2cbc | Pete Bacon Darwin | 18 November 2019, 10:49:39 UTC | refactor(localize): move `source_file_utils.ts` up (#36745) This will allow the utilities in this file to be shared outside `translate` code. PR Close #36745 | 23 April 2020, 16:07:33 UTC |
4275b34 | Andrew Kushnir | 21 April 2020, 18:47:52 UTC | build: add AndrewKushnir to the `fw-testing` group (#36744) This commit update the PullApprove config to add AndrewKushnir to the `fw-testing` group. The reason for this change is that I was involved into TestBed rewrite (for Ivy) and it belongs to the `fw-testing` group ownership. PR Close #36744 | 22 April 2020, 21:12:10 UTC |
1b3ee17 | Joey Perrott | 14 April 2020, 20:37:54 UTC | build: move circular deps golden to a subfolder (#36630) Moves the circular deps golden for packages into a subfolder of goldens, `/goldens/circular-deps/` to more easily target the files for ownership. PR Close #36630 | 22 April 2020, 21:11:20 UTC |
8306da5 | Joey Perrott | 06 April 2020, 19:02:21 UTC | release(benchpress): bump version of benchpress to 0.2.0 (#36457) Bumping the version of benchpress as a new version needs to be released as part of the effort to set up more benchmarking accross the angular/angular and angular/components repos. PR Close #36457 | 22 April 2020, 21:10:28 UTC |
75dff8a | Judy Bogart | 18 February 2020, 18:14:48 UTC | docs: improve startup nav, naming, and terminology (#35533) PR Close #35533 | 22 April 2020, 21:08:29 UTC |
fc1b557 | Joey Perrott | 08 April 2020, 19:19:05 UTC | build: run pre-check before publishing (#36527) Previously, our process included running the pre-check script before releasing. With our new publishing process this was dropped. This change adds in automatically executing this check before publish for both next and latest PR Close #36527 | 22 April 2020, 21:07:49 UTC |
47f9867 | Pete Bacon Darwin | 22 April 2020, 14:28:04 UTC | fix(localize): include legacy ids when describing messages (#36761) Previously, we only displayed the new `$localize` id, which is not currently what most people have in their translation files. Until people migrate to the new message id system it is confusing not to display the legacy ids. PR Close #36761 | 22 April 2020, 20:31:47 UTC |
781f561 | Joey Perrott | 20 April 2020, 21:55:10 UTC | build: update to @bazel/bazelisk@^1.4.0 (#36729) Upgrading @bazel/bazelisk to version 1.4.0 as this introduces the bazel binary. This prevents the need to have a `bazel` script defined in package.json to point to `bazelisk`, instead it is just available on install. PR Close #36729 | 22 April 2020, 20:31:17 UTC |
deea6da | Matias Niemelä | 22 April 2020, 18:59:44 UTC | release: cut the v10.0.0-next.3 release | 22 April 2020, 18:59:44 UTC |
43622d3 | Matias Niemelä | 22 April 2020, 18:56:11 UTC | docs: release notes for the v9.1.3 release | 22 April 2020, 18:56:11 UTC |
5db8d93 | Andrew Kushnir | 21 April 2020, 21:22:52 UTC | build: fix the compare master and patch script output (#36749) Currently the commit message and corresponding version are flipped, which makes it hard to review the changes. This commit updates the script to properly recognize the order of arguments. PR Close #36749 | 22 April 2020, 04:23:57 UTC |
535c249 | Andrew Kushnir | 21 April 2020, 22:14:17 UTC | build: update `REQUIRED_BASE_SHA` in merge script to `commit-message` script update commit (#36750) Updating `REQUIRED_BASE_SHA` for master and patch branches to make sure PRs that we merge are rebased after `commit-message` validation script update (to make sure the `lint` CI job fails in case a PR contains commits with invalid commit messages). PR Close #36750 | 22 April 2020, 01:58:23 UTC |
942b986 | Andrew Kushnir | 15 April 2020, 22:25:22 UTC | fix(core): properly identify modules affected by overrides in TestBed (#36649) When module overrides (via `TestBed.overrideModule`) are present, it might affect all modules that import (even transitively) an overridden one. For all affected modules we need to recalculate their scopes for a given test run and restore original scopes at the end. Prior to this change, we were recalculating module scopes only for components that are used in a test, without taking into account module hierarchy. This commit updates Ivy TestBed logic to calculate all potentially affected modules are reset cached scopes information for them (so that scopes are recalculated as needed). Resolves #36619. PR Close #36649 | 22 April 2020, 01:57:48 UTC |
acf6075 | Andrew Kushnir | 06 April 2020, 01:35:37 UTC | fix(core): do not use unbound attributes as inputs to structural directives (#36441) Prior to this commit unbound attributes were treated as possible inputs to structural directives. Since structural directives can only accepts inputs defined using microsyntax expression (e.g. `<div *dir="exp">`), such unbound attributes should not be considered as inputs. This commit aligns Ivy and View Engine behavior and avoids using unbound attributes as inputs to structural directives. PR Close #36441 | 21 April 2020, 17:30:25 UTC |
28995db | Paul Gschwendtner | 06 April 2020, 13:04:48 UTC | fix(core): missing-injectable migration should not migrate `@NgModule` classes (#36369) Based on the migration guide, provided classes which don't have either `@Injectable`, `@Directive`, `@Component` or `@Pipe` need to be migrated. This is not correct as provided classes with an `@NgModule` also have a factory function that can be read by the r3 injector. It's unclear in which cases the `@NgModule` decorator is used for provided classes, but this scenario has been reported. Either we fix this in the migration, or we make sure to report this as unsupported in the Ivy compiler. Fixes #35700. PR Close #36369 | 21 April 2020, 16:54:24 UTC |