🔖 Release 2.3.1

This commit is contained in:
noneflow[bot]
2024-05-20 14:19:50 +00:00
parent 2bbb83d3f2
commit 622e8e8af3
97 changed files with 19348 additions and 2 deletions

View File

@ -0,0 +1,191 @@
---
sidebar_position: 0
description: 开源软件供应链点亮计划 - 暑期 2021
---
# 暑期 2021
**开源软件供应链点亮计划 - 暑期 2021** 是**中国科学院软件研究所**与 **openEuler 社区**共同举办的一项面向高校学生的暑期活动,旨在鼓励在校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。关于具体的活动规划、报名方式,请查看该活动的 [官网](https://summer.iscas.ac.cn/) 和 [帮助文档](https://summer.iscas.ac.cn/help/)。
NoneBot 社区有幸作为开源社区参与了本次活动,下面列出了目前我们已经发布的项目,欢迎感兴趣的同学在上面给出的活动官网报名,或通过 <contact@nonebot.dev> 联系我们。
## NoneBot v1
### 更新 NoneBot v1 文档中的“指南”部分
由于 NoneBot v1 和 aiocqhttp 最初基于的 QQ 机器人平台不再提供服务CQHTTP 接口也转型且改名为 OneBot 标准,目前 NoneBot v1 文档的“指南”部分和 aiocqhttp 文档有部分过时内容需要更新。我们希望将其中与旧的机器人平台相关的内容改为基于 go-cqhttp 或通用的 OneBot 表述,同时对 NoneBot v1 的 awesome-bot 示例做一次全面检查,修改其中可能已经不可用的部分。
**难度**:低
**导师**[@cleoold](https://github.com/cleoold)
**产出要求**
- 修改“指南”文档和 aiocqhttp 文档中与旧的 QQ 机器人平台相关的部分
- 检查 awesome-bot 示例是否有已经过时/不可用的地方,并更新/修复
- 修改“图灵机器人”案例,使用其它 AI 聊天 API 提供商(需先做简单调研)
**技术要求**
- 熟悉 Python 编程语言及 asyncio 机制
- 了解 Git 基本用法
- 了解聊天机器人基本开发过程
- 了解 VuePress 更佳
### NoneBot v1 API 文档自动生成
目前 NoneBot v1 的文档中“API”部分是手动编写的在更新代码接口的同时需要手动更新文档可能造成文档与代码不匹配形成额外的维护成本。我们希望将 API 文档改为直接编写在 Python docstring 中,通过工具自动生成 API 文档。
**难度**:中
**导师**[@cleoold](https://github.com/cleoold)
**产出要求**
- 调研市面上常见的 Python API 文档生成工具
- 在代码中补充 API 文档
- 编写或应用开源工具自动生成 API 文档
- 配置 GitHub Actions 或其它 CI 自动化构建和部署 API 文档
**技术要求**
- 熟悉 Python 编程语言及 asyncio 和 Type Hints
- 了解 Git 基本用法
- 了解 Sphinx 等文档生成工具更佳
- 了解 GitHub Actions 等 CI 工具更佳
## NoneBot v2
### NoneBot v2 自动化测试框架“NoneBug”
在聊天机器人的开发过程中,一套自动化的测试机制是非常重要的,特别是对于 NoneBot 2 这类为大型机器人开发而设计的项目来说,需要手动测试每一个边际条件是非常痛苦的。我们希望能够开发一款基于 NoneBot 2 插件机制的自动化测试框架,为 NoneBot 2 用户提供一套易用便捷、高度灵活的自动化测试框架。
**难度**:高
**导师**[@yanyongyu](https://github.com/yanyongyu)
**产出要求**
- 调研现有的 Python 和其它语言集成测试框架
- 设计 NoneBug 的用户 API 和实现方式
- 实现 NoneBug 自动化测试框架
- 编写详细的使用文档
**技术要求**
- 熟悉 Python 编程语言及 asyncio 和 Type Hints
- 了解 Git 基本用法
- 了解 NoneBot v2 的基本原理和使用方式
- 了解主流的 Python 自动化测试框架
### NoneBot v2 Telegram 适配器
目前 NoneBot v2 已支持 OneBot、Mirai HTTP API、钉钉协议社区反馈有更多的平台需求希望能在 NoneBot v2 获得更多的跨平台支持,提高机器人的便携性。同时,我们也希望随着新平台加入,提升现有 NoneBot v2 核心代码的平台通用性。Telegram 是一款较为广泛使用的安全即时聊天软件,同时其官方提供了丰富的聊天机器人 API因此我们希望为 NoneBot v2 编写一个 Telegram 适配器来支持 Telegram 机器人的开发。
**难度**:中
**导师**[@yanyongyu](https://github.com/yanyongyu)
**产出要求**
- 调研 Telegram Bot API 以及 WebHook 等官方接口
- 编写 Telegram 适配器并能够使用
- 代码遵守项目 Contributing 规范
**技术要求**
- 熟悉 Python 编程语言及 asyncio 和 Type Hints
- 了解 Git 基本用法
- 了解 Web 开发相关知识
- 了解 Sphinx 等文档生成工具更佳
### NoneBot v2 飞书适配器
目前 NoneBot v2 已支持 OneBot、Mirai HTTP API、钉钉协议社区反馈有更多的平台需求希望能在 NoneBot v2 获得更多的跨平台支持,提高机器人的便携性。同时,我们也希望随着新平台加入,提升现有 NoneBot v2 核心代码的平台通用性。飞书是目前企业用户广泛使用的即时聊天和协作软件,其官方提供了丰富的聊天机器人 API因此我们希望为 NoneBot v2 编写一个飞书适配器来支持飞书机器人的开发。
**难度**:中
**导师**[@yanyongyu](https://github.com/yanyongyu)
**产出要求**
- 调研飞书机器人 API 以及 WebHook 等官方接口
- 编写飞书适配器并能够使用
- 代码遵守项目 Contributing 规范
**技术要求**
- 熟悉 Python 编程语言及 asyncio 和 Type Hints
- 了解 Git 基本用法
- 了解 Web 开发相关知识
- 了解 Sphinx 等文档生成工具更佳
## OneBot
### 设计 OneBot v12 接口标准
目前的 OneBot 标准的 v11 版本仍然与 QQ 平台有较多耦合,我们希望在 v12 去掉与 QQ 耦合的历史包袱,形成一个通用的、可扩展的、易于使用的同时易于实现的聊天机器人接口标准。
**难度**:中
**导师**[@richardchien](https://github.com/richardchien)
**产出要求**
- 调研各聊天机器人平台的官方/非官方接口特点
- 通用化 OneBot 核心 API分离 QQ 特定的 API去掉无用 API
- 优化现有的通信、消息表示机制
- 补充 QQ 特定的缺失 API
- 文档需符合风格指南
**技术要求**
- 熟悉至少两个聊天平台的聊天机器人开发
- 了解 Git 基本用法
- 了解使用不同语言编写聊天机器人时的常用实践
- 对文档的优雅性与美观性有追求更佳
### 实现 Rust 版 libonebot
目前最常用的 OneBot 实现包括 go-cqhttp、onebot-kotlin、node-onebot 等,这些实现都各自重复实现了 Web 通信、消息解析、配置读写等功能,当社区中的开发者想针对一个新的聊天平台实现 OneBot 时,他们往往同样需要再次实现类似逻辑。我们希望使用 Rust 编写一个 libonebot 模块,该模块实现所有 OneBot 实现所共享的功能,从而方便其他开发者们使用 Rust 快速编写具体的 OneBot 实现。同时,我们希望借此项目在聊天机器人社区中推广 Rust 编程语言。
> 注:这里的逻辑是 libonebot + 针对某聊天平台的对接代码 = 某聊天平台的 OneBot 实现libonebot 要做的是让 OneBot 实现的开发者只需编写针对特定聊天平台的对接代码,而无需关心 OneBot 标准定义的通信方式、消息格式等。
**难度**:高
**导师**[@richardchien](https://github.com/richardchien)
**产出要求**
- 实现所有 OneBot 实现所共享的功能,包括 Web 通信、消息解析、配置读写等
- 充分考虑同时兼容 OneBot v11 和 v12 接口
- 能够根据用户OneBot 实现的开发者)所实现的接口自动实现类似 get_available_apis 等接口
- 编写详细的使用文档
- 如果可能,与 v12 设计项目联动,实现第一手 v12 支持
**技术要求**
- 熟悉聊天机器人开发
- 熟悉 Rust Web 开发
### 实现自选语言版 libonebot
目前最常用的 OneBot 实现包括 go-cqhttp、onebot-kotlin、node-onebot 等,这些实现都各自重复实现了 Web 通信、消息解析、配置读写等功能,当社区中的开发者想针对一个新的聊天平台实现 OneBot 时,他们往往同样需要再次实现类似逻辑。我们希望使用 Python、Go、Kotlin、Node、PHP、C#.NET 等主流语言(任选一个)编写 libonebot 模块,该模块实现所有 OneBot 实现所共享的功能,从而方便其他开发者们使用对应语言快速编写具体的 OneBot 实现。
> 注:这里的逻辑是 libonebot + 针对某聊天平台的对接代码 = 某聊天平台的 OneBot 实现libonebot 要做的是让 OneBot 实现的开发者只需编写针对特定聊天平台的对接代码,而无需关心 OneBot 标准定义的通信方式、消息格式等。
**难度**:中
**导师**[@richardchien](https://github.com/richardchien)
**产出要求**
- 实现所有 OneBot 实现所共享的功能,包括 Web 通信、消息解析、配置读写等
- 充分考虑同时兼容 OneBot v11 和 v12 接口
- 编写详细的使用文档
- 如果可能实现更多附加特性如根据用户OneBot 实现的开发者)所实现的接口自动实现类似 get_available_apis 等接口、实现第一手 v12 支持等
**技术要求**
- 熟悉聊天机器人开发
- 熟悉所选语言的 Web 开发

View File

@ -0,0 +1,96 @@
---
sidebar_position: 1
description: 开源之夏 - 暑期 2022
---
# 暑期 2022
**开源之夏 - 暑期 2022** 是由**开源软件供应链点亮计划**发起、由**中国科学院软件研究所**与 **openEuler 社区**主办的一项面向高校学生的暑期活动,类似 Google Summer of CodeGSoC旨在鼓励在校学生积极参与开源软件的开发维护促进优秀开源软件社区的蓬勃发展。关于具体的活动规划、报名方式请查看该活动的 [官网](https://summer-ospp.ac.cn/) 和 [帮助文档](https://summer-ospp.ac.cn/help/)。
NoneBot 社区有幸作为开源社区 [参与](https://summer-ospp.ac.cn/#/org/orgdetail/e1fb5b8d-125a-4138-b756-25bd32c0a31a/) 了本次活动,下面列出了目前我们已经发布的项目,欢迎感兴趣的同学加入 QQ 群 [737131827](https://jq.qq.com/?_wv=1027&k=PEgyGeEu) 或通过 <contact@nonebot.dev> 联系我们。
## NoneBot2 命令行 CLI 交互体验升级
NoneBot2 为用户提供了命令行脚手架 ──`nb-cli`辅助用户更好地上手项目以及进行开发。nb-cli 主要包括:创建项目、运行项目、安装与卸载插件、部署项目等功能。随着 NoneBot2 Beta 版本的发布,脚手架功能存在一定的定位不明确、功能体验不佳。本项目旨在重新设计 nb-cli 功能框架,完善功能,优化用户体验。
**难度**:进阶
**导师**[@yanyongyu](https://github.com/yanyongyu)
**产出要求**
- 设计 nb-cli 功能框架
- 明确各功能模块
- 设计用户交互模式
- 完成 nb-cli 主要功能代码
- 项目管理
- 插件管理
- 其它
- 同步更新使用文档
**技术要求**
- 熟悉 Python 命令行交互代码编写
- 熟悉 NoneBot2 框架功能
- 熟悉 NoneBot2 项目组织方式
**成果仓库**
- <https://github.com/nonebot/nb-cli>
- <https://github.com/nonebot/nonebot2>
## NoneBot2 命令行即时交互通信设计与实现
NoneBot2 在早期提供了基于网页的 nonebot-plugin-test 插件,无需平台适配接入即可对机器人进行测试,方便了开发者直观的感受机器人文本交互功能。我们希望提供一款基于命令行的适配器/驱动器,用于无平台适配接入、可以运行机器人的场景进行功能体验或测试。
**难度**:进阶
**导师**[@mnixry](https://github.com/mnixry)
**产出要求**
- 设计命令行与 NoneBot2 通信模式
- 直接调用/HTTP/WebSocket
- 设计命令行交互界面
- 实现相应适配器/驱动器
- 同步更新使用说明文档
**技术要求**
- 熟悉 Python 命令行交互代码编写
- 熟悉 NoneBot2 框架功能
- 熟悉 NoneBot2 项目组织方式
**成果仓库**
- <https://github.com/nonebot/adapter-console>
## NoneBot2 用户上手与深入教程设计
NoneBot2 为用户提供了详细的文档介绍,辅助用户更好的上手项目以及进行开发。文档分为基础与进阶两个部分。基础部分帮助新用户快速上手开发,主要包括:安装 NoneBot2、使用脚手架、创建配置项目、使用适配器、加载插件、定义消息事件、处理消息事件、调用平台 API 等。进阶部分向已经熟悉开发流程的用户介绍更多高级技巧主要包括NoneBot2 工作原理、定时任务、权限控制、钩子函数、跨插件访问、单元测试、发布插件等。目前文档对于用户而言过于费解,导致用户难以理解 NoneBot2 开发。本项目旨在优化文档内容,使其更加通俗易懂,不让文档成为用户上手的阻碍,同时完善进阶内容,让有更复杂需求的用户,同样能从文档中受益。
相关 issue
- <https://github.com/nonebot/nonebot2/issues/793>
- <https://github.com/nonebot/nonebot2/issues/295>
**难度**:进阶
**导师**[@SK-415](https://github.com/SK-415)
**产出要求**
- 文档通俗易懂
- 附有适当的图片指引(如 asciinema
- 内容完整,由浅入深
- 适当的界面美化,合理分配布局
**技术要求**
- 熟悉文档结构组织与语言表达
- 熟悉 NoneBot2 框架功能
- 熟悉 NoneBot2 项目组织方式
**成果仓库**
- <https://github.com/nonebot/nonebot2>

View File

@ -0,0 +1,89 @@
---
sidebar_position: 2
description: 开源之夏 - 暑期 2023
---
# 暑期 2023
**开源之夏 - 暑期 2023** 是由**开源软件供应链点亮计划**发起、由**中国科学院软件研究所**与 **openEuler 社区**主办的一项面向高校学生的暑期活动,类似 Google Summer of CodeGSoC旨在鼓励在校学生积极参与开源软件的开发维护促进优秀开源软件社区的蓬勃发展。关于具体的活动规划、报名方式请查看该活动的 [官网](https://summer-ospp.ac.cn/) 和 [帮助文档](https://summer-ospp.ac.cn/help/)。
NoneBot 社区有幸作为开源社区 [参与](https://summer-ospp.ac.cn/org/orgdetail/e1fb5b8d-125a-4138-b756-25bd32c0a31a?lang=zh) 了本次活动,下面列出了目前我们已经发布的项目,欢迎感兴趣的同学通过 <contact@nonebot.dev> 联系我们。
## NoneBot 项目管理图形化面板
NoneBot 目前提供了开箱即用的命令行脚手架来帮助初次使用的用户更快的上手编写应用。但是,对于未有一定开发经验的用户,命令行的使用仍具有一定的困难。此外,其他项目如 koishi、vue 等,均可通过图形化界面的形式为用户提供更便捷的项目开发。因此,我们希望借助现有命令行脚手架的可扩展特性,提供一个项目管理面板服务,以网页的形式帮助用户开发 NoneBot 应用。
**难度**:进阶
**导师**[@mnixry](https://github.com/mnixry)
**产出要求**
- 设计并实现项目管理面板相关功能
- 创建与管理项目
- 配置与运行项目
- NoneBot 插件管理
- 实现相应 nb-cli 插件提供面板服务
- 代码符合 NoneBot Contributing 规范
**技术要求**
- 熟悉 nb-cli 相关功能
- 熟悉 NoneBot 框架功能
- 熟悉前后端相关实现方式
**成果仓库**
- <https://github.com/nonebot/cli-plugin-webui>
## NoneBot Discord 适配器
NoneBot 作为一个跨平台聊天机器人框架,目前已有 OneBot、飞书、Telegram、QQ 频道等诸多平台的适配支持。作为众多用户期待的平台适配之一,我们希望借此机会接入 Discord 聊天机器人。
**难度**:进阶
**导师**[@iyume](https://github.com/iyume)
**产出要求**
- 调研 Discord Bot 相关功能与接口
- 设计与编写 NoneBot Discord 适配器
- 代码符合 NoneBot Contributing 规范
**技术要求**
- 熟悉 NoneBot 框架功能
- 熟悉 NoneBot 各模块职责与适配器编写
**成果仓库**
- <https://github.com/nonebot/adapter-discord>
## NoneBot 数据库支持插件
NoneBot 的插件系统为用户实现应用提供了极高的便捷性,但因此也增加了插件统一管理的难度。目前,我们发现许多用户发布的插件中存在文件存储结构化数据、数据存放散乱等现象,同时插件间也可能产生冲突。因此,我们希望提供一个统一的数据存储与管理方式,便于用户读写应用数据。
**难度**:进阶
**导师**[@yanyongyu](https://github.com/yanyongyu)
**产出要求**
- 设计并实现 ORM 插件
- 提供关系模型定义功能
- 提供模型迁移与管理功能
- 能较好的支持 Python 类型检查与推导
- 编写相应的用户使用文档
- 代码符合 NoneBot Contributing 规范
**技术要求**
- 熟悉 NoneBot 框架功能与插件编写
- 熟悉 SQLAlchemy 等 ORM 框架
- 熟悉 SQLAlchemy ORM
- 熟悉 alembic 等迁移工具
- 熟悉 nb-cli 插件编写
**成果仓库**
- <https://github.com/nonebot/plugin-orm>

View File

@ -0,0 +1,103 @@
---
sidebar_position: 3
description: 开源之夏 - 暑期 2024
---
# 暑期 2024
**开源之夏 - 暑期 2024** 是**中国科学院软件研究所**发起的**开源软件供应链点亮计划**系列暑期活动,旨在鼓励高校学生积极参与开源软件的开发维护,促进优秀开源软件社区的蓬勃发展。活动联合各大开源社区,针对重要开源软件的开发与维护提供项目开发任务,并向全球高校学生开放报名。关于具体的活动规划、报名方式,请查看该活动的 [官网](https://summer-ospp.ac.cn/) 和 [帮助文档](https://summer-ospp.ac.cn/help/)。
NoneBot 社区有幸作为开源社区 [参与](https://summer-ospp.ac.cn/org/orgdetail/e1fb5b8d-125a-4138-b756-25bd32c0a31a?lang=zh) 了本次活动,下面列出了目前我们已经发布的项目,欢迎感兴趣的同学通过 <contact@nonebot.dev> 联系我们。
## NonePress 官网组件库更新与优化
NoneBot 官网目前采用基于 TailwindCSS 自研的 NonePress 组件库及 Docusaurus 框架进行构建。由于相关依赖版本迭代迅速,目前官网组件库已产生了较大的版本落后。本项目希望在跟进框架新版本的基础上,对文档整体视觉体验进行重新设计,提升页面的无障碍访问性,基于 React Hydrate 特性实现完整的静态网站生成SSG以提升搜索引擎优化SEO水平。在解决以上问题的基础上可对网页的开发以及生产构建性能做相应的优化提升例如在生产构建使用自有的 webpack loader、替换现有的热重载逻辑以减少开发环境启动耗时等。
**难度**:进阶
**导师**[@yanyongyu](https://github.com/yanyongyu)
**产出要求**
- 基于 Docusaurus v3 重构 NonePress 组件库及相关插件
- 升级相关依赖并重新打造 Docusaurus theme布局与组件
- 根据需求实现/修改 Docusaurus 插件使得官网内容构建正常
- 能够提升页面渲染性能与 MDX 相关能力
- 升级官网采用新版组件库
- Algolia 索引与 SEO 正常
- 桌面端与移动端显示正常
- 优化官网开发与生产构建体验
- (可选)优化官网部分页面
- 优化官网过长的 changelog
- 优化官网插件商店的展示细节
**技术要求**
- 熟练掌握 TS、PostCSS、TSX、MDX等相关技术
- 掌握 React、Docusaurus、tailwind css 等框架
- 熟悉静态网站生成 SSG、SEO 优化与 Algolia 索引原理等
**成果仓库**
- <https://github.com/nonebot/docusaurus-theme-nonepress>
## NoneFlow 社区自动化工作流管理优化
NoneFlow 在 NoneBot 社区中承担着重要的角色,它由 NoneBot 框架基于 GitHub APP 编写而成,能够自动化的完成许多复杂流程的处理,如:用户请求提交插件到商店时进行自动化检测,并在人工审核通过后自动存储至 registry定时自动更新 registry 内插件信息,跟进插件新版本情况等。但是,在长期的使用中发现了一些问题和不足的地方,例如:项目本身结构复杂耦合,添加新自动化流程与维护现有流程困难;目前采用了 GitHub 用户名作为插件作者名,但已有不少插件作者改名;插件存储至 registry 并定时更新,缺少统计相关信息以帮助商店更好的展示当前插件状态;插件作者想要修改插件信息时无法便捷的找到操作方式等。本项目希望针对以上问题与不足的地方进行修复与优化,提升用户体验。
**难度**:进阶
**导师**[@uy/sun](https://github.com/he0119)
**产出要求**
- 重构现有工作流处理结构
- 整合现有 Issue、Pull Request、Git 相关操作
- 提供用户修改信息的处理方式
- 正确处理 PR 的 Open、Close、Draft 状态
- 修复流程中存在的问题
- 插件作者名正确展示
- registry 定时更新中需要插件测试环境隔离
- 在 registry 定时更新的同时提供统计数据
**技术要求**
- 掌握 GitHub APP 开发
- 熟悉 GitHub REST API、GraphQL 等
- 熟悉 GitHub APP 权限限制
- 熟悉 NoneBot 框架与 Python 相关技术
- 熟悉 Git、GitHub Action、GitHub 工作流
**成果仓库**
- <https://github.com/nonebot/noneflow>
## NoneBlockly 低代码框架开发
经过深入分析社区反馈,我们发现部分新手因不熟悉编程概念或框架本身而遇到问题。为了解决初学者在使用面向开发者的聊天机器人框架 NoneBot 时遇到的挑战,我们计划引入 Blockly 提供低代码编程支持。通过减少常见的编码错误和降低入门门槛,使框架对初学者更加友好,从而提升用户体验并有助于 NoneBot 生态的成长。本项目将基于 Blockly 实现 NoneBot 插件的低代码编写,使得用户能够快速搭建聊天机器人。
**难度**:进阶
**导师**[@mnixry](https://github.com/mnixry)
**产出要求**
- 实现 NoneBlockly 低代码开发框架
- 能够基于 Alconna 编写跨平台插件
- 确保插件对 Python 和 NoneBot 版本的兼容性
- 支持对多种类型 NoneBot 事件的响应
- 支持对 NoneBot 消息对象的便捷操作
- 集成 localstore 文件存储、apscheduler 定时任务、网络请求等常用功能
- 对接 NB-CLI 脚手架,通过脚手架扩展使用低代码框架
**技术要求**
- 掌握 Python 与 NoneBot 框架的使用
- 熟悉 NoneBot 插件的开发,包括事件响应与消息处理等
- 熟悉 NoneBot 生态组件Alconna、localstore、apscheduler等的使用
- 了解 NB-CLI 脚手架的扩展开发
- 熟悉 Blockly 低代码框架的使用和开发
**成果仓库**
- <https://github.com/nonebot/noneblockly>