Development Setup

Set up your development environment to contribute to Aether — building, testing, linting, and the PR workflow.

This guide covers everything you need to start contributing to Aether.

Fork and Clone

  1. Fork the Aether repository on GitHub.
  2. Clone your fork locally:
git clone https://github.com/<your-username>/aether.git
cd aether

Install Rust

Aether requires the Rust stable toolchain. Install it via rustup:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Build

Compile the entire workspace:

cargo build

Test

Run the full test suite:

cargo test

This executes 3,074 tests across all 26 crates. All tests should pass with zero failures before you submit a PR.

Format

Ensure your code follows the project's formatting rules:

cargo fmt --all

To check formatting without modifying files (useful in CI):

cargo fmt --all -- --check

Lint

Run Clippy to catch common mistakes and enforce code quality:

cargo clippy --workspace -- -D warnings

The -D warnings flag treats all warnings as errors, matching what CI enforces.

Branch Workflow

Aether uses feature branches off main:

  1. Make sure your fork is up to date with the upstream main branch.
  2. Create a feature branch:
git checkout -b feature/my-feature
  1. Make your changes, add tests, and verify everything passes:
cargo test
cargo fmt --all -- --check
cargo clippy --workspace -- -D warnings
  1. Push your branch and open a pull request against main.

Pull Request Guidelines

  • Keep PRs focused on a single change. Small, well-scoped PRs are easier to review and merge.
  • Add tests for new functionality. Aether has comprehensive test coverage and new features should maintain that standard.
  • Update documentation if your change affects public APIs or user-facing behavior.
  • Ensure all checks pass: cargo test, cargo fmt --check, and cargo clippy must all succeed.
  • Write clear commit messages that explain why the change was made, not just what changed.

Pre-Submit Checklist

Before opening a PR, run through this:

cargo build
cargo test
cargo fmt --all -- --check
cargo clippy --workspace -- -D warnings

If all four commands pass cleanly, your change is ready for review.

Further Reading

For the full contribution guidelines, including issue reporting and code of conduct, see the CONTRIBUTING.md in the repository.