利用通义灵码实现我的第一次开源贡献

作者:重庆邮电大学计算机学院李逸雄

结缘开源

最早了解开源是从学校的兴趣组织开始的。2023 年 10 月 21 日,openSUSE 亚洲峰会在我们学校召开,这次会议汇聚了许多来自 openSUSE 社区贡献者以及对开源感兴趣的爱好者们。我第一次知道有这么多志同道合的爱好者在进行开源贡献,他们以个人兴趣为驱动力共同维护着一个社区。这次峰会激发了我对开源社区的兴趣,一颗种子也开始从我心中发芽——我也想要做一次开源贡献!

2024 年 6 月 24 日,我上完课准备回宿舍,刚好在必经之路上看到“2024 天池云原生编程挑战赛”的宣传海报。我一看居然是阿里云举办的,回到宿舍后就立马仔细查看了详细的比赛信息。“赛道3:用通义灵码,人人都是开源贡献者”很符合我的兴趣,我也特别想能有一个被 Merged 的 PR。赛道 3 有很多个选题,结合我自己学习过云原生的一些知识,我最终选择了 Higress 开源项目,这是阿里云自己开发的 API 网关,它和 Nginx、Traefik 很类似,但是它增加了许多新的功能,并且更聚焦于云原生环境中的服务网格。尤其是它有丰富的插件,特别是与 AI 有关的插件,使得用户可以很轻易的拥有一个属于自己的 AI。

参加比赛

因为 Higress 这个开源项目是开放式赛题,浏览了当时的 issues,因为接触过 CI/CD,并且懂得 Kubernetes 和 Docker 的一些操作,所以我最终选择了这个 issue:支持通过 GitHub Actions 来构建和发布 Wasm 插件镜像 · Issue #1052 · alibaba/higress。

通义灵码体验

虽然接触过 CI/CD,但是我从来没有在 Github 上实现过它,也不会 Github Action 的语法格式。通义灵码给了我很大的帮助。我按照通义灵码安装文档将它安装到了我的 VS Code 中,接下来就是愉快的使用环节了。

在使用通义灵码的过程中,我先复制了一份写好的 Github Action Workflow,利用通义灵码的解释代码和直接对话功能, 我很快地了解了 Github Action 的基本语法以及格式。

然后我就开始编写 issue 所需要的 Github Action Workflow 了。

其中代码优化建议功能帮了我很大的忙,我只需要把有疑问的代码勾选,然后再执行 /generate optimization,通义灵码就能很方便的为我指出错误,并且提出建议。 在以往的话我还需要先把代码复制下来,然后再抛给 AI,有时还得附带上下文。

提交 PR

写好 Github Action Workflow,我提交了 PR。但是这个 PR 不是一次性就被 Merge 的。这其中我和项目负责人进行了很多有趣的讨论。提交 PR 的那段时间刚好是我的考试周,每天复习之余,最上心的事情就是查看邮箱,看看负责人有没有给我留言,每次收到邮件我都会十分激动,因为他真的在看我的贡献,真的在为我的贡献提出建议!

为了这份脚本能够成功执行,我进行了很多次的测试。而且在测试的过程中,我甚至也找出了官方文档存在的一些问题。我还提了一个自己发现的 issue!按照 Wasm 插件镜像规范构建出的镜像不可用 · Issue #1100 · alibaba/higress (github.com)

2024 年 7 月 8 日,我进行了最后一次测试。我写了十分详细的测试文档,然后提交。直到我看到负责人给我评论了"LGTM(Looks Good To Me)",我高兴极了。很快他 Merge 了我的 PR。就这样我得到了第一个属于自己的 Merged PR。

feat:add build-and-push-wasm-plugin-image.yaml by Beatrueman · Pull Request #1069 · alibaba/higress (github.com)

参赛心得

技术提升

通过这次比赛,我学会了 Github Action Workflow 的基本语法和编写格式,并且对 CI/CD 在企业中的应用有了更进一步的了解。

并且我还上手了阿里云开发的新一代 API 网关 Higress,体验了它丰富的功能,感受到了它在云原生环境下的强大实力。

开源氛围

Higress 是一个活跃的开源社区,在这个社区中大家都积极的分享自己的知识和 idea,乐于寻找 bug。这种互帮互助,乐于分享的活跃氛围大大激发了我的开源兴趣。

个人体会

这次比赛不仅提升了我的技术,还让我学会了如何沟通、如何解决问题等等。我收获很多,相信在以后我会对开源社区做更多高质量的贡献,争取在多几个 PR~

致谢

十分感谢阿里云以及天池为我们广大开源爱好者搭建了一个广阔无垠的舞台,让我们有机会将梦想转化为现实,将创意付诸实践。

同时也要感谢项目的相关工作人员,无论是对于技术上的指导和建议,还是比赛资料的统计以及奖品的组织发放,大家都辛苦了!

未来的路还很长,但我相信,在阿里云与天池的陪伴下,我们将携手共进,共创辉煌。

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

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

相关文章

腾讯云域名托管到 cloudflare

cloudflare https://dash.cloudflare.com/ 腾讯云域名列表 https://console.cloud.tencent.com/domain/all-domain/all 先进入 腾讯云列表,点击自己已购买的域名点击修改; https://console.cloud.tencent.com/domain/all-domain/all修改为cloudflare提供的, 如下: 进入 htt…

中间件实时监控,运维难题一站解决

智和信通方案通过构建对Tomcat、Jboss、WebLogic等中间件的关键指标的监控,实现对中间件性能和资源的实时追踪,识别并解决影响中间件性能的问题,保障中间件的高性能及高可用性,更全面地支撑业务及应用的稳定、持续运行,提升用户体验。 中间件是介于操作系统和在其上…

【性能优化+数据库】读写分离方案

读写分离是一种常见的优化方案,旨在通过将读操作、和写操作分开,如下图所示:大致的原理,如下: 【主库(Master)】:负责处理所有的写操作(比如:插入、更新、删除......)、和写操作相关的事务;【从库(Slave)】:负责处理读操作(查询),通过主从复制机制从主库同步…

【性能优化+数据库】读写分离

读写分离是一种常见的优化方案,旨在通过将读操作、和写操作分开,如下图所示:大致的原理,如下: 【主库(Master)】:负责处理所有的写操作(比如:插入、更新、删除......)、和写操作相关的事务;【从库(Slave)】:负责处理读操作(查询),通过主从复制机制从主库同步…

VL25 输入序列连续的序列检测

这个题目的意思是输入是单bit脉冲,然后当8个周期的脉冲序列符合给定的参数值则match输出1; 因此肯定需要一共8位的寄存器存储总共8个a的输入脉冲 此外由于是从左向右匹配,因此每个周期输入的a要从寄存器最低位输入,从右向左移位(temp_a<={temp_a[6:0],a};),这样才是输…

电商领域的新引擎:API接口的革命性应用

​在数字化转型的大潮中,电商行业正经历着前所未有的变革。API接口,作为连接不同系统和服务的桥梁,正在成为电商领域的新引擎。本文将探讨电商API接口如何助力企业释放数据潜力,驱动业务增长。 一、电商API接口:连接的力量 API(Application Programming Interface)接口是…

HDMI详解

HDMI详解 摘要 本文详细介绍了HDMI接口的定义、不同类型的接口、HDMI脚位功能、版本间的区别,重点探讨了电路设计,包括电源、HPD检测、I2C通信、数据时钟、ARC/eARC音频回传以及CEC消费电子控制等内容,为HDMI产品设计者提供了实用指南。 HDMI的定义 HDMI是高清多媒体接口(Hi…

NSIS入门笔记

1. 基本介绍 NSIS (Nullsoft Scriptable Install System)是一个专业的开源系统,用于创建Windows安装程序。平时工作中想要把exe文件打包,并且在不同系统之间安装,可以使用NSIS,本文使用版本为3.08。 2. 下载地址 可以通过搜索引擎搜索NSIS,推荐安全下载链接:https://nsis…

NSIS新手入门

1. 基本介绍 NSIS (Nullsoft Scriptable Install System)是一个专业的开源系统,用于创建Windows安装程序。平时工作中想要把exe文件打包,并且在不同系统之间安装,可以使用NSIS,本文使用版本为3.08。 2. 下载地址 可以通过搜索引擎搜索NSIS,推荐安全下载链接:https://nsis…

MDS100-16-16-ASEMI三相整流模块MDS100-16

MDS100-16-16-ASEMI三相整流模块MDS100-16编辑:ll MDS100-16-16-ASEMI三相整流模块MDS100-16 型号:MDS100-16 品牌:ASEMI 封装:M18 批号:2024+ 类型:整流模块 电流:100A 电压:1600V 安装方式:直插式封装 特性:大功率、整流模块 产品引线数量:5 产品内部芯片个数:6 …

[JS] ArrayBuffer、DataView和TypedArray

本文介绍了 JavaScript 中 ArrayBuffer 和 TypedArray 的应用。ArrayBuffer 用于预分配内存,存储二进制数据,但需通过 DataView 或 TypedArray 视图来读写。TypedArray 是定型数组,用于高效处理特定数据类型。DataView 则提供了更灵活的方式,适合在二进制文件处理、WebSock…

软工作业1:自我介绍+软工五问

| 这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/ | | ----------------- |--------------- | | 这个作业要求在哪里| https://edu.cnblogs.com/campus/gdgy/CSGrade22-34/homework/13228 | | 这个作业的目标 | <自我介绍,学习使用博客、GitHu…