Журнал ошибок, проявившихся при разработке проекта Bombono DVD
Pазработка современного ПО построена по модульному принципу. Так, Bombono DVD использует такие проекты, как Boost, Gtk, SCons и другие (всего 10 явных зависимостей, есть и неявные). Однако помимо преимуществ наследуются недостатки и ошибки, включая будущие. С некотого момента я решил завести журнал заметок, в который записываю технические проблемы, проявившиеся в ходе разработки, которые зависели/зависят не от меня (но решать-то все равно пришлось).
Смысл в том, чтоб на основе полученных данных более объективно подходить к выбору с кем "дружить", а с кем не "дружить".1 Критерием попадания в список являются все случаи, когда ошибка/поведение/смена API/ABI/... проявилась или добавилась уже после того, когда соответствующий функционал уже прочно задействован в проекте.2
Список
SCons: - несколько раз менял свое поведение до версии 1.2.0; однако благодаря природе Python выходы находились. - INSTALLSTR, начиная с версии 1.0 может принимать только строковые значения (не функции) - явная ошибка. - расчет md5 путем чтения содержимого файла в строку; при гигабайтовом файле валился авторинг GraphicsMagick: - отсутствие функции OpenCache() в новых версиях сильно попортило нервы; к тому сложности в узнавании какая версия GM используется бесит. Дистрибутивы: - замена toolame -> twolame не дает возможности сделать одну версию для всех дистров. - убрали /proc/scsi/devices из Debian Sid, пришлось изучать исходники ядра. (2 дня потратил). Gtk: - диалог-помощник мой поломали (в Karmic, Sid) - 2 места - синхронизацию ломали (в Hardy) между текущей вкладкой и текущим пунктом в меню Go. - GtkButton - чего-то поменяли в стилях по умолчанию и значки на них перестали показываться - GtkAssistant: - убрали возможность устанавливать страницу до show_all() - поменяли порядок OnApply и OnPrepare (делать что ли нечего!) - GtkDialog - провозился целый день с открытием диалога, если в нем есть метка со ссылкой (бесконечный цикл) - GtkFileChooser (c gtk >= 2.30.0): - выпадение из-за неправильного мониторинга - set_filename() не работает в паре c get_filename() для SELECT_FOLDER GCC: - ужесточили препроцессор так, что код Boost (1.33) перестал компилиться (починил) Winff: - неправильно генерит видео для DVD (опция -target *-dvd должна быть всегда) Totem: - с версии 2.27.1 авторы перестали поддерживать xine backend.

Пожертвование

