Спустя шестнадцать месяцев после предыдущего релиза 0.10.1 разработчики представили версию 0.11 распределенного автономного трекера багов git-bug. Инструмент хранит данные об ошибках непосредственно в репозиториях Git, позволяя передавать их через стандартные удаленные репозитории. Программа функционирует полностью в автономном режиме и предоставляет пользователям интерфейсы командной строки, терминала и веб-интерфейс.

Новый веб-интерфейс для управления багами
Главным заметным изменением в версии 0.11 стал новый пользовательский веб-интерфейс, который, по словам разработчиков, был написан с нуля. Если предыдущая версия в основном предназначалась для просмотра проблем, то теперь пользователи получили полноценные возможности управления. Доступны просмотр, поиск, фильтрация и постраничная навигация по задачам, создание новых тикетов, добавление и редактирование комментариев, изменение заголовков, меток и статусов, а также просмотр профилей пользователей с созданными ими задачами.
Фильтрация теперь сохраняется непосредственно в URL, благодаря чему можно делиться ссылками на отфильтрованные представления. Интерфейс включает четыре темы оформления (светлую и темную версии в мягком и строгом стилях), а также поддерживает переключение между несколькими репозиториями, если сервер обслуживает сразу несколько проектов.
Встроенный браузер кода и новые возможности бэкенда
Серьезным дополнением за пределами трекера задач стал встроенный браузер кода. Веб-интерфейс теперь позволяет перемещаться по дереву файлов репозитория, просматривать файлы с подсветкой синтаксиса и нумерацией строк, создавать прямые ссылки на конкретные диапазоны строк и отображать файлы Markdown прямо в окне браузера. Кроме того, инструмент умеет показывать историю коммитов для отдельных файлов и каталогов, детали коммитов со сворачиваемыми различиями, а также переключаться между ветками и тегами.
Данные возможности реализованы не только на фронтенде. Бэкенд git-bug теперь поддерживает просмотр ссылок Git, деревьев, блобов, истории коммитов и диффов, причем эта функциональность экспортируется через проектный GraphQL API. Для получения исходных файлов репозитория также добавлен новый HTTP-эндпоинт.
Внутренние оптимизации и изменения совместимости
Под капотом версия 0.11 содержит масштабную работу по исправлению ошибок и повышению корректности. Разработчики устранили проблемы, связанные состязанием кэшей, устарванием метаданных, неатомарными коммитами, устареванием поисковых индексов после слияний, а также общими метками между различными представлениями одной задачи. Улучшилась и обратная совместимость: неизвестные операции теперь сохраняются, а не отбрасываются. Если более новая версия git-bug или другая реализация запишет операцию, которую старая версия не понимает, данные не будут утеряны при перезаписи задачи.
Серьезным изменениям подвергся поисковый индекс: проект перешел с Bleve v1 на Bleve v2. По данным разработчиков, на собственном репозитории проекта размер индекса уменьшился с примерно 51 МиБ до менее чем 4 МиБ, а существующие индексы перестраиваются автоматически при обновлении.
При переходе на новую версию стоит учитывать несколькоbreaking-изменений. Установка утилиты через go install больше не включает веб-интерфейс, команда git bug commands была удалена, а параметр git bug webui —host переименован в —bind. Кроме того, прекращена поддержка некоторых редко используемых платформ, включая Linux для архитектур 386 и s390x.






