Новости Отчёт mj за февраль / середину марта по работе над «непрерывной интеграцией»

Тема в разделе "Новости", создана пользователем Mr. Pickles, 23 мар 2021.

  1. Mr. Pickles

    Команда форума Модератор Редактор

    Регистрация:
    11 сен 2017
    Сообщения:
    981
    Симпатии:
    246
    Первый этап моей работы, который длился с середины февраля по середину марта, закончился. Как я и обещал, в начале марта у меня была возможность поработать с большей отдачей. Спасибо вам за поддержку, и хотелось бы выразить отдельную благодарность интеграторам и рецензентам за уделённое ими время.

    Объединённые ветки и патчи

    Я постарался выявить текущие проблемы, которые мог бы решить, и нашёл следующие, начиная с полностью решённых:
    В обоих случаях время перекомпиляции было сокращено примерно в 10 раз, или на 30 минут, что равносильно часу времени GitHub Actions (а это действительно стоит денег).

    Я помог @moneromoo со следующими патчами:
    Я помог частично снизить риск сбоев Mining Test, просто увеличив время тайм-аута инициализации RX. Позже выяснилось, что всё не так просто. Подробнее об этом ниже в списке недавно открытых веток.

    Недавно открытые ветки
    • Здесь стоит особо отметить, что я довольно серьёзно подошёл к исправлению случайных отказов Mining Test. Подробную информацию по этой проблеме можно найти здесь. Это должно решить проблему раз и навсегда, независимо от того, насколько чрезмерно будут использоваться машины GitHub во время тестирования. Такая работа потребовала огромных временных затрат. В случае с этой веткой много времени ушло на весьма конструктивный анализ, проведённый @iamamyth, и рассмотрение результатов этого анализа. Всё это позволило довести идею до практически идеального состояния. Помимо этого, в результате появились и некоторые новые идеи.
    • В связи с вышеизложенным я подготовил function_tests_rpc, который будет работать под Python3, а не под Python2. Тому есть две главные причины: a) становится всё труднее работать в Python2, если требуется нечто большее, чем просто функциональность, и b) Python2 более не поддерживается с начала 2020 года даже в случае с патчами механизмов безопасности.
    • В проектные файлы мною были добавлены заголовки Epee, что важно при работе в средах IDE, для которых CMake может создавать проекты. Это облегчает дальнейшее совершенствование Epee.
    • Epee можно динамически связать после слияния вот этого. При изменении Epee это уменьшает объём динамически компилируемых двоичных файлов почти на 10% и уменьшает время компоновки.
    • Мною был решён пользовательский запрос, где цель состояла в адаптации компиляции для использования на ARM Mac (в данном случае на SoC под названием M1). Я считаю, что поддержка устройств на базе ARM важна с точки зрения дальнейшего продвижения Monero, поскольку процессоры ARM идеально подходят для реализации полных узлов, благодаря низкому энергопотреблению.
    • Попытка исправить некоторые потенциальные ошибки памяти. Начиная с Epee.
    • Укрепление исходника путём исправления некоторых важных ошибок компиляции (во избежание сбоев и неопределенного поведения).
    Документация
    • doc: в случае Ubuntu, на базе другой работы, до абсолютного минимума был сокращён список библиотек Boost. Это поможет разработчикам пакетов Monero сократить количество зависимостей.
    • Также я принял участие в анализе результатов работы других контрибьюторов. Надеюсь, что всё это принесёт пользу.
    ---

    Источник: mj part time coding - 3 months

    Перевод:
    Mr. Pickles (@v1docq47)
    Редактирование:
    Agent LvM (@LvMi4)
    Коррекция:
    Kukima (@Kukima)
     
  • О нас

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