05 - Пример 2 на GitHub: Joomla! CMS
Приступая к работе
Если вы хотите внести свой вклад в Joomla! основной код, вам понадобится учетная запись на GitHub . Это бесплатно, и настройка занимает несколько минут. Вам также понадобится работающий стек усилителей [LMWX] на вашем локальном ноутбуке или рабочей станции. Вам почти наверняка также понадобится IDE!
Форк joomla/joomla-cms на GitHub
Войдите в свою учетную запись на GitHub и введите joomla / joomla-cms в поле Search or Jump to...
поле вверху слева. Вы должны находиться в оригинальном репозитории joomla-cms.
Щелкните по Fork
кнопка в правом верхнем углу экрана. Откроется форма с просьбой подтвердить детали вилки, которую вы хотите сделать. Обычно достаточно выбрать зеленый Create fork
кнопка.
Это создаст полную копию репозитория joomla-cms в том виде, в каком он существует в настоящее время в вашей учетной записи. Если кто-то обновит оригинал позже, вы можете использовать Sync fork
кнопка для обновления вашего репо.
Клонируйте свой форк Github локально
Локальный веб-сервер Apache использует определенную папку для отдельных веб-сайтов. Например, на Mac это может быть /Users/имя пользователя/Sites. У вас может быть много сайтов для тестирования и разработки различных проектов, каждый в отдельной подпапке. В процессе клонирования будет создана папка в вашей текущей папке, поэтому сначала откройте окно терминала и переключитесь на папку "Сайты".:
cd ~/Sites
Затем введите команду clone (клонировать):
git clone https://github.com/yourusername/joomla-cms.git
Это может занять много времени! Перейдите в папку joomla-cms и перечислите, что в ней находится:
cd joomla-cms ls -al total 2192 drwxr-xr-x 44 ceford staff 1408 26 Aug 17:28 . drwxr-xr-x 107 ceford staff 3424 26 Aug 17:26 .. -rw-r--r-- 1 ceford staff 2174 26 Aug 17:28 .appveyor.yml -rw-r--r-- 1 ceford staff 13689 26 Aug 17:28 .drone.yml -rw-r--r-- 1 ceford staff 388 26 Aug 17:28 .editorconfig drwxr-xr-x 12 ceford staff 384 26 Aug 17:28 .git drwxr-xr-x 11 ceford staff 352 26 Aug 17:28 .github -rw-r--r-- 1 ceford staff 1765 26 Aug 17:28 .gitignore -rw-r--r-- 1 ceford staff 4076 26 Aug 17:28 .php-cs-fixer.dist.php -rw-r--r-- 1 ceford staff 6748 26 Aug 17:28 CODE_OF_CONDUCT.md -rw-r--r-- 1 ceford staff 18092 26 Aug 17:28 LICENSE.txt -rw-r--r-- 1 ceford staff 4469 26 Aug 17:28 README.md -rw-r--r-- 1 ceford staff 4942 26 Aug 17:28 README.txt drwxr-xr-x 12 ceford staff 384 26 Aug 17:28 administrator drwxr-xr-x 6 ceford staff 192 26 Aug 17:28 api drwxr-xr-x 20 ceford staff 640 26 Aug 17:28 build -rw-r--r-- 1 ceford staff 6422 26 Aug 17:28 build.xml drwxr-xr-x 3 ceford staff 96 26 Aug 17:28 cache drwxr-xr-x 4 ceford staff 128 26 Aug 17:28 cli -rw-r--r-- 1 ceford staff 461 26 Aug 17:28 codeception.yml drwxr-xr-x 19 ceford staff 608 26 Aug 17:28 components -rw-r--r-- 1 ceford staff 3867 26 Aug 17:28 composer.json -rw-r--r-- 1 ceford staff 419222 26 Aug 17:28 composer.lock -rw-r--r-- 1 ceford staff 6858 26 Aug 17:28 htaccess.txt drwxr-xr-x 8 ceford staff 256 26 Aug 17:28 images drwxr-xr-x 6 ceford staff 192 26 Aug 17:28 includes -rw-r--r-- 1 ceford staff 1068 26 Aug 17:28 index.php drwxr-xr-x 16 ceford staff 512 26 Aug 17:28 installation drwxr-xr-x 5 ceford staff 160 26 Aug 17:28 language drwxr-xr-x 7 ceford staff 224 26 Aug 17:28 layouts drwxr-xr-x 16 ceford staff 512 26 Aug 17:28 libraries drwxr-xr-x 27 ceford staff 864 26 Aug 17:28 modules -rw-r--r-- 1 ceford staff 538644 26 Aug 17:28 package-lock.json -rw-r--r-- 1 ceford staff 3983 26 Aug 17:28 package.json -rw-r--r-- 1 ceford staff 639 26 Aug 17:28 phpunit-pgsql.xml.dist -rw-r--r-- 1 ceford staff 642 26 Aug 17:28 phpunit.xml.dist drwxr-xr-x 26 ceford staff 832 26 Aug 17:28 plugins -rw-r--r-- 1 ceford staff 422 26 Aug 17:28 renovate.json -rw-r--r-- 1 ceford staff 764 26 Aug 17:28 robots.txt.dist -rw-r--r-- 1 ceford staff 26187 26 Aug 17:28 ruleset.xml drwxr-xr-x 5 ceford staff 160 26 Aug 17:28 templates drwxr-xr-x 8 ceford staff 256 26 Aug 17:28 tests drwxr-xr-x 3 ceford staff 96 26 Aug 17:28 tmp -rw-r--r-- 1 ceford staff 2974 26 Aug 17:28 web.config.txt
Создание работающего сайта на Joomla
Загруженный развития отрасли нужны дополнительные шаги, чтобы создать сайт работает на Joomla. Это из файла README.md :
composer install npm ci
Опять же, это займет некоторое время, и вы увидите промелькнувшие мимо команды для компиляции файлов javascript и css. Когда закончите, вы можете направить свой браузер на localhost / joomla-cms и пройти обычный процесс установки.
Теперь сайт должен работать как любой обычный сайт на Joomla.
Внесение изменений
Если вы хотите внести свой вклад в работу с CMS Joomla, вам необходимо пройти следующие этапы:
- Создайте и оформите филиал в вашем локальном репозитории. Это очень важно! Он будет содержать запись изменений, которые вы предлагаете внести в оригинал.
- Вносите и тестируйте изменения и не забудьте проверить, соответствует ли ваш код стандартам кодирования Joomla.
- Зафиксируйте и отправьте ваши изменения в ваше удаленное репозиторий на GitHub.
- Сделайте запрос на извлечение в вашем удаленном репозитории, чтобы запросить объединение вашей ветки с основной.
Создание и проверка ветки
В окне терминала убедитесь, что вы находитесь в корневом каталоге своего сайта, затем:
- ветвь git mypatch1
- git checkout mypatch1
где mypatch1 должен быть каким-то коротким отличительным фрагментом текста, который позволяет вам и другим пользователям различать различные ветви. Например, оно может начинаться с ваших инициалов и заканчиваться кратким описанием его основного назначения, например cffixabc
.
Внесите изменения в кодировку
Это может быть так же тривиально, как исправление языковой строки, или так же сложно, как создание новой важной функции. Или вы можете захотеть решить проблему, о которой сообщается в системе отслеживания проблем. Вы всегда можете обратиться туда за советом или комментарием, прежде чем приступить к программированию.
Локальное тестирование
Важно, чтобы вы протестировали предлагаемые изменения локально, прежде чем отправлять запрос на извлечение. Вы, вероятно, проверяли свой локальный сайт joomla, чтобы убедиться, что ваш код работает должным образом. Однако, если ваш код включает изменения в файлах javascript или css, вам потребуется перекомпилировать исходные тексты. Итак, вернитесь в окно терминала и введите:
npm ci
Если ваш сайт работает без ошибок, вы готовы сделать запрос на извлечение.
Фиксировать и продвигать
Легко с IDE. В VSCode:
- выберите нужный
+
нажмите кнопку в списке Изменений, чтобы зафиксировать изменения в локальном репозитории. - Выберите элемент управления исходным кодом
...
нажмите кнопку, за которой следует Pull, Push / Нажать на ... /, а затем выберите свое собственное удаленное репозиторий, чтобы перенести изменения из вашего локального репозитория в ваш удаленный репозиторий.
Сделать запрос на извлечение
Войдите в свою учетную запись на GitHub и выберите свой собственный репозиторий joomla-cms. В Code
раздел выберите ветку, которую вы хотите зафиксировать, из списка Switch branches
раскрывающийся список (отмечен значком филиала). Щелкните значок Contribute
кнопка, а затем Open Pull Request
кнопка.
После выполнения запроса на извлечение выполняются некоторые автоматические проверки. Если все в порядке, через несколько минут вы увидите этот результат.:
ToDo
Удаленное тестирование
Ваш запрос на извлечение перейдет в фазу тестирования, где разработчики Joomla смогут изучить ваш код и протестировать его, чтобы увидеть, работает ли он и не мешает ли работать чему-либо еще. Даже если это сработает, другие пользователи могут счесть предлагаемое изменение или метод реализации неуместными и отказаться интегрировать ваш запрос на извлечение в основной код. Не обижайтесь! Это происходит постоянно, даже для экспертов. Просто переключитесь на что-нибудь другое.
Рабочий процесс на Github
В git у вас может быть несколько удаленных репозиториев. Вы определили один удаленный репозиторий, когда клонировали свой собственный удаленный репозиторий. Вы также можете добавить исходный репозиторий в свой список удаленных репозиториев. Пример:
git remote -v show Manual https://github.com/ceford/Manual (fetch) Manual https://github.com/ceford/Manual (push) origin https://github.com/joomla/Manual.git (fetch) origin https://github.com/joomla/Manual.git (push)
Это позволяет вам поддерживать актуальность вашего собственного форка и клона на вашем локальном компьютере. Вам просто нужно извлечь и объединить исходный код с вашим локальным клоном, а затем отправить ваш локальный клон на удаленный форк. Следующая диаграмма иллюстрирует этот процесс: