cargo-test-filter 0.1.1

A cargo subcommand for intelligent test filtering and compilation
Documentation
# Contributing to cargo-test-filter

Thank you for your interest in contributing to cargo-test-filter!

## Development Setup

1. Clone the repository:
```bash
git clone https://github.com/johnproblems/cargo-test-filter.git
cd cargo-test-filter
```

2. Build the project:
```bash
cargo build
```

3. Run tests:
```bash
cargo test
```

## Project Structure

- `src/main.rs` - Entry point for the CLI application
- `src/lib.rs` - Library root with public API
- `src/cli.rs` - Command-line argument parsing using clap
- `src/discovery.rs` - Test discovery logic (scans for test files)
- `src/filter.rs` - Test filtering logic based on criteria
- `src/runner.rs` - Test execution via cargo test

## Adding New Features

When adding new features:

1. Update the relevant module (discovery, filter, or runner)
2. Add tests to verify the functionality
3. Update the README.md with usage examples
4. Ensure all tests pass: `cargo test`

## Tag Format

Tests can be tagged using comment-based annotations:

```rust
// @tag: integration
// @tag: fast
#[test]
fn my_test() {
    assert!(true);
}
```

The discovery module parses these tags and uses them for filtering.

## Running the Tool Locally

During development, you can run the tool directly:

```bash
cargo run -- test-filter --integration
cargo run -- test-filter --tag fast
```

Or build and use the binary:

```bash
cargo build --release
./target/release/cargo-test-filter test-filter --help
```

## Code Style

- Follow Rust standard formatting: `cargo fmt`
- Run clippy for linting: `cargo clippy`
- Write clear comments for complex logic

## Pull Request Process

1. Create a feature branch
2. Make your changes
3. Add tests
4. Update documentation
5. Ensure `cargo test` passes
6. Submit a pull request

## License

By contributing, you agree that your contributions will be licensed under MIT OR Apache-2.0.