Ein technologischer Neuanfang für Shelly
Mit der Veröffentlichung von Version 3.0.0 vollzieht das Paketverwaltungswerkzeug Shelly einen bedeutenden technologischen Wandel. Die Entwickler haben sich dazu entschieden, die bisherige Codebasis, die auf C# und dem .NET-Framework basierte, weitgehend durch die Programmiersprache Zig zu ersetzen. Dieser Schritt betrifft sowohl die grafische Benutzeroberfläche als auch die Kommandozeilenwerkzeuge und die Schlüsselverwaltung.
Das Ziel dieses Umbaus ist eine schlankere und direktere Anbindung an das Betriebssystem. Da Shelly für die Verwaltung von Arch-Paketen auf native Bibliotheken wie libalpm, GTK4 und libarchive angewiesen ist, entfällt durch den Wechsel zu Zig die bisher notwendige .NET-Interop-Schicht. Dies ermöglicht eine direktere Kommunikation mit den Systemkomponenten und verspricht eine robustere sowie wartungsfreundlichere Softwarearchitektur, da Zig eine explizite Speicherverwaltung und klar definierte Lebenszyklen für Ressourcen bietet.
Überarbeitete Benutzeroberfläche und erweiterte Funktionen
Die grafische Anwendung von Shelly wurde ebenfalls vollständig in Zig neu implementiert. Nutzer profitieren von einer modernen GTK4-Oberfläche, die weiterhin zwischen Listen- und Rasteransichten wählen lässt. Zu den funktionalen Erweiterungen gehören sortierbare Spalten und verbesserte Filteroptionen, die das Management installierter Pakete erleichtern sollen.
Besonders im Bereich des Arch User Repository (AUR) gibt es nennenswerte Neuerungen:
* **PKGBUILD-Transparenz:** Vor dem Bau eines Pakets können Nutzer nun gesammelt alle Änderungen an den PKGBUILD-Dateien einsehen.
* **Detaillierte Informationen:** Die Oberfläche bietet nun tiefere Einblicke in Abhängigkeiten und Paketquellen.
* **Stabile Performance:** Die Fortschrittsanzeige wurde optimiert, um auch bei langwierigen Transaktionen ein Blockieren der grafischen Oberfläche zu verhindern.
* **Wartungs-Dashboard:** Eine neue Seite für Dienstprogramme bündelt Aufgaben wie die Cache-Bereinigung, das Entfernen verwaister Pakete und die Synchronisierung von Datenbanken.
Modulare Architektur und Flatpak-Auslagerung
Ein zentraler Aspekt der neuen Architektur ist die Modularisierung. Die Unterstützung für Flatpaks wurde in ein separates Paket namens `shelly-flatpak-backend` ausgelagert. Nutzer, die ausschließlich auf Pacman, das AUR oder AppImages setzen, müssen somit keine Abhängigkeiten wie `libflatpak` oder `GLib/GIO` mehr mitführen. Das Hauptprogramm kommuniziert über eine definierte Application Binary Interface (ABI) mit diesem Zusatzmodul. Sollte das Backend fehlen, bleiben die Kernfunktionen von Shelly uneingeschränkt nutzbar, wobei das Programm bei fehlenden Voraussetzungen für Flatpak-Befehle entsprechende Hinweise gibt.
Optimierte Kommandozeile für Power-User
Auch die CLI wurde grundlegend überarbeitet. Sie unterstützt weiterhin sowohl ausgeschriebene Befehle als auch die von Pacman bekannten Kurzoptionen. Ein einheitlicher Befehlskatalog sorgt für eine konsistente Dokumentation und verbesserte Shell-Vervollständigungen, die nun neben Fish und Zsh auch für Bash verfügbar sind.
Für automatisierte Prozesse und Skripte bleibt die strukturierte JSON-Ausgabe erhalten. Da sich die Standardausgabe durch den Umbau der Codebasis verändert haben kann, empfiehlt es sich für Anwender, ihre Skripte auf die neue CLI-Hilfe hin zu prüfen und bevorzugt auf das JSON-Format umzustellen. Während AUR-Builds in einem sauberen Chroot weiterhin über die Kommandozeile möglich sind, ist diese Option in der grafischen Oberfläche vorerst nicht implementiert.
Die Umstellung auf Zig stellt die Weichen für eine performantere Zukunft von Shelly. Auch wenn konkrete Messwerte zu Startzeiten und zum Ressourcenverbrauch noch ausstehen, deutet die Architektur auf eine effizientere Nutzung der Systemressourcen hin.