From 3f217f7b9b02a2b7fc041378d14a946f583fd78a Mon Sep 17 00:00:00 2001 From: StandingMan Date: Mon, 20 Apr 2026 19:06:11 +0800 Subject: [PATCH 1/2] docs: add hwloc and pkg-config installation prerequisites by OS Signed-off-by: StandingMan --- CONTRIBUTING.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a10060c659..6a8487fc62 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,6 +32,29 @@ These require design discussion in the issue before coding: Authors of PRs must run the code locally. "Relying on CI" is not acceptable. +### 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. + ### Single Purpose One PR = one thing. Bug fix, refactor, feature - separate PRs. Mixed PRs will be closed. From a20403b1bf8327c3173a896aa293edf675c57efa Mon Sep 17 00:00:00 2001 From: StandingMan Date: Thu, 23 Apr 2026 09:01:57 +0800 Subject: [PATCH 2/2] docs: add documentation for dependencies used by pre-commit hooks Signed-off-by: StandingMan --- CONTRIBUTING.md | 65 ++++++++++++++++++++++++++++++------------------- 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6a8487fc62..b3344f9f5e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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 @@ -32,29 +55,6 @@ These require design discussion in the issue before coding: Authors of PRs must run the code locally. "Relying on CI" is not acceptable. -### 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. - ### Single Purpose One PR = one thing. Bug fix, refactor, feature - separate PRs. Mixed PRs will be closed. @@ -95,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 @@ -131,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