|
| 1 | +<!-- |
| 2 | +SPDX-License-Identifier: CC-BY-SA-4.0 |
| 3 | +Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> |
| 4 | +--> |
| 5 | +# Getting started |
| 6 | +```bash |
| 7 | +git clone https://github.com/hyperpolymath/echidna.git |
| 8 | +cd echidna |
| 9 | + |
| 10 | +# Using mise (recommended: provision the pinned toolchain) |
| 11 | +mise install |
| 12 | + |
| 13 | +# Task runner (see Justfile) |
| 14 | +just --list # available tasks |
| 15 | +just check # verify setup / static checks |
| 16 | +just test # run the test suite |
| 17 | +``` |
| 18 | + |
| 19 | +--- |
| 20 | + |
| 21 | +## How to Contribute |
| 22 | + |
| 23 | +### Reporting Bugs |
| 24 | + |
| 25 | +**Before reporting**: |
| 26 | +1. Search existing issues |
| 27 | +2. Check if it's already fixed in `main` |
| 28 | +3. Determine which perimeter the bug affects |
| 29 | + |
| 30 | +**When reporting**: |
| 31 | + |
| 32 | +Use the [bug report template](.github/ISSUE_TEMPLATE/bug_report.md) and include: |
| 33 | + |
| 34 | +- Clear, descriptive title |
| 35 | +- Environment details (OS, versions, toolchain) |
| 36 | +- Steps to reproduce |
| 37 | +- Expected vs actual behaviour |
| 38 | +- Logs, screenshots, or minimal reproduction |
| 39 | + |
| 40 | +### Suggesting Features |
| 41 | + |
| 42 | +**Before suggesting**: |
| 43 | +1. Check the [roadmap](../docs/status/ROADMAP.adoc) if available |
| 44 | +2. Search existing issues and discussions |
| 45 | +3. Consider which perimeter the feature belongs to |
| 46 | + |
| 47 | +**When suggesting**: |
| 48 | + |
| 49 | +Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) and include: |
| 50 | + |
| 51 | +- Problem statement (what pain point does this solve?) |
| 52 | +- Proposed solution |
| 53 | +- Alternatives considered |
| 54 | +- Which perimeter this affects |
| 55 | + |
| 56 | +### Your First Contribution |
| 57 | + |
| 58 | +Look for issues labelled: |
| 59 | + |
| 60 | +- [`good first issue`](https://github.com/hyperpolymath/echidna/labels/good%20first%20issue) — Simple Perimeter 3 tasks |
| 61 | +- [`help wanted`](https://github.com/hyperpolymath/echidna/labels/help%20wanted) — Community help needed |
| 62 | +- [`documentation`](https://github.com/hyperpolymath/echidna/labels/documentation) — Docs improvements |
| 63 | +- [`perimeter-3`](https://github.com/hyperpolymath/echidna/labels/perimeter-3) — Community sandbox scope |
| 64 | + |
| 65 | +--- |
| 66 | + |
| 67 | +## Development Workflow |
| 68 | + |
| 69 | +### Branch Naming |
| 70 | +``` |
| 71 | +docs/short-description # Documentation (P3) |
| 72 | +test/what-added # Test additions (P3) |
| 73 | +feat/short-description # New features (P2) |
| 74 | +fix/issue-number-description # Bug fixes (P2) |
| 75 | +refactor/what-changed # Code improvements (P2) |
| 76 | +security/what-fixed # Security fixes (P1-2) |
| 77 | +``` |
| 78 | + |
| 79 | +### Commit Messages |
| 80 | + |
| 81 | +We follow [Conventional Commits](https://www.conventionalcommits.org/): |
| 82 | +``` |
| 83 | +<type>(<scope>): <description> |
| 84 | +
|
| 85 | +[optional body] |
| 86 | +
|
| 87 | +[optional footer] |
| 88 | +``` |
0 commit comments