entwicklung in open source projekten - mediawiki
Post on 05-Dec-2014
1.227 Views
Preview:
DESCRIPTION
TRANSCRIPT
12.12.2008 | MediaWiki | Johan Uhle
Entwicklung in Open-Source-Projekten am Beispiel MediaWiki
12.12.2008 von Johan Uhle
12.12.2008 | MediaWiki | Johan Uhle
Entwicklung in Open-Source-Projekten am Beispiel MediaWiki
Geschichte und RelevanzOrganisationTechnischer ÜberblickCodestrukturMein PatchSkalierung und Caching
12.12.2008 | MediaWiki | Johan Uhle
3
MediaWiki
12.12.2008 | MediaWiki | Johan Uhle
4
Geschichte
■ Für die Wikipedia entwickelt
■ Einsatz in Wikipedia seit Januar 2002
■ „Richtiger“ Release 1.1. Dezember 2003
■ Neuster Release: 1.13.2 2.Oktober.2008
■ Im Sinne der Wikipedia offen und zur Mitarbeit einladend
■ Lizensierung: GNU GPL 2
12.12.2008 | MediaWiki | Johan Uhle
5
Relevanz
■ Alle Wikimedia-Projekte benutzen es:
□ Wikipedia
□ Wikibooks
□ Wiktionary
□ Wikinews
■ zusätzlich noch interner Einsatz in Unternehmen
■ populärste Software für Wiki-Einsatz
12.12.2008 | MediaWiki | Johan Uhle
6
Organisation 1/3
■ www.mediawiki.org
■ Drei Bereiche:
□ Endbenutzer / Systemadministrator / Entwickler
■ Entwicklertools:
□ Bugzilla
□ Subversion (Webansicht mit ViewVC)
□ Doxygen
□ Mailinglist Wikitech-l + lokale Gruppen
12.12.2008 | MediaWiki | Johan Uhle
7
Organisation 2/3
■ IRC Channel #mediawiki auf irc.freenode.de >150 Teilnehmer
■ Bot, der neue SVN-Commits und Aktionen in Bugzilla werden im Channel ausgegeben
■ 174 SVN-Commiter (gezählt!)
12.12.2008 | MediaWiki | Johan Uhle
8
Organisation 2/3
■ IRC Channel #mediawiki auf irc.freenode.de >150 Teilnehmern
■ Bot, der neue SVN-Commits und Aktionen in Bugzilla werden im Channel ausgegeben
■ 174 SVN-Commiter (gezählt!)
■ Auf Wikimediaprojekten läuft eine der letzten SVN-Versionen
■ Konstanter Code-Review der neusten Commits durch Communitymitglieder
12.12.2008 | MediaWiki | Johan Uhle
9
Organisation 3/3
■ Lee Daniel Crocker / Erste Versionen auf Basis von „UseMod Wiki“
■ Brion Vibber / CTO of the Wikimedia Foundation
■ Tim Starling „I'm employed by the Wikimedia Foundation as a developer and system administrator. I became a Wikipedia editor on October 11, 2002, and began volunteer development work about a year later“
■ Aaron Schulz „I do work in both adding functionality to core components as well as writing badly needed major extensions. I'll sometimes do cleanup/documentation if I am bored ;).“
12.12.2008 | MediaWiki | Johan Uhle
10
Technischer Überblick 1/2
■ Technische Vorraussetzungen
□ Webserver Apache oder IIS
□ PHP4 < 1.6 => PHP5
□ MySQL 4.0 oder PostgreSQL 8.1
■ Wichtigste Funktionen:
□ Es ist ein Wiki
□ Mediendateien (Bilder, Tondateien)
□ Internationalisierung / Lokalisierung
□ Skalierung
12.12.2008 | MediaWiki | Johan Uhle
11
Technischer Überblick 2/2
12.12.2008 | MediaWiki | Johan Uhle
12
Code 1/3
12.12.2008 | MediaWiki | Johan Uhle
13
Code 2/3
12.12.2008 | MediaWiki | Johan Uhle
14
Code 3/3
■ Objektorientiert Programmiert
■ Dateistruktur:
□ /include PHP-Bibliotheken
□ /language Sprachen
□ /maintenance Administrationsaufgaben sowie SQL-Dateien für das Datenbanklayout
□ /skins Oberflächen
□ /t und /tests Tests für die meisten Funktionialitäten
12.12.2008 | MediaWiki | Johan Uhle
15
Mein Patch 1/4
■ 5491 Colour-coding of items in page histories (165xx ist neu)
■ History eines Artikels. Jede Revision hat eigene Zeile.
■ Verbesserung: Je nach Status des User, der die Revision getätigt hat, wird die Hintergrundfarbe geändert.
12.12.2008 | MediaWiki | Johan Uhle
16
Mein Patch 2/4
12.12.2008 | MediaWiki | Johan Uhle
17
Mein Patch 3/4
12.12.2008 | MediaWiki | Johan Uhle
18
Mein Patch 4/4
12.12.2008 | MediaWiki | Johan Uhle
19
Skalierung 1/4
■ Skalierung sehr wichtig
12.12.2008 | MediaWiki | Johan Uhle
20
Skalierung 2/4
■ Load Balancing vor Squid
■Squid bedient 75 % des WP-Traffics (vor Allem Anfragen ohne eingeloggte User)
■MediaWiki enthält NotifyFunktionen, um bei Änderungen dem Squid-Server Bescheid zu geben.
■Source: /include/Article.php
■ doPurge() 1045
■ onArticleEdit() 3137
12.12.2008 | MediaWiki | Johan Uhle
21
Skalierung 3/4
■ Load Balancing vor Apache
■ PHP Bytecode Caching mit vielen Frameworks. Empfohlen APC
■Caching auf Apache
■ Local Message Cache
■ Memcache
■ Datenbankanfrage
■Source: /incude/MessageCache.php
■ Line: 228
12.12.2008 | MediaWiki | Johan Uhle
22
Skalierung 4/4
■ Local Message Cache sind statische HTML-Seiten, die an IP-User gegeben werden
■ Memcache läuft auf jedem ApacheServer
■ Speichert Datenbankdaten lokal im Speicher. Löscht Daten nach Least Recent Used
12.12.2008 | MediaWiki | Johan Uhle
23
Quellen:
■ MediaWiki SVN 440xx
■ http://www.mediawiki.org
■ http://meta.wikimedia.org
■ http://en.wikipedia.org/wiki/MediaWiki_release_history
■ http://lists.wikimedia.org/pipermail/wikitech-l/
■ https://bugzilla.wikimedia.org
■ https://www.ohloh.net/p/mediawiki
■ #mediawiki auf irc.freenode.de
Stand: 10.12.08
12.12.2008 | MediaWiki | Johan Uhle
24
Ende
■ Geschichte und RelevanzOrganisationTechnischer ÜberblickCodestrukturMein PatchSkalierung und Caching
■ Fragen?
12.12.2008 | MediaWiki | Johan Uhle
25
Empfehlungen
■How to ask questions the smart way
■http://www.catb.org/~esr/faqs/smart-questions.html
■How to report bugs effectively
■http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
top related