Хабрахабр

Интеграция кода Vivaldi. Рассказывают наши разработчики

image

В интервью трое ведущих специалистов компании впервые публично рассказали об этом важном компоненте процесса разработки браузера Vivaldi. Недавно норвежское издание Digi.no опубликовало рассказ о том, как разработчики браузера Vivaldi работают с кодом Chromium.

Они рассказали о том, как проводится работа по интеграции кода браузера Vivaldi и ядра Chromium, которое используется в браузере — о преимуществах и недостатках такого подхода, а также о том, какие проблемы при этом возникают и как с ними бороться. В интервью норвежскому изданию приняли участие трое сотрудников компании — Ингве Петтерсен, Ярле Антонсен и Андре Шульц.

Ниже — перевод на русский язык наиболее интересных вопросов и ответов.
image
(По часовой стрелке слева направо) Харальд Бромбах из Digi.no, Ярле Антонсен, Ингве Петтерсен, Андре Шульц.

Является ли проблемой большой объём и короткая периодичность обновления кода ядра Chromium?

Ингве Петтерсен (ведущий инженер): Новая версия Chromium выходит каждые шесть недель и мы должны интегрировать собственный код Vivaldi с кодом этого ядра. Я занимаюсь этой задачей, являясь ответственным за кодовую базу браузера. И — да, это довольно сложная и трудоёмкая работа, которая занимает несколько недель.

Есть ли какой-то прогресс в этой работе?

Ярле Антонсен (менеджер проектов): Раньше процесс интеграции занимал три-четыре недели, но с интеграцией двух последних версий Chromium (68 и 69) разработчики Vivaldi справились менее, чем за две недели. Основную проблему составляли регрессии — когда наш код переставал работать с кодом Chromium, и именно их исправление занимает основное время.

Как идёт работа с сообществом Chromium?

Андре Шульц (UI разработчик): К нашей радости — очень продуктивно. Я постоянно отправляю вопросы разработчикам различных модулей и получаю вполне подробные ответы, иногда даже с предложениями, как сделать работу модуля ещё лучше.

А вы вносите вклад в разработку Chromium?

Ингве Петтерсен: За последние шесть месяцев мы отправили с десяток патчей для кода Chromium. В основном это предложения по очистке кода, но также были и исправления ошибок. Прямо сейчас мы готовим ещё несколько патчей для отправки разработчикам Chromium.

image
Ярле Антонсен, Ингве Петтерсен, Андре Шульц.

Насколько сложен и продолжителен процесс интеграции кода?

Ингве Петтерсен: После выхода очередного обновления Chromium я создаю новую отдельную ветку и начинаю работать с ней. Я извлекаю код Chromium и синхронизирую все подмодули, которые мы используем, одновременно внося небольшие изменения. Данная часть процесса достаточно хорошо автоматизирована у нас.

Здесь много ручной работы, т.к. Затем мы копируем все наши обновления поверх кодовой базы Chromium. Раньше это было очень проблематично, но со временем мы хорошо почистили код от элементов, вызывавших конфликты, и сегодня всё происходит значительно проще. мы получаем довольно много регрессий и конфликтов слияния кода. Мне потребовалось примерно пять-шесть часов на это — раньше уходило не меньше недели. Например, при последнем обновлении мы внесли изменения в примерно 900 файлов, и только 80 файлов потребовали ручной правки кода.

Как правило, на это требуется один день или даже несколько часов. После завершения слияния кода требуется скомпилировать код браузера для различных платформ — Windows, Linux, Mac. В общем же процесс слияния кода занимает сегодня два-три дня.

Как выявляются новые проблемы?

Ингве Петтерсен: Собственно в процессе интеграции кода уже проявляются ошибки, для исправления которых приходится вносить изменения в код модулей Vivaldi. Это может занять довольно много времени.

Затем Андре, Ярле и другие разработчики начинают исправлять обнаруженные проблемы, а также новые, которые выявляются уже в процессе тестирования браузера Vivaldi.

А насколько сложен этот процесс?

Андре Шульц: Да, изменения в Chromium являются самыми сложными в нашей работе. Пару раз мы отключали флаги для некоторых функций и работали параллельно с функциями Chromium, которые были фактически удалены из следующих версий ядра. Это создало нам много проблем. Наиболее сложный случай произошёл при обновлении на ядро Chromium 64 и нам потребовалось много времени на исправление, что сказалось на сокращении темпов выпуска новых сборок браузера Vivaldi.

Ингве Петтерсен: После исправления проблем, возникших при интеграции нового ядра, мы продолжаем работу по поиску и исправлению ошибок до тех пор, пока не получим достаточно стабильную версию, пригодную для выпуска в качестве готового продукта.

Как обстоят дела с добавлением новых функций в браузер?

Ингве Петтерсен: Да, мы не перестаём работать над новыми функциями, поэтому основной код Vivaldi постоянно изменяется и тестируется. Каждый раз, когда один из разработчиков добавляет изменения в код, автоматически создаётся новая сборка. Эти сборки активно тестируются сначала внутри компании и сторонними тестерами Sopranos, а затем и пользователями публичных тестовых сборок браузера, и в конце концов именно QA отдел принимает решение о том, готовы ли мы выпустить финальный релиз.

Я не знаю точно, сколько разработчиков принимает участие в разработке Chromium, но их, конечно, намного больше, чем нас. Сейчас в компании Vivaldi работает около 20 разработчиков. Можно попробовать сравнить по количеству изменений в коде, сделанных обеими командами в последнее время.

За прошедший год мы внесли более 2700 изменений. За пять лет мы внесли более 17000 изменений в наш основной код. Другими словами, команда разработчиков Chromium внесла за несколько дней столько же изменений, сколько мы внесли в свой код за год. Для сравнения, между Chromium 67 и 68 было внесено примерно 12000 изменений в код Chromium, а между версиями 68 и 69 эта цифра составила уже около 15000 изменений. Поэтому я оцениваю число активных разработчиков Chromium в примерно 600 человек.

В небольшой команде легче избегать излишней бюрократии. Ярле Антонсен: Как правило, у нас проходит немного времени от идеи до реализации новой функции. И, естественно, процесс добавления новых функций очень зависит от запросов пользователей — их рекомендации и отзывы имеют решающее значение для нашей работы. При этом практически все члены команды принимают активное участие в тестировании новых функций, включая директора компании Йона фон Тэчнера.

image
(По часовой стрелке слева направо) Ярле Антонсен, Ингве Петтерсен, Андре Шульц, Харальд Бромбах.

Оригинал статьи

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть