Contribuer à PluginUI
English version: CONTRIBUTING.md
Merci de votre intérêt ! Les signalements de bogues, questions, idées et demandes de fusion (pull requests) sont les bienvenus.
Signaler un problème
Ouvrez un ticket avec :
- ce que vous avez fait, ce que vous attendiez et ce qui s'est passé (une capture d'écran aide pour un problème de dessin) ;
- la version de Windows, la mise à l'échelle (DPI), le DAW et sa version pour un problème de plugin ;
- le plus petit code ou design
.pluginuiqui montre le problème, si possible.
Obtenir les sources
git clone https://github.com/asm8086/PluginUI.git
NPlug vient de son paquet NuGet (NPlug, référencé par src/PluginUI.NPlug ; les tests et l'outil de validation
utilisent NPlug.Validator) : il n'y a rien d'autre à récupérer.
Compiler et tester
Prérequis : Windows 10 1809 ou ultérieur, le SDK .NET 10, Visual Studio 2026 (avec la charge de travail
Développement Desktop en C++ pour publier en NativeAOT). Les bibliothèques et les tests compilent et s'exécutent
aussi sous Linux et macOS (EnableWindowsTargeting), ce que fait une partie de l'intégration continue.
dotnet build PluginUI.slnx -c Release
dotnet test PluginUI.slnx -c Release
Autres commandes utiles :
| Commande | Rôle |
|---|---|
dotnet run --project samples/PluginUI.Gallery |
Tous les éléments dans une fenêtre (-- --lang fr en français) |
dotnet run --project tools/PluginUIEditor |
Le concepteur visuel |
dotnet tool restore puis dotnet docfx docfx/docfx.json --serve |
Le site de documentation |
pwsh build/Build-Release.ps1 |
Les paquets de version, comme les produit le workflow de publication (Windows) |
Conventions
Langue : identifiants, commentaires et documentation XML en anglais. Les guides existent en anglais et en français (
X.mdetX_FR.md) : mettez les deux à jour, ou indiquez dans la demande de fusion lequel reste à traduire.Entête des fichiers : chaque fichier source commence par un commentaire donnant la date de sa dernière révision (
yyyy/MM/dd HH:mm:ss UTC) et le nom du projet, suivi des lignes SPDX :// 2026/10/18 16:20:00 UTC - PluginUI // SPDX-FileCopyrightText: 2026 asm8086 // SPDX-License-Identifier: MITAucune dépendance à la culture : les nombres sont formatés et lus avec la culture invariante (CA1304 / CA1305 sont des erreurs). Une virgule décimale n'est jamais affichée ni acceptée.
NativeAOT : les bibliothèques compilent avec les analyseurs AOT et trimming, avertissements traités comme des erreurs. Pas de réflexion invisible pour le trimmer, pas de sérialiseur
System.Text.Jsonpar réflexion.API publique : chaque membre public a sa documentation XML, écrite pour ses utilisateurs.
Temps réel : le code appelé depuis le thread audio n'alloue rien, ne prend aucun verrou et ne bloque pas.
Contrôles : suivez les conventions de conception d'EXTENDING_FR.md pour qu'ils fonctionnent dans le concepteur visuel.
Tests : ajoutez ou mettez à jour les tests de
tests/avec la modification. Les tests n'ouvrent aucune fenêtre ; ils pilotent l'hôte parUIHost.Dispatch….Captures : quand une modification se voit, régénérez les captures de la galerie (voir le README, section Galerie).
Modifications de NPlug
Les corrections de NPlug vont dans son dépôt (xoofx/NPlug). Une fois publiées sur
NuGet, la version de NPlug est relevée dans src/PluginUI.NPlug/PluginUI.NPlug.csproj (et celle de NPlug.Validator
dans les tests et dans build/ValidatePlugin).
Demandes de fusion
- Forkez le dépôt et créez une branche à partir de
main. - Gardez la modification ciblée ; décrivez ce qu'elle fait et comment vous l'avez testée.
- Vérifiez que
dotnet build(sans avertissement) etdotnet testpassent ; l'intégration continue les lance sous Linux et Windows. - Ajoutez une ligne dans la section Unreleased de CHANGELOG.md pour un changement visible des utilisateurs.
En contribuant, vous acceptez que vos contributions soient publiées sous licence MIT.
Publication des versions
Les mainteneurs publient une version en poussant une étiquette vX.Y.Z. Le workflow de publication compile et teste
tout, crée le bundle VST3 de l'instrument de démonstration pour x64 (x86-64-v3 et x86-64-v2) et ARM64, les paquets de
PluginUIEditor et de la galerie, pousse les paquets NuGet (quand la variable de dépôt PUBLISH_NUGET vaut true et que la publication de confiance est configurée sur nuget.org) et publie la version GitHub.