repos:
- repo: local
hooks:
- id: cargo-fmt
name: cargo fmt
entry: cargo fmt --all --
language: system
types: [rust]
pass_filenames: false
- id: cargo-clippy-default
name: cargo clippy (default features)
entry: cargo clippy --lib -- -D warnings
language: system
types: [rust]
pass_filenames: false
- id: cargo-clippy-duckdb
name: cargo clippy (duckdb)
entry: bash -c 'if command -v duckdb >/dev/null 2>&1 || [ -f /usr/local/lib/libduckdb.so ]; then cargo clippy --lib --features duckdb -- -D warnings; else echo "⚠️ DuckDB not available, skipping clippy"; fi'
language: system
types: [rust]
pass_filenames: false
- id: cargo-clippy-arrow
name: cargo clippy (arrow)
entry: cargo clippy --lib --features arrow -- -D warnings
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-default
name: cargo test (default features)
entry: cargo test --lib
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-database-integration
name: cargo test (database integration)
entry: cargo test --test database_integration --verbose
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-duckdb
name: cargo test (duckdb)
entry: bash -c 'if command -v duckdb >/dev/null 2>&1 || [ -f /usr/local/lib/libduckdb.so ]; then cargo test --features duckdb --lib; else echo "⚠️ DuckDB not available, skipping tests"; fi'
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-arrow
name: cargo test (arrow)
entry: bash -c 'echo "🚀 Testing Apache Arrow integration..." && cargo test --features arrow --lib && cargo test --features arrow test_arrow_api_integration && echo "✅ Arrow tests passed"'
language: system
types: [rust]
pass_filenames: false
- id: cargo-test-cli-basic
name: cargo test (CLI basic tests)
entry: bash -c 'echo "🔧 Testing CLI basic functionality..." && cargo test --test cli_basic_tests --release && echo "✅ CLI basic tests passed"'
language: system
types: [rust]
pass_filenames: false
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: check-toml
- id: check-json
- id: check-merge-conflict
- id: check-case-conflict
- id: mixed-line-ending
default_language_version:
python: python3
fail_fast: false