среда, 9 октября 2024 г.

Для тех, кто захочет контрибьютить в LibreOffice

Этот пост - просто информация для желающих, с чего начинать контрибьютить в проект LibreOffice.

Вся актуальная информация на английском языке, но для программиста это не должно стать препятствием. Также вы уже должны знать С++, учить вас программировать с нуля здесь никто не будет.

Итак, для тех, кто захотел написать пару строк кода для LibreOffice:

Начать следует с прочтения вот этой ссылки - https://wiki.documentfoundation.org/Development/GetInvolved. Это ровно информация для новичков в проекте, как скачать исходники, как собрать свой билд, какие зависимости, для каких IDE есть предварительные настройки и как их включить, какой код стайл мы используем, как пишем патчи и как их засылаем. Обратите внимание, вам нужно достаточно современное железо с многоядреным процессором (4 и более ядер) и большое количество ОЗУ (8 или более Гб), потому что первоначальная сборка на 4-х ядерном Core i5 2,5 ГГц занимет ровно два часа времени (а в 14 потоков и 16 Гб памяти - ровно один час). Также необходимо около 30Гб сводобного места на диске (который уже должен быть SSD).

После того, как вы настроите окружение, встанет вопрос, а с чего же можно начать знакомиться с проектом. У нас есть список так называемых изи хаков именно для этой цели. Обычно это баг репорт, в котором достаточно подробно расписано что надо сделать и указана ссылка на конкретный файл или даже строку в исходниках. Вот этот список - https://wiki.documentfoundation.org/Development/EasyHacks/by_Required_Skill/Skill_C%2B%2B. Обратите внимание, список разбит на три группы по сложности, выбирайте себе любую цель и пробуйте написать патч.

Если вы достаточно опытный разработчик и вам сразу все понятно и возможно просто интересна какая-то конкретная тема, например производительность, утечки памяти, проблемы в поддержке каких-то форматов, UI, новые фичи - у нас есть багзилла с бесконечно длинным списком проблем. Также у нас есть некая сортировка проблем по темам, мы называем это МЕТА багами, найти их можно вот здесь -  https://wiki.documentfoundation.org/QA/Tracking_Bugs. Там есть фильтры, можно отсортировать то, что вам надо и покопаться в конкретных баг репортах по выбранной теме.

После написания патча, он должен попасть к нам в геррит - https://gerrit.libreoffice.org/q/status:open+-is:wip+branch:master. Конечно мы используем Git, однако у нас имеется возможность поправить пару строк, используя веб-интерфейс. До пуша в геррит вы обязаны прогнать свой патч, используя команду make check - это позволит вам локально прогнать все юнит-тесты. В геррите патч проверит бот Дженкинс, который также гоняет юнит-тесты для каждой из популярных десктопных ОС, а затем ваш патч должен пройти код-ревью и кто-то из опытных разработчиков с правами должен вам поставить +2 и замержить ваш патч.

Найти разработчиков всегда можно в рабочие часы по средне-европейскому времени в IRC канале - https://web.libera.chat/?chan=#libreoffice-dev. Общение на английском языке.

Также можно задать технический вопрос в список рассылки для разработчиков (также на английском языке) - https://wiki.documentfoundation.org/Development/Mailing_List

Насчет использования ИИ при написании патчей - это допускается, но вы должны явно про это указать в описании патча, и вы должны суметь объяснить сами, что делает код, который вам нагенерил бредогенератор. Естественно патч должен собираться и проходить тесты у вас локально. 

По каким-то организационным вопросам можно спросить у меня в Телеграм (пока его не прибили), ник @Kompilainenn.