Приступая к работе

Если вы хотите внести свой вклад в 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)

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

Рабочий процесс Github для joomla.png