(Ознакомьтесь с частью 0, если вы еще не сделали этого!)

Выбор репозитория с открытым исходным кодом

Причина, по которой многие новички считают разработку программного обеспечения с открытым исходным кодом (OSS) сложной, заключается в том, что они решают работать над таким проектом, как React или Node.js, о котором все знают, где кодовая база довольно надежна, а люди всегда соревнуясь, чтобы работать над проблемами. Непросто работать над проектом, в котором участников больше, чем задач. Следует отметить, что для менее популярных проектов часто бывает наоборот. Меньшие, но все еще популярные репозитории часто упускаются из виду, но на самом деле они могут стать отличным введением в открытый исходный код. Зачастую им легче внести свой вклад, легче оказать значительное влияние на сообщество, и вы можете узнайте больше о работе с кодовой базой.

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

Я просто погуглил самые популярные пакеты npm и уже нашел список 1000 наиболее зависимых от пакетов, из которого можно было выбирать.

Критерии списка проектов

Мои критерии для фильтрации возможных проектов для работы заключаются в том, что они:

  1. Должно быть опубликовано в течение последних двух месяцев (означает, что проект относительно активен)

2. Иметь несколько открытых PR или недавно объединенные PR (это хороший показатель того, насколько активен проект. Если открытые PR не читаются или никакие PR не объединяются в главный, то это вероятно, не стоит тратить свое время на PR, так как ваш PR может даже не быть рассмотренным. Есть много активных проектов, и выбор правильного проекта повысит общую вероятность того, что ваш PR будет объединен).

3. У проекта ›X загрузок в неделю (чем больше загрузок в проекте, тем больше пользователей, а это может означать, что вы оказываете большее влияние. Лично я установил базовый уровень на 100 тыс.)

4. Звучит интересно или знакомо (работа над интересным проектом или тем, что мне нравится, является хорошим фактором мотивации)

5. Имеет несколько тегов «хорошие первые проблемы» или «требуется помощь» в репозитории Github (это означает, что проект удобен для начинающих и имеет проблемы для людей, которые плохо знакомы с проектом или с открытым исходным кодом. )

Осмотревшись в течение часа (это займет некоторое время), я составил свой список:

Предварительный просмотр моего списка:

  1. Mathjs
  2. Продолжение
  3. Кодовое зеркало
  4. Призмы

….

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

Я решил пойти с mathjs, так как проект в хорошем состоянии, а математика - это моя область интересов.

Выбор выпуска

Есть довольно много проблем, над которыми можно поработать, но я выбрал # 1442, поскольку он выглядит относительно простым, и я впервые участвую в этом проекте.

Здесь я прошу исправить проблему, чтобы сопровождающие (например, josedejong) и другие знали, что я начал над этим работать. Важно быть вежливым, поскольку в конечном итоге они сами решают, будет ли рассмотрен / объединен ваш PR.

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

Во второй части я начну работу над проблемой (доступной сейчас).