Skip to main content
This section covers development topics for contributors and maintainers of nono.

Topics

Testing

Integration test suites, running tests locally, and CI pipeline

Quick Start for Contributors

  1. Clone the repository
  2. Build the project
  3. Run the test suite
  4. Check formatting and lints

Development Environment

Prerequisites

  • Rust (stable toolchain)
  • Platform-specific dependencies:
    • Linux: pkg-config and a C toolchain (e.g. build-essential) for building aws-lc-sys. libdbus is not required — the Secret Service keyring backend is pure-Rust (zbus).
    • macOS: none beyond the Xcode command-line tools.

Building

Code Standards

  • Error Handling: Use NonoError for all errors; propagate with ?
  • Unwrap Policy: Never use .unwrap() or .expect() - enforced by clippy
  • Unsafe Code: Restricted to FFI; must include // SAFETY: documentation
  • Path Security: All paths must be validated and canonicalized
See CLAUDE.md for complete coding standards.