Files
bearwave/CONTRIBUTING.md
Sebastian Palencsar 1c736b97a6 Fix playback, API races, tray, MPRIS, and search UX; add tests
- Correct history/resume next-previous context and list index resync after reload
- Abort stale RadioBrowser requests and suppress error banners when cache satisfies loads
- Reset local search filter on page changes and debounce compact-mode API search
- Move system tray to C++ (QSystemTrayIcon) for reliable Wayland context menus
- Harden MPRIS registration and metadata updates for Plasma media widgets
- Add playback and API race unit tests
- Drop unused KF6 Kirigami, I18n, and CoreAddons build dependencies
- Update packaging docs, CI, and PKGBUILD to match Qt-only requirements
2026-06-20 14:06:48 +02:00

1.6 KiB

Contributing to BearWave

BearWave is a KDE-focused desktop internet radio app built with C++/Qt 6, QML, and QtMultimedia.

The project favors:

  • stability over feature churn
  • minimal dependencies
  • readable, conservative code
  • Plasma-friendly desktop behavior

Before You Contribute

  • Check existing issues before opening a new one.
  • Prefer focused pull requests over broad refactors.
  • Keep behavior predictable for desktop users.
  • Avoid adding dependencies unless there is a clear payoff.

Local Setup

Build from the repository root:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j"$(nproc)"

Optional local install:

cmake --install build --prefix "$HOME/.local"

If you changed QML:

qmllint src/qml/Main.qml

Change Guidelines

  • Follow the existing style in each file.
  • Keep changes minimal and scoped.
  • Do not block the UI thread.
  • Keep network operations asynchronous.
  • Preserve MPRIS behavior and user state compatibility.
  • When changing resources, register them in src/qml.qrc.

Manual Checks

Please smoke-test the area you changed when possible:

  • app launches successfully
  • station list loads
  • search and filtering behave correctly
  • play/pause/stop work
  • favorites persist across restart
  • resume restores last station and volume
  • tray and MPRIS behavior still work

Pull Requests

Useful pull requests usually include:

  • a short description of the user-visible change
  • any relevant screenshots for UI changes
  • exact verification commands that were run
  • known limitations or follow-up work