buster/apps/cli/CLAUDE.md

34 lines
1.5 KiB
Markdown
Raw Permalink Normal View History

2025-04-10 05:56:40 +08:00
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Build Commands
- Build: `cargo build`
- Release build: `cargo build --release`
- Run tests: `cargo test`
- Run specific test: `cargo test test_name`
- Run tests in file: `cargo test --test filename`
- Run package tests: `cargo test -p <package_name>`
- Format: `cargo fmt`
- Lint: `cargo clippy`
## Code Style Guidelines
- **Imports**: Group by std, external crates, internal modules; alphabetical order
- **Formatting**: 4-space indentation (standard Rust)
- **Error Handling**: Use `thiserror` for error types, `anyhow` for general propagation
- **Naming**: Follow Rust conventions (`snake_case` for variables/functions, `PascalCase` for types)
- **Types**: Define custom error types with descriptive messages
- **Dependencies**: Use workspace dependencies with `{ workspace = true }`
- **Testing**: Place in separate `/tests` directory; use `tempfile` for test directories
- **Never log secrets or sensitive data**
## Project Info
- CLI for managing semantic models in Buster
- Uses semantic versioning (PR title conventions for bumps)
- Major: PR title with "BREAKING CHANGE" or "major", or PR with "major" label
- Minor: PR title with "feat", "feature", or "minor", or PR with "minor" label
- Patch: Default for all other PRs
- Cross-project references supported
- Config defined in `buster.yml`
- File and tag exclusions for deployment
- Row limit of 5000 is enforced for database queries by default