48 lines
2.3 KiB
Markdown
48 lines
2.3 KiB
Markdown
|
|
# Release Management
|
||
|
|
|
||
|
|
Currently, we made Codex binaries available in three places:
|
||
|
|
|
||
|
|
- GitHub Releases https://github.com/openai/codex/releases/
|
||
|
|
- `@openai/codex` on npm: https://www.npmjs.com/package/@openai/codex
|
||
|
|
- `codex` on Homebrew: https://formulae.brew.sh/formula/codex
|
||
|
|
|
||
|
|
# Cutting a Release
|
||
|
|
|
||
|
|
Currently, choosing the version number for the next release is a manual process. In general, just go to https://github.com/openai/codex/releases/latest and see what the latest release is and increase the minor version by `1`, so if the current release is `0.20.0`, then the next release should be `0.21.0`.
|
||
|
|
|
||
|
|
Assuming you are trying to publish `0.21.0`, first you would run:
|
||
|
|
|
||
|
|
```shell
|
||
|
|
VERSION=0.21.0
|
||
|
|
./codex-rs/scripts/create_github_release.sh "$VERSION"
|
||
|
|
```
|
||
|
|
|
||
|
|
This will kick off a GitHub Action to build the release, so go to https://github.com/openai/codex/actions/workflows/rust-release.yml to find the corresponding workflow. (Note: we should automate finding the workflow URL with `gh`.)
|
||
|
|
|
||
|
|
When the workflow finishes, the GitHub Release is "done," but you still have to consider npm and Homebrew.
|
||
|
|
|
||
|
|
## Publishing to npm
|
||
|
|
|
||
|
|
After the GitHub Release is done, you can publish to npm. Note the GitHub Release includes the appropriate artifact for npm (which is the output of `npm pack`), which should be named `codex-npm-VERSION.tgz`. To publish to npm, run:
|
||
|
|
|
||
|
|
```
|
||
|
|
VERSION=0.21.0
|
||
|
|
./scripts/publish_to_npm.py "$VERSION"
|
||
|
|
```
|
||
|
|
|
||
|
|
Note that you must have permissions to publish to https://www.npmjs.com/package/@openai/codex for this to succeed.
|
||
|
|
|
||
|
|
## Publishing to Homebrew
|
||
|
|
|
||
|
|
For Homebrew, we are properly set up with their automation system, so every few hours or so it will check our GitHub repo to see if there is a new release. When it finds one, it will put up a PR to create the equivalent Homebrew release, which entails building Codex CLI from source on various versions of macOS.
|
||
|
|
|
||
|
|
Inevitably, you just have to refresh this page periodically to see if the release has been picked up by their automation system:
|
||
|
|
|
||
|
|
https://github.com/Homebrew/homebrew-core/pulls?q=%3Apr+codex
|
||
|
|
|
||
|
|
Once everything builds, a Homebrew admin has to approve the PR. Again, the whole process takes several hours and we don't have total control over it, but it seems to work pretty well.
|
||
|
|
|
||
|
|
For reference, our Homebrew formula lives at:
|
||
|
|
|
||
|
|
https://github.com/Homebrew/homebrew-core/blob/main/Formula/c/codex.rb
|