> ## Documentation Index
> Fetch the complete documentation index at: https://docs.obsidianlog.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Contributing

> How to set up, test, and submit changes to ObsidianLog.

ObsidianLog is MIT-licensed and developed in the open. Thanks for your
interest!

## Development setup

You need a stable Rust toolchain. The repo pins it via `rust-toolchain.toml`,
so `rustup` installs the right channel and components automatically.

```sh theme={null}
git clone https://github.com/emmaglorypraise/ObsidianLog
cd ObsidianLog
cargo build --workspace
```

## Before you open a PR

Run the same checks CI runs. All must pass:

```sh theme={null}
cargo fmt --all -- --check
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test --workspace --all-features
```

If you touched dependencies, also run a vulnerability check:

```sh theme={null}
cargo install cargo-audit   # once
cargo audit
```

## Workspace layout

See [Pipeline Architecture](/architecture-and-security/pipeline-architecture)
for the four crates and how they fit together. The Sia integration stays
behind the `sia` feature and a single `SiaBackend` implementation. The
compression/encryption/chunking code talks only to the `StorageBackend`
trait and must build and test against `LocalBackend` with no Sia node.

## Conventions

* Public items carry doc comments. Run `cargo doc --workspace` to check.
* Significant or hard-to-reverse design choices get an
  [ADR](/architecture-and-security/decisions).
* Update `CHANGELOG.md` under `[Unreleased]` for user-visible changes.

## Branch names and commit messages

Never commit to `main` directly. Work on a branch and open a PR. Branches
mirror the commit convention (`<type>/<short-kebab-description>`), and
commit messages follow
[Conventional Commits 1.0.0](https://www.conventionalcommits.org). The full
type/scope reference, examples, and enforcement plans live in
[`CONTRIBUTING.md`](https://github.com/emmaglorypraise/ObsidianLog/blob/main/CONTRIBUTING.md)
in the repository. That file is the source of truth for contributors, so
follow it directly rather than this summary.

## Reporting security issues

Please **do not** open public issues for vulnerabilities. See
[Security Model](/architecture-and-security/security-model).
