Skip to content
Duncan Awerbuck edited this page Sep 12, 2016 · 2 revisions

Life of a feature

This wiki page helps understand how we implement features in the angular-cli tool.

You have an (awesome, I'm sure) idea that you just came out and nobody has thought of it yet. Great! We want to listen to you. But first, we need to discuss it.

Agree on the feature

The first thing that you need to do is to create an issue. That issue will be triaged into the proper labels. The phase: proposal label indicates that this is something new and will get the discussion started.

Maybe we will agree that this would be better done in another project (like Angular Core). Or maybe we will postpone it to a future milestone. Or maybe we will all approve that this is something that needs to be designed and done. Thus we move to the next step.

Create a Design Document

Every feature will need to have a design phase. We want the idea to be well thought out and anticipate as many obstacles as possible. And we want to have multiple people know and think about the implications of such feature.

Someone (hopefully you) will be assigned to the issue created, and will create a document. There is a simple template for an Angular Design Document. Or you can create your own, as long as the content is clear and you cover the same general points.

We want you to take some time to think about every implication your feature will have. Will it be something easy to use? Will it require works from other projects?

Request For Comment

Once you've thought through your feature's design document, post an answer on your issue with a link to it. The label

People will discuss the design, point flaws or ask questions about it.

Implementation

Once everyone is okay with the design, it's time to work on the implementation. This