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

OSCHINA-MIRROR/mirrors-OpenPitrix

Клонировать/Скачать
development-guide.md 6.7 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 17.03.2025 02:49 68b8fa2

Руководство по разработке

Документ поможет вам приступить к разработке OpenPitrix и освоить рабочий процесс.

Подготовка окружения

Go

Разработка OpenPitrix выполнена на Go. Если у вас нет среды разработки Go, пожалуйста, настройте её, Go требует версию >= 1.12.

Советы:

  • Убедитесь, что ваш GOPATH и PATH были настроены в соответствии с инструкциями по работе с Go.
  • Рекомендуется установить GNU-инструменты для macOS для macOS.

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

OpenPitrix использует dep для управления зависимостями в дереве vendor/, выполните следующую команду для установки dep:

go get -u github.com/golang/dep/cmd/dep

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

В ходе разработки рекомендуется установить одноузловой all-in-one окружение (основанное на Kubernetes) для быстрого тестирования.

Совет: Также поддерживаются Docker для Desktop со встроенным Kubernetes как тестовым окружением.

Процесс разработки

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

  1. Посетите https://github.com/openpitrix/openpitrix.
  2. Нажмите кнопку Fork, чтобы создать облачный форк.

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

Согласно [инструкциям Go по рабочим пространствам][https://golang.org/doc/code.html#Workspaces], расположите код OpenPitrix в вашем GOPATH с помощью следующей процедуры клонирования.1. Определите локальное рабочее пространство:

$ export working_dir=$GOPATH/src/openpitrix.io
$ export user={ваш профиль GitHub}
  1. Создайте свой клон локально:
$ mkdir -p $working_dir
$ cd $working_dir
$ git clone https://github.com/$user/openpitrix.git
$ cd $working_dir/openpitrix
$ git remote add upstream https://github.com/openpitrix/openpitrix.git

# Ни при каких условиях не отправляйте изменения в upstream master
$ git remote set-url --push upstream no_push

# Убедитесь, что ваши удалённые репозитории имеют смысл:
$ git remote -v

3 Сохранение вашего ветки в актуальном состоянии

git fetch upstream
git checkout master
git rebase upstream/master

4 Добавление новых возможностей или исправление проблем

Ответвление от основной ветки:

$ git checkout -b myfeature

Затем отредактируйте код в ветке myfeature.

Запустите и протестируйте

$ make build
$ make compose-up

Выполните make help, чтобы получить дополнительную информацию о этих целях Make.

5 Разработка в новой ветке

Синхронизация с основной веткой

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

# Перезапишите основную ветку вашего локального репозитория.
$ git checkout master
$ git rebase upstream/master

# Затем приведите вашу ветку разработки в синхронизацию с основной веткой
git checkout new_feature
git rebase -i master

Фиксируйте локальные изменения

$ git add <file>
$ git commit -s -m "Добавьте ваше описание"
```### 6 Отправка в ваш форк

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

```bash
$ git push -f ${your_remote_name} myfeature

7 Создание запроса на слияние

CI/CD

OpenPitrix использует Travis CI как инструмент CI/CD.

Компоненты OpenPitrix, расположенные в папке /cmd, должны быть скомпилированы и собраны следующими командами:

После того, как ваш запрос на слияние будет принят, Travis CI скомпилирует весь проект и создаст образ, а затем запушит образ openpitrix/[имя компонента]:latest на DockerHub (например, openpitrix/openpitrix-api-gateway:latest).

Конвенции кодирования

Для справки обратитесь к конвенциям кодирования и следуйте указанным правилам.

Примечание:

  • Все новые пакеты и большую часть новых значимых функциональностей следует снабжать юнит-тестами
  • Комментируйте свой код на английском языке, см. конвенции комментирования Go

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

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

1
https://api.gitlife.ru/oschina-mirror/mirrors-OpenPitrix.git
git@api.gitlife.ru:oschina-mirror/mirrors-OpenPitrix.git
oschina-mirror
mirrors-OpenPitrix
mirrors-OpenPitrix
master