2 Stimmen

SCM für CMS

Ich habe Probleme mit der Abdeckung aller Probleme mit Software Configuration Management auf einem CMS (speziell Joomla!). Ich schreibe benutzerdefinierte Vorlagen, natürlich, aber auch benutzerdefinierte Module und Komponenten. Diese Websites und Anwendungen sind für Kunden, nicht intern.

Ich möchte nicht nur den Code der Vorlagen und Komponenten, sondern auch die Konfiguration der Website versionieren, denn ich möchte, dass sie so schnell wie möglich für Korrekturen oder die Übergabe an jemand anderen bereit ist. Im Moment bedeutet das, dass ich eine vollständige Joomla!-Installation für jede Website in SVN speichere, einschließlich der installierten Versionen von Komponenten und Vorlagen, und dass ich tatsächliche Datenbankexporte speichere. Für Komponenten bewahre ich auch die "verpackte" Version des Codes auf (siehe unten). Für die Vorlagen mache ich mir normalerweise keine Mühe, da man sie einfach in die Joomla!

Das Problem mit dieser Einrichtung, die ich derzeit debattieren ist in benutzerdefinierten Komponente Entwicklung. In Joomla! (und den meisten anderen CMS) werden Erweiterungen in der Regel mit einem Web-Installer bereitgestellt - man kann (zumindest anfangs) die Dateien nicht einfach in einem bestimmten Ordner ablegen, da DB-Änderungen erforderlich sind. Das Joomla!-Installationssystem sorgt für DB- und Dateimigration mit Installations- und Deinstallationshaken, so dass es ein ziemlich vernünftiges System für die Bereitstellung ist.

Im Moment bin ich entweder: 1) direkt an der installierten Komponente arbeiten, indem ich Dateien hinzufüge und ändere und sie dann manuell in die gepackte Version der Komponente kopiere, oder 2) ich arbeite an der paketierten Komponente und benutze das Installationsprogramm, um die Ergebnisse zu sehen. Diese Option dauert in der Regel einfach zu lange, hat aber den Vorteil, dass der Code "releasefähig" bleibt, insbesondere im Hinblick auf DB-Migrationen.

In beiden Fällen werden die Änderungen vor dem Einchecken in beide Versionen der Dateien dupliziert, und diese Duplizierung scheint mir ein Geruch zu sein.

Und, macht das sonst noch jemand? Gibt es bessere Möglichkeiten?

2voto

VonC Punkte 1117238

"1/" sollte "irgendwie" heißen

Das Wort "Paketierung" bedeutet, dass Sie nicht eine, sondern zwei "Komponenten" (Dateisätze) versionieren

  • eine "Entwicklungs"-Komponente: recht umfangreich, mit allen Dateien, die Sie benötigen
  • eine "distrib"-Komponente: recht klein, mit ein paar komprimierten Dateien darin.

Sie beinhaltet:

  • eine automatische Methode zur Erstellung und Versionierung dieser Verteilungskomponente (durch Komprimierung und Speicherung dieser Dateien)
  • eine automatische Möglichkeit, diese Distributionskomponente (die die komprimierte Version Ihrer Paketversion darstellt) zu kopieren, zu dekomprimieren und mit der Test- oder Produktionsplattform zu synchronisieren.

Auf diese Weise "duplizieren" Sie nicht einfach nur Änderungen, sondern behalten eine vollständige Konfiguration im Auge:

  • bereit, auf einer anderen Plattform eingesetzt zu werden
  • oder zum Synchronisieren eines aktuell bereitgestellten Pakets verwendet.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X