Wie kann man bei Lidarr beitragen?
Ein ausführlicheres «How to Contribute»

Wer gerne beim Open-Source-Projekt Lidarr mitmachen möchte, der wird sicher schon die offizielle Wiki-Seite und den Abschnitt “Lidarr Contributing” gefunden haben. Leider ist deren Anleitung nur sehr oberflächlich und lässt entscheidende Punkt aus.

Hier folgt eine ausführlichere Variante, in der die wirklich wichtigen Schritte erklärt werden.

Wichtig ist die grundsätzliche Unterscheidung ob man beim sogenannten Backend mit entwickeln will oder beim Frontend (oder bei beiden).
Das Backend ist in C# programmiert und enthält die ganze Logik die “hinten rum” abläuft.
Das Frontend ist all das, was man im Browser sieht und bedient, also z.B. die Farben, Formen, Buttons, Eingabefelder. Das Frontend ist in HTML und Javascript programmiert.

Fangen wir mit dem einfacheren Teil, der Backend-Entwicklung an.

Was braucht man um im Lidarr-Backend Veränderungen vorzunehmen?

Um den C#-Code bearbeiten und ausführbar kompilieren zu können, braucht man eine Entwicklungsumgebung (eine sogenannte IDE). Ein bekanntes Beispiel dafür ist das «Microsoft Visual Studio». Das bekommt man in der Community-Edition kostenlos direkt beim Hersteller: https://visualstudio.microsoft.com/de/downloads/

Nach der Grundinstallation wählt man im «Visual Studio Installer» einen sogenannten “Workload”. Das ist eine vorgewählte Sammlung von Tools, Einstellungen und Abhängigkeiten. Für die Entwicklung von Lidarr wählen wir hier “.NET-Desktopentwicklung”:

Diese Einstellung kann man im «Visual Studio Installer» nachträglich jederzeit anpassen.

Ausserhalb des Visual Studios lädt man sich von Github im Projekt Lidarr den kompletten Source-Code von Lidarr herunter.
(Wer jetzt einwendet, dass man das doch direkt und integriert aus dem Visual Studio heraus machen kann: Mit diesem Wissen wird man kaum diese Anleitung lesen…)
Dazu klickt man auf den sogenannten Branch “develop” (oder ändert den Eintrag auf die “Verzweigung” mit diesem Namen), dann auf den grünen Button “Code” und daraus zuunterst auf “Download ZIP”:

Dieses heruntergeladene ZIP-File (rund 41 MB) entpackt man, z.B. direkt in das Standard-Code-Verzeichnis für Visual C# unter %USERPROFILE%\Documents\Visual Studio 2022\Code Snippets\Visual C#. Das entpackte ZIP-Archiv sollte ungefähr so aussehen:

Dieses Bild hat ein leeres Alt-Attribut. Der Dateiname ist image-2-518x1024.png

Dann klickt man in diesem lokalen Source-Code-Verzeichnis auf das Unterverzeichnis \src und darin auf Lidarr.sln. Das lädt einem sämtliche benötigten Backend-Teile ins Visual Studio. Um nun z.B. die Windows-Variante kompilieren zu können – ohne auch nur die geringste Änderung am Code vorgenommen zu haben – wechselt man im gestarteten “Visual Studio 2022” die Projektmappen-Plattform von «Posix» auf «Windows» und das Startprojekt von «Lidarr.API.v1» auf «Lidarr». Beim allerersten Laden der 25 Teilprojekte, dauert das vollautomatische nachladen von fehlenden NuGet-Paketen mehrere Minuten. Bitte warten bis unten in der Taskleiste keine solchen Einträge mehr durchlaufen:

Bei einer komplett neuen Visual Studio–Installation wird das .NET 6.0-Zielframework fehlen:

Deshalb auf das blaue Wort “Installieren” klicken und den Abschluss der Installation abwarten. Meistens muss man dazu das Visual Studio selber schliessen, damit der separat gestartete «Visual Studio Installer» das Zielframework herunterladen und konfigurieren kann:

Nach Abschluss der Zielframework-Installation kann man nun das neu ins Visual Studio geladene Projekt Lidarr.sln wie gewohnt über den grossen grünen Debug-Button (=F5) starten.

Nach etwa einer halben Minuten Kompilierungszeit landet man aber leider frustriert auf dem Boden der Realität: Es geht zwar ein Browser auf, aber darin sieht man nur eine lapidare 404-Fehlermeldung:

404 not found Fehlermeldung wegen nicht bereitgestelltem Frontend

Das Backend versucht hier nämlich das sichtbare Frontend im lokalen Browser aufzurufen. Dieses Frontend wurde aber noch gar nicht bereitgestellt.

Das erledigen wir im aufwändigeren zweiten Teil dieser Anleitung.

Rate this post

Schreibe einen Kommentar