Skip to main content
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.

Before you open a PR

Run the same checks CI runs. All must pass:
If you touched dependencies, also run a vulnerability check:

Workspace layout

See 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.
  • 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. The full type/scope reference, examples, and enforcement plans live in 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.