Wie man ein MediaWiki-Hacker wird

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page How to become a MediaWiki hacker and the translation is 70% complete.

Outdated translations are marked like this.
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Tiếng Việt • ‎Türkçe • ‎dansk • ‎español • ‎français • ‎interlingua • ‎italiano • ‎magyar • ‎occitan • ‎polski • ‎português • ‎português do Brasil • ‎română • ‎svenska • ‎Ελληνικά • ‎български • ‎русский • ‎српски / srpski • ‎українська • ‎العربية • ‎فارسی • ‎हिन्दी • ‎বাংলা • ‎ਪੰਜਾਬੀ • ‎ไทย • ‎中文 • ‎日本語 • ‎한국어

Dieser Artikel wurde geschrieben, um EntwicklerInnen zu helfen, die notwendigen Fähigkeiten zu erwerben, für die Entwicklung des MediaWiki Kerns und MediaWiki-Erweiterungen.

  • Es gibt hauptsächlich zwei Wege, mit dem Entwickeln für MediaWiki zu beginnen. Entweder behebt man einen kleinen Bug im bereits bestehenden Code, oder man fügt neue Features hinzu, normalerweise über eine MediaWiki Erweiterung.

Wenn Sie ein erfahrener Entwickler mit MediaWiki-Erfahrung sind, besuchen Sie stattdessen Entwickler-Zentrum .

Andere Möglichkeiten, um sich in der Wikimedia Community zu engagieren, siehe Wie du mithelfen kannst .

Überblick

MediaWiki ist die Software, welche die Wikipedia, ihre Schwesterprojekte und Tausende von Wikis in der ganzen Welt antreibt.

MediaWiki ist in PHP programmiert[1]. Es wird die jQuery-Javascript-Bibliothek eingesetzt.

MediaWiki is primarily written for the LAMP platform[2] and runs on most operating systems. MediaWiki primarily uses the MySQL or MariaDB database servers.[3]

Development happens in an open source style[4], is largely coordinated online, and supported by the Wikimedia Foundation, though volunteer community developers play a huge part as well.

Diese Seite soll Ihnen zeigen, wie man sich am besten in das Projekt MediaWiki einbringen kann.

Dies ist kein Lernprogramm, sondern nur eine Liste einiger Punkte, die Sie zu verschiedenen Orten führen, zu denen man hingehen kann, um das zu lernen, was notwendig ist.

Erste Schritte

Registrieren Sie sich zuallererst für $dev und lesen Sie das Tutorial von Gerrit durch, bevor Sie mit dem Runterladen, Testen und Einreichen von Patches beginnen.

Danach können Sie fortfahren, um Code herunterzuladen, Änderungen vorzunehmen, diese zu testen und Patches einzureichen.

Es stehen Ihnen zwei Möglichkeiten zur Verfügung, um eine Entwicklungsumgebung aufzusetzen: Entweder verwenden Sie eine vorkonfigurierte virtuelle Maschine (Vagrant) oder Sie setzen sich die Entwicklungsumgebung selbstständig auf.

Virtuelle Maschine mit Vagrant

  • Installation von Vagrant - Mit diesen Schritten installieren Sie einen MediaWiki Server auf einer Linux VM, welche unter Linux, Windows oder Mac OS verwendet werden kann

Manuelle Installation

Es ist nicht notwendig, irgendwelche Wikipedia Datenbank Auszüge zu generieren, um MediaWiki Features zu erstellen. Eigentlich reicht es vollkommen, eine fast leere Datenbank mit einigen speziellen Testseiten zu verwenden. Falls doch der Fall der Fälle eintrifft, können Sie sich jederzeit einen Wikipedia Datenbank Auszug runterladen.

Nachlesen

Beobachten Sie, wie ein Entwickler einen Fehler ausbessert, einschließlich der Untersuchung, dem Übertragen nach git, dem Überprüfen, dem Zusammenführen und dem Schließen der Bugzilla Tickets (jetzt von Phabricator ersetzt).


Feedback, Fragen und Unterstützung

  • Es wird von Ihnen erwartet, dass Sie zuerst selbst eine grundlegende Recherche durchführen: Sehen Sie sich den Code an, versuchen Sie, ein gewisses Verständnis davon zu bekommen, was er tun soll, lesen Sie die zugehörige Dokumentation, versuchen Sie, mögliche Stellen zu finden, wo Sie Änderungen vornehmen müssen, um den Fehler zu beheben.
  • Wenn Sie eine bestimmte Frage über den Fehler selbst zu haben, kommentieren Sie den entsprechenden Phabricator Bericht .

"Was muss ich tun, um diesen Fehler zu beheben?" ist keine gute Frage, mit der Sie beginnen sollten: Je genauer Sie Fragen sind, desto wahrscheinlicher ist es, dass sie jemand schnell beantworten kann. Wenn Sie überhaupt keine Ahnung haben, wie man den Fehler beheben könnte, ist dieser Fehler ist vielleicht (noch) nicht für Sie geeignet - überlegen Sie bitte, ob Sie zunächst einen leichteren finden können.

  • Wenn Sie fragen, beschreiben Sie ausführlich, was sie versucht und herausgefunden haben, so dass andere auf der richtigen Ebene helfen können.

Versuchen Sie, genau zu sein - fügen Sie zum Beispiel Ihre Befehle und die Ausgabe ein (sofern sie nicht zu lang ist), statt das mit Ihren eigenen Worten zu paraphrasieren. Dies vermeidet Missverständnisse.

  • Vermeiden Sie private E-Mails oder Support-Anfragen in unseren Social Media Kanäle.
  • Bitte haben Sie Geduld, wenn Sie nach Hinweisen und Kommentaren suchen.

Fragen Sie nicht im IRC, ob Sie fragen dürfen. Fragen Sie einfach: die meisten Fragen können auch durch andere Mitglieder der Community beantwortet werden, wenn Sie auf einem IRC-Kanal fragen. Wenn niemand antwortet, fragen Sie bitte im Fehlerbericht oder auf der korrespondierenden Wiki-Seite; verwerfen Sie die Frage nicht einfach.



Kommunizieren Sie, dass Sie an einem Fehler arbeiten

Sie müssen nicht fragen, ob sie an einem Task arbeiten dürfen. Sie müssen nicht Ihre Pläne ankündigen, bevor Sie mit der Arbeit an einem Bug beginnen, aber es wird gern gesehen. You are welcome to set yourself as the assignee in a task: Use the dropdown Add Action… → Assign/Claim in Phabricator.

Spätestens dann, wenn Sie kurz davor sind, einen Patch für einen Fehler zu erstellen, ist es ratsam, in einem Kommentar anzukündigen, dass Sie daran arbeiten.

Ihre Ankündigung hilft auch anderen, damit sie nicht zur gleichen Zeit an diesem Fehler arbeiten und doppelte Arbeit machen.

Beachten Sie auch, dass Sie einen anderen Fehler zum Bearbeiten auwählen sollten, wenn ein Fehlerbericht bereits einen aktuellen Link zu einem Patch in Gerrit hat und dem Projekt "Patch-For-Review" zugeordnet wurde - vermeiden Sie doppelte Arbeit.

Wenn der Patch in Gerrit noch nicht eingepflegt (gemerged) wurde und schon lange keine Änderungen mehr daran vorgenommen wurden, könnten Sie sich diesem existierenden Patch annehmen und versuchen, ihn zu verbessern.

Wenn Sie aufhören, an einer Aufgabe zu arbeiten, sollten Sie sich selbst als Zuständigen für diese Fehlermeldung entfernen und den Zuständigen auf den Standard-Zuständigen zurücksetzen, so dass andere wissen, dass sie an dieser Fehlermeldung arbeiten können und nicht erwarten, dass Sie weiterhin daran arbeiten.

Indem Sie früh kommunizieren, werden Sie mehr Aufmerksamkeit, Rückmeldungen und Hilfe von den Communitymitgliedern bekommen.


Anhänge

Menschen die an MediaWiki mitwirken, bei der Arbeit in Bangalore, Indien.

PHP

MediaWiki ist in PHP geschrieben. Daher müssen Sie sich mit PHP vertraut machen, um am Kerncode von MediaWiki zu hacken.

PHP lernen
  • PHP-Anleitung — Erhältlich in vielen verschiedenen Sprachen. Wenn Sie kein Wissen über PHP haben, aber in anderen objektorientierten Programmiersprachen programieren können, wird PHP für Sie einfach zu erlernen sein.
  • PHP Programming at Wikibooks.
  • PHP topic at Wikiversity.
Quellen zu PHP
Wissenswertes
  • Das Script maintenance/eval.php in MediaWiki stellt einen grundlegenden PHP Interpreter bereit, in dem MediaWiki Objekte und Klassen bereits geladen sind.
  • Also, the script maintenance/shell.php in MediaWiki is a replacement of maintenance/eval.php based on PsySH, see Manual:Shell.php.


Datenbank

Viele Funktionen benötigen einiges an Datenbank-Änderungen. Daher wird es häufig notwendig sein, dass Sie mit MySQL/MariaDB vertraut sind.

Lernen Sie MySQL/MariaDB
MySQL/MariaDB Ressourcen
Wissenswertes
  • Testen Sie Ihren Code mit MySQL/MariaDB.
    • MediaWiki nutzt aktuell MySQL und MariaDB als hauptsächliches Datenbank-Backend. Es unterstützt auch andere Datenbanksysteme, wie beispielsweise PostgreSQL und SQLite. Allerdings nutzen fast alle Entwickler MySQL/MariaDB und testen nicht mit anderen Datenbanken. Dadurch kommte es regelmäßig dazu, dass diese nicht mehr richtig funktionieren. Es ist daher empfehlenswert, MySQL/MariaDB zu nutzen, wenn man Korrekturen (Patches) testet, es sei denn, Sie versuchen eben, die Unterstützung einer anderen Datenbank zu verbessern. Stellen Sie in diesem Fall sicher, dass Sie MySQL/MariaDB nicht kaputt machen (oder Abfragen schreiben, die schrecklich ineffizient sind), denn MySQL/MariaDB wird von allen anderen genutzt.

JavaScript and CSS

JavaScript und CSS sind im Frontend Code allgegenwärtig geworden. Sie müssen nicht mit JavaScript, jQuery und CSS vertraut sein, um an MediaWiki zu arbeiten, aber es ist möglicherweise notwendig, je nachdem, an was Sie arbeiten wollen.

JavaScript and CSS lernen
Quellen zu JavaScript und CSS

MediaWiki

Die MediaWiki-Codebasis ist groß und einige Bereiche sind hässlich; seien Sie nicht von ihr überwältigt.

Wenn noch am Anfang sind, zielen Sie darauf ab, Funktionen schreiben oder Fehler zu beheben, die auf einen kleinen Bereich des Codes beschränkt sind.

MediaWiki Überblicksartikel und Pflichtlektüre
  • MediaWiki Architektur — Eine Überblick aus der Vogelperspektive über die Hauptkomponenten von MediaWiki und wie diese zusammenarbeiten.
  • Security for developers — Ein Überblick darüber, warum und wie man sicheren Code schreibt.
Quellen zu MediaWiki
  • Manual:Code — Eine Liste der wichtigen Dateien und Links zu weiteren Informationen.
  • Manual:Hooks — Eine Liste von Hooks. Wenn Sie versuchen, herauszufinden, welcher Teil des Codes etwas bestimmtes tut, ist es häufig ein guter Ausgangspunkt, nach den entsprechenden Hooks zu suchen.
  • Manual:Coding conventions — Ein Überblick über die allgemeinen Konventionen zum Programmierstil innerhalb der MediaWiki Community.
  • Code Dokumentation — Automatisch aus dem Code und den Codekommentaren erstellte Dokumentation.
  • Manual:How to debug — Eine Anleitung für das Beheben von Fehlern in MediaWiki.
  • Handbuch:Eval.php — Ein Werkzeug, um live mit MediaWiki Objekten zu interagieren.

An Erweiterungen arbeiten

Wenn Sie am Code von MediaWiki Erweiterungen arbeiten wollen, bieten die folgenden Links weitergehende Information.

Überblicksartikel für MediaWiki-Erweiterungen
Quellen zu MediaWiki Erweiterungen

Siehe auch

  1. Nicht alle Anteile von MediaWiki sind in PHP geschrieben. Einige Hilfs-Tools sind in anderen Sprachen realisiert, so z. B. batch files, shell scripts, makefiles und Python.
  2. MediaWiki runs on most platforms that can support PHP, however, the lack of certain utilities or operating system features may limit the functionality or performance of MediaWiki on non-LAMP platforms.
  3. MediaWiki has support for DBMS other than MySQL and MariaDB, including Oracle, PostgreSQL, SQLite, and Microsoft SQL Server.
  4. Developers are a mix of volunteers and paid staff (or contractors) for various organizations. For a full list of who works on the MediaWiki code, read the Developers article.
  5. Browse the source code and revisions of code repositories at https://phabricator.wikimedia.org/diffusion/ or download the source code to your system by using Gerrit.