Pull to refresh

Oracle закручивает гайки

Reading time3 min
Views4.2K
Original author: Sergei
Это перевод заметки Исчезновение набора тестов или очередная часть MySQL стала закрытой? (Disappearing test cases or did another part of MySQL just become closed source?)

Около недели назад я изучал MySQL 5.5.27 и заметил любопытную деталь. Несмотря на то, что новый релиз MySQL содержал обычный набор исправлений, ни один из них не сопровождался тестом.

Теперь, позвольте мне рассказать кое-что об этих тестах. Много лет MySQL использовал свой собственный фреймворк для тестов под названием mysql-test. Первая его версия была написана ещё в 1999 году. Со временем он собрал в себе много тестов. Там были как тесты для нового функционала, так и регрессионные тесты, которые гарантировали, что ошибка, будучи исправленной, никогда не появится снова. У нас в MySQL AB (а позже и в Sun Microsystems) были достаточно строгие правила по поводу них — каждое новое исправление должно было сопровождаться тестом для него. И потому что эти тесты всегда выполнялись на множестве платформ для каждого коммита (инструментом непрерывной интеграции, названным Pushbuild — это внутренняя разработка Кристиана Нильсена (Kristian Nielsen)), мы были достаточно уверены, что любая исправленная ошибка будет оставаться таковой всегда. Я больше не имею отношения к MySQL, но я всё ещё не могу представить, что Oracle ослабит это правило. Значит, тесты должны быть где-то в другом месте.

Одно из изменений в 5.5.27 добавляет расширение в скрипт mysql-test-run (управляющий скрипт набора mysql-test), которое заставляет его искать тесты в новой директории. В дополнение к обычному месту (то есть директория mysql-test/ в дереве исходников) скрипт будет искать тесты также и в директории internal/mysql-test/. Значит ли это, что набор тестов больше не является открытым кодом? Oracle не ответили на мой вопрос. Однако, есть сведения, что это скорее всего так. Например, это сообщение с коммитом показывает, что новые тесты действительно ссылаются на директорию internal, которая не включена в распространяемый архив исходников MySQL.

Тесты MySQL всегда были важной частью дерева исходников MySQL. Они представляли особую ценность для разработчиков систем хранения данных и для других людей, пишущих расширения для MySQL, например, в Facebook, Twitter, Taobao. Также они полезны для дистрибутивов Linux, которые добавляют свои патчи к MySQL, и даже пользователям, которые не изменяли код — они всё ещё хотят убедиться, что конкретная ошибка была исправлена, или что их самосборные варианты не имеют явных ошибок.

В мае, на Ubuntu Developer Summit в Окленде, у Oracle было 7 представителей, которые обещали, что Oracle будет более дружелюбна к контрибьютерам и дистрибьютерам. Грустно наблюдать, что вместо этого дерево исходников MySQL закрывается.

MySQL AB никогда не умела хорошо создавать сообщество разработчиков вокруг проекта. Довольно мало разработчиков и контрибьютеров проекта не состоят в MySQL AB, и компания не слишком старается для увеличения их количества. Но теперь Oracle обратила на них внимание и намеренно добивает всё, что осталось от сообщества. Без набора тестов MySQL становится непрозрачным для внешних разработчиков, как любая часть закрытого ПО, и только наиболее опытные и хорошо знакомые с кодовой базой MySQL смогут продолжать с ней работать.

UPDATE: Сложно найти что-либо более ценное для сторонних разработчиков, чем этот набор тестов. Ну, разве что история изменений. В ней изменения в этих миллионах строк кода объединены в наборы, один набор на какую-либо функцию или определённое исправление. Это позволяет увидеть, кто изменил определённую строчку в коде, когда и почему. Похоже, что Oracle собирается закрыть и эту информацию тоже. Публичные деревья исходников MySQL на Launchpad с историей изменений больше не обновляются.

И вообще, существует ли хоть один успешный Open Source проект, лишенный сообщества разработчиков?

UPDATE 2: Мы не единственные, на кого повлияет эта проблема. Смотрите также:




Перевод кончается здесь, UPDATE-ы выше присутствуют в оригинальном посте.
Это мой первый перевод, поэтому, если вы видите лучший вариант перевода в некоторых местах или обнаружили ошибки — напишите мне в личку.

Автор оригинальной заметки есть на хабре — это petropavel
Tags:
Hubs:
Total votes 82: ↑79 and ↓3+76
Comments28

Articles