Thank you for your interest in contributing to FlutterProbe! This guide explains how to get involved.
Open an issue on GitHub Issues with:
- A clear, descriptive title
- Steps to reproduce the problem
- Expected vs actual behavior
- FlutterProbe version (
probe --version), OS, Flutter version - Relevant
.probefile snippets or error output
- Fork the repository on GitHub
- Branch from
main— use a descriptive name (e.g.,fix/token-timeout,feat/swipe-direction) - Develop your changes following the code style guidelines below
- Test your changes (see Testing section)
- Submit a PR against
mainwith a clear description of what and why
Keep PRs focused on a single concern. If you have multiple unrelated changes, submit separate PRs.
- Go: Run
gofmt(orgoimports) on all.gofiles before committing. Follow standard Go conventions. - Dart: Run
dart format .in theprobe_agent/directory. Follow Effective Dart guidelines. - ProbeScript: Use consistent 2-space indentation in
.probefiles.
All commits must include a Developer Certificate of Origin sign-off line:
Signed-off-by: Your Name <[email protected]>
Add this automatically with:
git commit -s -m "Your commit message"This certifies that you wrote or have the right to submit the code under the project's license.
Before submitting a PR, run the full test suite:
make test # Go unit tests
cd probe_agent && flutter test # Dart agent testsFor converter changes:
make test-convert # Converter unit tests
make test-convert-integration # Golden files + lint + dry-runEnsure all tests pass and no regressions are introduced.
If your change affects the ProbeScript language (new syntax, modified parsing):
- Update the parser in
internal/parser/ - Add or update parser tests covering the new syntax
- Add
.probetest files intests/demonstrating the new feature - Update golden files if converter output changes (
make update-golden) - Run
make lintto verify all.probefiles still parse correctly
If you are unsure about anything, open an issue to discuss before starting work. We are happy to help guide contributions.