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

Я хотел бы начать с продолжения моего предыдущего рассказа об участии в проекте Mozilla web-ext. Как только проект запустился на моей локальной машине, я решил попробовать запустить web-extcommands, чтобы посмотреть, на что он способен. Для этого мне пришлось скачать исходный код какого-то существующего расширения для Mozilla. Таким образом, я зашел на веб-сайт дополнений Mozilla, чтобы проверить, что доступно. На самом деле для меня не имело значения, каким будет расширение, поскольку для него есть ссылка на GitHub. Итак, я выбрал тот, на который наткнулся довольно быстро:

Вы можете найти ссылку на GitHub, прикрепленную здесь.

Я был счастлив клонировать кодовую базу и зайти в папку, чтобы проверить web-ext. Вот что я получил после запуска web-ext build:

Я не смог бы запустить команду из-за отсутствия файла messages.json. Сейчас может показаться, что в тот момент мне все было ясно. Однако этого точно не было! Я пытался запустить команду несколько раз, удалял и повторно клонировал проект, несколько раз проходил настройку среды разработки web-ext... Я просто продолжал думать, что это моя вина, хотя на самом деле это не так. Я предполагаю, что проект просто не тестировался с web-ext, поэтому некоторые необходимые файлы отсутствуют. В конце концов, я сдался и решил пойти на еще одно продление. В этот раз мне повезло больше и я смог запустить web-ext build с первого раза:

«Хорошо, кажется, это работает» — подумал я. «Посмотрим, что еще у них тут есть»

Таким образом, я узнал, что обычно доступно несколько команд, таких как

  • build
  • sign
  • run
  • lint
  • docs

Начальная работа

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

Мне не потребовалось много времени, чтобы найти папку cmd в каталоге src, где находится ряд файлов, подозрительно названных в честь существующих web-extкоманд. Так я узнал о файле build.js, где хранится вся логика для команды build.

Один из других замечательных вариантов, который у нас есть, — это выполнить глобальный поиск по проекту, используя ключевое слово в VS Code:

После длительного изучения описания проблемы и базы кода я смог определить файлы, которые потенциально необходимо изменить, чтобы представить новую функцию — параметр для команды build для установки пользовательского имени файла в расширение:

  • build.js
  • program.js
  • test.build.js

Настало время более внимательно изучить каждый файл и узнать, как я могу добавить новую функцию. Это был действительно долгий процесс, который занял у меня где-то неделю или около того. С рядом советов и приличным количеством времени, потраченным на отладку pn, я смог, наконец, реализовать новую опцию filename, которая хоть как-то работала. Я решил создать PR, чтобы подтолкнуть его к проблеме, чтобы сопровождающие могли взглянуть и оставить свой отзыв. Затем мне посоветовали изменить ряд вещей, а также добавить больше функциональности в эту функцию, над чем я сейчас продолжаю работать!

Хактоберфест Том 2

Чтобы продолжать продвигать свою цель Hacktoberfest, я также выбрал ряд новых репозиториев, в которые можно внести свой вклад: