First, thank you for contributing to Iggy! The goal of this document is to provide everything you need to start contributing to Iggy. The following TOC is sorted progressively, starting with the basics and expanding into more specifics.
All changes must be made in a branch and submitted as pull requests. Iggy does not adopt any type of branch naming style, but please use something descriptive of your changes.
Once your changes are ready you must submit your branch as a pull request.
The pull request title must follow the format outlined in the conventional commits spec. Conventional commits is a standardized format for commit messages. Iggy only requires this format for commits on the master branch. And because Iggy squashes commits before merging branches, this means that only the pull request title must conform to this format.
The following are all good examples of pull request titles:
fix(ci): add Cross.toml for CI builds chore(repo): add ASF license header to all the files refactor(server): remove redundant sha1 print chore(docs): add contributing guide refactor(server): remove redundant sha1 print
All pull requests should be reviewed by at least two Iggy committers.
All pull requests are squash merged. We generally discourage large pull requests that are over 300–500 lines of diff. If you would like to propose a change that is larger, we suggest coming onto our Discussions and discussing it with us. This way we can talk through the solution and discuss if a change that large is even needed! This will produce a quicker response to the change and likely produce code that aligns better with our process.
Currently, Iggy uses GitHub Actions to run tests. The workflows are defined in .github/workflows.
Iggy is primarily a Rust project. To build Iggy, you will need to set up Rust development first. We highly recommend using rustup for the setup process.
For Linux or macOS, use the following command:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
For Windows, download rustup-init.exe from the Windows installer instead.
Rustup will read Iggy‘s Cargo.toml and set up everything else automatically. To ensure that everything works correctly, run cargo version under Iggy’s root directory:
$ cargo version cargo 1.86.0 (adf9b6ad1 2025-02-28)
See Quick Start