Contributing Guide

February 15, 2026 · View on GitHub

Getting Started

  1. Fork the repository
  2. Create a feature branch from master (feat/xxx, fix/xxx, refactor/xxx)
  3. Make your changes
  4. Verify the build: bash tasks.sh --enable-cmake --build
  5. 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, but Android.mk requires 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.