Thank you for your interest in contributing to libsonare! We welcome contributions from the community.
- Fork the repository
- Create a feature branch
git checkout -b feature/your-feature-name
- Make your changes
- Test your changes
make test - Commit your changes
git commit -m "feat: your feature description" - Push to your fork
git push origin feature/your-feature-name
- Open a Pull Request
- Tests: Ensure all tests pass (
make test) - Description: Clearly describe what your PR does and why
- One feature per PR: Keep changes focused and atomic
Only requirement: Tests must pass
make test # This is the only required checkCI also runs formatting checks, but these are not blocking:
- Formatting (clang-format): Runs in CI, warnings only
If there are style issues, the maintainer will fix them. You don't need to worry about formatting.
Quick start:
# Build project
make build
# Run tests
make test
# Format code (optional)
make formatFor WebAssembly build:
source /path/to/emsdk/emsdk_env.sh
emcmake cmake -B build-wasm -DBUILD_WASM=ON -DCMAKE_BUILD_TYPE=Release
cmake --build build-wasm --parallel
# Output lands in bindings/wasm/dist/For the published npm binding (@libraz/libsonare):
cd bindings/wasm
yarn install --immutable
yarn build # runs emcmake + tsc
yarn test # Vitest against built dist/- C++17 (no C++20 features)
- Comments in English
- Match librosa defaults where applicable (sr=22050, n_fft=2048, hop_length=512)
- Check if the issue already exists
- Provide clear reproduction steps
- Include relevant logs and system information
Feel free to open an issue for questions or discussions.
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.