diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 63da749..7f79073 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -20,7 +20,8 @@ See `META.scm` for governance principles. # Clone the repository -git clone cd bebop-ffi +git clone https://github.com/hyperpolymath/bebop-ffi.git +cd bebop-ffi # Using Guix (recommended for reproducibility) @@ -28,37 +29,51 @@ guix develop # Or using toolbox/distrobox -toolbox create bebop-v-ffi-dev toolbox enter bebop-v-ffi-dev \# Install -dependencies manually +toolbox create bebop-v-ffi-dev +toolbox enter bebop-v-ffi-dev +# Install dependencies manually # Verify setup -just check \# or: cargo check / mix compile / etc. just test \# Run test -suite - - - ### Repository Structure - -bebop-ffi/ ├── implementations/ \# Implementation code (Zig, Rust) -(Perimeter 1-2) ├── lib/ \# Library code (Perimeter 1-2) ├── extensions/ -\# Extensions (Perimeter 2) ├── plugins/ \# Plugins (Perimeter 2) ├── -tools/ \# Tooling (Perimeter 2) ├── docs/ \# Documentation (Perimeter 3) -│ ├── architecture/ \# ADRs, specs (Perimeter 2) │ └── proposals/ \# -RFCs (Perimeter 3) ├── examples/ \# Examples (Perimeter 3) ├── spec/ \# -Spec tests (Perimeter 3) ├── tests/ \# Test suite (Perimeter 2-3) ├── -.well-known/ \# Protocol files (Perimeter 1-3) ├── .github/ \# GitHub -config (Perimeter 1) │ ├── ISSUE_TEMPLATE/ │ └── workflows/ ├── -CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md \# This file ├── -GOVERNANCE.md ├── LICENSE ├── MAINTAINERS.md ├── README.adoc ├── -SECURITY.md ├── flake.guix \# Guix flake (Perimeter 1) └── Justfile \# -Task runner (Perimeter 1) - +just check # or: cargo check / mix compile / etc. +just test # Run test suite + +### Repository Structure + +```text +bebop-ffi/ +├── implementations/ # Implementation code (Zig, Rust) (Perimeter 1-2) +├── lib/ # Library code (Perimeter 1-2) +├── extensions/ # Extensions (Perimeter 2) +├── plugins/ # Plugins (Perimeter 2) +├── tools/ # Tooling (Perimeter 2) +├── docs/ # Documentation (Perimeter 3) +│ ├── architecture/ # ADRs, specs (Perimeter 2) +│ └── proposals/ # RFCs (Perimeter 3) +├── examples/ # Examples (Perimeter 3) +├── spec/ # Spec tests (Perimeter 3) +├── tests/ # Test suite (Perimeter 2-3) +├── .well-known/ # Protocol files (Perimeter 1-3) +├── .github/ # GitHub config (Perimeter 1) +│ ├── CONTRIBUTING.md # This file +│ ├── ISSUE_TEMPLATE/ +│ └── workflows/ +├── CHANGELOG.md +├── CODE_OF_CONDUCT.md +├── GOVERNANCE.md +├── LICENSE +├── MAINTAINERS.md +├── README.adoc +├── SECURITY.md +├── flake.guix # Guix flake (Perimeter 1) +└── Justfile # Task runner (Perimeter 1) +``` --- - ## How to Contribute +## How to Contribute - ### Reporting Bugs +### Reporting Bugs **Before reporting**: 1. Search existing issues @@ -75,7 +90,7 @@ Task runner (Perimeter 1) - Expected vs actual behaviour - Logs, screenshots, or minimal reproduction - ### Suggesting Features +### Suggesting Features **Before suggesting**: 1. Check the [roadmap](ROADMAP.md) if available @@ -91,7 +106,7 @@ Task runner (Perimeter 1) - Alternatives considered - Which perimeter this affects - ### Your First Contribution +### Your First Contribution Look for issues labelled: @@ -102,22 +117,25 @@ Task runner (Perimeter 1) --- - ## Development Workflow +## Development Workflow - ### Branch Naming +### Branch Naming -docs/short-description \# Documentation (P3) test/what-added \# Test -additions (P3) feat/short-description \# New features (P2) -fix/issue-number-description \# Bug fixes (P2) refactor/what-changed \# -Code improvements (P2) security/what-fixed \# Security fixes (P1-2) +docs/short-description # Documentation (P3) test/what-added # Test +additions (P3) feat/short-description # New features (P2) +fix/issue-number-description # Bug fixes (P2) refactor/what-changed # +Code improvements (P2) security/what-fixed # Security fixes (P1-2) - ### Commit Messages +### Commit Messages We follow [Conventional Commits](https://www.conventionalcommits.org/): -(): +type(scope): description + +Body: what changed and why. +Footer: issue reference, e.g. Closes #123 \[optional body\] \[optional footer\]