Как стать MediaWiki хакером

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 87% complete.

Outdated translations are marked like this.
Other languages:
العربية • ‎български • ‎বাংলা • ‎dansk • ‎Deutsch • ‎Ελληνικά • ‎English • ‎español • ‎فارسی • ‎français • ‎हिन्दी • ‎magyar • ‎interlingua • ‎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 расширений. Обратите внимание, что в большинстве случаев вам не нужно вносить изменения в ядро MediaWiki, если не уверены в своих действиях на сто процентов.

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

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

Чтобы участвовать в развитии Wikimedia по другим направлениям, смотрите Как сделать свой вкладHow to contribute.

Обзор

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

MediaWiki написана на языке PHP [1]. Использует jQuery в качестве клиента к библиотеке JavaScript.

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.

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

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

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

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

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

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

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

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

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


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

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

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

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

Наберитесь терпения в ожидании отзывов и комментариев. В чате 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) за неё, чтобы остальные участники могли заняться багом, зная что вы оставили свою работу над ним.

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


Приложение

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

PHP

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

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

Базы данных

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

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

JavaScript и CSS

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

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

MediaWiki

Кодовая база MediaWiki достаточно велика и местами трудна для понимания, не перестарайтесь. Начинайте работать над исправлениями ошибок или создавайте новые возможности так, чтобы затрагивался только небольшой участк кода.

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

Расширения MediaWiki

Если вы хотите работать над кодом расширений MediaWiki, следующие ссылки могут помочь вам в работе.

Основа MediaWiki расширений
Прочие ресурсы

См. также

  1. Не всё в MediaWiki написано на PHP. Некоторые вспомогательные утилиты написаны на других языках, включая пакетные файлы, сценарии командной строки, makefiles и 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.