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

OSCHINA-MIRROR/hanchuanchuan-goInception

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

Как внести свой вклад

Руководство по внесению вклада

Документ описывает некоторые конвенции относительно рабочего процесса разработки, форматирования сообщений о коммитах, контактные точки и другие ресурсы, чтобы сделать проще принятие вашего вклада.

Перед тем как начать

Настройка среды разработки

Прежде чем приступить к работе, вам потребуется настроить среду разработки на языке Go.

  1. Установите версию Go 1.14 или выше. Для получения более подробной информации обратитесь к руководству How to Write Go Code.

  2. Определите переменную окружения GOPATH и модифицируйте переменную PATH, чтобы иметь доступ к исполняемым файлам Go. Обычное расположение следующее:

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

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

Теперь вы должны иметь возможность использовать команду make build для сборки TiDB.

Рабочий процесс по внесению вкладаЧтобы внести вклад в базу данных goInception, пожалуйста, следуйте рабочему процессу, описанному в этом разделе:

  1. Создайте ветку темы от того места, где вы хотите начать работу. Обычно это мастер.
  2. Делайте коммиты логических единиц и добавляйте тестовый случай, если изменения исправляют ошибку или добавляют новую функциональность.
  3. Выполните тесты и убедитесь, что все тесты прошли успешно.
  4. Убедитесь, что ваши сообщения о коммитах имеют правильный формат (см. ниже).
  5. Отправьте свои изменения в ветку темы в вашей форке репозитория.
  6. Подайте запрос на слияние.Спасибо за ваши вклады!

Шаг 1: Создание форка в облаке

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

Шаг 2: Клонирование форка в локальное хранилище

По указаниям Go о рабочих пространствах, расположите код TiDB в вашем GOPATH, используя следующий процесс клонирования.

Определите локальную рабочую директорию:

# Установите `user` так, чтобы он совпадал с вашим именем профиля GitHub:
export user=ваше_имя_профиля_GitHub
export working_dir=$GOPATH/src/github.com/$user

Оба $working_dir и $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

# Никогда не отправляйте изменения в основной ветке upstream.
git remote set-url --push upstream no_push

# Подтвердите, что ваши удалённые репозитории корректны:
# Это должно выглядеть как:
# 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)
git remote -v

Установите хук pre-commit. Этот хук проверяет ваши коммиты на соответствие формату, сборке, генерации документации и т.д.:

cd $working_dir/goInception/
ln -s `pwd`/hooks/pre-commit .git/hooks/
chmod +x $working_dir/goInception/.git/hooks/pre-commit
```### Шаг 3: Создание ветки

Приведите вашу локальную мастер-ветку в актуальное состояние:

```sh
cd $working_dir/goInception
git fetch upstream
git checkout master
git rebase upstream/master

Создайте ветку от мастера:

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;"

Тестирование

Сборка и запуск всех тестов:

# сборка и запуск юнит-тестов, чтобы убедиться, что все тесты пройдены.
make dev

# Проверьте список задач перед тем, как продолжить работу.
make checklist

Вы также можете запустить отдельный юнит-тест в одном файле. Например, чтобы запустить тест TestToInt64 в файле types/datum.go:

GO111MODULE=on go test types/datum.go
# или:
GO111MODULE=on go test types/datum_test.go

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

Ветка должна быть слита с последней версией goInception перед отправкой запроса на слияние, чтобы избежать проблем при слиянии.```sh

Being in the feature-test branch.

git fetch upstream git rebase upstream/master


Пожалуйста, не используйте `git pull` вместо вышеупомянутого `fetch`/`rebase`. `git pull` выполняет слияние, что оставляет слияющие коммиты. Это делает историю коммитов запутанной и нарушает принцип, согласно которому каждый коммит должен быть понятным и полезным самостоятельно (см. ниже). Вы также можете рассмотреть возможность изменения файла конфигурации `.git/config` через `git config branch.autoSetupRebase`, чтобы всегда менять поведение `git pull`.

### Шаг 6: Коммит

Коммитируйте свои изменения.

```sh
git commit

Вероятнее всего, вам придется несколько раз вернуться и снова редактировать/собирать/тестировать, а затем использовать commit --amend в нескольких циклах.

Шаг 7: Отправка

Когда изменения готовы для проверки (или вы просто хотите создать внешний бэкап своей работы), отправьте свою ветку на ваш форк на github.com:

git push --set-upstream ${your_remote_name} feature-test

Шаг 8: Создание запроса на слияние

  1. Посетите ваш форк по адресу https://github.com/$user/goInception.
  2. Нажмите кнопку Compare & Pull Request рядом со своей веткой feature-test.
  3. Заполните необходимую информацию в шаблоне запроса на слияние.

Шаг 9: Получение рецензии кода

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

Вы можете обратиться к рекомендациям по стилю кодирования, предложенным сообществом Golang документация по стилю.

Опубликовать ( 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