ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Apache DolphinScheduler 完整发版指南:从 GPG 签名、Maven 发布到社区投票与公告

Apache DolphinScheduler 完整发版指南:从 GPG 签名、Maven 发布到社区投票与公告 Apache DolphinScheduler 完整发版指南从 GPG 签名、Maven 发布到社区投票与公告【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler本篇技术指南以 Apache DolphinScheduler 官方发布流程为主线完整讲解一个版本从环境准备、GPG 签名、Maven 构件发布、SVN 分发、社区投票到公告收尾的全过程并结合仓库内的 tools/release 自动化工具与 dolphinscheduler-dist 打包模块的源码实现帮助 Release Manager发版经理与对 Apache 开源治理感兴趣的开发者掌握可复现、可核验的标准发版操作。读完本文你将能够独立完成 DolphinScheduler 的一个正式版本的发布并理解每一步背后对应的仓库文件与校验逻辑。适用范围与前提本文所有命令与文件路径均以当前仓库Apache DolphinScheduler为准发版涉及 Apache 官方基础设施Maven 中央仓库、dist SVN、邮件列表需要具备 Apache 提交者Committer以上权限。文中所有VERSION为待发布的版本号占位符实际执行时需手动替换。发版前的环境准备一次性工作这部分属于预发布工作大部分是一次性的即只在第一次发版时需要如果之前发布过可以跳过本节直接进入 Releasing 部分。检查本地环境确保本地环境满足以下条件缺少任何一项都应先安装并验证# 需要 JDK 1.8 及以上的版本 java -version # 需要 Maven mvn -versionGPG 设置GPG 用于对发布产物做数字签名是 Apache 发布物完整性核验的基础。GnuPG 1.x 与 2.x 的命令略有差异下文以GnuPG-2.1.23版本为例。安装完成后执行gpg --version查看版本号。创建 KeyGnuPG-2.x使用交互式向导创建 Keygpg --full-gen-keyGnuPG-1.x则使用gpg --gen-key按提示完成 Key 的创建注意请使用 Apache 邮箱及对应密码生成 GPG Key交互过程输出示例如下gpg (GnuPG) 2.0.12; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Please select what kind of key you want: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (sign only) (4) RSA (sign only) Your selection? 1 RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) 4096 Requested keysize is 4096 bits Please specify how long the key should be valid. 0 key does not expire n key expires in n days nw key expires in n weeks nm key expires in n months ny key expires in n years Key is valid for? (0) Key does not expire at all Is this correct? (y/N) y GnuPG needs to construct a user ID to identify your key. Real name: ${输入用户名} Email address: ${输入邮件地址} Comment: ${输入注释} You selected this USER-ID: ${输入的用户名} (${输入的注释}) ${输入的邮件地址} Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O You need a Passphrase to protect your secret key. # 输入apache登录密码常见错误如果遇到gpg: cancelled by user/gpg: Key generation canceled.说明当前是以 root 用户执行导致交互失败需要使用自己的用户登录服务器后再执行创建命令。查看生成的 Keygpg --list-keys旧格式GnuPG 2.0 之前的执行结果中85E11560即为公钥 IDpub 4096R/85E11560 2019-11-15 uid ${用户名} (${注释}) {邮件地址} sub 4096R/A63BC462 2019-11-15GnuPG 2.0 之后格式发生变化1234ABCD5678EFGH9012IJKL3456MNOP7890QRST为公钥 IDpub rsa4096 2023-07-01 [SC] 1234ABCD5678EFGH9012IJKL3456MNOP7890QRST uid [ultimate] ${用户名} {邮件地址} sub rsa4096 2023-07-01 [E]将公钥同步到公钥服务器各公钥服务器之间自动同步任意挑选一个即可gpg --keyserver hkp://keyserver.ubuntu.com --send-key 85E11560同步成功后可以在公钥服务器上按用户名检索到该公钥。这一步非常关键——投票者在核验签名时正是通过公开渠道获取你的公钥来验证发布物。配置 Apache Maven Central Repository发布构件需要向 Apache 的 Nexus 仓库上传因此要在 Maven 中配置 Apache LDAP 凭据。首先按照 Maven 官方加密指引生成settings-security.xml然后修改~/.m2/settings.xml加入如下 server 配置密码必须是经过 Maven 加密后的密文settings servers server idapache.snapshots.https/id username !-- APACHE LDAP 用户名 -- /username password !-- APACHE LDAP 加密后的密码 -- /password /server server idapache.releases.https/id username !-- APACHE LDAP 用户名 -- /username password !-- APACHE LDAP 加密后的密码 -- /password /server /servers /settings其中apache.snapshots.https用于快照SNAPSHOT仓库、apache.releases.https用于正式发布仓库。发布前检查与版本号更新清单检查 release-docs与上一个版本比较如果依赖及其版本发生了变化以下文件必须更新到最新它们最终会被打进发布包dolphinscheduler-dist/release-docs/LICENSEdolphinscheduler-dist/release-docs/NOTICEdolphinscheduler-dist/release-docs/licenses从目录结构可以看到release-docs/licenses下以单文件形式收集了所有第三方依赖的许可证全文如LICENSE-asm.txt、LICENSE-azure-*.txt等这是 ASF 对发布物第三方许可证合规性的硬性要求。仓库内还提供了自动检查脚本 tools/dependencies/check-LICENSE.sh 与依赖白名单 tools/dependencies/known-dependencies.txt用于在 CI 中核对依赖许可证是否在LICENSE文件中声明齐全。配置环境变量后续命令会反复使用发布版本号、GitHub 用户名与 Apache 用户名建议先存入 bash 变量VERSIONTHE-VERSION-YOU-RELEASE SOURCE_CODE_DIRYOUR-SOURCE-CODE-ROOT-DIR # the directory of your source code hold, the location of parent pom.xml instead of binary package GH_USERNAMEYOUR-GITHUB-USERNAME GH_REMOTEGITHUB-REMOTE # we use upstream or origin mostly base on your release environment A_USERNAMEYOUR-APACHE-USERNAME SVN_DIRPATH-TO-SVN-ROOT # to keep binary package checkout from SVN, the sub path end with /dolphinscheduler/dev and /dolphinscheduler/release will be create设置环境变量后可以在 bash 中直接使用这些变量例如git clone -b ${VERSION}-prepare会自动把${VERSION}替换为真实版本号。但非 bash 场景如投票邮件正文中的VERSION占位符必须手动替换文档刻意用VERSION而非${VERSION}来提醒发版经理手动处理。更新代码与文档中的版本号要发布版本VERSION需要同步更新以下位置的版本信息代码中的版本号sql脚本dolphinscheduler_mysql.sqlt_ds_version更新为 x.y.z实际文件位于 dolphinscheduler-dao/src/main/resources/sql/dolphinscheduler_mysql.sqldolphinscheduler_postgre.sqlt_ds_version更新为 x.y.zdolphinscheduler_h2.sqlt_ds_version更新为 x.y.zupgrade若本版本有升级 DDL/DML新增x.y.z_schema目录没有则跳过soft_version更新为 x.y.zdeploy/docker/.envHUB改为apacheTAG改为x.y.zdeploy/kubernetes/dolphinschedulerChart.yamlappVersion与version更新为 x.y.zvalues.yamlimage.tag更新为 x.y.zconfigscript/install-plugins.sh版本号从dev-SNAPSHOT更新为 x.y.z文档docs 模块中的版本号将docs目录下文件中的占位符versionpom.xml 相关除外替换为 x.y.z新增历史版本docs/docs/en/history-versions.md 与 docs/docs/zh/history-versions.md 增加新版本 x.y.z修改文档 sidebardocs/configs/docsdev.js 中将/dev/改为/x.y.z/不要修改文件名website 仓库的 shell 脚本会自动处理注意VERSION是与VERSIONTHE-VERSION-YOU-RELEASE相同的占位字符串。修改 NOTICE 年份检查以下 NOTICE 文件将第二行的截止年份更新为当前年份dolphinscheduler-dist/release-docs/NOTICENOTICEMaven 发布演练、准备与部署创建发布分支并演练在 prepare 分支基础上创建发布分支cd ${SOURCE_CODE_DIR} git checkout -b ${VERSION}-release ${VERSION}-prepare git push ${GH_REMOTE} ${VERSION}-release export GPG_TTY$(tty)注意如果在没有源码的远程主机上发布需先执行git clone -b ${VERSION}-prepare克隆源码并确保GH_REMOTEorigin。export GPG_TTY$(tty)用于让 GPG 在无终端环境下也能弹出输入 PIN 的交互。先执行发布预演dry run不产生版本号提交、不生成新 tag# 运行发版校验 mvn release:prepare -Papache-release,release -Darguments-Dmaven.test.skiptrue -Dspotless.skiptrue -Dspotless.check.skiptrue -Dmaven.javadoc.skiptrue -DautoVersionSubmodulestrue -DdryRuntrue -Dusername${GH_USERNAME}关键参数说明-Prelease选择 release profile该 profile 会打包所有源码、jar 文件以及可执行二进制包-DautoVersionSubmodulestrue发布过程中版本号只需输入一次无需为每个子模块重复输入-DdryRuntrue演练模式不产生版本号提交不生成新的 tag正式准备发布首先清理本地预校验信息mvn release:clean然后正式执行发布准备与演练命令基本一致去掉-DdryRuntruemvn release:prepare -Papache-release,release -Darguments-Dmaven.test.skiptrue -Dspotless.skiptrue -Dspotless.check.skiptrue -Dmaven.javadoc.skiptrue -DautoVersionSubmodulestrue -DpushChangesfalse -Dusername${GH_USERNAME}-DpushChangesfalse不要将修改后的版本号和 tag 自动提交至 GitHub方便本地检查后再手动推送如果遇到 git 报错Please tell me who you are.需要先配置git config --global user.email youexample.com和git config --global user.name Your Name。本地文件检查无误后提交至 GitHubgit push -u ${GH_REMOTE} ${VERSION}-release git push ${GH_REMOTE} --tags注意 1GitHub 已不支持 HTTPS 协议下使用原生密码推送此步骤需使用 GitHub token 作为密码需在个人设置中创建具有 repo 权限的 Personal Access Token。注意 2命令完成后会自动生成release.properties文件和*.Backup文件它们在后继命令中会被用到不要删除。部署发布到 Staging 仓库mvn release:perform -Papache-release,release -Darguments-Dmaven.test.skiptrue -Dspotless.skiptrue -Dspotless.check.skiptrue -Dmaven.javadoc.skiptrue -Dmaven.deploy.skipfalse -DautoVersionSubmodulestrue -Dusername${GH_USERNAME}执行完成后待发布版本会自动上传到 Apache 的临时筹备仓库staging repository。登录 Apache Staging Repositories使用 Apache LDAP 账户即可看到上传的版本Repository列的内容即为${STAGING.REPOSITORY}。点击Close通知 Nexus 构建已完成只有Close成功后该版本才可用如果 GPG 签名等校验出现问题Close会失败可通过Activity页查看失败原因。打包产物是如何生成的dolphinscheduler-dist 模块mvn release:perform阶段实际产出的源码包与二进制包由 dolphinscheduler-dist 模块负责。从该模块的 pom 可以看出模块依赖dolphinscheduler-standalone-server、dolphinscheduler-api、dolphinscheduler-alert-server、dolphinscheduler-ui、dolphinscheduler-tools等核心构件finalName为apache-dolphinscheduler-${project.version}pom.xml通过maven-assembly-plugin在 package 阶段同时执行两个 descriptordolphinscheduler-bin.xml二进制包与dolphinscheduler-src.xml源码包pom.xml源码包由 dolphinscheduler-src.xml 定义以仓库根目录为源、排除target、*.class、*.jar、*.zip、*.tar.gz、release.properties、pom.xml.releaseBackup、node_modules等构建产物dolphinscheduler-src.xml——这正是后文检查源码包不包含多余文件的排除依据发布后的二进制包目录结构由 dolphinscheduler-bin.xml 决定插件安装脚本 assembly-plugins.sh 负责在 package 阶段将各 task 插件组装进包内。SVN 分发上传候选发布物检出发布目录Apache 的发布候选物存放在 dist SVN 的 dev 目录需要先检出到本地SVN_DIR_DEV${SVN_DIR}/dolphinscheduler/dev SVN_DIR_RELEASE${SVN_DIR}/dolphinscheduler/release # 可选只有当路径不存在时 mkdir -p ${SVN_DIR_DEV} # 第一次从该路径检出 svn --username${A_USERNAME} co https://dist.apache.org/repos/dist/dev/dolphinscheduler ${SVN_DIR_DEV} # 目录已存在时执行更新 svn --username${A_USERNAME} update ${SVN_DIR_DEV}注意第一次 checkout 可能需要几分钟才能同步到镜像因为会下载所有文件。将 GPG KEYS 文件拷贝至发布目录可选仅当第一次使用该 KEY 发版包括第一次发版或更换了 KEY时需要。此步骤需要切换到一个新目录因为需要 checkout 并修改 release 库中的 KEYS 文件# 可选仅当 SVN 根路径不存在时 mkdir -p ${SVN_DIR_RELEASE} cd ${SVN_DIR_RELEASE} svn --username${A_USERNAME} co https://dist.apache.org/repos/dist/release/dolphinscheduler # 将 YOUR-GPG-KEY-ID 替换为你的 key id gpg -a --export YOUR-GPG-KEY-ID KEYS svn add * svn --username${A_USERNAME} commit -m new key YOUR-GPG-KEY-ID add注意首次 checkout release 库会比较耗时因为需要检出全部历史文件。将待发布内容添加至 SVN 目录按版本号创建文件夹将源码包、二进制包及各自的.asc签名文件移动到 SVN 工作目录并生成与校验 SHA-512 校验和mkdir -p ${SVN_DIR_DEV}/${VERSION} # Add to SVN cp -f ${SOURCE_CODE_DIR}/dolphinscheduler-dist/target/*.tar.gz ${SVN_DIR_DEV}/${VERSION} cp -f ${SOURCE_CODE_DIR}/dolphinscheduler-dist/target/*.tar.gz.asc ${SVN_DIR_DEV}/${VERSION} # Create sign cd ${SVN_DIR_DEV}/${VERSION} shasum -a 512 apache-dolphinscheduler-${VERSION}-src.tar.gz apache-dolphinscheduler-${VERSION}-src.tar.gz.sha512 shasum -b -a 512 apache-dolphinscheduler-${VERSION}-bin.tar.gz apache-dolphinscheduler-${VERSION}-bin.tar.gz.sha512 # Check sha512 shasum -c apache-dolphinscheduler-${VERSION}-src.tar.gz.sha512 shasum -c apache-dolphinscheduler-${VERSION}-bin.tar.gz.sha512 # Check gpg signature gpg --verify apache-dolphinscheduler-${VERSION}-src.tar.gz.asc gpg --verify apache-dolphinscheduler-${VERSION}-bin.tar.gz.asc # Commit to Apache SVN cd ${SVN_DIR_DEV} svn add ${VERSION} svn --username${A_USERNAME} commit -m release ${VERSION}注意如果找不到对应的asc文件需要手动创建 GPG 签名gpg --armor --detach-sign --digest-algoSHA512 apache-dolphinscheduler-${VERSION}-bin.tar.gz gpg --armor --detach-sign --digest-algoSHA512 apache-dolphinscheduler-${VERSION}-src.tar.gz检查发布文件内容检查源码包apache-dolphinscheduler-VERSION-src.tar.gz检查源码包是否包含不必要文件导致 tarball 过于庞大存在LICENSE和NOTICE文件NOTICE文件中的年份为当前年份只存在文本文件不存在二进制文件所有文件开头都有 ASF 许可证头能够正确编译单元测试可以通过mvn install版本内容与 GitHub 上 tag 的内容相符diff -r对比 verify 目录与 tag 目录检查是否有多余文件或文件夹例如空文件夹等检查二进制包apache-dolphinscheduler-VERSION-bin.tar.gz存在LICENSE和NOTICE文件所有文本文件开头都有 ASF 许可证头检查第三方依赖许可证第三方依赖的许可证互相兼容所有第三方依赖的许可证都在LICENSE文件中声明依赖许可证的完整版全部放在licenses目录如果依赖项使用 Apache 许可证且自带NOTICE文件这些NOTICE文件内容也需要合并进发布版的NOTICE文件中发起社区投票更新版本说明Release Notes在 GitHub 上通过创建新的 release note 来编写版本说明需要在投票邮件发出之前完成因为邮件正文要引用它。推荐在 tools/release 目录运行自动化命令生成 changelogpython release.py changelog该命令的实现细节在 tools/release/release.py 中通过 GitHub Search API 查询指定 milestone 下所有已合并的 PR查询逻辑见 tools/release/github/pull_request.py即repo:apache/dolphinscheduler is:pr is:merged milestone:MILESTONE按合并时间升序排序后交给 tools/release/github/changelog.py 生成文本。从 changelog.py 的注释可以看到 PR 的分类优先级为dsip feature bug improvement document chore每个 PR 只归属一个分类带多个标签时按优先级最高的归类最终输出形如- PR 标题 (#PR 号) 作者的条目changelog.py。运行前需要准备环境变量见 tools/release/README.mdpython -m pip install -r requirements.txt export GH_ACCESS_TOKENYOUR-GITHUB-TOKEN-WITH-REPO-ACCESS # 只需 repo 下的全部权限 export GH_REPO_MILESTONEYOUR-MILESTONE如果倾向于手动生成 changelog可以使用命令git log --pretty- %s PREVIOUS-RELEASE-SHA..CURRENT-RELEASE-SHA changelog.md部分 log 可能不准确需要人工过滤一遍然后分类并粘贴到 GitHub 的 release note 中。投票流程DolphinScheduler 社区投票发起投票邮件到devdolphinscheduler.apache.org。PMC 需要先按照本文档检查版本的正确性然后再投票。经过至少 72 小时并统计到至少 3 个1且没有-1的 PMC member 票后即可进入下一阶段。随后宣布投票结果发送投票结果邮件到devdolphinscheduler.apache.org。投票邮件模板标题[VOTE] Release Apache DolphinScheduler VERSION正文Hello DolphinScheduler Community, This is a call for vote to release Apache DolphinScheduler version VERSION Release notes: https://github.com/apache/dolphinscheduler/releases/tag/VERSION The release candidates: https://dist.apache.org/repos/dist/dev/dolphinscheduler/VERSION/ Maven 2 staging repository: https://repository.apache.org/content/repositories/STAGING.REPOSITORY/org/apache/dolphinscheduler/ Git tag for the release: https://github.com/apache/dolphinscheduler/tree/VERSION Release Commit ID: https://github.com/apache/dolphinscheduler/commit/SHA-VALUE Keys to verify the Release Candidate: https://downloads.apache.org/dolphinscheduler/KEYS Look at here for how to verify this release candidate: https://dolphinscheduler.apache.org/zh-cn/docs/3.1.2/contribute/release/release The vote will be open for at least 72 hours or until necessary number of votes are reached. Please vote accordingly: [ ] 1 approve [ ] 0 no opinion [ ] -1 disapprove with the reason Checklist for reference: [ ] Download links are valid. [ ] Checksums and PGP signatures are valid. [ ] Source code artifacts have correct names matching the current release. [ ] LICENSE and NOTICE files are correct for each DolphinScheduler repo. [ ] All files have license headers if necessary. [ ] No compiled archives bundled in source archive.其中STAGING.REPOSITORY、SHA-VALUE等占位符需要手动替换为实际值。投票结果邮件模板标题[RESULT][VOTE] Release Apache DolphinScheduler VERSION正文The vote to release Apache DolphinScheduler VERSION has passed.Here is the vote result, 4 PMC member 1 votes: xxx xxx xxx xxx 1 community 1 vote: xxx Thanks everyone for taking time to check this release and help us.公告与收尾移动发布包投票通过后将发布物从 dev 目录移动到 release 目录并清理旧版本# move to release directory svn mv -m release ${VERSION} https://dist.apache.org/repos/dist/dev/dolphinscheduler/${VERSION} https://dist.apache.org/repos/dist/release/dolphinscheduler/ # remove old release directory svn delete -m remove old release https://dist.apache.org/repos/dist/release/dolphinscheduler/PREVIOUS-RELEASE-VERSION然后在 Apache Staging Repositories 仓库中找到 DolphinScheduler点击Release将其正式发布到 Maven 中央仓库。更新文档与网站官网应在发送通知邮件之前完成更新。假设发布版本为VERSION需要注意请先合并主仓库 dev 分支再合并 website 仓库 master 分支PR 被 merge 后即生效apache/dolphinscheduler-website仓库config/download.json增加VERSION版本发布包的下载scripts/conf.sh在变量DEV_RELEASE_DOCS_VERSIONS中增加版本为VERSION的新键值对apache/dolphinscheduler仓库dev 分支docs/configs/site.jsdocsLatest更新为VERSIONdocs0两处en-us/zh-cn的text更新为latest(VERSION)docs/configs/index.md.jsx增加VERSION: docsxyzConfig,以及对应的新importdocs/docs/en/history-versions.md 和 docs/docs/zh/history-versions.md增加新发版版本VERSION的链接.github/ISSUE_TEMPLATE/bug-report.ymlDolphinScheduler 的 GitHub bug report issue 模板中有版本下拉选择新版本发布后需要更新其Version部分发布 Docker Image 与 Helm ChartDolphinScheduler 提供了两个 CI 工作流来自动发布 Docker 镜像与 Helm Chart.github/workflows/publish-docker.yaml自动发布 Docker 镜像.github/workflows/publish-helm-chart.yaml自动发布 Helm Chart 到 Docker Hub从 publish-docker.yaml 的触发配置可以看到工作流在pushdev 分支、workflow_dispatch手动触发以及release事件的released类型时被触发。当你创建 release note 后这两个工作流就会自动启动你需要做的是观察工作流执行情况完成后在本地拉取 Docker 镜像验证其是否按预期工作。触发 release 后HUB会被设置为apache、DOCKER_TAG取 release 的 tag_namepublish-docker.yaml。发送公告邮件完成上述流程后发送公告邮件到devdolphinscheduler.apache.org并抄送announceapache.org邮件格式必须使用纯文本。标题[ANNOUNCE] Release Apache DolphinScheduler VERSION正文Hi all, We are glad to announce the release of Apache DolphinScheduler VERSION. Once again I would like to express my thanks to your help. Dolphin Scheduler is a distributed and easy-to-extend visual workflow scheduler system, dedicated to solving the complex task dependencies in data processing, making the scheduler system out of the box for data processing. Download Links: https://dolphinscheduler.apache.org/zh-cn/download Release Notes: https://github.com/apache/dolphinscheduler/releases/tag/VERSION Website: https://dolphinscheduler.apache.org/ DolphinScheduler Resources: - Issue: https://github.com/apache/dolphinscheduler/issues/ - Mailing list: devdolphinscheduler.apache.org - Documents: https://dolphinscheduler.apache.org/zh-cn/docs/VERSION/about/introduction删除 prepare 分支公告发出后清理发布过程中使用的 prepare 分支cd ${SOURCE_CODE_DIR} git push --delete ${GH_REMOTE} ${VERSION}-prepare发布 News 文章一切就绪后应该写一篇文章发布到社区内容应包括本版本的主要目的功能添加、错误修复或两者兼有主要新功能及使用方法最好配有图片或 gif主要错误修复及与之前版本的不同之处最好配有图片或 gif自上一版本以来的所有贡献者获取全部贡献者发布新闻或公告时可能需要当前版本的全部贡献者在tools/release目录使用命令自动生成贡献者 GitHub idpython release.py contributor从源码看该命令同样基于 milestone 查询已合并 PR再通过 tools/release/github/user.py 去重统计每个作者的贡献数量user.py最终按字母序以逗号分隔输出release.py。此外 release.py 还提供了cherry-pick子命令自动按合并时间顺序对 milestone 内所有 PR 执行git cherry-pick -x用于将已合入 dev 的改动回溯到发布分支如果默认分支不是最新或存在冲突会报错修复后可直接重跑以继续。发版流程速览整个发版流程可以归纳为以下关键阶段每个阶段都有对应的产物与核验动作准备环境检查JDK/Maven、GPG Key 生成与公钥同步、Mavensettings.xml配置一次性版本更新SQL 脚本、Docker/Helm 配置、文档占位符、NOTICE 年份、release-docs 同步Maven 发布release:prepare演练 → 正式 prepare 并 push tag →release:perform上传 staging 仓库 → NexusCloseSVN 分发检出 dev/release 目录 → 上传 tar.gz、asc、sha512 → 校验源码包与二进制包内容社区投票生成 changelog 与 release note → 发[VOTE]邮件≥72 小时、≥3 个 PMC 1 且无 -1→ 发[RESULT]邮件公告svn mv至 release 目录 → NexusRelease→ 更新官网与 issue 模板 → 观察 Docker/Helm CI → 发[ANNOUNCE]邮件 → 删除 prepare 分支 → 发布 News 与贡献者名单以上每一步都在本仓库中有对应的文件与源码可查证发版经理可以据此逐项执行社区投票者也可以依据本文清单对候选发布物进行独立核验。【免费下载链接】dolphinschedulerApache DolphinScheduler is the modern data orchestration platform. Agile to create high performance workflow with low-code项目地址: https://gitcode.com/GitHub_Trending/dol/dolphinscheduler创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表