# Contributing to spotatui Thanks for your interest in spotatui! ๐Ÿ’š We welcome all kinds of contributions, not just code. ## Ways to Contribute ### ๐Ÿ› Report Bugs Found something broken? [Open an issue](https://github.com/LargeModGames/spotatui/issues/new) with: - What you expected vs what happened - Steps to reproduce - Your OS and spotatui version ### ๐Ÿ’ก Suggest Features Have an idea? Start a [Discussion](https://github.com/LargeModGames/spotatui/discussions) or open an issue. We love hearing what would make spotatui better for you. ### ๐Ÿ“– Improve Documentation - Fix typos or unclear instructions - Add examples or clarify setup steps - Translate docs (we'd love to support more languages!) The wiki is included as a submodule in `spotatui.wiki/`. To contribute: ```bash git clone --recurse-submodules https://github.com/LargeModGames/spotatui.git # Make your changes in spotatui.wiki/ # Then commit and open a PR ``` ### ๐ŸŽจ Create Themes Love customization? Add a new theme preset! Check out `src/user_config/theme.rs` for examples. ### ๐Ÿงช Test on Your Setup - Try pre-releases and report issues - Test on unusual setups (BSD, WSL, specific distros) - Verify audio works with different backends ### โญ Spread the Word - Star the repo - Share spotatui with music lovers - Write about your experience --- ## Code Contributions ### Ground Rules - Be kind and follow our [Code of Conduct](CODE_OF_CONDUCT.md) - Open an issue first for new features or larger refactors - Keep PRs focused and scoped for easier review ### Getting Set Up 1. Install a recent stable Rust toolchain (`rustup` recommended) 2. Install platform dependencies from [Development](README.md#development): - OpenSSL - `xorg-dev` (Linux; clipboard support) - PipeWire dev libraries (Linux; audio visualization) - `portaudio` via Homebrew (macOS) 3. Clone your fork and create a topic branch from `main` Run locally: ```bash cargo run ``` Slim build (no audio/streaming): ```bash cargo run --no-default-features --features telemetry ``` ### Before Opening a PR Run these checks (same as CI): ```bash cargo fmt --all cargo clippy --no-default-features --features telemetry -- -D warnings cargo test --no-default-features --features telemetry ``` ### PR Tips - Add/adjust tests when changing behavior - Update `README.md` and `CHANGELOG.md` for user-facing changes - Include screenshots for UI changes - Keep commits logical; squashing welcome but not required --- ## Recognition We use [all-contributors](https://allcontributors.org/) to recognize everyone who helpsโ€”code or not! After your contribution is merged, the maintainer will add you to the contributors list. ## Questions? Start a [Discussion](https://github.com/LargeModGames/spotatui/discussions) or ping us in an issue. We're happy to help!