Выпуск коннекторов Apache Doris
В настоящее время коннекторы Doris включают Flink Connector и Spark Connector. Оба репозитория независимы от основного репозитория Doris:
| Коннектор | Репозиторий |
|---|---|
| Flink Connector | https://github.com/apache/doris-flink-connector |
| Spark Connector | https://github.com/apache/doris-spark-connector |
В этом документе на примере Spark Connector 1.2.0 описан полный процесс выпуска компонентов типа Connector: от публикации в Maven Staging и подготовки SVN до голосования сообщества.
Подготовка к выпуску
Сначала настройте окружение для подписи, SVN и Maven, следуя документу Подготовка к выпуску.
Публикация в Maven
1. Подготовка ветки и тега
Создайте в репозитории ветку release-1.2.0 и переключитесь на неё.
Измените значение версии revision в pom.xml на 1.2.0, затем зафиксируйте изменение:
git commit -a -m "Commit for release 1.2.0"
Создайте и отправьте тег:
git tag 1.2.0
git push origin 1.2.0
2. Публикация в Maven Staging
Для разных версий Spark (например, 2.3, 3.1, 3.2) выпускаются отдельные версии Spark Connector, поэтому каждую из них нужно собирать и публиковать отдельно. Далее в качестве примера используются Spark 2.3 и Scala 2.11.
Сначала выполните локальную установку и проверку:
mvn clean install \
-Dspark.version=2.3.0 \
-Dscala.version=2.11 \
-Dspark.major.version=2.3
Сведения о соответствующих параметрах см. в командах сборки в скрипте
build.sh. Параметрrevisionзадаёт номер версии этого выпуска.
Опубликуйте артефакты в репозитории Apache Staging:
mvn deploy \
-Papache-release \
-Dspark.version=2.3.0 \
-Dscala.version=2.11 \
-Dspark.major.version=2.3
После успешного выполнения команды опубликованная версия появится по адресу https://repository.apache.org/#stagingRepositories:

Убедитесь, что среди артефактов есть файл подписи .asc.
Если обнаружены ошибки, удалите этот staging-репозиторий и повторите описанные выше шаги.
Проверив, что всё корректно, нажмите кнопку close, чтобы завершить публикацию в Staging.
3. Подготовка SVN
Получите рабочую копию репозитория Dev SVN:
svn co https://dist.apache.org/repos/dist/dev/doris/
Создайте архив исходного кода тега, файл подписи и файл контрольной суммы SHA512 (в следующем примере используется 1.2.0):
git archive --format=tar release-1.2.0 --prefix=apache-doris-spark-connector-1.2.0-src/ | gzip > apache-doris-spark-connector-1.2.0-src.tar.gz
gpg -u xxx@apache.org --armor --output apache-doris-spark-connector-1.2.0-src.tar.gz.asc --detach-sign apache-doris-spark-connector-1.2.0-src.tar.gz
sha512sum apache-doris-spark-connector-1.2.0-src.tar.gz > apache-doris-spark-connector-1.2.0-src.tar.gz.sha512
В macOS используйте:
shasum -a 512 apache-doris-spark-connector-1.2.0-src.tar.gz > apache-doris-spark-connector-1.2.0-src.tar.gz.sha512
В результате будут созданы три файла:
| Файл | Назначение |
|---|---|
apache-doris-spark-connector-1.2.0-src.tar.gz | Архив исходного кода |
apache-doris-spark-connector-1.2.0-src.tar.gz.asc | Файл подписи GPG |
apache-doris-spark-connector-1.2.0-src.tar.gz.sha512 | Файл контрольной суммы SHA512 |
Переместите эти три файла в каталог SVN:
doris/spark-connector/1.2.0/
Полная структура каталогов SVN выглядит так:
|____0.15
| |____0.15.0-rc04
| | |____apache-doris-0.15.0-incubating-src.tar.gz.sha512
| | |____apache-doris-0.15.0-incubating-src.tar.gz.asc
| | |____apache-doris-0.15.0-incubating-src.tar.gz
|____KEYS
|____spark-connector
| |____1.2.0
| | |____apache-doris-spark-connector-1.2.0-src.tar.gz
| | |____apache-doris-spark-connector-1.2.0-src.tar.gz.asc
| | |____apache-doris-spark-connector-1.2.0-src.tar.gz.sha512
В этой структуре каталог 0.15 содержит основной исходный код Doris, а каталог spark-connector/1.2.0 содержит файлы этого выпуска.
О подготовке файла KEYS см. соответствующий раздел документа Подготовка к выпуску.
4. Голосование
Начните голосование в списке рассылки dev@doris.apache.org, используя следующий шаблон:
Hi all,
This is a call for the vote to release Apache Doris Spark Connector 1.2.0
The git tag for the release:
https://github.com/apache/doris-spark-connector/releases/tag/1.2.0
Release Notes are here:
https://github.com/apache/doris-spark-connector/issues/109
Thanks to everyone who has contributed to this release.
The release candidates:
https://dist.apache.org/repos/dist/dev/doris/spark-connector/1.2.0/
Maven 2 staging repository:
https://repository.apache.org/content/repositories/orgapachedoris-1031
KEYS file is available here:
https://downloads.apache.org/doris/KEYS
To verify and build, you can refer to following link:
https://doris.apache.org/community/release-and-verify/release-verify
The vote will be open for at least 72 hours.
[ ] +1 Approve the release
[ ] +0 No opinion
[ ] -1 Do not release this package because ...
Завершение выпуска
Выполните оставшиеся шаги выпуска, следуя документу Завершение выпуска.
Приложение: публикация в SNAPSHOT
Snapshot не является версией Apache Release и используется только для предварительного ознакомления перед выпуском. Версию Snapshot можно публиковать только после обсуждения и одобрения PMC.
Перейдите в каталог Spark Connector (в примере используются Spark 2.3 и Scala 2.11):
cd spark-doris-connector
mvn deploy \
-Dspark.version=2.3.0 \
-Dscala.version=2.11 \
-Dspark.major.version=2.3 \
После публикации версия snapshot доступна по адресу:
https://repository.apache.org/content/repositories/snapshots/org/apache/doris/doris-spark-connector/
Частые вопросы и устранение неполадок
Вопрос: При выполнении mvn deploy возникает ошибка gpg: signing failed: Inappropriate ioctl for device?
Выполните export GPG_TTY=$(tty) и повторите попытку.
Вопрос: Файл подписи .asc отсутствует в репозитории Staging. Что делать?
Проверьте, содержит ли команда mvn deploy параметр -Papache-release, и убедитесь, что ~/.m2/settings.xml и settings-security.xml настроены правильно. Если набор артефактов неполный, удалите этот staging-репозиторий и снова выполните mvn deploy.
Вопрос: Как опубликовать несколько артефактов для разных версий Spark в рамках одного выпуска?
Для каждого сочетания версий Spark/Scala отдельно выполняйте mvn deploy, каждый раз указывая другие значения -Dspark.version, -Dscala.version и -Dspark.major.version. После обработки всех сочетаний закройте staging-репозиторий со всеми артефактами.