从零到一,全面掌握Apache DolphinScheduler发版流程,实战派经验分享! ...

打印 上一主题 下一主题

主题 903|帖子 903|积分 2709


弁言

Apache DolphinScheduler的发版流程对于确保软件质量和社区协作至关重要,社区Committer王兴杰为我们详细介绍了Apache DolphinScheduler的发版流程,包罗环境准备、流程文档、基础工具准备、依赖包确认等关键步骤,并指出了发版流程中大概会碰到的麻烦以及相应的解决方案,欢迎学习指正。
一、发版物料

(1)Apache要求
a. Maven堆栈物料(发版过程中会存储在暂时库中)
https://repository.apache.org/content/repositories/orgapachedolphinscheduler-{index}/org/apache/dolphinscheduler/
b. 发布包、签名文件和keys
对发布版本签名,用户也可据此判定下载的版本是否被篡改。
(2)DolphinScheduler要求
Dockerhub 镜像
Helm 文件
(3)权限要求

  • PMC Member拥有完整的发版权限;
  • Committer会有小部分权限缺失,需要PMC Member配合。
二、发版流程


  • 环境准备


  • jdk :1.8版本以上 (1.8.0_271)
  • Maven:尽大概保证3.9版本以上(3.9.6)
  • 低版本maven构建部署包会失败
  • gpg:各版本均可 (2.0.22)
  • svn:高于1.6版本(1.7.14 ),低版本会报错


  • git:1.8.3.1
  • 服务器系统:MacOS,Linux(Linux服务器、CentOS7)
  • 服务器要求需要能访问Apache官网或GitHub,目前Window在同步gpg、公钥ID时会出现异常,建议尽大概利用非Window系统。

  • 发版流程文档


  • 基础工具准备
    (1)gpg安装
    按照文档实行操作

(2)配置maven堆栈

  • 修改settings-security.xml文件
  • 修改conf/settings.xml配置文件(注意路径),文件中的apache LDAP是apache对应的用户名密码,明文。

  • 依赖包确认
    这里重要检查依赖包对一个的license 和对应的下载地址。

可以查看pom的提交日志,查看修改记录,正常在review pr的时间会检查这一项。但是大概会有遗漏或重复的环境。

  • 修改版本
(1)为了方便后续打包等操作,可以增加环境变量。包罗后续对svn的一些操作所需的环境变量,建议在文档中新建的变量都创建为环境变量。

(2)文档版本修改
注意:docsdev.js是Apache DolphinScheduler官网该版本的引用位置相关文件,文件修改的效果只有在website的pr被merge之后才气表现,所以这部分文件需要严格按照文档修改,建议在打包之前检查一下文件的修改环境。


  • 部署包构建发布
部署包的构建分为三个部分
(1)发布检查
a.分支准备

起首要在官方的github堆栈创建prepare分支,fetch分支后运行上述命令。文档中的origin要根据用户clone的堆栈决定,如果直接clone的是官方堆栈,这里利用origin没有问题。如果利用的是fork的堆栈,创建upstream(如果叫upstream的话)指向官方堆栈,那GH_REMOTE得是upstream。发版的所有操作都是直接推到官方堆栈。
一般环境prepare分支是基于dev创建的。
在clone或者创建upstream时,最好是利用git协议,不要利用https,否则推送tag会失败。
b.发版校验
命令运行大概需要8G内存,注意资源。

运行竣事后最好检查一下dolphinscheduler-dist/target文件夹的巨细,如果凌驾950M,而且没有瘦身策略,发版得暂停。
这一步重要是为了验证构建部署包的过程是否精确。
(2)发版准备
需要清理掉发版校验的文件,实行clean命令。clean命令实行后大概会存在部分文件未清理的环境,可以考虑实行git stash暂存。
这里如果是多次发版,需要再实行 mvn release命令之前清理掉本地和远程(官方堆栈)的tag,否则会报错。这里需要提前配置 注意1 的内容。
该步骤不会有成果。
如果在命令中出现clone prepare分支失败的问题需要检查upstream的协议,网络等环境,如果网络不稳固可以重试。
此处需要检查堆栈中prepare分支和tag的commit,需要划一。

(3)部署发布
  1. a. 执行命令
复制代码
该命令基于发版准备的结果,所以【发版准备】的结果不能做任何修改(包罗代码),命令竣事后会在https://repository.apache.org/#stagingRepositories 中显示内容。这个内容大概会有一点点延迟,但正常不会凌驾五分钟。如果发现没有文件,大概率是maven的远程堆栈配置问题,可以排查一下。

如果发版过程中发现有代码的修改,需要重新实行发版的操作,必须至少要从【发版准备】开始,实行【发版准备】前需要实行git release:clean 命令,如果有多余文件可以git stash暂存。多次发版需要注意stagingRepositories中文件的时间,如果发现时间与实行发版命令时间不对应环境大概阐明包为同步。正常stagingRepositories的文件会替换,无需主动删除。
发版过程会利用到gpg -s的命令,命令的密码缓存应该是非常钟,如果服务器资源不太够,构建时间会凌驾非常钟,这里需要保证gpg 密码的缓存时间。

到这里所有发布包的构建流程已经竣事。
b. 发布包提交apache堆栈

建议将SVN_DIR_DEV和 SVN_DIR_RELEASE 也都设置为环境变量。

如果是committer这部其实可以不用实行, commit没有权限。

这里DolphinScheduler并没有打开对应的设置,所以这部分需要将gpg-key-id导出来后发给PMC帮忙添加,或者在发版邮件后补充。但是尽大概是添加到KEYS里面。

这里需要注意的是tar.gz.asc文件,可以利用【注意】部分的命令添加,但是在打包的时间其实是已经生成了。也可以手动在maven本地堆栈里面拷贝出来。
部分服务器 shasum的命令没有,可以利用sha512sum shasum -a 512 = sha512sum.

打包日志里面写了生成的asc文件位置。
c. 发版文件检查
  1.         除了上述的文件,建议在检查一下`doc/conf/docsdev.js`文件。
  2. 到此为止发版打包的工作就已经结束了。
复制代码

  • 发版邮件
创建RELEASE NODE

这里要求python要在3.0版本,生成的结果是一个md文件,文件中自带了pr的链接,最好是在检查一下pr的名称和对应的位置,这里的位置错误会较多,很多bug也到了improvement里。
RELEASE NODE创建好后会马上触发一个工作流,用来构建docker镜像和helm文件。构建的流水线日志可以在https://github.com/apache/dolphinscheduler/actions中查看。
【注意】如果是多次创建RELEASE NODE的话,需要检查一下
https://github.com/apache/dolphinscheduler/releases是不是有重复的内容,或者先把原来的删掉再创建新的。这里新创建的不会覆盖,只会新增。
邮件一共有三封
a. 发版投票邮件
按照引导文档中的内容编写邮件即可,发送邮件的邮箱需要提前订阅dev邮件,否则其他人复兴的邮件无法看到。
邮件写完后再次检查一下里面涉及到所有的链接,是否有精确的内容。
等候72小时以上,至少有三名pmc参与投票,committer和contributor不要求数量。没有一名PMC发出-1的投票,则投票竣事。
b.投票竣事邮件
按照引导文档中的内容编写邮件即可,投票人员的title需要问社区,从前官网有pmc和committer的名单,但是最近找不到了。
c.第三封邮件在后续内容介绍
8. 官网文档修改

如果新增是一个两个版本号的版本,需要在
https://github.com/apache/dolphinscheduler/blob/dev/.github/ISSUE_TEMPLATE/bug-report.yml中添加对应的版本。比如3.3*这种。
这里的修改一定要仔细,如果修改错误官网就会有内容丢失乃至无法访问,注意符号的转义。
pr被merge后,官网的文档就已经可以查看了,这里欣赏器会有缓存,清一下,或者无痕打开。
这里还需要再发一封邮件,通知发版已经竣事。
邮件发布后需要删除prepare分支。

  • 新闻稿件
新闻稿件重要是形貌这次发版的重要变更,一般三位版本号的版本重要修复bug,和一些improvement。稿件中需要简述一下重点的pr内容,图片可以查看pr提交的内容,有的文档中会有对应的图片,中文文档的pr列表中需要翻译一下pr的名字。最后的贡献者在tool中有对应的工具,同样利用python3.0版本实行。
三、版本验证


  • 官网文档
    登录官网查看对应版本是否正常
  • dockerhub镜像
    差别的服务镜像差别,需要检查所有的镜像更新时间和tag

发版完成

恭喜你,完成以上步骤后,Apache DolphinScheduler的发版流程就全部竣事了。感谢所有贡献者的辛勤工作和社区的支持,对发版工作感兴趣的朋侪可以根据教程实操一下,社区欢迎如许的尝试。
本文由 白鲸开源 提供发布支持!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

羊蹓狼

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表