Полное руководство по быстрому началу вашего пути к Drupal Contribution

Опубликовано: 2022-08-23

Введение

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

Зачем вносить вклад в Drupal

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

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

Как внести свой вклад

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

Создание аккаунта

Создание аккаунта на Drupal.org

Ищите проблему

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

1. Вы можете найти задачу в очереди задач - https://www.drupal.org/project/issues. Для более точного поиска вы можете нажать «Расширенный поиск» и использовать фильтры.

  • Теги задач — задачи прикрепляются с разными тегами. Тег «новичок» указывает, что проблема нуждается в простом исправлении, и любой новичок может выбрать его, тег «Нужна документация» указывает, что эта проблема требует внесения изменений в документацию и так далее.
  • Статус задачи. После того, как проблема создана, она проходит через разные состояния. Основываясь на текущем статусе проблемы, вы можете решить, какие шаги необходимо предпринять, чтобы двигаться вперед.
  • Приоритет проблемы — определяет приоритет проблемы, будь то критическая ошибка или небольшое исправление.
  • Категория проблемы — указывает категорию проблемы, будь то ошибка, задача или запрос на новую функцию для проекта.
  • Конкретный проект - Здесь вы можете напрямую указать интересующий вас проект.
Фильтр задач

Фильтры проблем

2. Или начните с проекта, над которым вам всегда было интересно работать, посетив страницу модуля/темы/профиля - https://www.drupal.org/project/<project_name> . На правой боковой панели найдите ссылку «Все задачи» — https://www.drupal.org/project/issues/<project_name>?categories=All.

3. Или поработайте над ошибкой, с которой вы столкнулись в ядре, или над любыми добавленными модулями/темами/профилями во время работы над проектом. Это также правильный способ внести свой вклад. Всегда следует практиковаться в том, чтобы держать свой «режим участника» включенным даже во время работы над проектами, это дает возможность изучить и внести исправления в скрытые проблемы!

Жизненный цикл проблемы Drupal

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

  1. Активный — когда создается новая проблема, она находится в активном состоянии.
  2. Требуется проверка — когда над проблемой нужно поработать, она находится в состоянии «Требуется работа».
  3. Требуется работа — после того, как проблема выбрана, исправления успешно отправлены и все тестовые примеры пройдены, состояние проблемы должно быть изменено на «Требуется проверка».
  4. Рассмотрено и протестировано сообществом. После того, как проблема будет рассмотрена любым участником, проблема переводится в состояние «Просмотрено и протестировано сообществом» (RTBC), где один из членов основной команды сообщества рассматривает проблему.
  5. Фиксированная — когда проблема переходит из состояния RTBC, она перемещается в состояние Фиксированная.
  6. Закрыто (исправлено) — после состояния «Исправлено» проблема автоматически переходит в состояние «Закрыто (исправлено)» в течение двух недель. Это последнее состояние задачи.
  7. Закрытая (дубликат) — когда создается какая-либо проблема, которая является дубликатом любой более ранней, она напрямую закрывается как закрытая (дубликат).
  8. Закрыто (не будет исправлено) — это состояние означает, что проблема не имеет решения.
  9. Закрыто (работает, как задумано) — это состояние означает, что поднятая проблема обеспечивает функциональность, которую предполагалось, и поэтому перемещена в состояние «работает, как задумано». Другими словами, поднятая проблема является не ошибкой, а особенностью.
  10. Закрыто (невозможно воспроизвести) — когда проблема не воспроизводится, она переходит в это состояние.
  11. Закрыто (устарело) — когда проблема либо слишком старая для исправления, либо исправлена ​​​​в рамках проблемы какого-либо другого модуля, состояние этой проблемы может быть закрыто (устаревшее).
  12. Патч (для переноса) — когда патч должен быть портирован для других версий модуля Drupal/Contributed.
  13. Отложено — когда проблема/функция/ошибка отложена автором/сообществом и не нуждается в исправлении.
  14. Отложено (сопровождающему требуется дополнительная информация) — когда возникает проблема, но, по словам сопровождающего модуля Contributed, для ее устранения требуется дополнительная информация о проблеме.

Создать задачу

Чтобы создать вопрос для модуля. Перейдите в очередь задач модуля https://www.drupal.org/project/issues/<project_name>?categories=All и нажмите Создать новую задачу .

Слайд-шоу выпуска

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

Синхронизировать

1. Название: добавьте название проблемы.
2. Проект: имя проекта будет выбрано автоматически.
3. Категория: выберите категорию проекта. Есть 5 категория

  1. Ошибка: ошибка — это функциональная ошибка в системе. Например, ошибка php, потеря данных, утечка памяти, неправильная или вводящая в заблуждение документация, неправильный или вводящий в заблуждение текст пользовательского интерфейса и т. д.
  2. Задача: это не функциональная ошибка, а «должно быть сделано» до релиза. Например, рефакторинг кода, чтобы сделать его более читаемым и удобным в сопровождении, добавление автоматических тестов, обновление кода для новых API, улучшение стандартов кодирования и т. д.
  3. Запрос функции: это запрос на добавление в модуль совершенно новых функций.
  4. Запрос в службу поддержки: если нам нужна помощь по какой-либо части модуля или мы хотим узнать о функциональных возможностях ядра drupal. Мы можем пометить запросы в службу поддержки и добавить вопрос.
  5. План: этот тег используется, когда у вас есть проблема, которую нельзя решить с помощью одной задачи. Проблемы планирования часто будут иметь несколько подэтапов, связанных с «дочерними» проблемами.

4. Приоритет: выберите приоритет проблемы. Здесь у нас есть Critical, Major, Normal и Minor. Выберите нормальный, если это действительно серьезно. Или вы можете выбрать его как обычно и позволить сопровождающему или рецензенту изменить его по мере необходимости.

5. Статус: выберите Активно для новых проблем.
6. Версия: выберите версию проекта, в которой необходимо устранить проблему.
7. Компонент: выберите ближайшее соответствие проблеме. Их можно изменить позже. Компоненты здесь основаны на модуле. Параметры различаются от модуля к модулю.
8. Назначено: задача может быть назначена любому. Он не является обязательным и может быть назначен позже.
9. Теги. Отметьте проблему соответствующими тегами. Это можно оставить пустым, если мы не знаем теги задач. Это не является обязательным и может быть помечено позже.
10. Резюме проблемы и отношения: разверните поле, и редактор добавит подробности проблемы. В редакторе есть несколько предопределенных заголовков, и мы можем заменить их, если не хотим, чтобы они были в деталях выпуска.

  1. Родительская проблема: чтобы пометить родительскую проблему.
  2. Связанная проблема: чтобы пометить связанную проблему.

11. Файлы: мы можем добавить файлы, связанные с проблемами, или мы можем загрузить патч к проблеме при создании файлов. И сохранить тему.

После сохранения вопроса. Созданная задача будет добавлена ​​в очередь задач соответствующего модуля.

Чтобы создать задачу для ядра друпала, https://www.drupal.org/node/add/project-issue/drupal — это ссылка. И шаги будут такими же, как при создании задачи в модуле. Но есть некоторые рекомендации по созданию основной проблемы, которая будет отображаться по ссылке выше.

Image removed.

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

Создать патч

тут 2 случая

  1. Создать новый патч
  2. Обновите существующий патч.

Чтобы создать новый патч

  • Перейдите на вкладку контроля версий модуля. https://www.drupal.org/project/ <имя_проекта>/git-instructions — ссылка на страницу.
  • Выберите ветку для работы и нажмите кнопку Показать.
Синхронизация изображения

Нажав кнопку «Показать», вы получите команду git, скопируйте и запустите команду в своем терминале и измените каталог на клонированный модуль.

  • Внесите изменения, чтобы устранить проблему.
  • Команда для создания патча:
git diff > <issue-description (optional)>-<issue-number>-<comment-number>.patch
Удалить ядро

  1. Описание проблемы будет названием проблемы, где все буквы должны быть строчными, а пробел должен быть заполнен символами подчеркивания. Это необязательно.
  2. Номер проблемы будет в URL-адресе проблемы. Это будет уникально для проблем, которые будут обязательными в названии файла исправления.
  3. Номер комментария — это идентификатор последнего комментария, в который будет загружен патч.
Комментарии

Предположим, вам нужно добавить новый файл в патч. Новый файл не будет отслеживаться, и команда git diff не будет отслеживать файл.

Чтобы добавить новый файл в патч

  1. Добавьте новый файл с помощью команды git add
  2. Бежать
 git diff HEAD > <issue-description (optional)>-<issue-number>-<comment-number>.patch

Чтобы обновить существующий патч

1. Клонируем проект, в который нужно добавить патч.
2. Перейдите на страницу проблемы, щелкните правой кнопкой мыши ссылку исправления и выберите ссылку Копировать адрес.
3. Загрузите патч на локальный компьютер с помощью команды curl или wget.

Чтобы загрузить патч с помощью команды curl:

 curl -O <paste the address link of the patch>


4. Для применения патча выполните команду:

 git apply <patch name>


5. После применения патча вы получите изменения патча в вашем локальном. Добавьте необходимые изменения в патч и создайте новый патч.

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

Ниже приведена команда для создания интердиффа:

 interdiff <old-patch> <new patch> > interdiff_<old-patch-comment-number>-<new-patch-comment-number>.txt

Предположим, что у вас есть старый загружаемый патч 3302030-2.patch и созданный вами новый обновленный патч 3302030-3.patch. Чтобы создать промежуточные различия между этими двумя файлами, команда будет выглядеть так:

 interdiff 3302030-2.patch 3302030-3.patch > interdiff_2-3.txt

Отправить патч

После создания патча нам нужно отправить патч.

Чтобы отправить патч, перейдите на страницу проблемы.

1. Выдать метаданные

Метаданные

В метаданных задачи измените статус на требуется рассмотрение. Отмените назначение проблемы, если проблема назначена вам, и добавьте или удалите теги по мере необходимости.

2. Атрибутировать этот вклад

Атрибут

Отметьте соответствующие параметры и добавьте организацию, если вы работаете в какой-либо организации. При добавлении этого кредиты будут предоставлены организации вместе с вами, когда проблема будет устранена.

3. Добавьте описание изменений, сделанных в патче, в разделе комментариев.
4. Выберите файл патча, файл интердиффа и загрузите его в папку с файлами.

Файлы

Здесь мы добавили файлы один за другим и нажали на загрузку после выбора файла. Нажав кнопку «Загрузить», файл будет загружен и добавлен в список ниже.

ПРИМЕЧАНИЕ. Interdiff не требуется при добавлении нового патча.

5. После загрузки файла нажмите кнопку «Сохранить». Это обновит страницу проблемы, и мы увидим загруженный патч с новым номером комментария.

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

Обзор исправления

Теперь вы знаете, как найти проблему, создать патч и загрузить его. Что дальше? Как мы можем убедиться, что правильный патч будет зафиксирован как можно скорее? Проверка исправления — не менее важный шаг в решении проблемы. Если вы чувствуете, что написание строк кода — это не ваше, то почему бы не попробовать просмотреть существующие патчи?

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

Дредитор

Расширение Dreditor

Он предоставляет вам кнопку «Обзор» для файлов патчей / интердиффов. При щелчке он отображает изменения в удобном для чтения формате.

Обзор

Кнопка «Обзор» от Dreditor

Пластырь

Изменения файла патча без Dreditor

Изменения в файле исправления

Теперь все готово, чтобы найти проблему для рассмотрения!

  • Отфильтруйте проблемы со статусом «Требуется проверка».
  • Выбирайте из списка.
  • Прочитайте комментарии и выберите последний патч, загруженный в выпуске.
  • Убедитесь, что патч прошел тестовые случаи и стал зеленым.
Патч-тест проходит

Патч, прошедший испытания

  • Загрузите файл патча и примените патч на локальном компьютере к вашему ядру/модулю/теме/профилю, выполнив:
 git apply <patch-file-downloaded> -v
  • Проверьте, работает ли он в соответствии с ожиданиями / нуждается в доработке.
  • Измените статус проблемы и добавьте комментарии с изображениями/видео, подтверждающими ваши точки зрения. В вашем комментарии должны быть такие подробности, как, применялось ли исправление к последней версии, какие шаги были предприняты для воспроизведения проблемы, поведение проблемы до и после применения исправления и т. д.
  • Если все выглядит хорошо, измените статус на «RTBC».
  • Если есть какие-либо возможности для дополнительной работы/изменения, обновите статус до «Требуется работа».

Другие способы внести свой вклад

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

  • Наставничество. Если у вас есть некоторый опыт участия, вы можете помочь другим начать работу, став наставником онлайн или лично.
  • К документации. Вся документация по проекту Drupal предоставляется бесплатно людьми со всего мира, такими же, как и вы.
  • Обмен знаниями. Важный способ внести свой вклад в проект Drupal — поделиться своими знаниями о Drupal, написав сообщения в блоге, выступив с презентацией на местной встрече Drupal Group, DrupalCamp или DrupalCon, став тренером и т. д.
  • Планирование мероприятий — организация или волонтерство в виртуальных или личных мероприятиях Drupal, таких как встречи, спринты и т. д.
  • По маркетингу — вы можете работать с другими маркетинговыми командами по всему миру, чтобы создавать маркетинговые и коммерческие материалы под брендом Drupal, которыми могут делиться и использовать все, кто продает услуги Drupal.
  • Добавляя модули/темы. Сотрудничество над проектами Drupal, включая модули, дистрибутивы и темы, является неотъемлемым способом внести свой вклад в сообщество Drupal.

Оставайтесь на связи и будьте в курсе!

• Вялый

  • В сообществе Drupal есть основное рабочее пространство Slack, известное просто как «Drupal» — http://drupal.slack.com/
  • Вы найдете множество каналов на разные темы, такие как #support, #bugsmash, #contribute, #drupal10rediness и т. д.

• Блоги

  • Члены сообщества Drupal пишут сообщения в блогах о Drupal.
  • Даже ВЫ можете быть одним из них!

• Социальные сети — Twitter, LinkedIn и т. д.

  • Подписываясь на любые профили, связанные с Drupal, вы сможете быть в курсе всех текущих изменений/событий, происходящих вокруг Drupal.

Друпал Кодекс поведения

Поскольку Drupal является открытым исходным кодом, а наше сообщество растет, крайне важно сохранить то, что привело нас к этому. Вот некоторые моменты, касающиеся поведения.

  • Сотрудничайте

Поскольку у Drupal большое сообщество, ключом к успеху является совместная работа. Работая в команде, мы можем принести лучшее из платформы drupal.

  • Быть почтительным

Поскольку каждый вносит ценный вклад в Drupal, сообщество и его члены относятся друг к другу с уважением.

  • Когда мы не уверены, попросите о помощи

Никто не совершенен в Drupal, и никто не должен знать все в сообществе Drupal. Задавание вопросов может решить многие проблемы, поэтому вопросы приветствуются.

  • Пожалуйста, свяжитесь со своими коллегами/администратором Slack, если вы стали жертвой или свидетелем домогательств или вам нужна помощь в администрировании Slack.

https://www.drupal.org/dcoc — это ссылка на документ, где вы можете подробно ознакомиться с кодексом поведения.

Последние мысли

Как организация, которая живет и дышит Drupal, мы всегда стремимся внести свой вклад в проект всеми возможными способами. Если вы ищете надежное Drupal-агентство для своего следующего проекта, наши специалисты будут рады помочь. Поговорите с нами сегодня!