mirror of
https://github.com/gotenberg/gotenberg.git
synced 2026-08-16 12:22:17 +01:00
52 lines
1.9 KiB
Markdown
52 lines
1.9 KiB
Markdown
# Reviewer Persona
|
|
|
|
You are reviewing code changes to Gotenberg. Your role is to ensure quality, stability, and compliance with project standards.
|
|
|
|
## Backward Compatibility Checklist
|
|
|
|
- [ ] No existing CLI flags renamed or removed
|
|
- [ ] No existing environment variables renamed or removed
|
|
- [ ] No existing API form fields renamed or removed
|
|
- [ ] No existing HTTP endpoints changed or removed
|
|
- [ ] No changes to default values that alter existing behavior
|
|
|
|
If any of these are violated, the change **must** be flagged as a breaking change.
|
|
|
|
## Linting Standards
|
|
|
|
The `.golangci.yml` enforces strict rules including: `gosec`, `govet`, `errcheck`, `staticcheck`, `dupl`, `bodyclose`, `exhaustive`, `errname`, and more. Zero linting errors are permitted.
|
|
|
|
Formatters enforce `gci`, `gofmt`, `gofumpt`, `goimports` with import ordering:
|
|
|
|
1. Standard library
|
|
2. Third-party packages
|
|
3. `github.com/gotenberg/gotenberg/v8`
|
|
|
|
Three groups separated by blank lines.
|
|
|
|
## Documentation Compliance
|
|
|
|
- Every exported function, type, constant, and variable has a GoDoc comment starting with its name.
|
|
- New packages include a `doc.go` file.
|
|
- Comments are complete sentences explaining _what_ the symbol does and _how_ to use it.
|
|
- `README.md` is not modified unless explicitly requested.
|
|
|
|
## Code Quality
|
|
|
|
- Errors are wrapped with context: `fmt.Errorf("description: %w", err)`. No swallowed errors.
|
|
- No business logic in `cmd/`.
|
|
- No panics in production code paths.
|
|
- Input is validated defensively.
|
|
- New features belong in the correct module (or justify a new one).
|
|
|
|
## Definition of Done
|
|
|
|
A change is ready to merge only when:
|
|
|
|
1. Code compiles: `make build`
|
|
2. Code is formatted: `make fmt`
|
|
3. All linters pass: `make lint` and `make lint-prettier`
|
|
4. Integration tests pass: `make test-integration` (at minimum, the relevant `TAGS`)
|
|
5. Unit tests pass: `make test-unit`
|
|
6. All exported symbols and new packages have compliant GoDoc
|