Skip to content

Latest commit

 

History

History
62 lines (41 loc) · 2.86 KB

PULL_REQUEST_TEMPLATE.md

File metadata and controls

62 lines (41 loc) · 2.86 KB

What and why

Tests

1. Unit tests

  • cargo test --workspace --all-features --locked, cargo clippy --workspace --all-targets --all-features --locked -- -D warnings and cargo fmt --check (per package) pass
  • New or changed behaviour / the fixed bug has a unit test:
  • No existing test removed, ignored or loosened
  • #[ignore] tests of the changed area run by hand:

2. Real-device regression

  • Device, iOS version, host (Linux / macOS):
  • tests/device/run.py default steps pass on this branch (exit code 0)
  • The same steps on main or the latest release, same device, for comparison; no step clearly slower, or why:
  • Steps exercising this change:
  • Longer run (WDA start-up/recovery, reconnecting, unlocking, live picture, timers):
  • Not needed: the change doesn't touch code that talks to a phone — why:
run.py output
this branch:

main / latest release:

3. Regression cases (docs/dev/regression-cases.md)

  • All cases still hold; device cases in the changed area re-run:
  • A newly fixed problem is added as a row:

4. Real-device proof of the fix or feature

  • Device, iOS version, host (Linux / macOS):
  • Bug fix: reproduced on main / the release, gone with this branch, same device and steps
  • Feature: exercised end to end (MCP tool, CLI command or Viewer action), including the error and edge cases it handles
  • Untested conditions (device kind, iOS version, orientation, host OS), if any:
  • Not applicable: no bug fix or feature (docs, CI, refactoring without behaviour change) — why:
Steps and results (before / after, output, log lines, screenshots)

Checklist

  • MCP tool names, parameters and default outputs stay compatible (docs/decisions.md D10)
  • New or changed dependencies are pinned to exact versions; vendor changes recorded in THIRD_PARTY.md
  • User-visible changes noted in CHANGELOG.md (and CHANGELOG.zh-CN.md if you can) under Unreleased
  • No private data in fixtures, screenshots, logs or the outputs above