Erklärung der Reviewprozesse im TYPO3-Core und hilfreiche Tipps zum Erstellen und Einsenden von Patches.
Vortrag auf dem TYPO3camp Munich 2010
http://www.typo3camp-munich.com
Official typo3.org infrastructure & the TYPO3 Server Admin Team
Eigene Änderungen in den TYPO3-Kern bringen
1. knipseline / pixelio.de
TYPO3-Camp München - 11./12. September 2010 Inspiring people to
Änderungen in den TYPO3-Kern bringen share
2. Eigene Änderungen in den
TYPO3-Kern bringen
Steffen Gebert <steffen@steffen-gebert.de>
TYPO3-Camp München - 11./12. September 2010
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
3. Einführung
Vorstellung
Steffen Gebert
Student, Freelancer
TYPO3 Core Team Member
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
4. Fehler passieren... auch bei TYPO3
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
5. Einführung
Bug-Report verfassen
detaillierte Problembeschreibung
wo tritt der Fehler auf?
was wird erwartet?
was passiert stattdessen?
Screenshot?
relevante Konfigurationseinstellungen?
eben wie man sich selbst Fehlerbeschreibungen wünscht.. ;-)
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
6. Einführung
Bug Report - und was dann?
gemeldete Fehler sind gut
beseitigte Fehler noch besser :)
leider mangelnde Resourcen, daher häufig nicht bearbeitet
niemand *muss* Bugs fixen
Ziel
Fehler selbst lösen
In nächstes Release bringen
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
7. Einführung
Instrumente
Bug Tracker
http://bugs.typo3.org
Core-Team Mailingliste (typo3.teams.core)
news://lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-team-core
Subversion Repository
https://svn.typo3.org/TYPO3v4/Core/
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
8. Einführung
Workflow
Report Patch Reviews Commit
Bug Tracker Core Team Liste SVN Repository
Release
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
9. Einen Patch erstellen
Patch erstellen
über SVN-Repository gegen typo3_src-Verzeichnis
nicht diff typo3_src-alt/ typo3_src-gepatcht/
Einspielen mit patch -p0 -i 12345.diff
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
10. Einen Patch erstellen
Kommandozeile
Repository auschecken
svn checkout https://svn.typo3.org/TYPO3v4/Core/trunk .
Änderung durchführen
Änderungen betrachten
svn diff
Patch erstellen
svn diff > bugnummer.diff
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
13. Einen Patch erstellen
TYPO3 Coding Guidelines
Extension doc_core_cgl
Patches müssen den CGLs entsprechen
ein paar Auszüge
Einrückungen per Tabs, keine Spaces
keine Whitespaces am Zeilenende
Tipp: Whitespaces in IDE anzeigen lassen
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
14. Einen Patch erstellen
TYPO3 Coding Guidelines
Leerzeichen
Tabs
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
15. Einen Patch erstellen
TYPO3 Coding Guidelines
Uppercase Booleans
String-Vergleiche mit ===
nur geänderte Zeilen an CGL anpassen
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
16. Senden an die Core-Liste
Bug Tracker aktualisieren
Patch anhängen
Tag “pending in core list” hinzufügen
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
17. Senden an die Core-Liste
Die Core Team Mailingliste/Newsgroup
seit ca. 2 Jahren offen für jeden
jeder darf Reviewen und Patches senden
Mailinglisten-Regeln
Requests for Comments (RFCs)
angelehnt an Internetstandards der IETF
vorgegebenes Nachrichtenformat auf der Core-Liste
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
18. Senden an die Core-Liste
Requests for Comments
Betreff: RFC #BUGNUMMER: BUGTITEL
“This is a SVN patch request.”
Type: Bugfix / Feature / Code cleanup
Bug Tracker Link Text
Branches
Patch im Anhang
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
19. Senden an die Core-Liste
RFC: Branches
Zweige für jeweilige Major-Version
(Verzeichnis branches/)
Aktueller Entwicklungszweig: trunk/
Ggf. getrennte Patches für unterschiedliche
Branches mitschicken
Neue Features *nur* für trunk
Nur Bugfixes für veröffentlichte Versionen
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
20. Senden an die Core-Liste
RFC: Beschreibung und Lösung
Problem
Problembeschreibung: Alle nötigen Details, aber nicht zu viel Text!
Solution
Erklärung der Änderung
sehr
empfehlenswert!
Optional: Note
Hinweise, ausführliche Erklärung, How to reproduce, Step by step
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
21. Senden an die Core-Liste
Votings
Andere Programmierer müssen Änderung absegnen
Durchsicht des
Zustimmung durch Vergabe von “+1”
Quellcodes
by reading by testing
Fehler beseitigt
Core Team
+1 +1 UND keine
Mitglied
neuen Probleme
beliebiger
+1 +1
Reviewer
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
22. Senden an die Core-Liste
Reviews & Votings
häufig Aufforderung zur Überarbeitung
überarbeiteten Patch formlos in Antwort senden
Aus diesem Grund: Patch nicht nur im Bug Tracker anhängen,
sondern selbst an die Liste senden, um bei Rückfragen reagieren
zu können
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
23. Senden an die Core-Liste
Keine Reaktion..?
nicht jeder Patch wird sofort begutachtet
Beschreibung verständlich?
“How to reproduce” vorhanden?
REMINDER nach 7 Tagen Schweigen erlaubt
Kontaktnetzwerk aufbauen, potenzielle Reviewer ansprechen
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
24. Senden an die Core-Liste
Committed to..
Nach erfolgreichem Review - Bearbeitung durch Kernentwickler
Aktualisierung ChangeLog
Einpflegen in Subversion Repository
Schließen des Bug Reports
Hinweis im Mailinglistenthread
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
25. Senden an die Core-Liste
Bug Days
Probleme bei der Lösungsfindung?
Unterstützung durch erfahrene Entwickler
Versuch, neue Entwickler an die Core-Arbeit heranzuführen
Immer letzter Freitag im Monat
http://wiki.typo3.org/wiki/BugDay
irc://irc.freenode.net/#typo3-bugday
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
26. Schattenseiten...
Core Liste ist unübersichtlich
große Anzahl Mails
viel Diskussion
nicht erkennbar, ob schon comitted
Feedback von mir erwartet?
Patches hin- und herschicken
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
27. Git & Gerrit
Git und Gerrit
Git
Ablösung von Subversion
verteilte Versionskontrolle
Gerrit
Review-Server
Webinterface
von Google für Android-Entwicklung entwickelt, genutzt u.a.
bei Eclipse-Entwicklung
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
28. Git & Gerrit
Git und Gerrit
FLOW3/Phoenix-Team nutzt Git/Gerrit seit aktuellem Sprint-Release
zur T3CON Veröffentlichung des Sprint-Releases
Core Team Meeting, vermutlich mit Bericht über Erfahrungen
Wunsch: Einführung auch für TYPO3 v4 (nach 4.5-Release?)
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
29. Git & Gerrit
Gerrit
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
30. Git & Gerrit
Gerrit Branches
Patch-
versionen
reading
testing
Git-checkout
Befehl
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
31. Git & Gerrit
Gerrit
Commit auf Klick
vernünftige Diff-Ansicht
zeilengenaues Kommentieren
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
32. Weblinks
Bug Tracker
http://bugs.typo3.org
Core-Team Mailingliste (typo3.teams.core)
news://lists.typo3.org
Core Mailinglist Rules
http://typo3.org/teams/core/core-mailinglist-rules/
TYPO3 Coding Guidelines
http://typo3.org/documentation/document-library/core-
documentation/doc_core_cgl/current/
Artikel auf typo3blogger.de
http://typo3blogger.de/ab-in-den-core/
SVN Repository
https://svn.typo3.org/TYPO3v4/Core/
Inspiring people to
Änderungen in den TYPO3-Kern bringen share
33. ?????
??
?
??
??
?
Inspiring people to
Änderungen in den TYPO3-Kern bringen share