- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Umgang mit neuen Elementen beim einem verteilten Entwicklungsszenario mit DevTools / GIT
Hallo zusammen,
derzeit sind wir dabei mit Hilfe der DevTools (fs-cli) und GIT einen Entwicklunsprozess mit mehrern Entwicklern zu etablieren.
Derzeit verfolgen wir folgenden Ansatz:
- Wir haben eine dreistufige Systemlandschaft (Dev, Qa und Produktivsystem).
- Auf dem Dev-CMS-Server befindet sich ein zentrales Entwicklunsprojekt ("Dev-Master")
- Jeder Entwickler hat auf dem Dev-CMS auรerdem ein eigenes Entwicklunsprojekt, in dem ausschlieรlich dieser Entwickler arbeitet.
- Jedes der Dev-Projekte hat einen eigenen Synchronisierungsordner, รผber den Ex/Importe des Templatestores mit Hilfe der DevTools abgewickelt werden.
- Jeder der Synchroniererungsordner ist auรerdem die Basis fรผr ein lokales GIT-Repositroy. Hierbei wird der .FirstSpirit ordner รผber .gitignore ignoriert.
- Diese lokalen GIT-Repositories sind mit einem zentralen Remote-Repository verbunden und sollen darรผber synchronisiert werden
- Auch die CMS Projekte in Qa und Produktivsystem sollen รผber GIT/DevTools die Templateรคnderungen erhalten.
Bei รnderungen an bestehenden Templates kรถnnen wir auf diese Weise die รnderungen bereits in das zentrale Entwicklunsprojekt transportieren, bei neuen Templates haben wir allerdings das Problem, dass diese nicht in andere Projekte importiert werden kรถnnen, da die Informationen innerhalb des .FirstSpirit Ordners fehlen, der ja nicht รผber GIT synchronisiert werden soll. Beim Transport in andere Systemebenen (Qa/Prod) werden wir ebenfalls dieses Problem haben.
Hat vielleicht schon jemand die gleiche Problematik gehabt oder Lรถsungsansรคtze dazu?
Viele Grรผรe,
Johannes
- Labels:
-
Developers
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Johannes,
ok, ihr habt da zwei unterschiedliche Anwendungsfรคlle:
1. Vergleich der aktuellen Unterschiede zwischen DEV / QA / PROD
2. Verteilte Entwicklung + รbertragung DEV -> QA -> PROD
Den ersten Fall benรถtigt ihr in der Form aber nicht mehr, wenn der zweite Fall vollstรคndig implementiert ist, korrekt?
Fรผr den ersten Fall finde ich euren Ansatz gar nicht so schlimm (alle nicht-fachlichen Dateien ignorieren). Allerdings lรคsst sich der zweite Fall nicht darauf aufsetzen.
Fรผr den zweiten Fall solltet ihr "auf der grรผnen Wiese" anfangen und beispielsweise euer aktuelles, zentrales Entwicklungsprojekt als Kopiervorlage fรผr die Entwickler nehmen. Den Stand des Entwicklungsprojekts wรผrde ich dann als initialen Stand auch ins git einchecken (develop).
Davon dann entsprechend Feature-Branches erstellen und diese auf den lokalen Entwicklungsprojekten importieren. Die kann man dann gut per Pull-Request zurรผck auf den develop-Branch mergen und so das zentrale Entwicklungsprojekt aktualisieren.
Dafรผr aber alles ausser des .FirstSpirit-Ordners aus eurer gitignore entfernen, sonst funktioniert das nicht. Es wird hierbei auch keine ID-Probleme geben.
Bitte lest euch auch die Doku durch, darin ist dieser Fall sehr gut beschrieben.
Bei Fragen zur Doku oder Verbesserungsvorschlรคgen gerne hier melden.
Ihr solltet auch nach Mรถglichkeit eure FirstSpirit-Server auf den aktuellen Release aktualisieren. Im Bereich External-Sync gibt es eigentlich fortlaufend Optimierungen (neue Features, Bugfixes).
Viele Grรผรe
Christian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Johannes,
welche FirstSpirit-Version setzt ihr ein? Seit 5.2R14 gibt es nur noch einen zentralen .FirstSpirit-Ordner, der dann auch nicht synchronisiert werden soll. Die "Meta"-Informationen zu den FirstSpirit-Objekten befinden sich allerdings nicht im .FirstSpirit-Ordner sondern in den FS_-Dateien, die neben den fachlichen Dateien der FirstSpirit-Objekte liegen und somit ebenfalls ins Git eingecheckt werden.
Hast du denn ein konkretes Problem festgestellt?
Viele Grรผรe
Christian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Christian,
dann liegt es bestimmt daran, dass wir noch folgende Files im .gitignore haben, da SIe Projektspezifische informationen (vorallem IDs) enthalten:
/.FirstSpirit/
**/FS_Info.txt
**/FS_References.txt
**/StoreElement.xml
Da wir git auch dazu verwenden wollen unsere รnderungen und Entwicklungen nachzuverfolgen. Wenn diese Files mit berรผcksichtigt werden, ist das fast nicht mรถglich. Da ja jedes Projekt zumindest eigene IDs verwendet, oder auch wenn verschiedene Sprachen vorhanden sind, wird beim Einchecken in das zentrale Repository nahezu รผberall eine รnderung erkannt. Was uns dabei interessiert sind ja allerdings nur die fachlich relevanten รnderungen und nicht irgendwelche technischen IDs.
Hat vielleicht jemand in diese RIchtung schon Erfahrungen gemacht?
Ist es auch wirklich unproblematisch die Files mit IDs/UUIDs bei einem Import des Templatestores von einem Quellprojekt in ein anderes Zielprojekt zu verwenden?
Viele Grรผรe,
Johannes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Johannes,
die Dateien
**/FS_Info.txt
**/FS_References.txt
**/StoreElement.xml
MรSSEN alle eingecheckt werden!
Bitte lest euch unbedingt die Dokumentation durch: โExternal Synchronizationโโ.
Wir sind sehr an Feedback interessiert und diskutieren jederzeit gerne eure Anforderungen aber ihr mรผsst die Funktion schon so einsetzen, wie sie von uns vorgesehen ist.
Da ja jedes Projekt zumindest eigene IDs verwendet, oder auch wenn verschiedene Sprachen vorhanden sind, wird beim Einchecken in das zentrale Repository nahezu รผberall eine รnderung erkannt.
In Entwicklungsprojekten sollte die Sprachmenge identisch sein. Welchen Grund gibt es, dass unterschiedliche Entwickler unterschiedliche Sprachen in ihren Projekten haben?
Projektspezifische IDs gibt es in den Export-Dateien nicht, daher gibt es auch die รnderungsproblematik nicht.
Habt ihr denn konkrete Probleme festgestellt?
Welche FirstSpirit-Version setzt ihr denn ein und welche Version des fs-cli?
Viele Grรผรe
Christian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Christian,
unser Haupt-Entwicklungsprojekt ist gleichzeitig ein Paketmaster fรผr Templates und Inhaltspakete. Es besitzt lediglich zwei technische Sprachkanรคle (deutsch & englisch) die als รbersetzungsquelle fรผr unterschiedliche Generierungssprachkanรคle gedacht sind (die nur in den Slaveprojekten vorhanden sind und dort befรผllt werden). Um neue Entwicklungen zu testen werden aber oft diese Generierungssprachkanรคle gebraucht, daher gibt es bzgl. der Sprachen einen Unterschied zwischen den Entwickler-Projekten und dem Haupt-Entwicklungsprojekt.
Wir wollten die DevTools zunรคchst verwenden, um Unterschide im Templatestore zwischen den Haupt/Master-Projekten unserer Systemebenen Dev/Qa/Prod festzustellen und damit unsere Transporte zwischen diesen EBenen (per Content Transport Feature) zu unterstรผtzen. Wir sind dabei so vorgegeangen:
Der Templatestore der drei Master-Projekte wurde per fs-cli exportiert und als GIT-Repository initialisiert sowie mit einem zentralen GIT Repository verbunden.
Jedes Projekt wurde in einen separaten Branch auf dem Remote GIT gepusht (dev/qa/master).
Der git diff zwischen zwei Branches zeigte die Unterschiede auf.
In diesem Zustand wurde fรผr jedes Template ein Unterschied festgestellt, da die IDs unterschiedlich waren. Um dann auf dieser Basis eine sinnvolle Vergleichbarkeit zu erreichen haben wir die .gitignore wie oben erwรคhnt erweitert.
Evtl. sind wir auch falsch an die Sache herangegangen? Wenn ja, wie mรผsste man das Vorgehen anpassen?
Unser finales Ziel ist wie erwรคhnt ein Transportwesen das ohne die Notwendigkeit zur manuellen Erzeugung von Transport Features auskommt und im wesentlichen auf Git merges / Pull-Requests zwischen Branches basiert.
FS Version: 5.2.1503
fs-cli: 2.1.603
Viele Grรผรe,
Johannes
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Johannes,
ok, ihr habt da zwei unterschiedliche Anwendungsfรคlle:
1. Vergleich der aktuellen Unterschiede zwischen DEV / QA / PROD
2. Verteilte Entwicklung + รbertragung DEV -> QA -> PROD
Den ersten Fall benรถtigt ihr in der Form aber nicht mehr, wenn der zweite Fall vollstรคndig implementiert ist, korrekt?
Fรผr den ersten Fall finde ich euren Ansatz gar nicht so schlimm (alle nicht-fachlichen Dateien ignorieren). Allerdings lรคsst sich der zweite Fall nicht darauf aufsetzen.
Fรผr den zweiten Fall solltet ihr "auf der grรผnen Wiese" anfangen und beispielsweise euer aktuelles, zentrales Entwicklungsprojekt als Kopiervorlage fรผr die Entwickler nehmen. Den Stand des Entwicklungsprojekts wรผrde ich dann als initialen Stand auch ins git einchecken (develop).
Davon dann entsprechend Feature-Branches erstellen und diese auf den lokalen Entwicklungsprojekten importieren. Die kann man dann gut per Pull-Request zurรผck auf den develop-Branch mergen und so das zentrale Entwicklungsprojekt aktualisieren.
Dafรผr aber alles ausser des .FirstSpirit-Ordners aus eurer gitignore entfernen, sonst funktioniert das nicht. Es wird hierbei auch keine ID-Probleme geben.
Bitte lest euch auch die Doku durch, darin ist dieser Fall sehr gut beschrieben.
Bei Fragen zur Doku oder Verbesserungsvorschlรคgen gerne hier melden.
Ihr solltet auch nach Mรถglichkeit eure FirstSpirit-Server auf den aktuellen Release aktualisieren. Im Bereich External-Sync gibt es eigentlich fortlaufend Optimierungen (neue Features, Bugfixes).
Viele Grรผรe
Christian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Ich hab das ganze Topic mal aus dem Off nach Developers geschoben ich denke dort ist es besser aufgehoben.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Johannes,
benรถtigst du noch weitere Hilfe oder konnten dir Christians Antworten bereits weiterhelfen? In diesem Fall wรคre es super, wenn du die "richtige Antwort" entsprechend markierst.
Viele Grรผรe
Michaela

