Контрибьютинг в открытые проекты: мифы и реальность

Контрибьютинг в открытые проекты: мифы и реальность

Тема, о которой я хочу поговорить, не всем придётся по душе, особенно тем, кто любит возмущаться в комментариях на российских IT-ресурсах, когда чей-то код не принимают в открытые проекты.

Основы контрибьютинга

Начнём с базового принципа:

Тот факт, что проект открыт, не означает, что он обязан принимать чей-либо код.

Неважно, насколько твой код хорош, полезен или даже критичен для проекта. Мэйнтейнер или лидер проекта имеет полное право отклонить его без объяснения причин. Это может быть обусловлено чем угодно: от несовместимости с видением проекта до банального отсутствия желания интегрировать чужие изменения. Решение может быть субъективным, необоснованным или даже казаться несправедливым — но это остаётся правом владельца проекта.

Впрочем, если речь идёт об открытом и свободном ПО, никто не мешает сделать форк и развивать свою собственную версию. Если идея действительно ценна, она привлечёт других разработчиков, и, возможно, ваш форк сможет конкурировать с оригиналом. И тогда уже ты будешь решать, чей код принимать, а чей нет.

Пропаганда и отказ в принятии кода

Каждый раз, когда в каком-то проекте отклоняют чей-то код, российские пропагандистские ресурсы пишут: «Не приняли из-за национальности!» или «Русских людей ущемляют!»

Нет, друзья, это ложь.

Давайте разберёмся. Что такое национальность? Чтобы избежать обвинений в предвзятости, приведу слова российской учёной Светланы Боринской, доктора биологических наук:

«Национальность (или этническая принадлежность) не пришита к генам, это явление не биологическое, а культурное. Времена, когда считали, что этнос имеет биологическую природу, ушли в прошлое. Этничность, так же как и язык, не является врождённым признаком — её обретают (или не обретают) в общении с другими людьми. Миф о том, что „кровь“ или гены определяют национальность (или любые другие формируемые под влиянием культуры признаки), очень опасен. Его не раз использовали для манипуляций общественным сознанием, последствия которых варьировались от разной глубины дискриминации до геноцида.»

Национальность — это вопрос самоидентификации. Когда пропаганда утверждает, что код отклонили «из-за национальности», она даже не знает, как себя идентифицирует тот или иной разработчик. Более того, в мире Open Source никто никого не спрашивает о национальности, потому что она попросту не имеет значения.

Реальные причины отклонения кода

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

Разница между «отклонили из-за национальности» и «отклонили из-за работы на подсанкционные структуры» огромна. И если лидеры проектов проживают в странах, наложивших санкции, они обязаны соблюдать законы своих государств. Их законопослушность почему-то вызывает негодование на российских IT-форумах, но это уже их проблемы.

История с разработчиками Linux

Вспомните, как российские IT-ресурсы громко кричали, что «из разработки ядра Linux отстранили четырёх российских программистов». Но никто из них не упомянул, что в проекте продолжили работать сотни других разработчиков с таким же паспортом.

Это ещё одно подтверждение: решения принимаются не на основе гражданства, а на основе конкретных связей с подсанкционными организациями.

Итог

Когда чей-то код не принимают в Open Source, это не ущемление прав «по национальному признаку». Это либо право мэйнтейнера не принимать чужие изменения, либо соблюдение международных законов. Прежде чем возмущаться, стоит разобраться в реальных причинах.