This is an automated email from the ASF dual-hosted git repository.

prantogg pushed a commit to branch update-docs
in repository https://gitbox.apache.org/repos/asf/sedona-spatialbench.git


The following commit(s) were added to refs/heads/update-docs by this push:
     new 0d86d81  update contributors guide
0d86d81 is described below

commit 0d86d8133fe75251d08f40ff0084a9d74924bed1
Author: Pranav Toggi <[email protected]>
AuthorDate: Tue Nov 11 23:02:23 2025 -0800

    update contributors guide
---
 docs/contributors-guide.md | 168 +++++++++++++++++++++++++++++++++++++++------
 mkdocs.yml                 |   1 +
 2 files changed, 147 insertions(+), 22 deletions(-)

diff --git a/docs/contributors-guide.md b/docs/contributors-guide.md
index 507ba63..5f33ccf 100644
--- a/docs/contributors-guide.md
+++ b/docs/contributors-guide.md
@@ -19,36 +19,160 @@ title: Contributors Guide
   under the License.
 -->
 
-We want to make contributing to SpatialBench as easy and transparent as
-possible. If you have suggestions to improve this contribution guide, feel
-free to [open an issue in 
GitHub](https://github.com/apache/sedona-spatialbench/issues).
+# Contributors Guide
 
-## Our Development Process
+This guide details how to set up your development environment as a 
SpatialBench contributor.
 
-To contribute, please find an existing issue or open a new one. Claiming the 
issue you are working on helps us better track progress.
+## Fork and clone the repository
 
-## Pull Requests
+Your first step is to create a personal copy of the repository and connect it 
to the main project.
 
-We actively welcome your pull requests.
+1. Fork the repository
 
-1. Fork the repo and create your branch from `main`.
-2. If you've added code that should be tested, add tests.
-3. If you've changed APIs, update the related documentation.
-4. Ensure the standard tests and conformance tests are passing.
-5. Ensure your code follows Rust best practices and addresses all lints from 
clippy.
-6. Open your pull request and wait for a review and approval.
+   * Navigate to the official [SpatialBench GitHub 
repository](https://github.com/apache/sedona-spatialbench).
+   * Click the **Fork** button in the top-right corner. This creates a 
complete copy of the project in your own GitHub account.
 
-## Filing Issues
+2. Clone your fork
 
-When opening a new issue, please follow the issue template and provide as many 
details
-as possible, including a reproducible example if applicable.
+   * Next, clone your newly created fork to your local machine. This command 
downloads the repository into a new folder named `sedona-spatialbench`.
+   * Replace `YourUsername` with your actual GitHub username.
 
-## Coding Style
+    ```shell
+    git clone https://github.com/YourUsername/sedona-spatialbench.git
+    cd sedona-spatialbench
+    ```
 
-Follow standard Rust formatting guidelines. For idiomatic code
-style, consult [Effective 
Rust](https://www.lurklurk.org/effective-rust/title-page.html).
+3. Configure the remotes
 
-## License
+   * Your local repository needs to know where the original project is so you 
can pull in updates. You'll add a remote link, traditionally named upstream, to 
the main SpatialBench repository.
+   * Your fork is automatically configured as the origin remote.
 
-By contributing to SpatialBench, you agree that your contributions will be 
licensed
-under the `LICENSE` file in the root directory of this source tree.
\ No newline at end of file
+    ```shell
+    # Add the main repository as the "upstream" remote
+    git remote add upstream https://github.com/apache/sedona-spatialbench.git
+    ```
+
+4. Verify the configuration
+
+   * Run the following command to verify that you have two remotes configured 
correctly: origin (your fork) and upstream (the main repository).
+
+    ```shell
+    git remote -v
+    ```
+
+   * The output should look like this:
+
+    ```shell
+    origin    https://github.com/YourUsername/sedona-spatialbench.git (fetch)
+    origin    https://github.com/YourUsername/sedona-spatialbench.git (push)
+    upstream  https://github.com/apache/sedona-spatialbench.git (fetch)
+    upstream  https://github.com/apache/sedona-spatialbench.git (push)
+    ``` 
+
+## Development Setup
+
+SpatialBench is written in Rust and is a standard cargo workspace. You can 
install a recent version of the Rust compiler and cargo from rustup.rs.
+
+To run tests:
+
+```shell
+cargo test
+```
+
+A local development version of the CLI can be run with:
+
+```shell
+cargo run --bin spatialbench-cli
+```
+
+## Debugging
+
+### IDE
+
+Debugging Rust code is most easily done by writing or finding a test that 
triggers the desired behavior and running it using the Debug selection in your 
IDE with the 
[rust-analyzer](https://www.jetbrains.com/help/fleet/using-rust-analyzer.html) 
extension.
+
+### Verbose CLI Output
+
+When debugging the SpatialBench CLI, you can enable verbose output to see 
detailed logging:
+
+Enable verbose output (info level logging),
+
+```shell
+cargo run --bin spatialbench-cli -- --scale-factor 1 --verbose
+```
+
+Or using environment variables for more granular control,
+```shell
+RUST_LOG=debug cargo run --bin spatialbench-cli -- --scale-factor 1
+```
+
+The `--verbose` flag sets the log level to info and ignores the RUST_LOG 
environment variable. When not specified, logging is configured via `RUST_LOG`.
+
+### Logging Levels
+
+You can control logging granularity using `RUST_LOG`:
+
+```shell
+# Show only errors
+RUST_LOG=error cargo run --bin spatialbench-cli -- --scale-factor 1
+
+# Show warnings and errors
+RUST_LOG=warn cargo run --bin spatialbench-cli -- --scale-factor 1
+
+# Show info, warnings, and errors
+RUST_LOG=info cargo run --bin spatialbench-cli -- --scale-factor 1
+
+# Show debug output
+RUST_LOG=debug cargo run --bin spatialbench-cli -- --scale-factor 1
+
+# Show trace output (very verbose)
+RUST_LOG=trace cargo run --bin spatialbench-cli -- --scale-factor 1
+
+# Show debug output for specific modules
+RUST_LOG=spatialbench=debug cargo run --bin spatialbench-cli -- --scale-factor 
1
+```
+
+## Testing
+
+We use cargo to run the Rust tests:
+
+```shell
+cargo test
+```
+
+You can run tests for a specific crate:
+
+```shell
+cd spatialbench
+cargo test
+```
+
+## Linting
+
+Install pre-commit. This will automatically run various checks (e.g., 
formatting) that will be needed to pass CI:
+
+```shell
+pre-commit install
+```
+
+Additionally, you should run clippy to catch common lints before pushing new 
Rust changes. This is not included in pre-commit, so this should be run 
manually. Fix any suggestions it makes, and run it again to make sure there are 
no other changes to make:
+
+```shell
+cargo clippy
+```
+
+## Documentation
+
+To contribute to the SpatialBench documentation:
+
+1. Clone the repository and create a fork.
+2. Install the Documentation dependencies:
+    ```shell
+    pip install -r docs/requirements.txt
+    ```
+3. Make your changes to the documentation files.
+4. Preview your changes locally using these commands:
+   * `mkdocs serve` - Start the live-reloading docs server.
+   * `mkdocs build` - Build the documentation site.
+   * `mkdocs -h` - Print help message and exit.
+5. Push your changes and open a pull request.
\ No newline at end of file
diff --git a/mkdocs.yml b/mkdocs.yml
index 92fc39b..c6defdc 100644
--- a/mkdocs.yml
+++ b/mkdocs.yml
@@ -55,6 +55,7 @@ nav:
       - Datasets & Generators: datasets-generators.md
       - Data Distributions: spatialbench-distributions.md
       - Single Node Results: single-node-benchmarks.md
+      - Contributors Guide: contributors-guide.md
   - Blog: https://sedona.apache.org/latest/blog/
   - Community: https://sedona.apache.org/latest/setup/compile/
   - Apache Software Foundation: https://sedona.apache.org/latest/asf/asf/

Reply via email to