# Releases

> A release freezes one build of a publication, so a person approves and publishes exactly what was checked.

A **publication** is a document an app publishes for people outside your organization, such as a report or a book of tables and text. A **release** is one build of it, frozen: every section, row and text exactly as it was when it was built. A person approves a release, a person publishes it, and the public page shows only that release.

## Why it works this way

- **What you approve is what goes public.** A release never changes after it's built. Its **Hash** is a fingerprint of everything it froze. The same data always gives the same hash, and any change gives a different one.
- **Publishing checks again.** When someone chooses **Publish**, CapZero builds the release again from the live data. If anything in it changed since the build, publishing is refused, with a list of what changed. So a change made after the approval never reaches the public by accident.
- **Only public fields leave.** The app decides which columns and text are public. Everything else, such as people's names and email addresses, stays out of the public page, its search and its downloads.
- **Releases are kept.** A release's number and hash never change. While the publication is live, earlier published releases stay readable at their own addresses.

## How it relates to what you do

Publications are in the app's sidebar, under **Publications**. You see them only if you build or approve releases. Each publication's page shows its **State**, its **Public page**, its **Published release** and its **Releases**, newest first.

A release moves through these states:

| State | What it means | What happens next |
|---|---|---|
| **Building** | CapZero is freezing each section. The page shows its progress. | It becomes **Built** or **Failed** on its own. |
| **Failed** | The build stopped. The page says why. | A builder fixes the cause and chooses **Build a new release**. |
| **Built** | Frozen, with its hash and a count of what each section holds. | A builder checks the sections and chooses **Request approval**. |
| **Waiting for approval** | Someone asked for approval. | A person who may approve opens the approval and answers it. |
| **Approved** | A person approved exactly what this release froze. | A person who may approve chooses **Publish**. |
| **Rejected** | The approver said no, with a note. | A builder fixes what the note asks and builds a new release. |
| **Published** | Its public page is live. | It stays live until someone chooses **Take down**. |
| **Taken down** | Its public page and downloads are gone. | **Publish again** on the release puts it back at the same address. |

Two kinds of people work on a release:

- **Builders** build releases and ask for approval. They can't approve or publish.
- **Approvers** approve, publish and take down. They're always people, with [two-step verification](/reference/glossary/#two-step-verification), and never the person who asked for the approval. An agent is never an approver. See [Approvals with MFA](/concepts/approvals-with-mfa/).

The app decides who is a builder and who is an approver. Your administrator gives people those roles.

## The public page

Anyone with the address can read a published release, without signing in. The page shows the release's number, its publication date and its hash. Readers can:

- search the release with **Search this release**;
- download each table's figures with **Download CSV**;
- download the whole release with **Download PDF**. It appears a minute or two after publishing, once the PDF is ready: reload the page to see it.

When a publication is taken down, its address shows **This page isn't published**, and every download of it is gone at once. Publishing a release again puts it back at the same address.

## When publishing is refused

If something in the release changed after it was built, **Publish** shows **Not published: the data changed since release** followed by its number, and lists what changed. The list names the section and the record, for example a row that was revised, added or removed, or a text that was rewritten.

Nothing went public. The release can't be fixed, because releases never change. Build a new release, have it approved, and publish that one.

## Related

- [Approvals with MFA](/concepts/approvals-with-mfa/)
- [Release](/reference/glossary/#release) and [Publication](/reference/glossary/#publication) in the glossary
