Contributing Guide
February 15, 2026 · View on GitHub
Getting Started
- Fork the repository
- Create a feature branch from
master(feat/xxx,fix/xxx,refactor/xxx) - Make your changes
- Verify the build:
bash tasks.sh --enable-cmake --build - Submit a pull request to
master
Code Standards
- Use English for all code comments, commit messages, and PR descriptions
- Follow conventional-commit format:
feat:,fix:,refactor:,chore: - One logical change per commit
- Detailed code style rules are automatically applied by file path — see
.github/instructions/
Compatibility Rules
These are hard constraints for the public API:
- Do not change method signatures in
org.wysaid.nativePort.* - Do not change existing JNI function names
- Do not change existing filter rule string syntax
- New methods, filters, and syntax additions are welcome
Key Constraints
- FFmpeg/Video Module: All video-related code must be optional — verify builds work with
--disable-video-module - Dual Build: When adding native files, CMake auto-discovers via
GLOB_RECURSE, butAndroid.mkrequires explicit listing - Thread Safety: GL operations must run on the GL thread (
queueEvent(...)in Java)
See copilot-instructions.md for detailed project conventions.
CI
PRs trigger CI on three platforms (macOS, Ubuntu, Windows) with a reduced matrix. Merges to master run the full 16-combination matrix. Ensure all checks pass before requesting review.