ReactOS-Хакфест или еще один вариант про… кодить последний месяц лета
Представляем вниманию аудитории Хабра отчет о том, чем же занимался коллектив проекта ReactOS в последний месяц лета 2015 года. Главным событием этого месяца естественно стал Хакфест.
День минус первый (5 августа)
Алексей приехал задолго до начала Хакфеста и, чтобы не терять времени зря, Колин показал город Ахен во всей красе в жаркий летний день: кафедральный собор, минеральные источники, рестораны, кафе и, конечно, здания Рейнско-Вестфальского Технического Университета (РВТУ) разбросанные по всему городу.
Наиболее важным из них для нас оказалось вовсе не здание университетской клиники (в которой все инженерные коммуникации сделаны снаружи здания), а временное здание для проведения семинаров, в котором было выделено большое помещение для проведения нашего Хакфеста. Внутри это здание оказалось очень чистым и оснащённым современным оборудованием. Но оно на самом деле временное: его снесут как только будет достроено постоянное здание. Так что, использовать хакикостыли и подпорки не чуждо и немцам :)
Колин взял на себя большинство оргвопросов, и к прибытию разработчиков всё уже было готово к Хакфесту
День 0 (6 августа)
Amine, Stefan и Victor благополучно приземлились в аэропорту г. Кёльна, где их встречал Алексей и Колин.
Colin пригласил всех к себе на квартиру в студенческой общаге, где показывал и рассказывал интересные вещи. Небольшой репортаж Алексея:
Часть разработчиков заселилась в хостел, а вечером поехали встречать Томаса и Тимо
День первый (7 августа)
Хакфест начался! Все принесли разное оборудование: ноутбуки, клавиатуры, мыши, мониторы, матплаты, модули памяти, кабели, свитчи и т.п.
Столы внутри помещения расположили в виде нескольких островов и начали то, что называется хакинг.
Прямо на столе из старых «железок» Christoph собрал минималистичный компьютер для тестирования ReactOS на «реальном железе», но, очевидно, что использование виртуализации всё-равно преобладало.
Интересные коммиты, сделанные разработчиками на Хакфесте в этот день:
- Улучшения менеджера памяти, которые сделал Thomas Faber и временное исправление для винлогона (подробнее — CORE-9598)
- Christoph von Wittich исправил ошибку в gdi32 apitest, которая заключалась поиске данных для тестов по неправильному пути
День второй (8 августа)
Thomas Faber продолжил работу по устранению ошибок в различных частях ReactOS.
Christoph von Wittich обнаружил проблему в динамической библиотеке setupapi и исправил эту ошибку.
Приехал Daniel Reimer и привёз с собой пива (нет, несколько ящиков настоящего баварского пива он заранее выслал почтой) и начал целую серию коммитов: он обработал целых 8 патчей (ревизии с 68625 по 68640) из нашей JIRA.
Успешное окончание этого дня решили отметить в отличном Итальянском ресторане
День третий (9 августа)
Работа пошла так же хорошо, как и вчера. Хотя некоторые разработчики так ничего и не закоммитили, но было видно, что старались они изо всех сил, и плоды их работы мы совсем скоро увидим.
По коммитам, ситуация следующая
- Daniel Reimer продолжил свою звёздную серию коммитов — девять за день (ревизии с 68641 по 68650)
- Алексей Брагин выделил хорошие и безопасные изменения из его «знаменитого» LDR-патча и закоммитил их. Оставшиеся изменения требуют более детальной проработки, т.к. хоть они и исправляют целую кучу проблем, но работают нестабильно и иногда вызывают тупиковую ситуацию. Патч все еще в разработке
- Christoph von Wittich и Amine Khaldi работали над исправлением CORE-9992 и другой полезной работе над динамической библиотекой fusion
- Eric Kohl добавил в код установщика, отвечающий за разбиения на разделы предупреждение о попытке удалить активный раздел (CORE-9996)
Кто-то из разработчиков тайком в багажнике привёз пони по имени Alcopony, и она следила, чтобы все работали до самого окончания Хакфесте!
День четвёртый (10 августа)
Daniel Reimer продолжает: в этот раз закрыл дюжину багов (ревизии с 68655 по 68658 и с 68662 по 68672).
Christoph von Wittich дальше разбирался с установкой и работой драйверов графической карты ATI Radeon в ReactOS. Для этого был создан баг с великолепным номером CORE-10000. В Setupapi отсутствовала поддержка обработки (распаковки) LZ-архивов (т.к. Wine это было ненужно) и Christoph её успешно реализовал. Теперь установщик драйверов ATI Radeon отлично работает в ReactOS.
Также в качестве бонуса Thomas Faber исправил освобождение неинициализированного указателя в коде динамической библиотеки setupapi (CORE-10004).
День пятый (11 августа)
В этот день Алексею Брагину и Thomas Faber нужно было уезжать, и продолжать работу уже в привычном режиме удалённо. Томас вносил исправил в менеджер памяти, API тесты, и пр.
Daniel Reimer закрыл 4 бага, а Benedict Freisen присоединился к коммитам. Бенедикту как раз предоставили прямой доступ на запись в основную ветку исходников и он прекрасно воспользовался этим для того, чтобы напрямую закоммитить всю свою работу по hhpcomp, «нашему новому компилятору HTML Help Project (*.hhp).»
Timo Kreuzer закоммитил реализацию функции EngQueryLocalTime, которая наверняка нужна многим драйверам видеокарт.
День шестой и седьмой (12 и 13 августа)
Timo Kreuzer устранил ошибку в win32k, в результате которой подсистема обращалась к неправильному адресу режима пользователя потому, что не проверяла в контексте какого процесса она работает (CORE-10017), и на этом, в общем-то, и всё.
Всего за время хакфеста был закрыт 51 баг-репорт.
Хакфест уже перешёл в стадию тимбилдинга под названием Beerfest и Vodkafest
И пришло время садиться по машинам, самолётам, поездам и ехать домой.
В течение всей недели Victor Martinez делал прямые трансляции через YouTube, в которых рассказывается о сделанном на Хакфесте. Их записи доступны на нашем канале Сообщество ReactOS. Эти трансляции более полно описывают то, что происходило, и вообще передают атмосферу, которая царила на Хакфесте!
Важно упомянуть, что еще одним спин-офом хакфеста стало появление базовой поддержки UNC-путей и общих сетевых папок в ReactOS. Теперь можно использовать общие папки и монтировать их как диски в Vbox и VMware.
Ну и на закуску предлагаем ознакомиться с нашим опытом «участия» в акселераторе GenerationS. История, которая начиналась очень многообещающе, а закончилась… ну так себе.