Данный документ содержит набор шагов для быстрого создания PR и удобства его слияния.
Перед созданием PR, пожалуйста, сначала создайте Issue, чтобы обеспечить возможность общения.
goInception
написан на языке программирования Go
.
Версия GO должна быть 1.12 или выше.
Проект использует систему управления зависимостями Go Modules
.
Вы всё ещё должны определить GOPATH
, а также изменить PATH
, чтобы иметь доступ к своим двоичным файлам Go.
Поскольку юнит-тесты используют gofail для имитационного тестирования, то всё ещё требуется использовать GOPATH
.
Пример:
export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin
Расположите код в вашей директории GOPATH
, определив рабочую директорию:
# Установите имя вашего профиля GitHub `user`:
user=ваше_имя_пользователя_GitHub
working_dir=$GOPATH/src/github.com/$user
mkdir -p $working_dir
cd $working_dir
git clone https://github.com/$user/goInception.git
# или: git clone git@github.com/$user/goInception.git
```cd $working_dir/goInception
git remote add upstream https://github.com/hanchuanchuan/goInception.git
# или: git remote add upstream git@github.com/hanchuanchuan/goInception.git
# Предотвратить случайное отправление
git remote set-url --push upstream no_push
# Проверка конфигурации
git remote -v
# Должно быть четыре строки:
# origin git@github.com:$(user)/goInception.git (fetch)
# origin git@github.com:$(user)/goInception.git (push)
# upstream https://github.com/hanchuanchuan/goInception (fetch)
# upstream no_push (push)
---
#### Определение проверки перед отправкой
*Этот хук определяет проверку формата перед отправкой.*
```sh
cd $working_dir/goInception/
ln -s `pwd`/hooks/pre-commit .git/hooks/
chmod +x $working_dir/goInception/.git/hooks/pre-commit
Получите последнюю версию goInception
# Перейдите в директорию проекта
cd $working_dir/goInception/
# Получите последние изменения
git fetch upstream
# Перейдите к локальной ветке master
git checkout master
# Объедините версии
git rebase upstream/master
Создайте новую ветку
# Создайте и перейдите к новой ветке
# Для новых функций рекомендуется начинать название ветки со слова feature,
# а для исправлений ошибок — со слова fix
git checkout -b feature-test
Теперь можно начинать разработку в ветке feature-test
.
5.7
mysqld --log-bin=on --server_id=111 --character-set-server=utf8mb4
mysql -e "CREATE DATABASE IF NOT EXISTS test DEFAULT CHARACTER SET utf8; CREATE DATABASE IF NOT EXISTS test_inc DEFAULT CHARACTER SET utf8;"
mysql -e "GRANT ALL ON *.* TO test@'127.0.0.1' IDENTIFIED BY 'test'; FLUSH PRIVILEGES;"
#### Выполнение тестовВыполнение полного набора тестов.
Полные тесты могут провалиться из-за проблем с окружением. В этом случае следует убедиться, что GO111MODULE=on go test session/session_inception_*.go
проходит.
# Единичные тесты
make dev
# Проверка списка задач
make checklist
Выполнение конкретного теста
GO111MODULE=on go test session/session_inception_*.go
# или:
GO111MODULE=on go test session/session_inception_test.go
Перед отправкой Pull Request необходимо сначала слить последнюю версию goInception, чтобы избежать конфликтов при слиянии PR
# В ветке `feature-test` (`git checkout feature-test`)
git fetch upstream
git rebase upstream/master
Отправка изменений
git commit
Пушинг ветки на github.com
git push -f origin feature-test
https://github.com/$user/goInception
Compare & pull request
, расположенную рядом со значком ветки feature-test
После создания Pull Request автоматически будут запущены тесты Travis CI и CircleCI. Во время обзора кода любые изменения можно вносить непосредственно в эту ветку и отправлять новые коммиты. Pull Request будет использовать самый новый коммит, поэтому нет необходимости создавать новый Pull Request. Если один Pull Request затрагивает несколько функций или исправлений, рекомендуется разделить его на несколько веток для удобства обзора и слияния.## Стиль кодирования
См. рекомендации по стилю кодирования Golang сообщества style doc
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )