Skip to content

Commit 6d13473

Browse files
mgechevmhevery
authored andcommitted
docs: update the roadmap with our priorities at Q4 (angular#39635)
PR Close angular#39635
1 parent 8a03e3e commit 6d13473

File tree

1 file changed

+42
-34
lines changed

1 file changed

+42
-34
lines changed

aio/content/guide/roadmap.md

+42-34
Original file line numberDiff line numberDiff line change
@@ -6,88 +6,96 @@ The projects below are not associated with a particular Angular version. We'll r
66

77
## In Progress
88

9-
### Operation Bye Bye Backlog (aka Operation Byelog)
9+
### Faster apps by inlining critical styles in Universal applications
1010

11-
We are actively investing up to 50% of our engineering capacity on triaging issues and PRs until we have a clear understanding of broader community needs. After that, we'll commit up to 20% of our engineering capacity to keep up with new submissions promptly.
11+
Loading external stylesheets is a blocking operation, which means that the browser can’t start rendering your application until it loads all the referenced CSS. Having render-blocking resources in the header of a page can significantly impact its load performance, for example, its [first contentful paint](https://web.dev/first-contentful-paint/). To make apps faster, we’ve been collaborating with the Google Chrome team on inlining critical CSS and loading the rest of the styles asynchronously.
1212

13-
### Support TypeScript 4.0
13+
### Improve debugging with better Angular error messages
1414

15-
We're working on adding support for TypeScript 4.0 ahead of its stable release. We always want Angular to stay up-to-date with the latest version of TypeScript so that developers get the best the language has to offer.
15+
Error messages often bring limited actionable information to help developers resolve them. We’ve been working on making error messages more discoverable by adding associated codes, developing guides, and other materials to ensure a smoother debugging experience.
16+
17+
### Revamp performance dashboards to detect regressions
18+
19+
We have a set of benchmarks that we run against every code change to ensure Angular aligns with our performance standards. To ensure the framework’s runtime does not regress after a code change, we need to refine some of the existing infrastructure the dashboards step on.
1620

1721
### Update our e2e testing strategy
1822

1923
To ensure we provide a future-proof e2e testing strategy, we want to evaluate the state of Protractor, community innovations, e2e best practices, and explore novel opportunities.
2024

2125
### Angular libraries use Ivy
2226

23-
We are investing in the design and development of Ivy library distribution plan, which will include an update of the library package format to use Ivy compilation, unblock the deprecation of the View Engine library format, and [ngcc](guide/glossary#ngcc).
27+
Earlier in 2020, we shared an [RFC](https://github.com/angular/angular/issues/38366) for Ivy library distribution. After invaluable feedback from the community, we developed a design of the project. We are now investing in the development of Ivy library distribution, including an update of the library package format to use Ivy compilation, unblock the deprecation of the View Engine library format, and [ngcc](https://angular.io/guide/glossary#ngcc).
2428

25-
### Evaluate future RxJS changes (v7 and beyond)
29+
### Ensure smooth adoption for future RxJS changes (v7 and beyond)
2630

2731
We want to ensure Angular developers are taking advantage of the latest capabilities of RxJS and have a smooth transition to the next major releases of the framework. For this purpose, we will explore and document the scope of the changes in v7 and beyond of RxJS and plan an update strategy.
2832

29-
### Angular language service uses Ivy
30-
31-
Today the language service still uses the View Engine compiler and type checking, even for Ivy applications. We want to use the Ivy template parser and improved type checking for the Angular Language service to match application behavior. This migration will also be a step towards unblocking the removal of View Engine, which will simplify Angular, reduce the npm package size, and improve the framework's maintainability.
33+
### Transition the Angular language service to Ivy
3234

33-
### Expand component harnesses best practices
35+
The goal of this project is to improve the experience and remove legacy dependency by transitioning the language service to Ivy. Today the language service still uses the View Engine compiler and type checking, even for Ivy applications. We want to use the Ivy template parser and improved type checking for the Angular Language service to match application behavior. This migration will also be a step towards unblocking the removal of View Engine, which will simplify Angular, reduce the npm package size, and improve the framework's maintainability.
3436

35-
Angular CDK introduced the concept of [component test harnesses](https://material.angular.io/cdk/test-harnesses) to Angular in version 9. Test harnesses allow component authors to create supported APIs for testing component interactions. We're continuing to improve this harness infrastructure and clarifying the best practices around using harnesses. We're also working to drive more harness adoption inside of Google.
36-
37-
### Support native [Trusted Types](https://web.dev/trusted-types/) in Angular
37+
### Increased security with native [Trusted Types](https://web.dev/trusted-types/) in Angular
3838

3939
In collaboration with Google's security team, we're adding support for the new Trusted Types API. This web platform API will help developers build more secure web applications.
4040

41-
### Integrate [MDC Web](https://material.io/develop/web/) into Angular Material
41+
### Enhanced Angular Material components by integrating [MDC Web](https://material.io/develop/web/)
4242

43-
MDC Web is a library created by Google's Material Design team that provides reusable primitives for building Material Design components. The Angular team is incorporating these primitives into Angular Material. Using MDC Web will align Angular Material more closely with the Material Design specification, expand accessibility, overall improve component quality, and improve our team's velocity.
43+
MDC Web is a library created by Google's Material Design team that provides reusable primitives for building Material Design components. The Angular team is incorporating these primitives into Angular Material. Using MDC Web will align Angular Material more closely with the Material Design specification, expand accessibility, improve component quality, and improve our team's velocity.
4444

4545
### Offer Google engineers better integration with Angular and Google's internal server stack
4646

4747
This is an internal project to add support for Angular front-ends to Google's internal integrated server stack.
4848

49-
### Angular versioning & branching
49+
### Streamline releases with consolidated Angular versioning & branching
5050

5151
We want to consolidate release management tooling between Angular's multiple GitHub repositories ([angular/angular](https://github.com/angular/angular), [angular/angular-cli](https://github.com/angular/angular-cli), and [angular/components](https://github.com/angular/components)). This effort will allow us to reuse infrastructure, unify and simplify processes, and improve our release process's reliability.
5252

53-
## Future
53+
### Optimized build speed and bundle sizes with Angular CLI webpack 5
5454

55-
### Refresh introductory documentation
55+
As part of the v11 release, we introduced an opt-in preview of webpack 5 in the Angular CLI. To ensure stability, we’ll continue iterating on the implementation to enable build speed and bundle size improvements.
5656

57-
We will redefine the user learning journeys and refresh the introductory documentation. We will clearly state the benefits of Angular, how to explore its capabilities, and provide guidance so developers can become proficient with the framework in as little time as possible.
57+
### Higher developer consistency with commit message standardization
5858

59-
### Strict typing for `@angular/forms`
59+
We want to unify commit message requirements and conformance across Angular repositories ([angular/angular](https://github.com/angular/angular), [angular/components](https://github.com/angular/components), [angular/angular-cli](https://github.com/angular/angular-cli)) to bring consistency to our development process and reuse infrastructure tooling.
6060

61-
We will work on implementing stricter type checking for reactive forms. This way, we will allow developers to catch more issues during development time, enable better text editor and IDE support, and improve the type checking for reactive forms.
61+
### Accelerated debugging and performance profiling with Angular DevTools
6262

63-
### webpack 5 in the Angular CLI
63+
We are working on development tooling for Angular that will provide utilities for debugging and performance profiling. This project aims to help developers understand the component structure and the change detection in an Angular application.
6464

65-
Webpack 5 brings a lot of build speed and bundle size improvements. To make them available for Angular developers, we will invest in migrating Angular CLI from using deprecated and removed webpack APIs.
65+
### Improved developer onboarding with refreshed introductory documentation
6666

67-
### Commit message standardization
67+
We will redefine the user learning journeys and refresh the introductory documentation. We will clearly state the benefits of Angular, how to explore its capabilities and provide guidance so developers can become proficient with the framework in as little time as possible.
6868

69-
We want to unify commit message requirements and conformance across Angular repositories ([angular/angular](https://github.com/angular/angular), [angular/components](https://github.com/angular/components), [angular/angular-cli](https://github.com/angular/angular-cli)) to bring consistency to our development process and reuse infrastructure tooling.
69+
## Future
7070

71-
### Optional Zone.js
71+
### Better developer ergonomics with strict typing for `@angular/forms`
72+
73+
We will work on implementing stricter type checking for reactive forms. This way, we will allow developers to catch more issues during development time, enable better text editor and IDE support, and improve the type checking for reactive forms.
74+
75+
### Leverage full framework capabilities with Zone.js opt-out
7276

7377
We are going to design and implement a plan to make Zone.js optional from Angular applications. This way, we will simplify the framework, improve debugging, and reduce application bundle size. Additionally, this will allow us to take advantage of native async/await syntax, which currently Zone.js does not support.
7478

75-
### Remove legacy [View Engine](guide/ivy)
79+
### Reduce framework overhead by removing legacy [View Engine](https://angular.io/guide/ivy)
7680

7781
After the transition of all our internal tooling to Ivy has completed, we want to remove the legacy View Engine for smaller Angular conceptual overhead, smaller package size, lower maintenance cost, and lower complexity of the codebase.
7882

79-
### Angular DevTools
83+
### Improved test times and debugging with automatic test environment tear down
84+
85+
To improve test time and create better isolation across tests, we want to change `TestBed` to automatically clean up and tear down the test environment after each test run.
86+
87+
### Improved build performance with ngc as a tsc plugin distribution
8088

81-
We’ll be working on development tooling for Angular that will provide utilities for debugging and performance profiling. This project aims to help developers understand the component structure and the change detection in an Angular application.
89+
Distributing the Angular compiler as a plugin of the TypeScript compiler will substantially improve developers' build performance and reduce maintenance costs.
8290

83-
### Optional NgModules
91+
### Support adding directives to host elements
92+
93+
A long-standing feature request is to add the ability to add directives to host elements. The feature will allow developers to augment their own components with additional behaviors without using inheritance. The project will require substantial effort in terms of the definition of APIs, semantics, and implementation.
94+
95+
### Simplified Angular mental model with optional NgModules
8496

8597
To simplify the Angular mental model and learning journey, we’ll be working on making NgModules optional. This work will allow developers to develop standalone components and implement an alternative API for declaring the component’s compilation scope.
8698

8799
### Ergonomic component level code-splitting APIs
88100

89101
A common problem of web applications is their slow initial load time. A way to improve it is to apply more granular code-splitting on a component level. To encourage this practice, we’ll be working on more ergonomic code-splitting APIs.
90-
91-
### Migration to ESLint
92-
93-
With the deprecation of TSLint we will be moving to ESLint. As part of the process, we will work on ensuring backward compatibility with our current recommended TSLint configuration, implement a migration strategy for existing Angular applications and introduce new tooling to the Angular CLI toolchain.

0 commit comments

Comments
 (0)