Помогите протестировать PR для ускорения выпуска Revolution 3.0

MODX 3 приближается к замораживанию функции перед бета-циклом и последующим релизом. Так как нам нужна максимально возможная помощь в тестировании и проверке ключевых проблем и Pull Requests («PRs»), мы создали это учебное пособие по подходу для тех, кто не привык жить в командной строке и работать с git'ом каждый день.

В настоящее время существует более двух десятков PR, которые должны быть объединены перед окончательным альфа-релизом.

Во время альфа версии, вещи, которые нарушают обратную совместимость, являются кандидатами для включения в релиз MODX 3.0. Однако, во время предстоящей бета-версии, больше никаких изменений, нарушающих совместимость, приниматься не будут. Бета-версия предназначена для шлифовки вещей и работы над тем, чтобы как можно больше дополнений работали без рефакторинга. Многие уже работают.

Для кого это учебное пособие?

Вам не обязательно быть разработчиком (core team), чтобы просматривать PR, но вы, вероятно, должны хорошо разбираться в MODX Manager.

Вы можете проверить, что все еще работает, и просмотреть предложенные изменения в дизайне. На самом деле, единственным требованием является возможность выполнить несколько вещей из командной строки/оболочке, которые в основном состоят из копировать/вставить.

На компьютерах Mac это обычно делается через Terminal.app, под Windows Putty, и под Linux… ну, если вы уже знаете Linux.

Вам также понадобится учетная запись на Github.com, поэтому зарегистрируйтесь сегодня, если вы еще не являетесь участником и хотите принять участие.

Чем больше людей добавят отзывы, особенно к PR, которые уже запланированы для следующего выпуска, тем лучше. Это ускорит выход финального релиза 3.0, на котором мы сфокусированы.

Как принять участие

Чтобы обеспечить обратную связь при просмотре PR, мы сделаем следующее:

  • Установите Revo 3.0 из Git
  • Ознакомьтесь с PR для тестирования
  • Протестируйте изменения, внесенные в PR
  • Оставьте отзыв на Github
  • Вернуться и повторить!
Среда
Окружающая среда

Для сервера вы можете работать локально, используя что-то вроде MAMP. Для этого урока я использовал экземпляр Flex Cloud в MODX Cloud, который также упрощает обмен информацией с людьми по мере необходимости.

Следующие шаги должны занять примерно 5 минут.

1. Установка MODX Revolution из Git

Во-первых, создайте экземпляр Flex Cloud. Чтобы упростить задачу, я использовал панель управления Cloud в нижней части вкладки «Веб-сервер», чтобы сделать его общедоступным корневым каталогом веб-каталога:



Теперь подключитесь к этому экземпляру через SSH (хотя мы рекомендуем делать это через пару ключей SSH) и используете cd www, чтобы попасть в основной каталог веб-сервера.

В следующей версии TL;DR вы сможете быстро выполнять команды оболочки для сборки и установки Revo 3 из Git, в основном с помощью copy/paste, или вы можете узнать все подробности установки Revo из Git в документации MODX.

После подключения к серверу через SSH и перехода в каталога www/ выполните следующие команды. Сначала клонируйте репозиторий Revo Git («репо») в каталог www/:

git clone http://github.com/modxcms/revolution.git

Затем необходимо переключиться на ветку 3.x в уже созданном каталоге revolution/:

cd revolution
git checkout -b 3.x origin/3.x

Далее копируем дефолтный файл настроек командами и открываем для настройки:

cp _build/build.config.sample.php _build/build.config.php
nano _build/build.config.php

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

define('XPDO_DSN', 'mysql:host=127.0.0.1;dbname=instance_c9000_flex;charset=utf8');
define('XPDO_DB_USER', 'c9000');
define('XPDO_DB_PASS', 'bs63yrwdvkn3ez1');

А именно:
— в dbname — instance_c9000_flex
— в XPDO_DB_USER — c9000
— в XPDO_DB_PASS — bs63yrwdvkn3ez1

После нажатия ctrl-x для выхода и сохранения изменений вернитесь к шагам сборки:

cp _build/build.properties.sample.php _build/build.properties.php
nano _build/build.properties.php

Точно так же я внес следующие изменения в файл build.properties.php, сохранил их и вышел с помощью nano:

/* mysql */
$properties['mysql_string_dsn_test']= 'mysql:host=127.0.0.1;dbname=instance_c9000_flex;charset=utf8';
$properties['mysql_string_dsn_nodb']= 'mysql:host=127.0.0.1;charset=utf8';
$properties['mysql_string_dsn_error']= 'mysql:host=nonesuchhost;dbname=nonesuchdb';
$properties['mysql_string_username']= 'c9000';
$properties['mysql_string_password']= 'bs63yrwdvkn3ez1';

Изменил:
— mysql:host на 127.0.0.1
— в mysql_string_username — c9000
— в mysql_string_password — bs63yrwdvkn3ez1

Одна из замечательных особенностей MODX Revolution 3 заключается в том, что она использует преимущества экосистемы Composer PHP. Поэтому мы начнем с безопасной установки Composer, включая проверку хэша безопасности и удаление инсталлятора по завершению.

Начните с возврата в основной каталог www/:

cd ..
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'e5325b19b381bfd88ce90a5ddb7823406b2a38cff6bb704b0acc289a09c8128d4a8ce2bbafcd1fcbdc38666422fe2806') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"

Затем мы выполняем установку Composer в наш экземпляр Revo, который скоро будет запущен:

cd revolution
php ../composer.phar install

Создайте файл core/ .zip, чтобы подготовиться к фактической установке Revo, чтобы у вас была самая свежая информация. Не беспокойтесь, если вы просматриваете это, почти все вышеперечисленное можно скопировать/вставить, и это займет всего несколько минут.

cd _build
php transport.core.php

Пока мы занимаемся этим, давайте заблокируем каталог core/, чтобы избежать раздражающего предупреждения менеджера о том, что он доступен через Интернет на панели инструментов:



Над блоком расположения по умолчанию, как показано на снимке экрана выше, добавьте следующее:

location ^~ /core/ {
    deny all;
    return 403;
}

И (наконец!), мы фактически устанавливаем Revo, открыв веб-браузер и посетив каталог setup/ нашего MODX Cloud экземпляра: c9000.paas4.sng.modxcloud.com/setup/ (используя фактический адрес вашего Cloud экземпляра).

Следуйте шести подсказкам мастера установки и подключите подробную информацию с панели управления MODX Cloud Dashboard. Важное примечание: некоторые PR могут потребовать повторной настройки, например, когда PR влияет на вещи, хранящиеся в базе данных, поэтому обратите внимание на примечания к PR в Github.

Поэтому важно не удалять каталог настройки на последнем шаге мастера установки, сняв флажок.

Когда вы закончите, добавьте символы к имени каталога установки или исключите его из web-доступа, как мы делали это с вышеприведенным каталогом ядра, который вы вернетесь, если вам нужно будет запустить его снова в будущем.

2. Проверка PR для тестирования

Я выбираю PR, связанный с UX, чтобы начать с этого урока. Чтобы это попало в ваш тестовый экземпляр, нам нужно настроить Git на использование PR в качестве источника Git'а вместо основной ветки кодовой базы, из которой он должен вытаскивать. Мы изменим .git/config файл внутри репо, отмеченного выше, изменив части, в последней строке раздела [remote «origin»]:

nano ~/www/revolution/.git/config

При этом откроется нано-редактор, который обновит содержимое файла, изменив его, как указано в выделенных местах ниже:

[core]
        repositoryformatversion = 0
        filemode = true
        bare = false
        logallrefupdates = true
[remote "origin"]
        url = http://github.com/modxcms/revolution.git
        fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
[branch "2.x"]
        remote = origin
        merge = refs/heads/2.x
[branch "3.x"]
        remote = origin
        merge = refs/heads/3.x

Мы изменили:

fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
Сохраните изменения и убедитесь, что вы находитесь в каталоге revolution/ при выходе из nano, чтобы получить PR локально:

git fetch origin

Это перенесет все PR Revo в вашу локальную среду и займет около минуты. Наконец, мы проверим выбранный PR для тестирования. Мы будем использовать для этого одну команду в формате git checkout origin/pr/PR_ID.

git checkout origin/pr/15149
3. Тестируем!

Теперь начинается настоящее веселье. В общем, ты тыкаешь и проверяешь, чтобы убедиться, что все соответствует тому, что говорит автор PR, и убедиться, что нет ошибок.

  • Он работает или делает то, что говорит?
  • Есть ли визуальные ошибки или несоответствия?
  • Создаются ли ошибки в журнале ошибок MODX Manager?
  • Есть ли ошибки в консоли JS веб-инспектора?
4. Отзывы о работе Github

Посетите страницу MODX Revolution Github и найдите PR, который вы проверили. В данном примере он расположен на https://github.com/modxcms/revolution/pull/15149.

Так как все выглядело хорошо, я ввел комментарий, чтобы показать, что я просмотрел PR в локальной установке, что он работал так, как описано, и предложил некоторые дополнительные улучшения для рассмотрения. Не нашёл ни функциональных ошибок, ни ошибок консоли JS.

5. Возвращение и Повтор

Как вернуться к «чистой» версии, чтобы все повторить или сделать что-то еще? Можете ли вы выстроить цепочку из нескольких проверенных PR?

Если Вы написали отзыв к PR, можно выбирать дургой PR. Чтобы получить его локально для дальнейшего просмотра, просто убедитесь, что вы находитесь в вашем каталоге revolution/:

git pull

Чтобы вернуться к «чистому» последнему гит-репо, перепроверь:

git checkout 3.x && git pull

Или, если вы хотите просмотреть другой PR (где 123456 — идентификатор нужного PR):

git fetch origin && git checkout origin/pr/123456


Вот так. Теперь ты можешь помочь с рецензией PR.

Мы были бы рады видеть, что вы участвуете в открытом револьверном отборе запросов на Github, нуждающихся в рецензии.

Далее, я планирую написать, как отправить PR. Если у вас есть что-то еще, что вы хотели бы увидеть, дайте мне знать.

Важно: Для того, чтобы использовать MODX Cloud для тестирования — Вы можете заполнить форму по ссылке Help Test PRs to Accelerate the Revolution 3.0 Release, а также использовать Modhost на тестовом или других тарифах.

P.S: Я всех призываю. лично помочь с тестированием и помочь с написанием кода!
MODX 3 в 2021 году быть!

Всем спасибо!

Источник: Help Test PRs to Accelerate the Revolution 3.0 Release
Иван Бочкарев
21 февраля 2021, 23:11
modx.pro
2
1 571
+21
Поблагодарить автора Отправить деньги

Комментарии: 12

Boris Akimenko
22 февраля 2021, 12:55
+2
Фух… Хвала богам! А то я после долгого перерыва зашел сюда, почитал, офигел с того что Вася самоотвёлся, офигел с того что вышла какая-то бомба под названием Evolution 3, и подумал, что MODX3 что-то подозрительно долго не подает признаков жизни.

Но это отличная новость!

Есть ли дедлайн по тестированию?
    Иван Бочкарев
    22 февраля 2021, 13:03
    +3
    vi.to/hubs/modx-meetup — 4-5 марта пройдет большое мероприятие Багхант, по итогом которого надеемся хорошо продвинемся вперед.

    Каких то сроков нет.
    Raimei
    22 февраля 2021, 21:22
    +1
    На modhost.pro на тестовом тарифе тоже можно протестировать MODX3.

    Для заметки.
      Иван Бочкарев
      22 февраля 2021, 21:26
      0
      Давно вообще не актуальная версия. Если ставить с github то будет актуальная
      Илья Уткин
      23 февраля 2021, 08:17
      +4
      Есть старая статейка, ещё 2018 года тоже на эту тему. Инструкции чуть-чуть различаются, но в общем, делается все одно и то же. Так что можно выбирать, какая инструкция покажется легче. ilyaut.ru/tips-and-tricks/testing-modx-pr/
        Андрей
        24 февраля 2021, 14:27
        +1
        Добавлю ещё видео от Sterc — Testing MODX Pull Requests
          Иван Бочкарев
          24 февраля 2021, 14:51
          0
          Статей то много.., только проблема в том, что это н… г ни кому не нужно. Мало кто принимается помогать.
          Процент приближается к 0,001% от прочитавших.

          Печально.
            Николай Савин
            24 февраля 2021, 15:17
            0
            Может потому что сами авторы MODX не особо то напрягаются и не вызывают энтузиазма?
              Иван Бочкарев
              24 февраля 2021, 15:29
              +1
              Сейчас стало по активнее и можно подключаться — если есть возможность и Вы не хотите, чтобы развитие данной CMS не остановилось.

              Что касается авторов CMS — то тут пока сложно, но и нет у нас лидера, кто бы смог взять на себя форк и развитие CMS. Так как на дворе не 2000 год и множество других систем.

              Плюс (положительный момент) — что руководство MODX LLC начало прислушиваться к сообществу и команде и вот недавно Jay Gilmore спрашивал, что и как можно улучшить в плане разработки MODX и прочее.

              Я свои мысли отправил ему в личку.
          Alex
          24 февраля 2021, 16:40
          0
          Совсем не программистам нужно или нужно участвовать в тестировании?
          МОДХ как менеджер/администратор знаю.
            Иван Бочкарев
            24 февраля 2021, 16:42
            0
            Можно как минимум описывать, то что можно улучшить для работы с админ панелью и сообщать об ошибках. Это тоже считаю помощью.
              Alex
              24 февраля 2021, 16:42
              0
              Принято!
            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
            12