- Ajout d'une méthode de travail structurée pour éviter le 'vibe programming' - Version bump à 0.3.30 - Correction de chrono dans pmocontrol Cargo.toml (suppression d'optional) - Dans MusicRenderer : utilisation de dc:date pour calibrer track_start_time sur la diffusion réelle des flux continus - Ajout d'une fonction parse_rfc3339_to_system_time - Dans pmoradiofrance : remplacement de la durée dynamique (temps restant) par une durée fixe calculée à partir des bornes start_time/end_time, et ajout de start_time dans les métadonnées DIDL via dc:date - Correction du calcul de l'élément 'now playing' dans PullResponse pour utiliser les bornes temporelles exactes - Mise à jour de version.txt
1.5 KiB
1.5 KiB
PMOMusic Project Configuration
Version Control
Ce projet utilise Jujutsu (jj) pour le contrôle de version, PAS git.
- Utiliser les commandes
jjau lieu des commandesgit - Bookmark principal :
main - Ne jamais suggérer de commandes git
Environnement
Le PATH et les variables d'environnement sont configurés dans .claude-env à la racine du projet.
Configuration de l'application
- Fichier de configuration principal :
.pmomusic/config.yaml - Configuration UPNP personnalisable pour différencier les instances en développement
Développement
Pendant le développement, plusieurs serveurs PMOMusic peuvent tourner en parallèle. Utiliser la configuration UPNP dans .pmomusic/config.yaml pour différencier les instances :
host:
upnp:
manufacturer: "PMOMusic-Dev1"
udn_prefix: "pmomusic-dev1"
model_name_prefix: "PMOMusic-Dev1"
friendly_name_prefix: "PMOMusic-Dev1"
Méthode de travail
Avant de modifier quoi que ce soit sur une fonctionnalité non triviale :
- Lire et comprendre le flux complet des données concernées, de bout en bout
- Identifier précisément où ça casse et pourquoi
- Faire une seule modification ciblée
Ne pas avancer par tâtonnements ("vibe programming") — cela produit des allers-retours, des bugs introduits puis annulés, et du code inutilement compliqué.
Architecture
- Projet Rust multi-crates avec workspaces
- Crates principales : pmoupnp, pmomediaserver, pmomediarenderer, pmoconfig
- Pattern d'extension de configuration via traits (voir pmocache/src/config_ext.rs)