Skip to content

Latest commit

 

History

History
93 lines (69 loc) · 2.76 KB

File metadata and controls

93 lines (69 loc) · 2.76 KB

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 with:

  • What you expected vs what happened
  • Steps to reproduce
  • Your OS and spotatui version

💡 Suggest Features

Have an idea? Start a Discussion 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:

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
  • 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:
    • 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:

cargo run

Slim build (no audio/streaming):

cargo run --no-default-features --features telemetry

Before Opening a PR

Run these checks (same as CI):

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 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 or ping us in an issue. We're happy to help!