You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`src/` holds the C++ wrapper sources; keep headers in `include/` mirrored by module.
5
+
-`scylla-rust-wrapper/` contains the Rust crate exposing the FFI; MSRV is 1.85 (see `Cargo.toml`).
6
+
- Tests live in `tests/src/integration` (GoogleTest harness) and `scylla-rust-wrapper/tests` for Rust. CPack packaging config lives in `CMakeLists.txt`, GitHub workflows under `.github/workflows/`, and reusable examples under `examples/`.
7
+
8
+
## Build, Test, and Development Commands
9
+
-`mkdir build && cd build && cmake .. && make -j` builds the driver; pass CMake options such as `-DCASS_BUILD_INTEGRATION_TESTS=ON` when needed.
-`make run-test-unit` executes the Rust unit suite; `make run-test-integration-scylla` spins up a CCM cluster and runs `build/cassandra-integration-tests` against Scylla. Use `DONT_REBUILD_INTEGRATION_BIN=1` to reuse an existing build.
12
+
13
+
## Coding Style & Naming Conventions
14
+
- C and C++ sources follow `.clang-format` (2-space indent, 100 column limit, no tabs). Keep C API names stable (e.g., `cass_*`) to preserve downstream compatibility.
15
+
- Rust code must satisfy `cargo fmt` and `cargo clippy -- -D warnings -Aclippy::uninlined_format_args`; avoid the disallowed pointer conversions listed in `scylla-rust-wrapper/clippy.toml`.
16
+
- Prefer descriptive snake_case for internal helpers, PascalCase for types, and mirror header/implementation filenames between `include/` and `src/`.
17
+
18
+
## Testing Guidelines
19
+
- Place new C++ integration cases under `tests/src/integration` and register them with GoogleTest. Update `{SCYLLA,CASSANDRA}_TEST_FILTER` in the `Makefile` when enabling suites.
20
+
- Rust-facing logic should gain coverage via `cargo test`; add integration fixtures under `scylla-rust-wrapper/tests` when exercising FFI.
21
+
- When touching docker-based examples, verify with `make run-examples-scylla`; clean fixtures by rerunning the target to tear down the compose stack.
22
+
23
+
## Commit & Pull Request Guidelines
24
+
- Follow the existing history style: concise, present-tense summaries with optional area prefixes (`docs:`, `README.md:`). Split unrelated changes into separate commits.
25
+
- Before opening a PR, run `make check` and the relevant test targets, then complete the checklist in `.github/pull_request_template.md`.
26
+
- PR descriptions should detail the rationale, list manual test evidence, and link issues via `Fixes: #123`. Include configuration notes (e.g., CMake flags) or screenshots when behavior changes.
0 commit comments