Files
qiming/qimingcode/AGENTS.md

24 lines
1.9 KiB
Markdown

- To test opencode in `packages/opencode`, run `bun dev`.
- To regenerate the JavaScript SDK, run `./packages/sdk/js/script/build.ts`.
- ALWAYS USE PARALLEL TOOLS WHEN APPLICABLE.
- The default branch in this repo is `feat/qimingcode`.
- **Release Workflow**:
1. **Changelog**: Update `CHANGELOG-qimingcode.md` with new version details.
2. **Bump Version**: Update `packages/opencode/package.json` version field.
2.1 **Version Consistency Rule (Mandatory)**:
- `packages/opencode/package.json` is the only version source of truth.
- All `optionalDependencies` entries matching `qimingcode-*` must equal the same version.
- Rebuild binaries before publish, then run:
- `bun run script/check-version-consistency.ts --phase pre --version <version>`
- After publish, run:
- `bun run script/check-version-consistency.ts --phase post --version <version>`
- Any mismatch must fail the release immediately.
3. **Commit & Push**: Push changes to `feat/qimingcode` branch.
4. **Tag & Trigger CI**: `git tag v<version> && git push origin v<version>`
- CI (`.github/workflows/build-release.yml`) builds all 11 platform targets on a single ubuntu-24.04 runner via Bun cross-compilation.
- Produces 13 archives: darwin (arm64, x64, x64-baseline), linux (arm64, x64, x64-baseline, arm64-musl, x64-musl, x64-baseline-musl), windows (x64, x64-baseline, each with .tar.gz + .zip).
- Auto-creates GitHub Release and uploads all assets.
5. **Verify**: Check release at `https://github.com/qiming-ai/qimingcode/releases/tag/v<version>`.
6. **Electron Integration**: Update `QIMINGCODE_VERSION` in Electron client's `scripts/prepare/prepare-qimingcode.js` and `installVersion` in `src/main/services/system/dependencies.ts`, then run `node scripts/prepare/prepare-qimingcode.js`.
7. **npm publish** (optional): Run `./release.sh <new_version>` for npm registry publish.