Tune by Mozaiklabs

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-rust pour le serveur, et de renesenses/tune-web-client pour 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 lot batch/… 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 new crée le projet à partir d'un modèle (dsp, batch, equalizer, crossfeed, converter, declick) ; check, test et dev le vérifient sur de vrais fichiers WAV ; pack produit le paquet .tuneplugin. Une signature est obligatoire pour l'installer.
  • Nouvelle fonction : une extension WebAssembly, avec un manifest.json et un main.wasm. Le contrat entre Tune et l'extension est décrit dans docs/plugins/PLUGIN_ABI_RFC.md.
  • Nouvelle sortie audio : la caisse tune-output-api fournit le trait OutputTarget.

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.

Voir aussi