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

    image

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

    В интервью норвежскому изданию приняли участие трое сотрудников компании — Ингве Петтерсен, Ярле Антонсен и Андре Шульц. Они рассказали о том, как проводится работа по интеграции кода браузера 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 отдел принимает решение о том, готовы ли мы выпустить финальный релиз.

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

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

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

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

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

    Vivaldi Technologies AS

    111,89

    Vivaldi — браузер для наших друзей

    Поделиться публикацией

    Похожие публикации

    Комментарии 23
      +4
      Мяса, хочу мяса. А тут сплошная вода :(
        +1
        Прогресс за такое короткое время, по сравнению с конкурентами, просто огромный! Но я не готов перейти на этот браузер как на основной… Жду версию под андроид с синхронизацией.
          0

          Под Android уже идёт разработка. В следующем году покажем.

            0
            Вот это действительно хорошая новость! Даже хотелось бы как-нибудь поспособствовать скорейшему релизу.
              0

              Ну, как только выкатим публичную тестовую версию — сможете потестировать и помочь в скорейшей подготовке стабильной версии.

              0
              А потом еще год будут пилить синхронизацию между десктопным приложением и андроидом. Как раз таки с синхронизацией, пользователей тоже кормили что «вот-вот вот ща добавим», а на деле джва года пришлось ждать
                0

                Сколько нужно для нормальной работы — столько и будем пилить :-)

            +1
            Ну ни о чём статья. Смотрел я код вивальди — интересно сделали интеграцию с оригинальными исходниками. Я прямо в код хромиума делаю все правки. За три недели переношу код в новую ветку. Регрессы там редкие и обычно всё решается быстро, а уж с 16 разработчиками это вообще должно быть легко, даже при том, что кода у вас замтено больше.
              +5
              А какова бизнес-модель вивальди, если не секрет? Чтобы 16 разрабов кормить должно быть и с профитом неплохо. И вопрос 2 сразу: если вивальди опенсорсный, не проще в хромиум сразу контрибьютить? или не принимают патчи?
                0

                Бизнес-модель такая же, как была во времена классической версии браузера Opera. Мы заключаем договора с популярными поисковыми системами (кроме Google), с онлайновыми магазинами и прочими популярными ресурсами, и за пользователей, приходящих на эти сервисы или делающих покупки из Vivaldi, мы получаем небольшой доход.


                На данный момент мы ещё не вышли на самоокупаемость и частично работаем за счёт личных средств основателя компании, Йона фон Тэчнера. Но при этом относительный уровень доходов уже достиг запланированного объёма — не менее $1 в год за каждого пользователя. Для того, чтобы выйти на самоокупаемость (и приступить к разработке собственного движка), нам теперь необходимо нарастить базу пользователей до уровня 0,1% на мировом рынке браузеров. На данный момент мы приближаемся к отметке 0,06%.

                  +1
                  Спасибо за ответ. Раз вы планируете разбавить гугломозилловую монополию веб-движков, поставлю себе в хромиум юзерагентом вивальди, чтобы вам денежек больше капало :)
                    0
                    А пожертвования принимаете?
                      +1

                      Нет. Мы же не церковь :-)

                    0
                    Видишь закладки на стартовом экране — они и приносят деньги. У Оперы такая ссылка на месяц стоит около $50000 только на РФ. Все изменения в таких браузерах всякие плюшечки, чтобы пользователь выбирал не Хром, а другой браузер, так что смысла их комнтрибьютить нет никакого — тогда чем к себе пользователей заманивать если всё будет одинаковое? Мейлру Амиго точно так же работал. Только у них ещё и поиск свой и он уж очень убогий.
                    0
                    поставлю себе в хромиум юзерагентом вивальди, чтобы вам денежек больше капало :)

                    Это не поможет :-)
                    У нас партнёрские идентификаторы зашиты в закладках.

                      +1
                      Да всё с вами давно понятно! )) Пока свой движок ваять не начнёте, будем мучаться и ждать чуда… Вот ещё застарелая вещь, которая в тупик ставит и заставляет задуматься (на фоне других несуразностей) — может это со мной что-то не так? Если вдруг забыл включить роутер и попытался в Вивальди открыть какой-нибудь адрес, то и при наличии подключения в дальнейшем будешь получать по этому адресу «нет доступа, проверьте соединение». Штатной очисткой кэша, истории и пр. в «Удалить личные данные» не лечится — ЭТО сидит где-то глубже. Помогает лишь перезапуск браузера, причём через некоторое время (непонятно какое — видимо, есть нечто, убиваемое не сразу). Понимаю (на 99%), что дело в движке, но мне, простому смертному, от этого не легче. Вот и статью эту, по вышеуказанной причине, читал поначалу из Оперы 12 (жива ещё курилка). Мучать параллельно Хром и разбираться «кто виноват», ну нет времени и особого желания! (Браузеры на других движках присутствуют и, знаю, работают нормально). Так что, скорей бы уж, что-то своё, шедеврально-неповторимое… )) Пардон, крик души.
                        0
                        дык это и в хромиуме так, видимо днс только 1 раз при старте программы из настроек системы берется (по кр мере в линукс)
                        0
                        Шпанков, когда уже персональную панель закладок (та что под строкой адреса) доделаете?
                        Я жду уже 3 года!
                        И хотел бы пользоваться вашей программой, но вы хотя бы функционал того, что прикручено доделайте.
                        Что обидно старая 10 летняя версия хрома все это умеет, а ваш такой весь новый вивальди не может.
                        До сих пор нельзя (все это про панель закладок):
                        1. Вытащить из папки, закладку на панель закладок. Причем обидно что засунуть закладку с панели туда можно а обратно вытащить фигушки.
                        2. Перемещать закладки внутри папок.
                        3. Нельзя изменять свойства закладок внутри папок.
                        4. У закладок которые лежат непосредственно на панели закладок, нельзя менять свойства, их можно только переименовать.
                        5. Нельзя изменять свойства папок, которые лежат внутри папок.
                        6. Нельзя вытащить папку из папки на панель закладок.
                        7. нельзя создать папку внутри папки.

                        Что долго еще ждать?
                          0

                          Для того, чтобы какие-то функции появились в браузере быстрее, очень неплохо отправить баг-репорт или хотя бы начать обсуждение в форуме.

                            0
                            Шпанков, Вы издеваетесь?
                            Да три года назад, в течении полугода, я Вас лично и блог Вивальди забрасывал просьбами и багрепортами на предмет сделать нормальный функционал панели закладок. В результате какой-то ваш представитель, написал мне, что если я еще раз напишу про панель закладок и то меня забанят.
                            После этого я просто махнул на вас рукой.
                            Раз в 3-4 месяца, обновляю вивальди, убеждаюсь что панель закладок всё такая же убогая по функциональности и закрываю вашу поделку еще на 3-4 месяца.
                              0

                              Не нужно забрасывать блоги и форумы — чрезмерная активность никак делу не поможет. Если пришлёте номера баг-репортов — я посмотрю, на каком они этапе сейчас и попробую ускорить процесс.

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

                                  Можете прислать в личку адрес email, который использовался для баг-репортов — я поищу в BTS сам.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое