В ответ на очередной набор изменений в подсистеме DRM (Direct Rendering Manager), присланный (http://lkml.iu.edu/hypermail/linux/kernel/1702.2/05174.html) для включения в состав будущей ветки ядра 4.11, Линус Торвальдс пришёл в ярость и в жесткой форме раскритиковал (http://lkml.iu.edu/hypermail/linux/kernel/1702.2/05171.html) Дэвида Эйрли (David Airlie), мэйнтейнера подсистемы DRM, за его отношение к контролю качества присылаемых патчей. В частности, Линус недоумевает как мэйнтейнер мог отправить для финального включения в новый выпуск ядра набор патчей, который явно не тестировался и непригоден для сборки из-за ошибки компиляции.
Процесс разработки ядра построен на цепочке доверия и основной задачей мэйнтейнеров подсистем является предварительная проверка и рецензирование изменений в делегированных им областях. По словам Линуса он ожидал лучшего контроля качества, в худшем случае он ожидал хоть какого-то контроля качества, но на деле в присланных изменениях он не увидел контроля качества совсем и предложенные изменения компонента tinydrm (https://github.com/notro/tinydrm) вообще не видели компилятора.
В частности при сборке присланного кода компилятором выводилось несколько десятков предупреждений и сборка завершалась ошибкой, изучение которой показало, что код не собирается если модуль backlight не вкомпилируется в ядро, а собирается в виде модуля (CONFIG_BACKLIGHT_CLASS_DEVICЕ=m). Более того, изменение для tinydrm было переотправлено мэйнтейнером на следующий день после получения от конечного разработчика и, судя по всему, без какого-либо тестирования.
В качестве ответных мер на подобное перебрасывание патчей без проверки в последний момент, Линус намерен (http://lkml.iu.edu/hypermail/linux/kernel/1702.2/05174.html) ввести для DRM-подсистемы правило предварительного помещения изменений в ветку linux-next, до открытия окна приёма изменений в очередной выпуск ядра. Таким образом все изменения графических драйверов должны будут вначале быть обкатаны в ветке linux-next, лишь после чего смогут войти в основной состав ядра.
То, что в ходе беглого осмотра и простейшего тестирования сборкой выявляется неработоспособность, указывает на серьёзные организационные проблемы. Линус близок к принятию решения о том, чтобы не включать набор патчей DRM в ядро 4.11, чувствуя что кроме него эти патчи никто больше не тестировал. Подобный шаг приведёт к тому, что в состав ядра 4.11 не войдут обновления графических драйверов i915, amdgpu, radeon и nouveau. Так как в настоящий момент приходится отклонять приём всех изменений из набора DRM ("всё или ничего"), Линус намерен потребовать разбения pull-запросов DRM на более мелкие части.
URL: http://lkml.iu.edu/hypermail/linux/kernel/1702.2/05171.html
Новость: http://www.opennet.ru/opennews/art.shtml?num=46107