|
1 | 1 | // SPDX-License-Identifier: PMPL-1.0-or-later |
2 | | -= Contributing Guide |
| 2 | += Clone the repository |
| 3 | +git clone https://github.com/hyperpolymath/robot-repo-automaton.git |
| 4 | +cd robot-repo-automaton |
3 | 5 |
|
4 | | -== Getting Started |
| 6 | += Using Nix (recommended for reproducibility) |
| 7 | +nix develop |
5 | 8 |
|
6 | | -1. Fork the repository |
7 | | -2. Create a feature branch from `main` |
8 | | -3. Sign off commits (`git commit -s`) |
9 | | -4. Submit a pull request |
| 9 | += Or using toolbox/distrobox |
| 10 | +toolbox create robot-repo-automaton-dev |
| 11 | +toolbox enter robot-repo-automaton-dev |
| 12 | += Install dependencies manually |
10 | 13 |
|
11 | | -== Commit Guidelines |
| 14 | += Verify setup |
| 15 | +just check # or: cargo check / mix compile / etc. |
| 16 | +just test # Run test suite |
| 17 | +[listing] |
| 18 | +---- |
12 | 19 |
|
13 | | -* Conventional commits: `type(scope): description` |
14 | | -* Sign all commits (DCO required) |
15 | | -* Atomic, focused commits |
| 20 | +### Repository Structure |
| 21 | +---- |
| 22 | +robot-repo-automaton/ |
| 23 | +├── src/ # Source code (Perimeter 1-2) |
| 24 | +├── lib/ # Library code (Perimeter 1-2) |
| 25 | +├── extensions/ # Extensions (Perimeter 2) |
| 26 | +├── plugins/ # Plugins (Perimeter 2) |
| 27 | +├── tools/ # Tooling (Perimeter 2) |
| 28 | +├── docs/ # Documentation (Perimeter 3) |
| 29 | +│ ├── architecture/ # ADRs, specs (Perimeter 2) |
| 30 | +│ └── proposals/ # RFCs (Perimeter 3) |
| 31 | +├── examples/ # Examples (Perimeter 3) |
| 32 | +├── spec/ # Spec tests (Perimeter 3) |
| 33 | +├── tests/ # Test suite (Perimeter 2-3) |
| 34 | +├── .well-known/ # Protocol files (Perimeter 1-3) |
| 35 | +├── .github/ # GitHub config (Perimeter 1) |
| 36 | +│ ├── ISSUE_TEMPLATE/ |
| 37 | +│ └── workflows/ |
| 38 | +├── CHANGELOG.md |
| 39 | +├── CODE_OF_CONDUCT.md |
| 40 | +├── CONTRIBUTING.md # This file |
| 41 | +├── GOVERNANCE.md |
| 42 | +├── LICENSE |
| 43 | +├── MAINTAINERS.md |
| 44 | +├── README.adoc |
| 45 | +├── SECURITY.md |
| 46 | +├── flake.nix # Nix flake (Perimeter 1) |
| 47 | +└── Justfile # Task runner (Perimeter 1) |
| 48 | +[listing] |
| 49 | +---- |
16 | 50 |
|
17 | | -== License |
| 51 | +--- |
18 | 52 |
|
19 | | -Contributions licensed under project license. |
| 53 | +## How to Contribute |
20 | 54 |
|
| 55 | +### Reporting Bugs |
| 56 | +
|
| 57 | +**Before reporting**: |
| 58 | +1. Search existing issues |
| 59 | +2. Check if it's already fixed in `main` |
| 60 | +3. Determine which perimeter the bug affects |
| 61 | +
|
| 62 | +**When reporting**: |
| 63 | +
|
| 64 | +Use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.md) and include: |
| 65 | +
|
| 66 | +- Clear, descriptive title |
| 67 | +- Environment details (OS, versions, toolchain) |
| 68 | +- Steps to reproduce |
| 69 | +- Expected vs actual behaviour |
| 70 | +- Logs, screenshots, or minimal reproduction |
| 71 | +
|
| 72 | +### Suggesting Features |
| 73 | +
|
| 74 | +**Before suggesting**: |
| 75 | +1. Check the [roadmap](ROADMAP.md) if available |
| 76 | +2. Search existing issues and discussions |
| 77 | +3. Consider which perimeter the feature belongs to |
| 78 | +
|
| 79 | +**When suggesting**: |
| 80 | +
|
| 81 | +Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) and include: |
| 82 | +
|
| 83 | +- Problem statement (what pain point does this solve?) |
| 84 | +- Proposed solution |
| 85 | +- Alternatives considered |
| 86 | +- Which perimeter this affects |
| 87 | +
|
| 88 | +### Your First Contribution |
| 89 | +
|
| 90 | +Look for issues labelled: |
| 91 | +
|
| 92 | +- [`good first issue`](https://github.com/hyperpolymath/robot-repo-automaton/labels/good%20first%20issue) — Simple Perimeter 3 tasks |
| 93 | +- [`help wanted`](https://github.com/hyperpolymath/robot-repo-automaton/labels/help%20wanted) — Community help needed |
| 94 | +- [`documentation`](https://github.com/hyperpolymath/robot-repo-automaton/labels/documentation) — Docs improvements |
| 95 | +- [`perimeter-3`](https://github.com/hyperpolymath/robot-repo-automaton/labels/perimeter-3) — Community sandbox scope |
| 96 | +
|
| 97 | +--- |
| 98 | +
|
| 99 | +## Development Workflow |
| 100 | +
|
| 101 | +### Branch Naming |
| 102 | +---- |
| 103 | +docs/short-description # Documentation (P3) |
| 104 | +test/what-added # Test additions (P3) |
| 105 | +feat/short-description # New features (P2) |
| 106 | +fix/issue-number-description # Bug fixes (P2) |
| 107 | +refactor/what-changed # Code improvements (P2) |
| 108 | +security/what-fixed # Security fixes (P1-2) |
| 109 | +[listing] |
| 110 | +---- |
| 111 | +
|
| 112 | +### Commit Messages |
| 113 | +
|
| 114 | +We follow [Conventional Commits](https://www.conventionalcommits.org/): |
| 115 | +---- |
| 116 | +<type>(<scope>): <description> |
| 117 | + |
| 118 | +[optional body] |
| 119 | + |
| 120 | +[optional footer] |
0 commit comments