Как изучить МедиаВики

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

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

Эта статья поможет разработчикам обрести базовые навыки, необходимые для участия в развитии MediaWiki.

Улучшая движок, не вносите изменений в ядро МедиаВики, если не уверены в своих действиях на сто процентов.

  • Для начала можно исправлять мелкие ошибки или добавлять новые возможности в МедиаВики.

Если вы уже опытный разработчик и хорошо знакомы с особенностями MediaWiki, посетите Портал разработчиковDeveloper hub.

Чтобы участвовать в развитии МедиаВики по другим направлениям, смотрите ZAFARHUSSAIN03036190614How to contribute.

Обзор

МедиаВики - это программное обеспечение, на основе которой создана Википедия, её родственные проекты, а также тысячи вики по всему миру.

MediaWiki is written in the PHP programming language[1]. It uses jQuery as the client JavaScript library.

MediaWiki is primarily written for the LAMP platform[2] and runs on most operating systems. MediaWiki primarily uses the MySQL and 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.

Данная статья поможет вам внести собственный вклад в МедиаВики.

Это не учебник. Здесь лишь указаны источники, из которых вы можете почерпнуть необходимые сведения.

Настройка среды разработки

В большинстве проектов используются Git и Gerrit. Следуйте инструкциям в руководстве по Gerrit, чтобы создать и настроить свою учётную запись разработчика. Затем загрузите исходный код, вносите изменения, тестируйте, предлагайте исправления. Для разработки используйте уже настроенную виртуальную машину (vagrant) или установите всё необходимое сами.

Виртуальная машина с Vagrant

  • Установка Vagrant — Установка сервера МедиаВики со всем необходимым внутри виртуальной машины в Linux (возможно использование Linux, Windows или Mac хостов)

Самостоятельная установка

Нет необходимости в загрузке дампов базы данных Википедии для разработки МедиаВики. Зачастую проще использовать крошечную базу данных со специальными заготовками тестовых страниц. Если же вы хотите использовать копию Википедии, используйте дамп.

Рекомендуется прочесть

Посмотрите за тем как разработчик исправляет баг, включая исследование, git коммит, изменения, закрытие Bugzilla ticket (в настоящее время заменено на PhabricatorPhabricator).


Обратная связь, вопросы и поддержка

  • Для начала исследуйте код, попробуйте понять его, прочитайте документацию, исправьте баг.

Для общих вопросов об инфраструктуре, архитектуре или рабочем процессе, которые в свою очередь напрямую не связаны с багом, пользуйтесь IRCIRC, почтовой рассылкой или страницами для обсуждений на вики.

Например, если возникают проблемы при работе с Gerrit, задавайте вопросы на странице обсуждения Gerrit.

  • Для конкретных вопросов о самом баге используйте комментарии в отчете PhabricatorPhabricator. "Как же мне исправить ошибку?", - не самый лучший вопрос. Подробность и детальность в вопросе помогут получить ответ быстрее. Правильно оценивайте свои способности на данный момент и не пытайтесь исправлять баг, который вам совершенно не понятен. Выберите другой, который проще для вас.
  • Отметьте в своём вопросе ваши наработки и идеи, чтобы другие понимали на каком этапе в решении проблемы вы находитесь.

Скопируйте вашу последовательность действий, команд (если их не слишком много) вместо их словесного описания. Это поможет избежать недопонимания.

Наберитесь терпения.

В чате IRC на большинство вопросов ответят такие же участники как и вы. Если ответа нет, спросите в комментариях баг отчета или на соответствующей вики, не оставляйте свой вопрос без ответа.


Сообщите о том, что работаете над задачей

Это ее обязательно, но приветствуется.

You are welcome to set yourself as the assignee in a task: Use the dropdown Add Action… → Assign/Claim in Phabricator.

В последствии, при создании патча, сообщите о своей работе в комментарии.

Это поможет не совершать двойную работу другим участникам.

Вам также следует обращать внимание на подобные отметки. Если увидите "Patch-For_Review", связанный с баг отчетом, то выберите другой.

Если патч в Gerrit не изменялся в течении долгого периода времени, попробуйте поработать над ним.

Если вы прекращаете работу над задачей, удалите отметку о себе как об ответственном (assignee) за неё, чтобы остальные участники могли заняться багом, зная что вы оставили свою работу над ним.

Чем раньше начнёте взаимодействовать с другими участниками, тем больше внимания и помощи получите.


Приложение

Участники МедиаВики за работой в Бангалоре, Индия.

PHP

МедиаВики написан на PHP, соответственно он необходим для работы над ядром движка.

Учите PHP
  • Учебник PHP — Доступен на многих языках. Если вы знаете другие языки, использующие объектно-ориентированную парадигму, но не PHP, то обучение будет несложным.
  • PHP Programming at Wikibooks.
  • PHP topic at Wikiversity.
Источники по PHP
Что нужно знать
  • Сценарий maintenance/eval.php содержит базовый интерпретатор с объектами и классами МедиаВики.

Базы данных

Зачастую необходимы знания базы данных MySQL/MariaDB.

Учите MySQL/MariaDB
Материалы по MySQL/MariaDB
Что нужно знать
  • Тестируйте код с MySQL/MariaDB.
    • МедиаВики использует MySQL and MariaDB в качестве основных баз данных. Также поддерживаются и другие СУБД, такие как PostgreSQL и SQLite. Однако почти все разработчики используют MySQL/MariaDB и проводят тесты только используя их, вследствие этого другие базы данных при тестах часто выходят из строя. Поэтому, если вы целенаправленно не занимаетесь улучшением поддержки для других баз данных, то используйте MySQL/MariaDB. Если да, то убедитесь в правильности работы с MySQL/MariaDB (и в эффективности запросов), так как их используют почти все остальные разработчики.

JavaScript и CSS

JavaScript и CSS стали стандартом в разработке фронтенда. Вы не должны быть знакомы с JavaScript, jQuery и CSS для разработки МедиаВики, но соответствующие знания могут понадобиться.

Учите JavaScript и CSS
Материалы по JavaScript и CSS

MediaWiki

Кодовая база МедиаВики достаточно велика и местами трудна для понимания, не перестарайтесь.

Начинайте работать с исправления или создания новых возможностей касающихся небольших участков кода.

Материалы МедиаВики, необходимые к прочтению
Ресуры МедиаВики

Расширения MediaWiki

Следующие ссылки могут помочь вам в работе.

Руководства для разработки расширений МедиаВики:
Прочие ресурсы

См. также

  1. Not all of MediaWiki is written in PHP. Some supporting tools are written in other languages, including batch files, shell scripts, makefiles and 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 DevelopersDevelopers 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.