Contribuer
Vous pouvez aider Tune en signalant les bogues, en proposant des correctifs ou en écrivant des extensions. Cette page explique comment faire, et ce que permet la licence.
Signaler un bogue
- Depuis Tune : Support, en bas de la barre latérale. C'est le plus simple, car le rapport emporte les diagnostics et les journaux récents du serveur. Voir Envoyer un rapport depuis Tune.
- Sur le forum : pour décrire un problème, poser une question ou vérifier si d'autres l'ont déjà rencontré.
- Sur GitHub, si vous avez un compte : les issues du dépôt
renesenses/tune-server-rustpour le serveur, et derenesenses/tune-web-clientpour l'interface web.
Un bon rapport indique :
- la version de Tune (Réglages › Système › À propos) et le système (Windows, macOS, Linux, Docker, Tune OS) ;
- l'appareil de lecture concerné (DAC local, renderer DLNA, AirPlay, Chromecast…) ;
- ce que vous avez fait, ce que vous attendiez et ce qui s'est passé ;
- si possible, le diagnostic (Réglages › Système › Santé du serveur › Télécharger le diagnostic).
Une issue GitHub est publique : relisez ce que vous y joignez.
Signaler un problème de sécurité
N'ouvrez pas d'issue publique pour un problème de sécurité. Écrivez en privé à Mozaik Labs, à l'adresse de contact indiquée dans le fichier LICENSE du dépôt.
Proposer un correctif
Compiler et tester
Le serveur s'écrit en Rust (édition 2024). Il faut donc une chaîne d'outils Rust récente.
git clone https://github.com/renesenses/tune-server-rust.git
cd tune-server-rust
# Compiler le serveur
cargo build --release --package tune-server
# Le lancer sur un dossier de musique
TUNE_PORT=8888 \
TUNE_MUSIC_DIRS='["/chemin/vers/la/musique"]' \
TUNE_AUTO_SCAN=true \
./target/release/tune-server
# Vérifier, tester, journal détaillé
cargo check --workspace
cargo test --workspace
TUNE_LOG_LEVEL=debug cargo run --package tune-server
Ouvrez ensuite http://localhost:8888. Certaines fonctions sont des options de compilation : par exemple postgres (PostgreSQL), asio (Windows) ou plugins-wasm (extensions WebAssembly). Elles sont déclarées dans tune-server/Cargo.toml.
Avant d'ouvrir une pull request
- Le code doit passer
cargo fmt --all -- --check. L'intégration continue vérifie aussi les tests et les avertissements de correction de Clippy. - Montrez que votre test protège bien le correctif : retirez le correctif, le test doit échouer ; remettez-le, le test doit passer.
- Ne visez pas
main: une pull request vise la branche de la version en préparation (rc/vX.Y.Z) ou le lotbatch/…indiqué dans l'issue. - Ne changez pas le numéro de version.
- Remplissez le modèle de pull request : l'issue concernée, le changement, les tests que vous avez lancés, et ce que la pull request ne traite pas.
Écrire une extension
- Traitement du son : avec le kit du dossier
sdk/.cargo tune-plugin newcrée le projet à partir d'un modèle (dsp,batch,equalizer,crossfeed,converter,declick) ;check,testetdevle vérifient sur de vrais fichiers WAV ;packproduit le paquet.tuneplugin. Une signature est obligatoire pour l'installer. - Nouvelle fonction : une extension WebAssembly, avec un
manifest.jsonet unmain.wasm. Le contrat entre Tune et l'extension est décrit dansdocs/plugins/PLUGIN_ABI_RFC.md. - Nouvelle sortie audio : la caisse
tune-output-apifournit le traitOutputTarget.
Voir Architecture pour la différence entre ces systèmes.
Licence
Le code de Tune est public, sous Business Source License 1.1 (BSL 1.1). Ce résumé est donné à titre d'information. Ce n'est pas un conseil juridique : seul le fichier LICENSE du dépôt fait foi.
Ce que la licence permet sans licence commerciale
- l'usage personnel et non commercial, par exemple écouter sa musique chez soi ;
- l'évaluation et les tests ;
- l'usage académique et éducatif ;
- contribuer à Tune : rapports de bogues, correctifs, documentation ;
- écrire des critiques, des articles ou des billets sur Tune.
La BSL donne aussi le droit de copier le code, de le modifier, d'en créer des œuvres dérivées, de le redistribuer, et d'en faire un usage hors production.
Ce qui demande une licence commerciale
L'usage de Tune dans un produit ou un service commercial, notamment son intégration, en tout ou partie, dans un matériel ou un logiciel vendu, loué ou distribué à des tiers. Ce cas demande une licence séparée de Mozaik Labs.
À savoir aussi
- Chaque version de Tune passe sous licence Apache 2.0 quatre ans après sa publication.
- Toute copie, modifiée ou non, doit reproduire la licence de façon visible.
- La licence ne donne aucun droit sur les marques ni sur les logos.
- Le logiciel est fourni « en l'état », sans garantie.
- Un usage contraire à la licence met fin aux droits qu'elle accorde, pour toutes les versions.