Browse Source

Update russian translation of Git Workflow [ci skip] (#15564)

tags/2.0.14
Zhukov Roman 7 years ago committed by Alexander Makarov
parent
commit
dd3e5ec1e2
  1. 87
      docs/internals-ru/git-workflow.md

87
docs/internals-ru/git-workflow.md

@ -1,29 +1,29 @@
Рабочий процесс Git для разработчиков Yii 2
===========================================
Итак, вы хотите разрабатывать Yii? Хорошо! Но для того чтоб увеличить шанс принятия ваших изменений,
пожалуйста следуйте следующим шагам. Если вы новичок в git и github, вы можете сначала проверить
[github help](http://help.github.com/), [try git](https://try.github.com) или прочитать о
Итак, вы хотите разрабатывать Yii? Хорошо! Но для того, чтобы увеличить шанс принятия ваших изменений,
пожалуйста, следуйте следующим шагам. Если вы новичок в git и Github, вы можете сначала проверить
[Github help](http://help.github.com/), [try git](https://try.github.com) или прочитать о
[внутренней модели данных git](http://nfarina.com/post/9868516270/git-is-simpler).
Подготовка вашего рабочего окружения
------------------------------------
Следующие шаги будут создавать рабочее окружение для Yii, которое вы можете использовать для работы над основным кодом
Следующие шаги создадут рабочее окружение для Yii, которое вы можете использовать для работы над основным кодом
фреймворка. *Эти шаги будут нужны только в первый раз*.
### 1. [Форкаем](http://help.github.com/fork-a-repo/) репозиторий Yii на github и клонируйте ваш форк в ваше рабочее окружение.
### 1. [Сделайте форк](http://help.github.com/fork-a-repo/) репозитория Yii на Github и клонируйте этот форк в ваше рабочее окружение.
```
git clone git@github.com:YOUR-GITHUB-USERNAME/yii2.git
```
Если у вас есть проблемы с настройкой GIT для работы с GitHub в Linux, или вы получаете ошибку похожую на "Permission Denied
(publickey)", тогда вы должны настроить ваш GIT по [этой инструкции](http://help.github.com/linux-set-up-git/)
Если у вас есть проблемы с настройкой Git для работы с GitHub в Linux, или вы получаете ошибку похожую на "Permission Denied
(publickey)", тогда вы должны настроить ваш Git по [этой инструкции](http://help.github.com/linux-set-up-git/)
### 2. Добавляем главный репозиторий Yii как дополнительный внешний git репозиторий называемый "upstream"
### 2. Добавьте главный репозиторий Yii как дополнительный внешний git репозиторий называемый "upstream"
Перейдите в каталог, куда вы склонировали Yii, как правило "yii2". Затем введите следующую команду:
Перейдите в каталог куда вы склонировали Yii, как правило "yii2". Затем введите следующую команду:
```
git remote add upstream git://github.com/yiisoft/yii2.git
@ -33,11 +33,20 @@ git remote add upstream git://github.com/yiisoft/yii2.git
Следующие шаги не обязательны, если вы хотите работать только с переводом или документацией.
- выполните `composer update` для установки зависимостей (если [composer у вас установлен глобально](https://getcomposer.org/doc/00-intro.md#globally)).
- выполните `composer install` для установки зависимостей
(если [composer у вас установлен глобально](https://getcomposer.org/doc/00-intro.md#globally)).
> Note: Если вы видите такие ошибки, как `Problem 1 The requested package bower-asset/jquery could not be found in
> Note: если вы видите такие ошибки, как `Problem 1 The requested package bower-asset/jquery could not be found in
> any version, there may be a typo in the package name.`, необходимо запустить `composer global require "fxp/composer-asset-plugin:^1.4.1"`
Если вы планируете работать с Javascript:
- выполните `npm install` для установки зависимостей и программ тестирования Javascript
(если [Node.js and NPM установлен](https://nodejs.org/en/download/package-manager/)).
> Note: тесты JavaScript зависят от библиотеки jsdom, которой требуется Node.js 4 или более новый.
> Предпочтительнее использовать Node.js 6 or 7.
- выполните `php build/build dev/app basic` для клонирования базового приложения и установки его зависимостей.
Эта команда установит сторонние пакеты composer обычным образом, но создаст ссылку с репозитория yii2 на только
что загруженный репозиторий. Таким образом у вас будет только один экземпляр кода.
@ -56,13 +65,16 @@ git remote add upstream git://github.com/yiisoft/yii2.git
### Модульные тесты
Вы можете выполнить модульные тесты с помощью команды `phpunit` в корневой директории приложения. Если у вас phpunit
не установлен глобально, вы можете запустить `php vendor/bin/phpunit`.
не установлен глобально, вы можете запустить `php vendor/bin/phpunit` или `vendor/bin/phpunit.bat` в случае
использования OS Windows.
Некоторые тесты требуют дополнительно установки и настройки баз данных. Вы можете создать `tests/data/config.local.php`
для переопределения настроек, которые определены в `tests/data/config.php`.
Вы можете ограничить тестирование группой тестов, с которой вы сейчас работаете, например запускать только тесты для
валидаторов и redis. Вы можете получить список доступных групп выполнив `phpunit --list-groups`.
Вы можете ограничить тестирование группой тестов, с которой вы сейчас работаете. Например, запускать только тесты для
валидаторов и redis: `phpunit --group=validators,redis`. Вы можете получить список доступных групп выполнив `phpunit --list-groups`.
Вы можете запустить модульные тесты JavaScript с помощью команды `npm test` в корневой директории приложения.
### Расширения
@ -70,15 +82,16 @@ git remote add upstream git://github.com/yiisoft/yii2.git
сделать это:
```
php build/build dev/ext <extension-name>
php build/build dev/ext <extension-name> <fork>
```
где `<extension-name>` это имя расширения, например `redis`.
где `<extension-name>` это имя расширения, например `redis` и `<fork>` это URL вашего форка расширения, например
`git@github.com:my_nickname/yii2-redis.git`. Если вы контрибьютор ядра фреймворка, вы можете не указывать `<fork>`.
Если вы хотите протестировать расширение в одном из шаблонов приложений, просто добавьте его в `composer.json`
приложения, например добавив `"yiisoft/yii2-redis": "~2.0.0"` в секцию `require` базового приложения.
Запустите `php build/build dev/app basic` для установки расширения и его зависимостей и создания символической
ссылки на `extensions/redis` так чтоб вы работали не папке вендорных пакетов composer, а напрямую в репозиторий yii2.
ссылки на `extensions/redis` так чтоб вы работали не папке вендорных пакетов composer, а напрямую в репозитории yii2.
> Note: по умолчанию URL репозиториев git на GitHub работают через SSH. Чтобы использовать HTTPS, добавьте
> флаг `--useHttp` к команде `build`.
@ -94,21 +107,21 @@ php build/build dev/ext <extension-name>
Потратьте несколько минут на поиск существующей issue, которая соответствует вашим изменениям. Если вы найдёте её в
списке, то пожалуйста оставьте комментарий, что вы начали над ней работать. Если вы не нашли нужной issue пожалуйста
[создайте новую issue](report-an-issue.md) или создайте сразу запрос на изменения если это простые изменения.
Это позволит команде проверить ваше предложение, и обеспечивать соответствующую обратную связь.
Это позволит команде проверить ваше предложение, и обеспечить соответствующую обратную связь.
> Для небольших изменений или документации, или простых исправлений, вам нет необходимости создавать issue,
запрос на изменения в этом случае подходит лучше.
### 2. Вытягивание последнего кода из основного репозитория Yii
### 2. Получите последний код из основного репозитория Yii
```
git fetch upstream
git pull upstream
```
Вы должны начинать с этого действия работу над каждым новым предложением, убеждайтесь что вы работаете над самой
Вы должны начинать с этого действия работу над каждым новым предложением. Убедитесь, что вы работаете с самой
последней версией кода.
### 3. Создание новой ветки для ваших изменений, основанных на текущем мастере Yii
### 3. Сделайте новую ветку для ваших изменений, основанных на текущей ветке master в Yii
> Это очень важно, так как вы не сможете отправлять более одного запроса на изменения из вашего репозитория, если
будете использовать ветку master.
@ -123,7 +136,7 @@ git checkout upstream/master
git checkout -b 999-name-of-your-branch-goes-here
```
### 4. Делайте свою магию, пишите ваш код
### 4. Делайте свою магию, пишите свой код
Убедитесь, что он работает :)
@ -145,7 +158,7 @@ Enh #999: a description of the enhancement (Your Name)
Для очень маленьких исправлений, например опечаток и изменений документации, нет необходимости обновлять CHANGELOG.
### 6. Фиксация ваших изменений
### 6. Зафиксируйте изменения
Добавляем файлы/изменения которые вы хотите зафиксировать в [staging area](http://gitref.org/basic/#add)
@ -155,14 +168,14 @@ git add path/to/my/file.php
Вы можете использовать опцию `-p` для того, чтоб выбрать, какие изменения вы хотите добавить в коммит.
Фиксируйте ваши изменения с описательным сообщением. Убедитесь что в сообщение есть номер `#XXX`, так github
автоматически свяжет ваш коммит с тикетом:
Фиксируйте ваши изменения с описательным сообщением. Убедитесь, что в сообщении есть номер `#XXX`, так Github
автоматически свяжет ваш коммит с issue:
```
git commit -m "A brief description of this change which fixes #999 goes here"
```
### 7. Получение последнего кода из апстрима Yii в вашу ветку
### 7. Получите последний код из upstream Yii в вашу ветку
```
git pull upstream master
@ -172,18 +185,18 @@ git pull upstream master
какие-либо конфликты слияния, вы должны исправить их и зафиксировать изменения ещё раз. Это гарантирует, что команда Yii
сможет слить ваши изменения одним кликом.
### 8. Разрешив зависимости, отправляем код на github
### 8. Разрешив зависимости, отправьте код на Github
```
git push -u origin 999-name-of-your-branch-goes-here
```
Опция `-u` сохранит указание на ветку в github, чтобы при следующем выполнении `git push`, git знал, куда отправлять
Опция `-u` сохранит указание на ветку в Github, чтобы при следующем выполнении `git push`, git знал, куда отправлять
изменения. Это полезно, если вы хотите позже отправлять ещё коммиты в этот запрос на слияние.
### 9. Открываем [запрос на слияние](http://help.github.com/send-pull-requests/) в *upstream*.
### 9. Откройте [запрос на слияние](http://help.github.com/send-pull-requests/) в *upstream*.
Перейдите в репозиторий на github и нажмите "Pull Request", выберите ветку справа и введите больше информации
Перейдите в репозиторий на Github и нажмите "Pull Request", выберите ветку справа и введите больше информации
в поле комментариев. Чтобы связать запрос на изменение с issue, добавьте в комментарий `#999` - где 999 это номер issue.
> Обратите внимание, что каждый запрос на слияние должен исправлять единственное изменение. Для множества независимых
@ -191,10 +204,10 @@ git push -u origin 999-name-of-your-branch-goes-here
### 10. Проверка вашего кода кем-то
Кто-то будет проверять ваш код, и, возможно, вам будет предложено внести некоторые изменения, если это так, то перейдите
Кто-то будет проверять ваш код, и, возможно, вам будет предложено внести некоторые изменения. Eсли это так, то перейдите
к шагу #6 (вам не надо открывать новый запрос на слияние, если текущий ещё открыт). Если код будет принят, он будет
влит в основную ветку и станет частью следующего релиза Yii. Если нет, не унывайте, разным людям необходимы различные
функции и Yii не может реализовывать всё для всех, ваш код будет ещё доступен на github как ссылка для людей кому он
влит в основную ветку и станет частью следующего релиза Yii. Если нет - не унывайте, разным людям необходимы различные
функции и Yii не может реализовывать всё для всех, ваш код будет ещё доступен на Github как ссылка для людей кому он
может пригодится.
### 11. Очистка
@ -210,16 +223,16 @@ git push origin --delete 999-name-of-your-branch-goes-here
### Примечание
Для обнаружения регрессии как можно раньше, каждое слияние кодовой базы Yii на github будет подхвачено
Для обнаружения регрессии как можно раньше, каждое слияние кодовой базы Yii на Github будет подхвачено
[Travis CI](http://travis-ci.org) для автоматического запуска тестов. Люди из *core team* не хотят нагружать
этот сервис, поэтому добавляют текст [`[ci skip]`](http://about.travis-ci.org/docs/user/how-to-skip-a-build/) в описание
запроса на слияние, в следующих ситуациях:
* затронуты только javascript, css файлы или файлы изображений,
* затронуты только JavaScript, CSS файлы или файлы изображений,
* обновление документации,
* изменения затрагивают только строки (например обновление переводов).
Это защитит travis от запуска тестов на изменениях, которые не покрыты тестами.
Это защитит Travis CI от запуска тестов на изменениях, которые не покрыты тестами.
### Обзор команд (для продвинутых участников)

Loading…
Cancel
Save