Files
btd700linux/CONTRIBUTING.md
T
Justin dd0809e877
Tests / unit (de, 3.10) (push) Has been cancelled
Tests / unit (de, 3.14) (push) Has been cancelled
Tests / unit (en, 3.14) (push) Has been cancelled
Tests / unit (en, 3.10) (push) Has been cancelled
Add English localization and MIT-licensed public release documentation
2026-09-05 21:02:14 +02:00

62 lines
2.8 KiB
Markdown

# Contributing
This is an experimental, AI-developed project. Independent review and real-world
compatibility reports are particularly useful. English and German contributions
are welcome.
## Report a problem
Open a [GitHub issue](https://github.com/justin-eckenweber/btd700linux/issues) with:
- Distribution, desktop environment and application version/commit.
- BTD 700 firmware version and headphone model/firmware, if known.
- The steps you took, what you expected, and what actually happened.
- Whether the issue also occurs in `./run.sh --demo`.
- Relevant terminal output after removing private information.
Do not post broadcast passwords, Bluetooth/device identifiers, original vendor
executables or firmware images. `devices` includes a serial number: redact it.
The regular `status` output excludes passwords, but its broadcast name can still
contain personal information. Never say a hardware write is tested if it was
only simulated.
## Make a change
1. Fork the repository and create a focused branch.
2. Keep firmware download, update and bootloader functionality out of scope.
3. Preserve the control-report allowlist and validate input before writing to USB.
4. Keep blocking USB operations off the GTK main loop.
5. Add a meaningful regression test for protocol or behavior changes.
6. Run the checks below and explain what was tested in your pull request.
```bash
BTD700_LANGUAGE=en python3 -m unittest discover -s tests -v
BTD700_LANGUAGE=de python3 -m unittest discover -s tests -v
# Optional, with GTK libraries and a working desktop tray:
BTD700_LANGUAGE=en python3 tools/check_gui.py
BTD700_LANGUAGE=de python3 tools/check_gui.py
```
The GUI test uses a simulated device and D-Bus menu events, not the real USB dongle.
Hardware tests must be deliberate: the optional `tools/check_hardware.py --run`
changes settings and can interrupt audio. Do not add it to unattended CI.
## Translations and screenshots
`btd700/i18n.py` contains the English/German catalog. German source strings are
retained from the first version. Use `tr()` for user-facing messages; preserve
format placeholders and keep numeric protocol values independent of translation.
The CLI accepts `--language en|de`; `BTD700_LANGUAGE` also controls test runs.
Regenerate genuine English screenshots with `python3 tools/capture_screenshots.py`.
The helper uses demo data and writes to `docs/screenshots/`. Inspect the resulting
images before committing them. Do not substitute generated mockups for screenshots.
## Licensing and AI disclosure
Contributions are accepted under this project's MIT license. Do not submit code
or assets you are not permitted to share. Explain any AI-generated portions of
substantial contributions and review them before submission. The project's
AI-development and no-warranty notices remain part of its public documentation.