---
title: "Review and release"
description: "Approve an ECO, merge its branch, cut an immutable release."
---

This is the second half of the change lifecycle — from an in-review ECO to a tagged release.

## Reviewing an ECO

1. **Open the ECO list.** Left nav → **ECOs**. Filter to **In review** to find the ones waiting on you.

   ![ECO list](/docs/screenshots/light/eco-list.png)

2. **Click an ECO.** The detail page shows the description, the parts changed, and a side-by-side diff of every modified YAML file. Comments live below.

   ![ECO review screen](/docs/screenshots/light/eco-review.png)

3. **Vote.**
   - **Approve** — your vote is recorded; if the ECO has now met quorum, it transitions to **approved**.
   - **Request changes** — leaves the ECO in **review** with a blocking comment. The author can address and re-request your review.
   - **Comment** — non-blocking observation.

4. **Merge.** Once approved, the dashboard offers a **Merge to main** button. This rebases or fast-forwards the ECO branch into `main`. The ECO transitions to **released** the moment its commits are in `main`'s history.

## Cutting a release

A *released* ECO is not the same as a *release* — releases bundle one or more ECOs into an immutable named snapshot.

1. **Open the Releases tab.** Left nav → **Releases**.

   ![Releases timeline](/docs/screenshots/light/releases.png)

2. **Click "New release"**, then:
   - **Tag** — your release name (e.g. `v1.2.0`).
   - **Description** — release notes.
   - **Included ECOs** — auto-populated with every released ECO since the last release; you can edit.

3. **Create.** simple-plm cuts a Git tag on the head of `main`, writes a `plm-data/releases/<tag>.yaml` manifest, and pins all referenced attachments by content hash. The release is now immutable.

## Audit

Every transition (vote cast, merge, release cut) is recorded in the org's activity log — see `plm activity` or the **Activity** tab in the dashboard.
