Fedora на пути к переводу Git-сервисов совместной разработки на платформу Forgejo

Мэттью Миллер (Matthew Miller), лидер проекта Fedora, представил инициативу по уходе от использования собственной платформы совместной разработки Pagure в пользу другой системы. В качестве замены управляющий совет Fedora Council намерен утвердить платформу Forgejo, но перед утверждением перехода на Forgejo решил провести публичное
обсуждение своего выбора и учесть мнение сообщества. Финальное голосование будет проведено через 2 недели и до этого времени любой может поделится своими мыслями по поводу сделанного выбора.

Используемая ныне собственная платформа Pagure изжила себя, требует больших ресурсов для сопровождения и не получила широкого распространения вне Fedora. Несколько лет назад была предпринята попытка замены Pagure на GitLab, но данная инициатива не продвинулась дальше обсуждений. Оценив существующие платформы совместной разработки был сделан вывод, что проекту необходимо открытое решение, подходящее для развёртывания на своих серверах. Лучше всего предъявляемым критериям соответствовали GitLab Community Edition и Forgejo.

Платформа Forgejo предназначена для развёртывания системы совместной работы с репозиториями Git, напоминающей по решаемым задачам GitHub, Bitbucket и Gitlab. Forgejo является форком проекта Gitea, который в свою очередь ответвился от платформы Gogs. Отделение Forgejo произошло в 2022 году после попыток коммерциализации Gitea и перехода управления в руки коммерческой компании. В рамках проекта Forgejo независимые разработчики попытались сохранить прежние принципы независимого управления и подконтрольности сообществу. Код проекта написан на языке Go. Начиная с выпуска 9.0 код Forgejo распространяется под лицензией GPLv3+, а старый код остаётся под лицензией MIT.

Ключевыми особенностями платформы Forgejo является низкое потребление ресурсов (может использоваться на плате Raspberry Pi или в дешёвых VPS) и простой процесс установки. Предоставляются типовые возможности работы с проектами, такие как управление задачами, отслеживание проблем (issues), pull-запросы, wiki, средства для координации групп разработчиков, подготовка релизов, автоматизация размещения пакетов в репозиториях, управление правами доступа, сопряжение с платформами непрерывной интеграции, поиск кода, аутентификация через LDAP и OAuth, доступ к репозиторию по протоколам SSH и HTTP/HTTPS, подключение web-хуков для интеграции со Slack, Discord и другими сервисами, поддержка Git-хуков и Git LFS, инструменты для миграции и зеркалирования репозиториев. Отдельно выделяется возможность использования протокола ActivityPub для объединения в федеративную сеть отдельных серверов разработчиков.

Взвесив все плюсы и минусы в качестве предпочтительной выбрана платформа Forgejo, так как она развивается независимым сообществом, в то время как GitLab является продуктов коммерческой компании, развиваемым в соответствии с моделью Open Core, при которой некоторые расширенные функции, среди которые те, что требуются в Fedora, доступны только в коммерческом продукте. При выборе также было учтено опасение, что со временем политика GitLab может поменяться и проект может стать менее открытым. Дополнительным доводом в пользу Forgejo стало то, язык Go и кодовая база Forgejo оказались более близки команде, отвечающей в Fedora за инфраструктуру, чем язык Ruby, используемый в GitLab.

Платформы GitLab и Forgejo имеют свои плюсы и минусы, и обе требуют определённых доработок для воссоздания функциональности платформы Dist Git на базе Pagure, применяемой при разработке Fedora Linux. В частности, в новой платформе необходимо будет реализовать интеграцию с сопутствующими сервисами проекта, такими как
Bodhi, Fedora CI, COPR, Fedpkg, Hotness, Fedora Notifications, Toddlers, Fedora Messaging, Monitor Gating, Release Engineering Scripts, Fedora Packagers и Packit.

Источник: http://www.opennet.ru/opennews/art.shtml?num=62341