Be sure you've read README.md too of course.
- There is a
Justfilewhich supports commands, read it and use it. This wraps generic tools likecargo check,cargo build, andcargo testto verify the project compiles and unit tests work. This assumes these tools are in the current host environment. - Use
just test-integrationto run the integration tests.
just test# Run all integration tests
just test-integration
# Run a specific integration test
just test-integration-single <test_name>
# Examples:
just test-integration-single run_ephemeral_with_storage
just test-integration-single to_diskIntegration tests require QEMU/KVM to be fully working as they launch actual VMs.
Ensure the entrypoint script is in $PATH, i.e. that bcvk works.
Then you can invoke bcvk.
- Always run
cargo fmtbefore making a git commit, and in general at the end of a series of code edits.
Some use of emoji is OK, but avoid using it gratuitously. Especially don't use bulleted lists where each entry has an emoji prefix.
The commit message should be structured as follows:
[optional scope]:
[optional body]
[optional footer]
The commit contains the following structural elements, to communicate intent to the consumers of your library:
- fix: a commit of the type fix patches a bug in your codebase (this correlates with PATCH in semantic versioning).
- feat: a commit of the type feat introduces a new feature to the codebase (this correlates with MINOR in semantic versioning).
- BREAKING CHANGE: a commit that has the text BREAKING CHANGE: at the beginning of its optional body or footer section introduces a breaking API change (correlating with MAJOR in semantic versioning). A breaking change can be part of commits of any type. e.g., a fix:, feat: & chore: types would all be valid, in addition to any other type.
DO NOT include Generated with Claude Code or Co-authored-by: Claude.
You should include Assisted-by: Claude <noreply@anthropic.com> though
especially for nontrivial changes that did not require substantial assistance from
a human.