走进 Apache 世界的另一扇大门

引言

作为热爱技术的你,是否也羡慕 Apache PMC 或者 Committer,此篇文章渣渣皮带你迈出如何成为技术大牛的第一步。

当然我现在还是一枚小小的 code contributor,在成为 committer 的路上还在奋力打码中,写这篇文章也是为大家有这个想法的童鞋提供一些指引,大家在这条路上可以多交流交流

选择项目

首先你需要选择你熟悉技术范围的或者实际生活工作中使用到的,这里我就是熟悉 [Paimon](Apache Paimon | Apache Paimon) (一个数据湖项目,从 Flink 项目发展出来,恰好想研究的也是实时相关的)的流程开始的。

不过最近几年国内开源还是比较火热的,好几个项目都进入 Apache 孵化了。这里列举一些,看是否你也有中意的。

  • 网关:Apache ShenYu - High-performance, multi-protocol, extensible, responsive API Gateway | Apache ShenYu
  • 分布式数据库支持工具:Apache ShardingSphere
  • 大数据计算中间层:Apache Linkis | Apache Linkis
  • 大数据集成工具:Apache SeaTunnel | Apache SeaTunnel
  • Serverless SQL on LakeHouse:Apache Kyuubi - Multi-tenant Thrift JDBC/ODBC server
  • OLAP分析Doris:Home - Apache Doris
  • 大数据调度平台:Apache DolphinScheduler

除了上述国内贡献到 Apache 的项目,还有我们经常熟悉的 Spring、Mybatis、SpringBoot,以及国内的 dubbo、druid 等项目,大数据中的 Hadoop、Spark、Flink 这些大家如果有兴趣都是可以去参与的。

准备工作

  • 最好有个 Gmail 邮箱,你需要订阅用户邮件以及开发者邮件等,参与邮件中问题的回复也是对开源的贡献,并且一些重要的特性都会在邮件里面会讨论以及最后的投票
  • 本地 Git 的配置,这个就不用我教你们了吧
  • 还需要注册 Github 账号,这个全球最大男性交友网站大家最熟悉不过了吧

那么下一步正式开始我们的提交之旅吧

第一步:订阅邮件

一般项目的 Contributing 页面都会告诉你怎么去给项目做贡献。

比如我们的第一步就是订阅开发者邮件,如下图所示:页面也会给出其他的邮件选择

image-20230727082430099

这里我们先订阅开发者邮件,

  1. 首先用自己的邮箱给 dev-subscribe@paimon.apache.org 发送邮件即可
  2. 收到官方回复的确认邮件
  3. 回复该邮件,内容随意,我这里简单回复 Confirm
  4. 会收到欢迎你订阅的邮件,这个时候就表示成功订阅了,如下图所示
image-20230727082920100

第二步:选择问题

这一步首先从Github 的 issue 里面去找找看,一般新项目都会设立 good first issue 的 tab 的问题,具体如下样式:

image-20230726223014321

当然,如果你对项目很熟悉的话,也可以从 doc 或者 bug 的类似 issue 开始去解决。

image-20230726223348368 image-20230726223454169

那么选好 issue 以后,就开始要准备写代码解决问题了。

第三步:fork 代码

看到项目顶部的选项,有一个 Fork 选项,需要将项目 fork 到自己的仓库项目下面

image-20230726223544971

下一步就看到具体选项,这里直接 Create fork 就行。

image-20230726223652577

接下来就可以看见自己的仓库里有代码了,如下图,可以看见是从 apache 的项目 forked 出的项目。

image-20230726223758808

第四步:编写代码

接下来就是 clone 代码,然后本地开始编写代码了。

1、如下图所示,选择自己喜欢的方式 Clone 代码就好

注意:一定是 clone 自己仓库已经 forked 的项目,不是 apache 下的项目地址

image-20230726224054939

2、接下来就是打开本地的代码,这里我使用的编辑器是 IDEA,对于 Java 开发者来说已经是再熟悉不过了。不过这里需要新建分支去开发,可以使用命令来执行,如下操作(这里的分支名可以随意些)

git checkout -b PAIMON-1141

3、提交代码到远程分支

使用 commit,然后 push 命令即可

git commit -a -m "[Feature] Support month, day, and hour expressions for cdc synchronizing tables action"
git push origin PAIMON-1141

第五步:提交 PR

本地开发好代码后,就可以进行下一步骤了,就是提交 PR。

1、进到仓库的 Pull requests 页面,点击【New pull request】按钮操作

image-20230727091253329

2、下一个页面中选择自己提交的分支,这里就可以对比你提交的信息和主仓库分支上的信息的差异,点击【Create pull request】即可

image-20230727091340595

3、按照提示的 PR 模板,填写相应的信息,提交即可

image-20230727091801166

第六步:CR 代码

等待 Committer 对你的代码进行 CR,如果是有需要需改的意见,会在 PR 里面进行讨论,这个时候你就需要重新修改本地的代码,充分测试好,然后重新 commit 代码,push 到远程分支上去

image-20230726224609939

第七步:等待合并代码

最后问题都充分解决后,会就得到 +1 的认可,剩下等待代码被合并到 master 分之了。

image-20230726224740910

到这里,你的代码就已经合并到 master 主分支上了,这样看起来是不是也很简单,等下次软件发版本的时候,你的代码就在里面了,恭喜你,成为了 code contributor!

常用英文

这里附带一些常用的英文,送给英文不太好的童鞋,这些在社区中可以用的上

Hi, I want to fix this issue, you can assign it to me.

I am interested in implementing this task, please submit a PR in 2 weeks if you leave the message.

Thanks for your contributing. Left some comments.

参考资料

  • 这个是 Apache PMC 的 Jark Wu 写的分享文章:分享了如何从小白到 Committer 的成长之路,值得一看

如何从小白成长为 Apache Committer?

成为Apache顶级项目核心贡献者是一种什么样的体验? (qq.com)

  • Apache Linkis 的贡献指引:写的比较详细,有视频,也有专门针对新手项目的指引

Apache Linkis 官网贡献指引(视频)

Apache Linkis 项目贡献指引(视频)

Apache Linkis新手项目

保姆级教程:如何成为Apache Linkis文档贡献者(如果你用 Github Desktop 客户端,这个是很好的介绍,全图形化操作)

  • InLong 的提交代码指引

如何提交代码 | Apache InLong

本文由博客一文多发平台 OpenWrite 发布!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/23952.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Windows搭建apache网站

1、官网下载安装包,注意下载服务器对应操作系统的安装包(此案例为64位操作系统) Apache VS17 binaries and modules downloadFor (business) webmasters, developers and home-users who want running always up to date Windows VS17 binar…

【机器学习】机器学习与智能交通在智慧城市中的融合应用与性能优化新探索

文章目录 引言机器学习与智能交通的基本概念机器学习概述监督学习无监督学习强化学习 智能交通概述交通流量预测交通拥堵管理智能信号控制智能停车管理 机器学习与智能交通的融合应用实时交通数据分析数据预处理特征工程 交通流量预测与优化模型训练模型评估 智能信号控制与优化…

pycharm安装openai报错

解决方案: Rust官网:http://rust-lang.org 下载安装包,下载后如下 双击这个exe文件 提示需要安装visual studio选择1进行安装即可。安装完成后会自动进行下一步 选择1进行安装 默认安装到C:\Users\用户名文件夹下 验证是否安装成功 由于这两个文件夹占…

k8s:实现一个pod两个容器

# 制作两个容器的镜像 通过以下Dockerfile创建一个镜像 cd /chz/install/docker vim Dockerfile <<<< 内容如下&#xff1a; FROM centosRUN sed -i -e "s|mirrorlist|#mirrorlist|g" /etc/yum.repos.d/CentOS-* RUN sed -i -e "s|#baseurlhttp:/…

Spring Boot框架基础

文章目录 1 Spring Boot概述2 Spring Boot入门2.1 项目搭建2.2 入门程序 3 数据请求与响应3.1 数据请求3.2 数据响应 4 分层解耦4.1 三层架构4.2 控制反转4.3 依赖注入 5 参考资料 1 Spring Boot概述 Spring是Java EE编程领域的一个轻量级开源框架&#xff0c;是为了解决企业级…

Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明

Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明 目录 Python 机器学习 基础 之 处理文本数据 【处理文本数据/用字符串表示数据类型/将文本数据表示为词袋】的简单说明 一、简单介绍 二、处理文本数据 三、用…

IDEA2023.1.4配置springboot项目

新建“Spring Initializr”项目 勾选以下三个依赖项即可。 springboot分为代码层、资源层和测试层。 代码层 根目录&#xff1a;src/main/java 入口启动类及程序的开发目录。在这个目录下进行业务开发、创建实体层、控制器层、数据连接层等。 资源层 根目录&#xff1a;src…

喜讯!云起无垠入选《LLM驱动数字安全2024—AI安全系列报告》

近日&#xff0c;国内领先的数字化领域第三方服务机构数世咨询&#xff0c;发布了《LLM驱动数字安全2024—AI安全系列报告》。该报告深入统计分析了国内在LLM研发或应用方面具有实力的数字安全供应商&#xff0c;并通过报告和雷达图的形式&#xff0c;直观展示了这些供应商在数…

vue2的form利用插槽修改错误提示UI

1. 需求 很多时候我们使用el-form想修改下错误提示的UI&#xff0c;比如table中使用form校验这类场景下错误提示的UI调整就非常重要。 2. 了解文档 Form-Item Scoped Slot name说明error自定义表单校验信息的显示方式&#xff0c;参数为 { error } 3.实际使用 html里使用…

抽象,自定义函数,递归

6.1懒惰是一种美德 如果你 在一个地方编写了一些代码&#xff0c;但需要在另一个地方再次使用&#xff0c;该如何办呢&#xff1f; 假设你编写了一段代码&#xff0c;它计算一些斐波那契数&#xff08;一种数列&#xff0c;其中每个数都是前两个数的和&#xff09;。 现在的…

笔记96:前馈控制 + 航向误差

1. 回顾 对于一个 系统而言&#xff0c;结构可以画作&#xff1a; 如果采用 这样的控制策略&#xff0c;结构可以画作&#xff1a;&#xff08;这就是LQR控制&#xff09; 使用LQR控制器&#xff0c;可以通过公式 和 构建一个完美的负反馈系统&#xff1b; a a 但是有上…

解密智慧校园解决方案:赋能数字化教育的未来

在当今数字化时代&#xff0c;智慧校园解决方案正以惊人的速度改变着教育界的面貌。随着科技的快速发展&#xff0c;数字化教育已经逐渐成为现代教育的核心。智慧校园解决方案作为一个集技术、教育和创新于一体的综合性项目&#xff0c;为学校提供了许多机遇和挑战。本文将揭示…

遇见桂林山水画廊,深层互联自动讲解耳机走进漓江

遇见山水&#xff0c;听懂山水。由深层互联独家打造&#xff0c;桂林漓江山水画廊导览工程&#xff0c;于不久前正式启动&#xff0c;声情并茂的真人语音引导着游客&#xff0c;走进有声有色的山水画卷中。 桂林山水甲天下&#xff0c;得天独厚的自然景观&#xff0c;奇幻瑰丽…

掌握4种常见电脑视频压缩方法,轻松解决空间危机

在现今数字化的时代&#xff0c;视频成为我们生活和工作中不可或缺的一部分。然而&#xff0c;随着高清、超高清视频的普及&#xff0c;视频文件的大小也随之增大&#xff0c;给存储、传输和分享带来了一定的挑战。为了克服这一问题&#xff0c;电脑视频压缩成为一项关键的技术…

SwiftUI获取用户的位置信息(CLLocationManager,CLLocationManagerDelegate)

本篇文章将会介绍一下在SwiftUI中如何通过CorLocation框架获取用户的位置信息&#xff0c;因为获取位置信息属于用户的隐私信息&#xff0c;所以需要在Info.plist文件里面加上访问位置权限的说明。 关于位置信息&#xff0c;可以请求两种级别的许可&#xff1a;always和when i…

视频剪辑去水印软件推荐 视频剪辑去水印方法

不会去水印&#xff0c;很难做好视频剪辑。选对软件、掌握去水印的方法&#xff0c;是每个剪辑师必须经历的过程。真正擅长视频剪辑去水印的软件&#xff0c;一定具备多种去水印功能。剪辑师可以根据素材的具体情况&#xff0c;选择最恰当的去水印方法。有关视频剪辑去水印软件…

JimuReport 积木报表 v1.7.5 版本发布,免费的低代码报表

项目介绍 一款免费的数据可视化报表工具&#xff0c;含报表和大屏设计&#xff0c;像搭建积木一样在线设计报表&#xff01;功能涵盖&#xff0c;数据报表、打印设计、图表报表、大屏设计等&#xff01; Web 版报表设计器&#xff0c;类似于excel操作风格&#xff0c;通过拖拽完…

【日记】遇到了一个很奇怪的大爷(845 字)

正文 花了昨天和今天两天时间&#xff0c;把数据转移完了。这块 2T 的硬盘可以光荣退休了。目前是没什么存储焦虑了。 农发行净开发一些垃圾系统。今天没什么业务&#xff0c;但跟 ActiveX 斗智斗勇了一整天&#xff0c;最后实在搞不过 IE 浏览器。我也懒得管了&#xff0c;又不…

禁用layui树形表格的多选框checkbox

1. 背景 在使用树形表格渲染数据时&#xff0c;需要对数据进行批量操作。相对于选中数据后&#xff0c;再做错误提示。直接把数据的多选框禁用掉更加直观。 2. 实现 DisabledTableCheckBox: () > {// 获取所有行 var tableElem $(".layui-table-fixed-l");var …

一脉阳光上市圆梦:销售成本高昂,两大创始人的行贿往事与屡屡被罚

《港湾商业观察》施子夫 2024年6月7日&#xff0c;江西一脉阳光集团股份有限公司&#xff08;以下简称&#xff0c;一脉阳光&#xff09;将正式在港交所主板挂牌上市&#xff08;以下简称&#xff0c;一脉阳光&#xff1b;股票代码02522.HK&#xff09;&#xff0c;公司预计发…