Code of Conduct: почему разработчики ядра Linux угрожали удалить свой код — разбираемся в конфликте

в 10:51, , рубрики: CoC, linux, open source, Блог компании ИТ-ГРАД, ИТ-ГРАД, ядро Linux

В сентябре совет директоров Linux Foundation принял новый кодекс поведения для разработчиков ядра Linux — Code of Conduct (CoC). По задумке авторов, он должен был решить проблемы, связанные с дискриминацией, и улучшить эмоциональную обстановку среди разработчиков.

Некоторые программисты назвали это попыткой излишнего регулирования и начали угрожать удалить написанный ими код из ядра Linux. Подробнее о ситуации — далее.

Code of Conduct: почему разработчики ядра Linux угрожали удалить свой код — разбираемся в конфликте - 1
/ фото Liam Quinn CC

Предыстория

В середине прошлого месяца Линус Торвальдс объявил, что возьмет перерыв в управлении разработкой Linux. По словам Торвальдса, ему нужно время, чтобы обдумать свою манеру общения с людьми (создатель Linux известен резкими высказываниями в адрес коллег). В рассылке LKML он извинился перед всеми, кто покинул сообщество из-за его критики.

На время «отдыха» Линуса руководство на себя принял Грег Кроа-Хартман (Greg Kroah-Hartman), который занимается поддержкой стабильной версии ядра. Он и предложил принять новый кодекс поведения — Code of Conduct. Документ решили внедрить, чтобы изменить культуру общения в сообществе.

Code of Conduct основан на стандарте Contributor Covenant, который также используют разработчики Ruby on Rails, Swift, Golang и JRuby. Документ описывает правила поведения с другими программистами и делает упор на запрет любой дискриминации.

Разработчики против правил поведения

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

Все началось с письма программиста Джоуи Пабалинаса (Joey Pabalinas), в котором он раскритиковал принятый документ. По его словам, кодекс не решает проблем с культурой общения, а, наоборот, делает атмосферу в комьюнити недружелюбной. Джоуи считает, что CoC приведет к делению участников на «хороших» и «плохих» и незаслуженным исключениям из сообщества.

Особое недовольство вызвала процедура CoC, по которой можно запретить любому разработчику коммитить свой код, если участники решат, что личность автора им не нравится. Также членов сообщества беспокоят расплывчатые формулировки в кодексе, которые можно интерпретировать по-разному (например, «унизительные комментарии»). При этом документ не описывает четких рамок для определения наказания для провинившихся.

Наконец, третьей причиной, которая вызывает вопросы у разработчиков, являются культурные различия. Так как CoC предлагает единый стиль общения, люди из разных стран (в том числе тех, для которых английский не считается государственным) могут начать испытывать трудности в подборе «правильных формулировок».

Существует ли угроза ядру Linux

«Легенда open source сообщества» Эрик Рэймонд (Eric Raymond) предположил, что недовольные разработчики действительно способны запретить использовать свой код в ядре Linux.

Операционная система выпускается под универсальной общественной лицензией GNUv2. Противники Code of Conduct cсылаются на то, что в ней нет пункта о запрете расторжения соглашения между автором кода и открытым проектом (в GNUv3 такой пункт есть). Поэтому они убеждены, что имеют право обязать совет Linux Foundation изъять код из ядра.

Code of Conduct: почему разработчики ядра Linux угрожали удалить свой код — разбираемся в конфликте - 2
/ фото Matt Madd CC

И подобные прецеденты в open source сообществе уже были. Два года назад программист Азер Кочулу (Azer Koçulu) получил от юристов мессенджера Kik письмо, в котором они требовали переименовать модуль с таким же названием (kik), опубликованный в менеджере пакетов npm. Азер ответил отказом, и тогда представители Kik написали уже администрации npm. Те поддержали требование и сменили владельца kik без разрешения автора.

В ответ Кочулу отозвал все написанные им модули npm и залил на GitHub. Но среди них оказался один из популярных модулей left-pad, который состоял из одиннадцати строчек кода. Он нужен для работы Node.js, Babel и большого числа других систем.

Вот так выглядит код «модуля раздора»:

module.exports = leftpad;

function leftpad (str, len, ch) {
  str = String(str);

  var i = -1;

  if (!ch && ch !== 0) ch = ' ';

  len = len - str.length;

  while (++i < len) {
    str = ch + str;
  }

  return str;
}

Отзыв этого небольшого кода привел к ошибкам в работе мировых сервисов.

Тем не менее программист и создатель лицензии GNU Ричард Столлман (Richard Stallman) говорит, что с ядром Linux будет другая история. Якобы этот код нельзя так просто взять и отозвать. В тексте GNU сказано, что разработчик программы позволяет другим копировать, модифицировать или распространять её код. И это право нельзя отнять.

Слова Столлмана уточнили юристы из некоммерческой организации Software Freedom Conservancy, которая создала руководство по лицензии GNU. Они опубликовали пояснение, в котором проанализировали текст соглашения. По их словам, создатель приложения или утилиты не может вынудить пользователей удалить её. Однако может запретить распространять свой код в будущем.

Также юристы написали, что отменить согласие на использование кода нельзя из-за принципа эстоппеля, или promissory estoppel. Этот международный принцип запрещает расторгать устное соглашение, если это нанесет ущерб другой стороне. Запрет на использование кода определённо выльется в большие проблемы для множества компаний. Поэтому в Software Freedom Conservancy считают, что исход с отзывом кода маловероятен.

Как говорит Эрик Рэймонд, все проблемы с CoC связаны с тем, что он не соответствует цели, вокруг которой построено сообщество, — разработке качественного кода. Он призвал сторонников и противников кодекса вместе сформулировать ценности разработчиков ядра и понять, почему люди хотят участвовать в этом проекте. Это позволит установить правила поведения, которые устроят всех и в дальнейшем более эффективно развивать ядро Linux и другие открытые проекты.


P.S. Про IaaS и технологии виртуализации — в нашем Telegram-канале:

Автор: ИТ-ГРАДовец

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js