Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 40 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,34 @@
# Contributing to Apache Iggy

## System Dependencies

The server crates depend on `hwlocality` (hwloc bindings).
On non-`musl` targets, install the system `hwloc` development package before building.

Common install commands:

```bash
# Ubuntu / Debian
sudo apt-get update && sudo apt-get install -y libhwloc-dev pkg-config

# Fedora / RHEL / CentOS
sudo dnf install -y hwloc-devel pkgconf-pkg-config

# Arch Linux
sudo pacman -S --needed hwloc pkgconf

# macOS (Homebrew)
brew install hwloc pkg-config
```

For `musl` targets, `hwlocality` is built with vendored support in this repository.

## Issue First

Every new PR that introduces new functionality must link to an approved issue.
PRs without one may be closed at maintainer's discretion.

1. Create an issue or comment under existing
1. Create an issue or comment on an existing one
2. Wait for maintainer approval (`good-first-issue` label or comment)
- Maintainer may request for more details or a different approach
3. Then code
Expand Down Expand Up @@ -72,6 +95,21 @@ cargo install prek
prek install
```

Dependencies used by pre-commit hooks:

- Common:
- `shellcheck`
- `markdownlint` (`markdownlint-cli`)
- `taplo` (`taplo-cli`)
- `typos` (`typos-cli`)
- `cargo-sort`
- `cargo-license`
- Version/release hooks:
- `yq` (required by `scripts/extract-version.sh`)

Additional hooks are triggered by changed files (for example Python/Node/Go/Java/.NET/Helm paths) and may require extra toolchains.
If a hook fails due to a missing tool, install the dependency shown in the hook output and rerun pre-commit.

## Code Style

### Comments: WHY, Not WHAT
Expand Down Expand Up @@ -108,7 +146,7 @@ PRs may be closed if:

- Maintainer feels like proxy between maintainer and LLM
- No approved issue or no approval from a maintainer
- Code not ran and tested locally
- Code not run and tested locally
- Mixed purposes or purposes not clear
- Can't answer questions about the change
- Inactivity for longer than 7 days
Expand Down
Loading