# Updating an Existing Component

Most components written for v1 build under v2 without modification. This page describes what to do when one does not, and how to keep a component working under both build systems.

## Workflow

1. Build the component under v2 by building a project that uses it with Build System v2; see Updating an Existing Project.

2. If the component builds and links correctly, no change is needed. v2 is designed to stay as backward compatible with v1 as possible.

3. If the build fails, find the relevant difference in Breaking Changes. Each entry explains how v2 differs from v1 and how to adapt the component.

4. If the component must continue to build under v1 as well, apply the change in a way that works for both build systems, using the techniques in Managing Component Backward Compatibility.

Most adaptations are small and local. The techniques for building under both v1 and v2 are only needed when a component must still build with v1; a component that targets v2 only can be changed directly to the v2 behavior, or rewritten as a native CMake component.

Was this page helpful?

- Thank you! We received your feedback.
- If you have any comments, fill in Espressif Documentation Feedback Form.

- We value your feedback.
- Let us know how we can improve this page by filling in Espressif Documentation Feedback Form.