Новые разработчики

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page New Developers and the translation is 93% complete.
Outdated translations are marked like this.

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

Для других вариантов участия, смотрите Как сделать свой вклад .

Добро пожаловать!

Участники Wikimedia Hackathon 2019

Вы хотите работать над кодом Викимедиа и вам нужны идеи, с чего начать?

В техническом обществе Викимедия всегда рады новым участникам в наших проектах

Станьте частью мирового сообщества и помогите сделать доступ к свободным знаниям легче для каждого!

Вклад в Викимедиа состоит из четырех этапов:

  1. Выберите программный проект
  2. Настройте вашу среду разработки
  3. Выберете и решите задание (напишите и протестируйте ваш код)
  4. Подтвердите ваш код

Основы, которые нужно знать

"Вы можете пропустить эту секцию, если вы уже знакомы с культурой программ свободного и открытого исходного кода"

У Викимедии сотни программных проектах в самых разных областях Просмотрите эти слайды

Сопровождающие каждого программного проекта могут свободно выбирать инфраструктуру, которую они предпочитают. В общем, практически все программные проекты имеют

  • инструмент отслеживания задач, в котором сообщаются, обрабатываются и обсуждаются ошибки программного обеспечения и запросы на улучшения. Примеры: Фабрикатор Викимедиа, GitHub или Sourceforge.
  • репозиторий кода, где исходный код может быть «проверен» всеми. Примеры: Викимедиа Git / Gerrit, GitHub или Sourceforge.
  • инструмент проверки кода, в котором обсуждаются и улучшаются предлагаемые изменения кода (так называемые «патчи»). Примеры: Викимедиа Git / Gerrit, GitHub или Sourceforge. Как только предложенный вами патч будет исправен и будет добавлен в репозиторий кода, ваши изменения кода станут доступны всем. (Вы можете узнать больше о передовых методах проверки кода здесь.)
  • Основные места для обсуждения программных проектов и/или получения помощи и поддержки. Этими местами могут быть списки рассылки, каналы чата IRC, вики-страницы или другие места. Точные места зависят от каждого проекта. Вы также можете связаться с конкретными наставниками через "Отправить этому пользователю электронное письмо" на их пользовательских страницах, но учтите, что «вопросы, заданные лично, не помогают другим».

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

Выберите программный проект

Это рекомендуемые способы начать. Выберите один из следующих проектов и следуйте документации проекта, чтобы настроить среду разработки, выбрать задачу для работы, решить задачу и отправить изменения кода на рассмотрение:

Huggle

Screenshot

Десктопное приложение для защиты от вандализма для проектов Викимедиа

Kiwix

Screenshot

Офлайн программа для чтения веб-контента Википедии

Commons App for Android

Screenshot

Приложение для устройств Android, позволяющее загружать изображения на Wikimedia Commons.

Wiki Education Dashboard

Screenshot

Веб-приложение, поддерживающее образовательные задания Википедии, предоставляющее данные и управление курсами для преподавателей и студентов.

  • Требуемые навыки: Ruby, JavaScript
  • Связаться с нами: #wikimedia-ed connect и irc.libera.chat
  • Получить исходный код: GitHub
  • Прочитать документацию
  • Проверить рекомендованные задачи над которыми можно поработать GitHub
  • Наставник(и): Sage Ross

ORES logo ORES

ORES highlights problematic edits

Веб-сервис и API, которые предоставляют машинное обучение как услуга для проектов Викимедиа. Машинные прогнозы используются для выявления случаев вандализма, измерения качества статей и поддержки другой работы вики.

  • Требуемые навыки:
    • Перевод и языковые ресурсы: говорите и пишите на любом языке, кроме английского
    • Разработка Front-end`a: HTML, JavaScript, CSS
    • Разработка Back-end`a: Python, Redis, Postgres
    • Моделирование Python, Scikit-learn
    • Расширение PHP (mediawiki), MariaDB
  • Связаться с нами: Mailing list / Чат в #wikimedia-ai connect на irc.freenode.net
  • Получить исходный код: wiki-ai/ores, wiki-ai/revscoring, wiki-ai/wikilabels
  • Прочитать документацию
  • Проверить рекомендованные задачи над которыми можно поработать Phabricator
  • Наставник(и): Aaron Halfaker & Adam Wight

Library Card platform (The Wikipedia Library)

Screenshot

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

  • Требуемые навыки: Python, Django
  • Связаться с нами: #wikipedia-library connect и irc.libera.chat / wikipedialibrary@wikimedia.org
  • Получить исходный код: GitHub
  • Прочитать документацию
  • Проверить рекомендованные задачи над которыми можно поработать. Phabricator
  • Наставник(и): Sam Walton

Logo Pywikibot

Terminal

Библиотека Python и набор скриптов, которые «автоматизируют работу» на сайтах MediaWiki.

Logo AfC Helper Script

Screenshot of the AfC Helper Script in use

пользовательский сценарий для просмотра черновиков статей на Википедии.

Logo VideoCutTool

Screenshot

Инструмент для редактирования видео на Wikimedia Commons

"Вы сопровождаете и хотите, чтобы ваш проект был включен в список программных проектов выше? Узнай больше и присоединяйся!"

Рекламные программы и отдельные задачи

Помимо рекомендованных выше программных проектов, есть еще несколько способов выбрать проект или задачу для работы:

Logo Рекламные программы

Викимедиа предлагает стажировки в таких программах, как Google Summer of Code и Outreachy.

Logo Хорошие первые задания

Есть много отдельных задач (по многим программным проектам), которые подходят для новичков.
Однако вы здесь больше сами по себе: мы не можем гарантировать, что наставники доступны или что предложенные вами патчи получат быструю проверку.

Ищете дополнительные ресурсы?

  • Как стать хакером MediaWiki: для потенциальных новых разработчиков, которые хотят работать напрямую с ядром MediaWiki или расширениями MediaWiki.
  • Центр разработчиков: ресурсы с дополнительной документацией и информацией для опытных разработчиков Викимедиа.
  • Также существует несколько списков рассылки для обсуждения программного обеспечения Викимедиа.
  • Туториалы Викимедиа: указатель учебных пособий, в которых представлены различные языки, API и фреймворки в стеке технологий Викимедиа.

Хотите внести что-то еще?

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

Некоторые общие советы по общению

  • Do your research first: When you decide to work on a task, you are expected to do some basic research yourself first: Look at the code, try to get some understanding what it is supposed to do, read related documentation, try to find the probable place(s) where you need to make code changes. For a general overview, please read the Basics to know.
    • In a Фабрикатор task, see the project tags in the side bar to find out which code repository a task is about.
  • Ask and discuss in the best place:
    • In Phabricator tasks, discuss only specific questions about the topic of that very Phabricator task. General technical questions (e.g. how to set up a development environment or problems with Gerrit) are off-topic in Phabricator tasks.
    • For general technical questions, ask the broader Wikimedia community and use generic channels like IRC chat or mailing lists. (If you take part in an outreach program, then you can also use Zulip's technical-support stream.)
    • If you take part in an outreach program, then Zulip is for discussing questions about the outreach programs themselves.
  • Ask good questions: "Can you give me more info?", "Please guide me", "Please tell me how to start" are not good comments to start with: The more specific your questions are, the more likely somebody can answer them quickly. If you have no idea at all how to fix the bug, maybe that bug is not (yet) for you – consider finding an easier one first.
  • Provide context: When asking, explain what you want to achieve, and what you have tried and found out already, so others can help at the right level. Be specific – for example, copy and paste your commands and their output (if not too long) instead of paraphrasing in your own words. This avoids misunderstandings. Use specific titles and subject lines ("Proposal draft" or "Need help" is not specific).
  • Use inclusive language: Don't assume anyone's gender identity ("guys", "madam", "sir"). Use the name of the person instead.
  • Ask in public: Do not send private messages if your conversation topic is not secret. Private messages do not help others.
  • Be patient when seeking input and comments, especially during weekends and holidays.
    • On IRC, don't ask to ask, just ask: most questions can be answered by other community members too if you ask on an IRC channel. If nobody answers, please try again at a different time; don't just give up.
    • Do not ask people immediately for code review in a separate message. People receive Gerrit and Phabricator notifications.
  • Keep conversations readable: When you reply in Zulip, in Phabricator tasks, or on mailing lists, please avoid unneeded quoting of a complete previous comment. Provide sufficient context and keep threads readable.
  • Follow the code of conduct for Wikimedia technical spaces.
  • When you plan to work on a Phabricator task:
    • No need to ask for permission: Usually there is no reason to ask if you can work on something or if somebody could assign a task to you. There is no authority who assigns tasks or who needs to be asked first.
    • You do not need to announce your plans before you start working on a task but it would be welcome. At the latest when you are close to proposing a patch for a task, it is good to announce that you are working on it, so that others don't duplicate work: If nobody else is already assigned, set yourself as task assignee by using the Add Action… → Assign/Claim dropdown.
    • Tasks with existing patches:
      • If a task already has a recent patch in Gerrit, choose a different task to work on instead – avoid duplicating work.
      • If an existing patch in Gerrit has not been merged and has not seen any changes for a long time, you could also improve that existing patch, based on the feedback in Gerrit and in the task.
    • When your plans or interests change: If you don't work on a task anymore, please remove yourself as the assignee of the task, so others know that they can work on the task and don't expect you to still work on it.

By communicating clearly and early you get attention, feedback and help from community members.