44 lines
1.3 KiB
Markdown
44 lines
1.3 KiB
Markdown
|
|
# Development Workflow
|
||
|
|
|
||
|
|
This page defines the expected local workflow before opening a pull request.
|
||
|
|
|
||
|
|
## 1) Fork and create a focused branch
|
||
|
|
|
||
|
|
- Fork the repository to your own GitHub account
|
||
|
|
- Clone your fork locally and add the upstream repository if needed
|
||
|
|
|
||
|
|
- Branch from `master`
|
||
|
|
- Keep each PR focused on one fix or feature area
|
||
|
|
|
||
|
|
## 2) Implement with scope in mind
|
||
|
|
|
||
|
|
- Confirm your idea is in project scope: [SCOPE.md](../../SCOPE.md)
|
||
|
|
- Prefer incremental changes over broad refactors
|
||
|
|
|
||
|
|
## 3) Run local checks
|
||
|
|
|
||
|
|
```sh
|
||
|
|
./bin/clang-format-fix
|
||
|
|
pio check --fail-on-defect low --fail-on-defect medium --fail-on-defect high
|
||
|
|
pio run
|
||
|
|
```
|
||
|
|
|
||
|
|
CI enforces formatting, static analysis, and build checks.
|
||
|
|
Use clang-format 21+ locally to match CI.
|
||
|
|
If `clang-format` is missing or too old locally, see [Getting Started](./getting-started.md).
|
||
|
|
|
||
|
|
## 4) Open the PR
|
||
|
|
|
||
|
|
- Use a semantic title (example: `fix: avoid crash when opening malformed epub`)
|
||
|
|
- Fill out `.github/PULL_REQUEST_TEMPLATE.md`
|
||
|
|
- Describe the problem, approach, and any tradeoffs
|
||
|
|
- Include reproduction and verification steps for bug fixes
|
||
|
|
|
||
|
|
## 5) Review etiquette
|
||
|
|
|
||
|
|
- Be explicit and concise in responses
|
||
|
|
- Keep discussions technical and respectful
|
||
|
|
- Assume good intent and focus on code-level feedback
|
||
|
|
|
||
|
|
For community expectations, see [GOVERNANCE.md](../../GOVERNANCE.md).
|