Skip to content

Latest commit

Β 

History

History
121 lines (86 loc) Β· 3.49 KB

CONTRIBUTING.md

File metadata and controls

121 lines (86 loc) Β· 3.49 KB

Clone the repository

git clone https://github.com/hyperpolymath/dotmatrix-fileprinter.git cd dotmatrix-fileprinter

Using Guix (recommended for reproducibility)

guix develop

Or using toolbox/distrobox

toolbox create dotmatrix-fileprinter-dev toolbox enter dotmatrix-fileprinter-dev

Install dependencies manually

Verify setup

just check # or: cargo check / mix compile / etc. just test # Run test suite

Repository Structure

dotmatrix-fileprinter/
β”œβ”€β”€ src/ # Source code (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

Reporting Bugs

**Before reporting**:
1. Search existing issues
2. Check if it's already fixed in `main`
3. Determine which perimeter the bug affects

**When reporting**:

Use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.md) and include:

- Clear, descriptive title
- Environment details (OS, versions, toolchain)
- Steps to reproduce
- Expected vs actual behaviour
- Logs, screenshots, or minimal reproduction

Suggesting Features

**Before suggesting**:
1. Check the [roadmap](ROADMAP.md) if available
2. Search existing issues and discussions
3. Consider which perimeter the feature belongs to

**When suggesting**:

Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) and include:

- Problem statement (what pain point does this solve?)
- Proposed solution
- Alternatives considered
- Which perimeter this affects

Your First Contribution

Look for issues labelled:

- [`good first issue`](https://github.com/hyperpolymath/dotmatrix-fileprinter/labels/good%20first%20issue) β€” Simple Perimeter 3 tasks
- [`help wanted`](https://github.com/hyperpolymath/dotmatrix-fileprinter/labels/help%20wanted) β€” Community help needed
- [`documentation`](https://github.com/hyperpolymath/dotmatrix-fileprinter/labels/documentation) β€” Docs improvements
- [`perimeter-3`](https://github.com/hyperpolymath/dotmatrix-fileprinter/labels/perimeter-3) β€” Community sandbox scope

---

Development Workflow

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)

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]