1# Zed Releases
  2
  3Read about Zed's [release channels here](https://zed.dev/faq#what-are-the-release-channels).
  4
  5## Wednesday Release Process
  6
  7You will need write access to the Zed repository to do this.
  8
  9Credentials for various services used in this process can be found in 1Password.
 10
 11Use the `releases` Slack channel to notify the team that releases will be starting.
 12This is mostly a formality on Wednesday's minor update releases, but can be beneficial when doing patch releases, as other devs may have landed fixes they'd like to cherry pick.
 13
 14### Starting the Builds
 15
 161. Checkout `main` and ensure your working copy is clean.
 17
 181. Run `git fetch && git pull` to ensure you have the latest commits locally.
 19
 201. Run `git fetch --tags --force` to forcibly ensure your local tags are in sync with the remote.
 21
 221. Run `./script/get-stable-channel-release-notes` and store output locally.
 23
 241. Run `./script/bump-zed-minor-versions`.
 25
 26   - Push the tags and branches as instructed.
 27
 281. Run `./script/get-preview-channel-changes` and store output locally.
 29
 30> **Note:** Always prioritize the stable release.
 31> If you've completed aggregating stable release notes, you can move on to working on aggregating preview release notes, but once the stable build has finished, work through the rest of the stable steps to fully publish.
 32> Preview can be finished up after.
 33
 34### Stable Release
 35
 361. Aggregate stable release notes.
 37
 38   - Follow the instructions at the end of the script and aggregate the release notes into one structure.
 39
 401. Once the stable release draft is up on [GitHub Releases](https://github.com/zed-industries/zed/releases), paste the stable release notes into it and **save**.
 41
 42   - **Do not publish the draft!**
 43
 441. Check the stable release assets.
 45
 46   - Ensure the stable release job has finished without error.
 47   - Ensure the draft has the proper number of assets—releases currently have 12 assets each (as of v0.211).
 48   - Download the artifacts for the stable release draft and test that you can run them locally.
 49
 501. Publish the stable draft on [GitHub Releases](https://github.com/zed-industries/zed/releases).
 51
 52   - Use [Vercel](https://vercel.com/zed-industries/zed-dev) to check the progress of the website rebuild.
 53     The release will be public once the rebuild has completed.
 54
 551. Post the stable release notes to social media.
 56
 57   - Bluesky and X posts will already be built as drafts in [Buffer](https://buffer.com).
 58   - Double-check links.
 59   - Publish both, one at a time, ensuring both are posted to each respective platform.
 60
 611. Send the stable release notes email.
 62
 63   - The email broadcast will already be built as a draft in [Kit](https://kit.com).
 64   - Double-check links.
 65   - Publish the email.
 66
 67### Preview Release
 68
 691. Aggregate preview release notes.
 70
 71   - Take the script's output and build release notes by organizing each release note line into a category.
 72   - Use a prior release for the initial outline.
 73   - Make sure to append the `Credit` line, if present, to the end of each release note line.
 74
 751. Once the preview release draft is up on [GitHub Releases](https://github.com/zed-industries/zed/releases), paste the preview release notes into it and **save**.
 76
 77   - **Do not publish the draft!**
 78
 791. Check the preview release assets.
 80
 81   - Ensure the preview release job has finished without error.
 82   - Ensure the draft has the proper number of assets—releases currently have 12 assets each (as of v0.211).
 83   - Download the artifacts for the preview release draft and test that you can run them locally.
 84
 851. Publish the preview draft on [GitHub Releases](https://github.com/zed-industries/zed/releases).
 86   - Use [Vercel](https://vercel.com/zed-industries/zed-dev) to check the progress of the website rebuild.
 87     The release will be public once the rebuild has completed.
 88
 89### Prep Content for Next Week's Stable Release
 90
 911. Build social media posts based on the popular items in preview.
 92
 93   - Draft the copy in the [tweets](https://zed.dev/channel/tweets-23331) channel.
 94   - Create the preview media (videos, screenshots).
 95     - For features that you film videos around, try to create alternative photo-only versions to be used in the email, as videos and GIFs aren't great for email.
 96     - Store all created media in `Feature Media` in our Google Drive.
 97   - Build X and Bluesky post drafts (copy and media) in [Buffer](https://buffer.com), to be sent for next week's stable release.
 98
 99   **Note: These are preview items and you may discover bugs.**
100   **This is a very good time to report these findings to the team!**
101
1021. Build email based on the popular items in preview.
103
104   - You can reuse the copy and photo media from the preview social media posts.
105   - Create a draft email in [Kit](https://kit.com), to be sent for next week's stable release.
106
107## Patch Release Process
108
109If your PR fixes a panic or a crash, you should cherry-pick it to the current stable and preview branches.
110If your PR fixes a regression in recently released code, you should cherry-pick it to preview.
111
112You will need write access to the Zed repository to do this:
113
114---
115
1161. Send a PR containing your change to `main` as normal.
117
1181. Once it is merged, cherry-pick the commit locally to either of the release branches (`v0.XXX.x`).
119
120   - In some cases, you may have to handle a merge conflict.
121     More often than not, this will happen when cherry-picking to stable, as the stable branch is more "stale" than the preview branch.
122
1231. After the commit is cherry-picked, run `./script/trigger-release {preview|stable}`.
124   This will bump the version numbers, create a new release tag, and kick off a release build.
125
126   - This can also be run from the [GitHub Actions UI](https://github.com/zed-industries/zed/actions/workflows/bump_patch_version.yml):
127     
128
1291. Once release drafts are up on [GitHub Releases](https://github.com/zed-industries/zed/releases), proofread and edit the release notes as needed and **save**.
130
131   - **Do not publish the drafts, yet.**
132
1331. Check the release assets.
134
135   - Ensure the stable / preview release jobs have finished without error.
136   - Ensure each draft has the proper number of assets—releases currently have 10 assets each.
137   - Download the artifacts for each release draft and test that you can run them locally.
138
1391. Publish stable / preview drafts, one at a time.
140   - Use [Vercel](https://vercel.com/zed-industries/zed-dev) to check the progress of the website rebuild.
141     The release will be public once the rebuild has completed.
142
143## Nightly release process
144
145In addition to the public releases, we also have a nightly build that we encourage employees to use.
146Nightly is released by cron once a day, and can be shipped as often as you'd like.
147There are no release notes or announcements, so you can just merge your changes to main and run `./script/trigger-release nightly`.