1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/hanchuanchuan-goInception

Клонировать/Скачать
CONTRIBUTING.zh.md 7.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 11.03.2025 04:34 d248aa5

Инструкция по вкладу

Данный документ содержит набор шагов для быстрого создания PR и удобства его слияния.

Перед созданием PR, пожалуйста, сначала создайте Issue, чтобы обеспечить возможность общения.

Go

goInception написан на языке программирования Go.

Версия GO должна быть 1.12 или выше.

Управление зависимостями

Проект использует систему управления зависимостями Go Modules.

Вы всё ещё должны определить GOPATH, а также изменить PATH, чтобы иметь доступ к своим двоичным файлам Go.

Поскольку юнит-тесты используют gofail для имитационного тестирования, то всё ещё требуется использовать GOPATH.

Пример:

export GOPATH=$HOME/go
export PATH=$PATH:$GOPATH/bin

Процесс работы

Шаг 1: Создание форка проекта

  1. Откройте https://github.com/hanchuanchuan/goInception
  2. Нажмите кнопку "Fork" в правом верхнем углу, чтобы создать форк проекта в вашей личной учетной записи, и дождитесь завершения операции.

Шаг 2: Клонирование форка проекта на локальную машину

Расположите код в вашей директории 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

Шаг 3: Создание ветки

Получите последнюю версию goInception

# Перейдите в директорию проекта
cd $working_dir/goInception/
# Получите последние изменения
git fetch upstream

# Перейдите к локальной ветке master
git checkout master
# Объедините версии
git rebase upstream/master

Создайте новую ветку

# Создайте и перейдите к новой ветке
# Для новых функций рекомендуется начинать название ветки со слова feature,
# а для исправлений ошибок — со слова fix
git checkout -b feature-test

Шаг 4: Разработка

Кодирование

Теперь можно начинать разработку в ветке feature-test.

Подготовка тестовой средыДля выполнения локальных тестов требуется окружение MySQL для проверки функций аудита, выполнения и резервного копирования.

  • Рекомендованная версия MySQL: 5.7
  • Параметры запуска MySQL (можно указать в my.cnf): 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

Шаг 5: Сохранение ветки в актуальном состоянии

Перед отправкой Pull Request необходимо сначала слить последнюю версию goInception, чтобы избежать конфликтов при слиянии PR

# В ветке `feature-test` (`git checkout feature-test`)
git fetch upstream
git rebase upstream/master

Шаг 6: Отправка изменений

Отправка изменений

git commit

Шаг 7: Пушинг

Пушинг ветки на github.com

git push -f origin feature-test

Шаг 8: Создание Pull Request

  1. Посетите адрес форкнутого проекта https://github.com/$user/goInception
  2. Нажмите кнопку Compare & pull request, расположенную рядом со значком ветки feature-test

Шаг 9: Обзор кода

После создания Pull Request автоматически будут запущены тесты Travis CI и CircleCI. Во время обзора кода любые изменения можно вносить непосредственно в эту ветку и отправлять новые коммиты. Pull Request будет использовать самый новый коммит, поэтому нет необходимости создавать новый Pull Request. Если один Pull Request затрагивает несколько функций или исправлений, рекомендуется разделить его на несколько веток для удобства обзора и слияния.## Стиль кодирования

См. рекомендации по стилю кодирования Golang сообщества style doc

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/hanchuanchuan-goInception.git
git@api.gitlife.ru:oschina-mirror/hanchuanchuan-goInception.git
oschina-mirror
hanchuanchuan-goInception
hanchuanchuan-goInception
master