ABF - новый бэкенд, новый дизайн и новые возможности

Материал из Rosalab Wiki
Перейти к: навигация, поиск

Как наверняка заметили пользователи ABF, у нашей системы сборки недавно сильно изменился внешний вид. Но вряд ли многие догадываются, что изменение дизайна — это не самоцель, а следствие серьезных изменений в структуре бэкенда ABF.

В частности, ABF теперь использует популярные фреймворки Bootstrap 3 и AngularJS. Переход на них был продиктован отнюдь не данью моде, а необходимостью избавиться от самописных наработок, перенеся тем самым ряд задач с разработчиков ABF на разработчиков фреймворков и позволив первым больше внимания уделять функционалу, связанному с непосредственными обязанностями ABF — разработкой и сборкой проектов под Linux. Подобная необходимость замены собственных велосипедов на стандартные решения рано или поздно встает перед многими проектами, и мы решили, что лучше с этим процессом не затягивать — пока все еще помнят, как все самописные вещи устроены и работают.

Процесс переезда на новые технологии занял более полугода, и в начале февраля мы сочли качество нового ABF достаточным для «выхода в свет» и представления широкой публике.

.png

Визуальные изменения в интерфейсе серьезны, а глаз разработчиков за полгода общения с ним успел замылиться, поэтому новые идеи и комментарии от пользователей относительно внешнего вида приветствуются. Если у вас есть более-менее глобальные предложения, то лучше оформлять их в виде идей на страничке ABF Ideas, а сообщения о мелких недочетах лучше отправлять с помощью соответствующей формы на сайте.

Помните, что визуальные изменения дизайна — это только вершина айсберга, внутренности ABF также подверглись серьезной переработке. Несмотря на обилие внутренних тестов (мы придерживаемся принципов Behavior Driven Development и пишем тесты на RSpec), мы допускаем возможность наличия ряда ошибок и регрессий. К слову, за первый день эксплуатации нового ABF мы по запросам пользователей уже исправили проблемы с подключением контейнеров, пересозданием сборок, отправкой pull request’ов через веб-интерфейс, автоматическим выбором целевых репозиториев в некоторых специфических случаях и несколько других проблем, не смертельных с точки зрения функционала разработки и сборки, но неудобных и неприятных с точки зрения пользователя Web-интерфйеса.


Есть и несколько новых заметных изменений в новом интерфейсе ABF по сравнению с предыдущим:

  • для времени и даты теперь предпочтительным является отображение абсолютного значения — 2014-06-10 14:02. Относительное значение отображается рядом, если позволяет место — 2014-06-10 14:02 (8 months ago);
  • на странице Advisories появилась колонка с именем проекта — очень полезно, так как по тексту некоторых advisories сложно понять, к какому пакету/проекту они относятся;
  • если проект является форком другого, то это будет отображено в меню на странице проекта:
.png
  • если в строке браузера ввести ссылку на несуществующий проект, то отобразится страница 404, но содержимое строки адреса очищено не будет (как это было в старом ABF, когда в строке адреса вы получали http://abf.io/404.html). Так что если вы ошиблись парой символов, то исправить это можно гораздо проще;
  • при создании новой сборки содержимое колонки «Build for platform» динамически изменяется в зависимости от того, что выбрано в поле «Save to repository». Например, если мы собираем пакет для репозитория rosa2014.1/main, то ABF разрешит подключить только репозитории платформы rosa2014.1:
.png

Наконец, главное нововведение в новом ABF — это проекты-алиасы («aliases»), имеющие общий Git-репозиторий. То есть теперь можно иметь два проекта vanya/old_project и petya/new_project с различными описаниями, владельцами, привязками к платформам/репозиториям и так далее, но с общим Git-репозиорием. Так что все изменения, которые происходят в коде проекта vanya/old_project автоматически попадают в код petya/new_project.

Создать проект-алиас можно нажав на кнопку «Fork» и выбрав соответствующую опцию — если у вас достаточно прав, но вам предоставят на выбор возможность склонировать проект либо сделать ему алиас. Однако помните, что для создания алиаса необходимо иметь права не только на создание проектов в целевой группе, но и иметь права администратора в группе, к которой принадлежит исходный проект. Посмотреть список алиасов проекта можно на странице его свойств. При удалении одного из алиасов Git-репозиторий не удаляется, пока есть хотя бы один привязанный к нему проект.

Пользоваться этой новой возможностью надо с аккуратностью — ведь если забыть о существовании алиаса, то можно невзначай навредить соседнему проекту. Впрочем, предназначен новый функционал в первую очередь для разработчиков дистрибутивов (у которых порой возникает необходимость автоматически синхронизировать изменения в сотнях и даже тысячах проектов из разных платформ), и большинству пользователей вряд ли пригодится.

Надеюсь, эта новость вас…

Ввела в экстаз ^_^9
32%
Порадовала :)15
54%
Оставила равнодушным -_-2
7%
Огорчила :(2
7%

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.