Diese Woche war es mal wieder soweit und ich bin auf den Entwicklungszweig der kommenden Version 4.6 der KDE Plattform, KDE Plasma und KDE Anwendungen umgestiegen. Normalerweise wechsel ich erst zum ersten Beta Release, jedoch wurde der Wechsel bereits nun erforderlich. Auf Grund der schlechten Erfahrungen des letzten Entwicklungszyklus, hatte ich mein Entwicklungsmodell angepasst und hatte unter Plasma 4.5 immer den Fenstermanager KWin in der Entwicklungsversion (plus persönliche Anpassungen) eingesetzt. Ich hoffe dass dies hilft Probleme früher zu bemerken, als wenn die Nutzer mit dem Beta Release die ersten Tester sind.
Um KWin "trunk" fahren zu können, darf KWin natürlich keine Abhängigkeiten auf andere Komponenten aus trunk haben. Das einzige Problem war dabei bisher die Fensterdekoration Oxygen, welche mit dem Widget Style zusammen eine gemeinsame Bibliothek in kdebase/workspace hat. Da diese sich verändert, zerstört das eine Übersetzung (ich sage als immer, dass ich ein reicher Mann wäre, wenn ich für jedes Mal wenn mein KWin trunk nicht kompiliert wegen Oxygen, einen Cent bekäme). Meine Lösung war Oxygen einfach in der Build Datei zu deaktivieren. KWin lädt dann einfach Oxygen von 4.5 (dank binärkompatibilität der Fensterdekorationen möglich) und das Problem ist umschifft. Und ich bin stolz, dass ich mehrere Monate entwickelt habe ohne jemals Oxygen durch ein git commit -a && git svn dcommit deaktiviert zu haben 😉
Letztes Wochenende wurden nun Änderungen für die "Activities" eingespielt, welche auch eine weitere trunk-Abhängigkeit haben. Da diese Änderungen nicht mit einem Kommentar in CMakeLists rückgängig gemacht werden können, stand ich vor einem kleinen Problem: zurück auf 4.5 und test Account zur Entwicklung oder kompletter Wechsel. Das ganze verbunden mit dem Zeitdruck des aufkommenden Feature Freeze. Also einmal trunk neu durchkompiliert und auf 4.6 als primärer System gewechselt. Hat mich leider einen Abend gekostet, an dem ich eigentlich noch wichtige Features für 4.6 einbauen wollte 🙁
Für mich war es das erste mal seit Wochen, dass ich 4.6 neugebaut habe und es war für mich auch spannend, zu sehen woran die anderen Entwickler gearbeitet hatten und noch erfreulicher war, festzustellen, dass man nach Änderungen regelrecht suchen muss. Ein klares Zeichen dafür, dass KDE Plasma mittlerweile sehr ausgereift ist und die größten Änderungen weiter unten im Stack sind – so wie die Optimierungen in KWin.
Sehr erfreulich ist auch bereits die Stabilität von 4.6. Bisher ist mir noch keine Anwendung abgestürzt, obwohl wir gerade in der Phase sind, die wohl die instabilste überhaupt ist: zwischen soft feature freeze und hard feature freeze. Der klassische Zeitraum für "it compiles, ship it". Ich freue mich, dass wir in 4.6 den Nutzern wohl ein noch besseres Produkt liefern werden können als wir bereits in 4.5 konnten.
=-=-=-=-=
Powered by Blogilo
Erst wenn das System immer stabil ist zum Entwickeln, entwickelt sich das System. Wenn das Entwicklungssystem nicht stabil ist, stielt es die Zeit seiner wichtigsten Nutzer. Stabile Umgebungen und Software, die man kennt, haben eigentlich immer Testsuites, heute mit Virtualisierung ist das alles gar kein Ding mehr eine immer-stabil Politik für Trunk durchzusetzen. Nach jedem Commit ein make auf vielen Architekturen und Test-runs ist kein prinzipielles Problem mehr. Wenn Dein Commit ein Problem macht, dann weisst du das frühzeitig.