chore: make build process a single script to run (#757)
This introduces `./codex-cli/scripts/stage_release.sh`, which is a shell script that stages a release for the Node.js module in a temp directory. It updates the release to include these native binaries: ``` bin/codex-linux-sandbox-arm64 bin/codex-linux-sandbox-x64 ``` though this PR does not update Codex CLI to use them yet. When doing local development, run `./codex-cli/scripts/install_native_deps.sh` to install these in your own `bin/` folder. This PR also updates `README.md` to document the new workflow. --- [//]: # (BEGIN SAPLING FOOTER) Stack created with [Sapling](https://sapling-scm.com). Best reviewed with [ReviewStack](https://reviewstack.dev/openai/codex/pull/757). * #763 * __->__ #757
This commit is contained in:
32
README.md
32
README.md
@@ -308,6 +308,9 @@ corepack enable
|
||||
pnpm install
|
||||
pnpm build
|
||||
|
||||
# Linux-only: download prebuilt sandboxing binaries (requires gh and zstd).
|
||||
./scripts/install_native_deps.sh
|
||||
|
||||
# Get the usage and the options
|
||||
node ./dist/cli.js --help
|
||||
|
||||
@@ -633,18 +636,25 @@ The **DCO check** blocks merges until every commit in the PR carries the footer
|
||||
|
||||
### Releasing `codex`
|
||||
|
||||
To publish a new version of the CLI, run the release scripts defined in `codex-cli/package.json`:
|
||||
To publish a new version of the CLI, run the following in the `codex-cli` folder to stage the release in a temporary directory:
|
||||
|
||||
1. Open the `codex-cli` directory
|
||||
2. Make sure you're on a branch like `git checkout -b bump-version`
|
||||
3. Bump the version and `CLI_VERSION` to current datetime: `pnpm release:version`
|
||||
4. Commit the version bump (with DCO sign-off):
|
||||
```bash
|
||||
git add codex-cli/package.json
|
||||
git commit -s -m "chore(release): codex-cli v$(node -p \"require('./codex-cli/package.json').version\")"
|
||||
```
|
||||
5. Copy README, build, and publish to npm: `pnpm release`
|
||||
6. Push to branch: `git push origin HEAD`
|
||||
```
|
||||
pnpm stage-release
|
||||
```
|
||||
|
||||
Note you can specify the folder for the staged release:
|
||||
|
||||
```
|
||||
RELEASE_DIR=$(mktemp -d)
|
||||
pnpm stage-release "$RELEASE_DIR"
|
||||
```
|
||||
|
||||
Go to the folder where the release is staged and verify that it works as intended. If so, run the following from the temp folder:
|
||||
|
||||
```
|
||||
cd "$RELEASE_DIR"
|
||||
npm publish
|
||||
```
|
||||
|
||||
### Alternative Build Options
|
||||
|
||||
|
||||
Reference in New Issue
Block a user