Contributing to Engrams

Contributions of all kinds are welcome — bug reports, feature requests, documentation improvements, and code contributions.

Code of conduct

By participating in this project you are expected to uphold our Code of Conduct. Please report unacceptable behaviour via a GitHub issue.

Reporting bugs

Open a new issue on GitHub Issues and include:

  • A clear description of the bug
  • Steps to reproduce
  • Engrams version (engrams --version)
  • Operating system and Python version
  • Relevant error messages or log output

Suggesting enhancements

Open a GitHub issue describing:

  • The proposed enhancement
  • The problem it solves or benefit it provides
  • Any design considerations

Development setup

1. Clone and install

git clone https://github.com/stevebrownlee/engrams.git
cd engrams-cli

# Build the project locally
cargo build

2. Run tests

cargo test

3. Code style

# Format code
cargo fmt

# Run linter
cargo clippy

Pull request workflow

  1. Fork the repository
  2. Create a branch: git checkout -b feature/my-feature
  3. Make your changes and add tests
  4. Ensure all tests pass and code style is clean
  5. Push to your fork and open a PR against main
  6. Provide a clear description of your changes

Documentation improvements

Documentation lives in docs/src/pages/ as Astro .astro files. To preview locally:

cd docs
npm install
npm run dev

Licensing

By contributing you agree that your contributions will be licensed under the Apache-2.0 License.