# New `.rebuild` API

**This is draft describing an upcoming change.**

We are replacing the original, "`.read`-based", Broccoli API with a new,
"`.rebuild`-based", API.

## Compatibility

Note: To aid with the transition, some plugins may provide both the old
`.read` API and the new `.rebuild` API at the same time.

Broccoli up to 0.13.x supports only plugins that provide the old `.read` API.
Broccoli 0.13.4 will additionally throw a descriptive error message if a
plugin only provides the new `.rebuild` API.

Broccoli 0.14.x supports plugins that provide the old `.read` API as well as
plugins that provide the new `.rebuild` API. If a plugin provides both APIs,
Broccoli will opt to call the new `.rebuild` API.

Broccoli 0.15.x behaves the same as 0.14.x. Additionally, if a plugin provides
only the old `.read` API, Broccoli will print a deprecation warning.

Broccoli from 0.16.x onward supports only plugins that provide the new
`.rebuild` API. If a plugin provides only the old `.read` API, Broccoli will
throw an error.

## For Plugin Authors

### Description of New API

### Using broccoli-writer

### Using broccoli-filter

## Motivation

Add documentation for upcoming API change
Add documentation for upcoming API change
