layotto
layotto copied to clipboard
“SOFA 星球”闯关计划 —— Layotto飞船
一、这是一个什么样的游戏
近年来,整个时代技术潮流走向开源与开放,中国开发者已经成为全球开源体系中的重要力量。
互联网企业都在积极拥抱开源,中国已逐渐生长出越来越亮眼的开源项目。SOFAStack 社区作为蚂蚁集团开源经验丰富的金融级分布式架构开源社区,还不快来搭上开源的列车。
二、这是一艘什么样的飞船
SOFA 星球中有众多开源项目,就像是一艘艘的飞船构建起了星球的生态,本次闯关活动中的 Layotto 飞船就是其中重要的一艘,提供了各种分布式的能力,比如状态管理、配置管理、事件发布订阅等能力,以简化应用的开发。 是一款使用 Golang 开发的应用运行时, 旨在帮助开发人员快速构建云原生应用,帮助应用和基础设施解耦。
徘徊在开源门口的技术爱好者,你还在犹豫什么?
和社区共同成长,不再做开源旁观者!
第一关:先立一个小 flag
一、测试相关
- [x] [已认领] 修复 rpc 相关代码的单元测试报错问题 https://github.com/mosn/layotto/issues/550
二、翻译相关
-
[x] 将“介绍 layotto CI” 的文档翻译成英文 https://github.com/mosn/layotto/issues/545
-
[x] 将“介绍如何自动测试 quickstart” 的文档翻译成英文 https://mosn.io/layotto/#/zh/development/test-quickstart
三、开发相关
- [ ] 优化 lock api demo,让所有 lock 组件公用一个 demo
- [x] 优化 sequencer api demo,让所有 sequencer 组件公用一个 demo
- [x] 优化 pubsub api demo,让所有 pubsub 组件公用一个 demo
第二关:来实现一些很酷的 feature 吧!
一、组件开发
- [x] 用 mysql 或 postgresql 实现分布式自增id 组件(已领)
二、 WASM 相关(已领完)
三、工程化相关(已领完)
- [x] 自动化检查 code style。 我们可以在 github workflow 中使用
go lint
自动检查代码风格,检查的细节比如: 代码里不能有中文; 用go xxx()
起新协程的地方,必须有 recover; 当然这几个例子实现不了也不要紧,只要有有价值的自动化检查就行
目前 ci/cd 使用 github actions,配置文件在这里 可以参考一些 github actions 优质教程:
1.https://www.ruanyifeng.com/blog/2019/09/getting-started-with-github-actions.html
2.http://www.ruanyifeng.com/blog/2019/12/github_actions.html(.http://www.ruanyifeng.com/blog/2019/12/github_actions.html)
- [x] 发布新版本时自动化构建: 修改 workflow,每次发布新版本时自动交叉编译出多平台的二进制文件(linux/mac下的二进制文件)、压缩(把二进制文件压缩),以便在发版报告中提供二进制文件或压缩文件。需要调研一下方案,看看是自己写一个构建脚本、用go的交叉编译功能,还是有现成的平台帮忙做构建。
第三关:我要成为中间件大师!
一、可观测性(已领)
集成 Jaeger 等系统 目前 Layotto 支持了 trace 能力,希望能够和 Skywalking,Jaeger 等可观测性相关平台做集成
- [x] 集成 Jaeger
- [ ] 集成 zipkin
- [ ] Some other tracing platform...
二、集成 istio 1.10(已领)
- [x] 让 layotto 的 invokeService API 能够复用 istio 的流量治理能力
三、WASM Lab
- [x] (已领)让 Layotto 支持通过接口调用的方式动态加载 wasm,以支持 FaaS 场景动态调度.#191
四、Layotto API
- [ ] 设计实现 Redis API
- [ ] 设计实现 Kafka API 有了这个API后,我们可以用阿里云 SLS 组件来实现这个 API
- [ ] 设计实现事务消息 API
- [ ] 设计实现延迟消息 API
如何获取获任务能量:
1.通过第一关即可成为 Contributor ,获得电子和实体版证书,且收集一颗能量值。
2.通过第二关即可成为 member,且收集四颗能量值。
2.通过第三关即可成为 Reviewer,且收集十颗能量值。
打通所有关可受邀成为“ Layotto 飞船驾驶员”(活动 Reviewer),查看更多人的闯关 PR,认识更多对开源开兴趣志同道合的朋友,帮助更多人登陆 SOFA 星球啦~
能量兑换:
完成任意任务即可获得相应的能量值,累计能量可随时兑换礼品奖励。
● 一颗能量值- SOFA 创意贴纸、钥匙链
● 四颗能量值- Layotto 专属杯子
● 十颗能量值- SOFA 宇宙抱枕
● 十五颗能量值- SOFA 社区大礼包
四、活动流程
1.参与者登陆自己的 GitHub 账号,在活动页面查闯关任务
2.挑选出自己想要完成的任务,在本文下留言自己选择的任务, Layotto 飞船驾驶员”(项目 Reviewer )会将任务分发给您
3.在完成任务后提交 PR 给“ Layotto 飞船驾驶员”(项目 Reviewer )@seeflood
4.“ Layotto 飞船驾驶员”(活动 Reviewer )对提交的 PR 进行 Review
5.PR 审核通过后,由 “ Layotto 飞船驾驶员”合并到项目主干中
6.即通过本关
7.重复以上流程依次,通过接下来的关卡,直至完全通关
8.成为飞船驾驶员,询问是否愿意成为成为“ Layotto 飞船驾驶员”(帮助 Review 闯关 PR)
五、通关直通车
如果在活动任务中有中意的任务,或只想做某一高阶任务怎么办?
可以直接选择该任务,进行提交,PR 审核通过后,依旧能获取相应的通关能量获取奖品。
祝你闯关顺利!
有任何问题可以微信添加 SOFAGirl180419,备注飞船任务
感谢毛毛 !!!
● 自动化检查 Pull request 标题,必须满足类型(scope)主题的格式,以便让 commit history 可读性更好。https://github.com/mosn/layotto/issues/243
这个 @ZLBer 在搞
自动化构建: 自动化编译出多平台的二进制文件(linux/mac 下的二进制文件)、压缩(把二进制文件压缩)、构建 docker 镜像
这个先hold,等 @Xunzhuo @zhenjunMa 做前置准备
作为替代,我再录入些新任务哈
你好@seeflood,我想要尝试为 state API 相关代码添加注释
@2019030007547 好呀欢迎~ 我在 issue https://github.com/mosn/layotto/issues/112#issuecomment-873522095 里把这个任务 assign 给你
参考资料: 新手攻略:从零开始成为 Layotto 贡献者 可以参照quickstart demo把hello world跑起来,先了解项目是干啥的
代码在:
pkg/grpc/default_api/api_state.go
pkg/grpc/dapr/dapr_api_state.go
pkg/runtime/state
@seeflood 可以直接做这个吗?升级由 Rust 开发的 Wasm demo. https://github.com/mosn/layotto/issues/255
@nanjingboy 当然可以,欢迎!我assign 给你哈 遇到问题可以找我,群聊或者github都行
@nanjingboy 当然可以,欢迎!我assign 给你哈 遇到问题可以找我,群聊或者github都行
OK,BTW,群聊指的是?还有二维码?
@GimmeCyy @nanjingboy hi, 我们拉了个微信群,可以微信添加 SOFAGirl180419 备注飞船任务,拉您进群哈~
@seeflood 我试下” 提供一个 Layotto 集成 Prometheus 的示例 Demo“这个feature
@LXPWing 好呀好呀,我建了个issue assign给你 https://github.com/mosn/layotto/issues/466
hello,我申请一个为 actuator 相关代码添加注释的任务
@Holdonbei 好呀欢迎!我 assign 给你哈,见 https://github.com/mosn/layotto/issues/112#issuecomment-873522095
您的邮件我已收到。
hello,我申请一个为 actuator 相关代码添加注释的任务
hello 辛苦微信添加 SOFAGirl180419,备注飞船任务,反馈下任务困难和进度🌹
@seeflood 我想尝试用 mysql 实现分布式自增id 组件
@GimmeCyy 感谢帮助! 你可以发个"用 mysql 实现分布式自增id 组件"的 issue (比如像https://github.com/mosn/layotto/issues/150 这样) 然后我们把 issue assign 给你~
参考资料: 组件开发指南 快速开始:使用Sequencer API生成分布式唯一、自增id Sequencer API设计文档 组件配置说明
你好 ,我希望可以用 mysql 或 postgresql 实现分布式自增id 组件,想参与该任务
@azhsmesos 欢迎加入! “用 mysql 实现分布式自增 id组件” 这个事情 @GimmeCyy 已经在做了,你可以认领“用 postgresql 实现分布式自增id 组件” 哈 你可以发个"用 postgresql 实现分布式自增id 组件"的 issue (比如像 https://github.com/mosn/layotto/issues/489 这样) 然后我们把 issue assign 给你~
参考资料: 组件开发指南 快速开始:使用Sequencer API生成分布式唯一、自增id Sequencer API设计文档 组件配置说明
您的邮件我已收到。
@azhsmesos 欢迎加入! “用 mysql 实现分布式自增 id组件” 这个事情 @GimmeCyy 已经在做了,你可以认领“用 postgresql 实现分布式自增id 组件” 哈 你可以发个"用 postgresql 实现分布式自增id 组件"的 issue (比如像 #489 这样) 然后我们把 issue assign 给你~
参考资料: 组件开发指南 快速开始:使用Sequencer API生成分布式唯一、自增id Sequencer API设计文档 组件配置说明
您好,已经提issue了,issue序号544
@seeflood 想了解下第一关是只剩下 https://github.com/mosn/layotto/issues/415 吗,还是说其他也可选?
@seeflood 想了解下第一关是只剩下 #415 吗,还是说其他也可选?
文档相关合测试相关的都可以领取的 还有为 tcpdump 相关代码添加注释
@wangxingyu000 3Q,我先对比一下再选择任务
@wangxingyu000 3Q,我先对比一下再选择任务
我们的第一关任务都更新了哟,可以看下。有任何问题可以微信添加 SOFAGirl180419,备注飞船任务
@seeflood 我想尝试”优化 sequencer api demo,让所有 sequencer 组件公用一个 demo“任务
@seeflood 想确定下怎么理解,【所有 xx 组件公用一个 demo】类型的任务,是指不同类型的demo共用一套流程吗?通过参数或者配置区分类型
@seeflood 我想尝试 #545
@seeflood 我想尝试 #545
@NTH19 感谢!可以在 #545 下面留言,我们assign 给您
@seeflood 我想尝试”优化 sequencer api demo,让所有 sequencer 组件公用一个 demo“任务
@GimmeCyy Thanks! 可以发个issue,我们 assign给您
是指不同类型的demo共用一套流程吗?通过参数或者配置区分类型
@gdutChenxj 是的,公用一个demo,通过参数区分 这么讲有点抽象,详情见 https://github.com/mosn/layotto/issues/455 我补充下描述吧
另外,头像是穹妹吗
@seeflood 我想尝试【优化 pubsub api demo,让所有 pubsub 组件公用一个 demo】,描述补充完之后麻烦再at同步下
是穹妹!