# Patch release process

Patch releases are necessary from time to time to release critical bug fixes or features with a deadline earlier than a scheduled release. Below are two options for creating a patch.

Patches do not require scheduling a "release party." We often do them async and keep the team up to date in the Moped Slack channel.

### Branch from production

This method is the best way to keep changes not ready for release from releasing to production before QA testing can be performed.

1. Pull the latest changes into your local `production` branch.
2. Create a branch from `production` and begin making the changes for the patch.
3. Once the changes are ready for review, push to GitHub and create a pull request that will merge your patch branch into `production`.
4. Be sure to increment the patch version number in the `package.json` in your branch. For example, `v2.25.0` to `v2.25.1`.
5. Request reviews, and, once approved, the patch is ready for release. Coordinate with the Product Manager.
6. Once the patch is released, the same changes must be moved into `main` branch.
7. Create a branch from `main` and then cherry-pick the commits that you introduced into `production` into your branch - including the patch version change.
8. Request reviews, and, once approved, merge the changes into `main` branch.
