Skip to content

Latest commit

 

History

History
9 lines (5 loc) · 1.92 KB

development.md

File metadata and controls

9 lines (5 loc) · 1.92 KB

Development

The tests need ast-grep and ripgrep (rg) on your PATH. Before each commit, run cargo fmt --check, cargo clippy --all-targets -- -D warnings and cargo test. Tests keep sign-in, sessions and other files in a temporary folder, not in ~/.rust-coding-agent.

Write commit messages as conventional commits with type build, chore, ci, docs, feat, fix, perf, refactor, style or test, for example fix(tui): hide notice or feat!: drop old config. Nothing checks this, but releases depend on it.

Every push to main runs these checks and then makes a release if needed. The checks for each push start straight away, but only one release runs at a time. A push makes no release if a newer commit has reached main by the time its checks pass; the next push whose checks pass releases its changes too. The checks cache downloaded crates and build output with actions/cache. The cache is rebuilt when Cargo.lock or the Rust version changes. git-cliff works out the next version from the conventional commit messages since the last tag: fix and perf bump the patch version, feat the minor version and a breaking change (feat! or BREAKING CHANGE) the major version. Commits of other types, such as docs or chore, do not make a release. The release adds tag v<version>, a rust-coding-agent.zip with the source and the version set in Cargo.toml, and release notes that list the feat, fix and perf commit messages since the last tag. Nothing is pushed to main, so Cargo.toml there stays at 0.0.0.

The website is plain HTML and CSS in site. Pushes to main that change site deploy it to GitHub Pages with .github/workflows/pages.yml.