Zum Inhalt springen

PatchPub: Zentrale Verwaltung und Anwendung von Composer-Patches für PHP-Projekte

Entwickler brauchen eigene Fixes in fremden Composer-Paketen, ohne sie zu forken. PatchPub verwaltet diese Patches zentral und prüft sie bei neuen Paket-Versionen.

LaravelAPIPerformanceLaravel LivewireGitCloudflare R2

Entwickler müssen eigene Fixes oder Features auf Drittanbieter-Pakete anwenden können, unabhängig davon, ob diese bereits upstream gemerged wurden, und ohne die Abhängigkeit zu forken. PatchPub ist eine Laravel-basierte Plattform, die Patches für PHP-Composer-Pakete zentral verwaltet und anwendet: effizient, nachvollziehbar und versionssicher. Mit Funktionen wie Regex-Patching, Git-Diff-Vorschauen und dem Import von GitHub Pull Requests schliesst die Plattform eine wichtige Lücke im Composer-Ökosystem.

Kernfunktionen und Architektur

Technische Basis

  • Laravel + Laravel Livewire: Die Admin- und Benutzeroberflächen sind mit Livewire umgesetzt und bieten eine reaktive, nahtlose Browser-Erfahrung.
  • SQLite für blitzschnellen Datenzugriff: Interne Datenabfragen sind mit SQLite auf Geschwindigkeit optimiert, ideal für leichtgewichtige und mittelgrosse Patch-Management-Workflows.
  • Cloudflare R2: Alle relevanten Patch-Daten und Dateiversionen werden in Cloudflare R2 gespeichert, für maximale Zuverlässigkeit und Unabhängigkeit von der App-Infrastruktur.

Leistungsfähige Patch-Funktionen

Flexible Bearbeitungsoptionen für beliebige Dateien (inkl. composer.json):

  • Einfaches Suchen und Ersetzen von Text
  • Regex-basierte Ersetzungen
  • Klassische Diff-Patch-Anwendung
  • Vollständiger Dateiaustausch
  • Verkettung mehrerer Operationen in definierter Reihenfolge

Automatisiertes Patch-Management

  • GitHub-PR-Import: Öffentliche GitHub Pull Requests lassen sich direkt als Patches in PatchPub übernehmen.
  • Vorschau per git diff: Ein vollständiger visueller Diff vor dem Anwenden von Änderungen sorgt für Transparenz und Kontrolle.
  • Validierung von Änderungen: Alle Operationen werden vorab validiert, um fehlerhafte Patch-Anwendungen zu verhindern.
  • Asynchrone Hintergrundverarbeitung (Queues): Patch-Anwendungen und Updates, insbesondere bei neuen Versionen von Abhängigkeiten, laufen im Hintergrund, sodass die Benutzeroberfläche jederzeit reaktionsschnell bleibt.

Benachrichtigungen und Monitoring

Automatische E-Mail-Benachrichtigungen informieren Benutzer, wenn Patches aufgrund inkompatibler Änderungen in neuen Versionen fehlschlagen (z. B. bei veränderten Quelldateien). So kann proaktiv auf veraltete oder defekte Patches reagiert werden.

Anwendungsfälle

  • Anwendung eigener Bugfixes oder Features auf Drittanbieter-Pakete
  • Temporäre Hotfixes, ohne Abhängigkeiten forken zu müssen
  • Wiederverwendbare Patch-Sets für Teams oder Organisationen
  • Automatische Patch-Updates bei neuen Versionen
  • E-Mail-Benachrichtigungen bei fehlgeschlagenen Patches

Technologien in diesem Projekt

Passende LeistungWebapplikation entwickeln mit Laravel & TYPO3