> [!WARNING]
> **THIS RELEASE BRANCH PR SHOULD NOT BE MERGED.** It exists for traceability and to track the release checklist. Close it (don't merge it) once the release is complete.

# Release checklist

Copy the state of this checklist into the release notes / release ticket as you go. Check items off as completed.

## Pre-release

### Before testing

`fidesplus` testing is trickier than `fides` because `fidesplus` depends on `fides`, and the target `fides` release is usually not yet on PyPI when this checklist runs. Most steps can be tested against a `fides` release candidate: running `nox -s tag` on the `fides` release branch publishes an `rc` package to PyPI. Update `requirements.txt` here in `fidesplus` to point at that RC (this is also a required step to get an RC build onto `fides-plus-rc`). `nox -s demo` spins up a comparable environment locally. After the official `fides` release ships, bump `requirements.txt` to that final (non-RC) version and re-run the checks above.

- [ ] Confirmed which core `fides` version is being tested against, and `requirements.txt` is updated to that version (usually the latest `rc` tag). Running locally via `nox -s demo`.
- [ ] Fidesplus' sensitive config vars (from [1Password](https://start.1password.com/open/i?a=5LPILPRDUBGWBPJWYS6QHHHLRE&v=p3bpsusghc3t45pzpsebehrd4m&i=ozeucmnygzdxbi7q5ov3s6f3h4&h=ethyca.1password.com)) are loaded via **one** of:
  - [ ] `~/.bashrc` / `~/.zshrc` (remember to `source` it)
  - [ ] env vars on the `fidesplus` image in `docker-compose.yml`
  - [ ] config vars in `fides.toml`
  - ⚠️ Use the correct naming convention for whichever method you pick.

### General

- [ ] Frontend running on `fides`: `cd clients && turbo run dev` (on the release branch, `git pull`ed)
- [ ] Backend running `fidesplus`: `nox -s "build(fidesplus)" -- prod && nox -s "dev(fidesplus)"`
- [ ] Admin UI loads at `localhost:3000` (or `localhost:3001`)
- [ ] Login works: `user: 'root_user'`, `pass: 'Testpassword1!'`

### API

- [ ] Generated API docs at `localhost:8080/docs` are correct

### CLI

- [ ] `nox -s "shell(fidesplus)"` successfully runs the server
- [ ] `fides` CLI is installed (`fides version` works)

### UI

- [ ] All buttons work; UI/UX is responsive

### Documentation

- [ ] CHANGELOG is formatted correctly; verbiage cleaned up where needed
- [ ] CHANGELOG accurately represents the actual changes in this release

> [!IMPORTANT]
> **CHANGELOG fixes do not go on the release branch.** Commit them on a branch off `main`, PR and merge to `main`, then cherry-pick to the release branch. This keeps the CHANGELOG consistent between `main` and the release branch.

### Publishing the release

- [ ] Release description includes a `## Release Pull Request` section linking back to **this** PR for traceability

## Post-release

- [ ] `fidesplus` release published to DockerHub: <https://hub.docker.com/r/ethyca/fidesplus>
- [ ] Silicon Mac image built and pushed (must be done by a Silicon Mac user):
  - [ ] `git stash` (no local changes)
  - [ ] `git checkout <version_tag>`
  - [ ] `nox -s "build(fidesplus)" -- prod`
  - [ ] `docker tag ethyca/fidesplus:local ethyca/fidesplus:<version_tag>-silicon`
  - [ ] `docker push ethyca/fidesplus:<version_tag>-silicon`
- [ ] Smoke test via the POC repo (<https://github.com/ethyca/fidesplus-poc/blob/main/docker-compose.yml>):
  - [ ] Image version updated (use `<version_tag>-silicon` on M1, otherwise `<version_tag>`)
  - [ ] `docker-compose up -d`
  - [ ] All containers come up successfully
  - [ ] `fidesbridge` runs to completion
  - [ ] Submit a privacy request and verify the data map
  - [ ] Open a "Update to Fides 2.xx.y" PR on the POC repo and notify `#team-sales`

## Sign-off

- [ ] All applicable checklist items above are complete (or explicitly marked N/A with reason)
- [ ] Release published and verified in production / RC environment as appropriate
- [ ] This PR is being closed (not merged)
