Blog
Bleiben Sie mit aktuellen Nachrichten vom RuyiSDK-Team auf dem Laufenden
RuyiSDK 0.39 现已发布,对应的包管理器版本也为 0.39.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您使用愉快!
RuyiSDK 包管理器
ruyi
现已在 PyPI 同步发布。只要您有 Python 环境,您就可以使用 pip install ruyi
或类似的命令安装 RuyiSDK 包管理器了。
- 如用户自定义了软件源 Git 仓库的存放路径,当该仓库当前分支的远端 URL 与
ruyi
的相应配置项不同时,ruyi update
会报错退出了,而不再将用户配置覆盖。
- 继续打磨 Shell 自动补全:
- 优化了常规(非自动补全)模式下的
ruyi
启动延迟;
- 如本地没有同步过软件源,不会在补全命令行时尝试同步了。
- 工程化迭代:
- 现在会给每个 PR 进行端到端的集成测试了, 以确保常规命令行使用方式不被破坏。
- 将 Shell 自动补全脚本整合进了
ruyi
源码发行:位于 contrib/shell-completions
目录。发行版打包人员可进行集成了。
- 为给 Ubuntu 22.04 LTS 打包做好准备:支持以 pytest 6.2.5 运行测试套件了。
- 在构建
ruyi
的单文件发行版时,为 RISC-V 架构使用了预制的 cffi
与 pygit2
,以节省构建时间。
- 简化了
ruyi
的发版工作:支持了自助打 tag 并触发发版流程。
RuyiSDK 软件源
- 更新软件包:
source/milkv-duo-examples
: Milk-V Duo 示例代码,20241219 版本。
- 完善了设备支持:
- Milk-V Meles(4/8/16G 变体)的 RevyOS U-Boot:补齐了上游版本。
- Milk-V Pioneer、Milk-V Meles 的 RevyOS:补齐缺失版本
- Sipeed LicheeRV Nano 的 buildroot SDK:补齐了上游版本。
- 工程化迭代:
- 自动格式化了所有包版本描述,并以 CI 形式确保了新增的包遵循统一格式。
感谢 @Cyl18、@weilinfox 的贡献!
RuyiSDK 0.38 现已发 布,对应的包管理器版本也为 0.38.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您使用愉快!
RuyiSDK 包管理器
- 为 RuyiSDK 设备安装器新增了
ruyi device flash
这一别名,以便理解记忆。感谢 RuyiSDK 社区论坛的 @Sequel 同学反馈!
- 当
ruyi
需要调用某些外部命令但无法找到时,如果当前终端可以交互,会等待您安装以便重试了。您可以在另一个终端下安装所需命令,再回到 ruyi
所在终端按回车键继续。您也可以按 Ctrl+C 退出。感谢 RuyiSDK 社区论坛的 @Sequel 同学反馈!
RuyiSDK 软件源
- 完善了设备支持:
- 新增了 Sipeed LicheePi 4A 的 RevyOS 的历史版本。感谢 @Cyl18 的贡献!
- 新增了 Milk-V Duo 的 Arduino 的 1.1.2 与 1.1.4 两个版本。感谢 @Cyl18 的贡献!
RuyiSDK 0.37 现已发布,对应的包管理器版本也为 0.37.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您使用愉快!
RuyiSDK 包管理器
-
新增了基本的命令行自动补全支持,初期支持 Bash 与 Zsh 两种 shells。感谢 @wychlw 的贡献!
要使用命令行自动补全功能,请在您的 shell profile(如 .bashrc
或 .zshrc
)的合适位置引入
ruyi
的自动补全脚本:
# zsh 用户请将 bash 字样替换为 zsh
eval "$(ruyi --output-completion-script=bash)"
目前支持 ruyi
子命令与 ruyi install
等命令的软件包参数的自动补全。
-
使用 ruyi self clean
清除本地数据时,如果新闻已读状态文件不存在,不会报错崩溃了。感谢 @weilinfox 报告问题!
-
拉取远端 Git 仓库失败时,不会将 Python 错误信息暴露给用户了。
-
只有在文件的下载 URL 协议为 FTP 时,才会为 curl
或 wget
启用 FTP 被动模式了。这修复了部分 RuyiSDK 用户由于cURL 8.14.1 的 bug 而无法下载任何文件的问题。感谢 @weilinfox 向 ruyi
项目报告问题!
-
重构了 ruyi
的捆绑资源处理方式,将其从虚拟环境机制中剥离了,以便后续捆绑其他非虚拟环境相关资源,如命令行自动补全脚本、多语言字符串文件等等。同时,也以 CI 方式确保了 ruyi
所含的压缩资源总与原始文件保持同步。
-
新增了对于 OpenCloudOS 9.4、openEuler 24.03 LTS SP2、openEuler 25.03、openKylin 2.0 的支持情况。ruyi
的 Python 依赖包在这些发行版上均有少量缺失,但其余依赖包的版本满足要求,我们预计将在 2025 年 10 月完成对它们的支持。
RuyiSDK 软件源
- 实体数据库更新:
- 新增了 SpacemiT X60 微架构。
- 新增了 SpacemiT K1 处理器型号。
- 新增了 BananaPi BPI-F3 的 eMMC 与 SD 存储两种设备变体。
- 完善了设备支持:
- 更新了 Milk-V Duo(64 & 256M RAM)、Duo S(SD 存储)的 Buildroot SDK。感谢 @Cyl18 的贡献!
- 支持了 BananaPi BPI-F3 的 SD 存储型号,有 SpacemiT 提供的 Bianbu Desktop 与 Bianbu Minimal 两种系统供使用。感谢 @wychlw 的贡献!
RuyiSDK 0.36 现已发布,对应的包管理器版本也为 0.36.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您 使用愉快!
RuyiSDK 包管理器
- 每次
ruyi update
完成后,会报告哪些已安装的软件包有更新版本可供安装了。考虑到具体项目对工具链版本的需求可能较为精确,您可自行 ruyi install
更新的版本,并自行重做相应的虚拟环境。
- 可以用
ruyi uninstall
卸载已安装的软件包了。另有更简短的别名 ruyi remove
或 ruyi rm
可用。
- 在
ruyi list
的输出中,可以看到软件包的安装文件是否完全下载了。
- 在同时启用机读模式(porcelain mode)与调试输出(
RUYI_DEBUG=y
)时,最先输出的几条日志不会以错误格式输出了。
- 优化了
ruyi
工具的启动速度,现在每次运行 ruyi
都能省下 200-300ms 时间(视机器性能而定),有助于后续实现低延迟的命令行补全特性。并以 CI 检查的方式确保了后续代码变更不会影响本次优化效果。
RuyiSDK 软件源
- 更新了
toolchain/gnu-plct
:由 PLCT 维护并构建的 GNU RISC-V 工具链,包含 GNU binutils 2.45 的预览版、GCC 15.1.0 以及 glibc 2.40。
- 更新了实体数据库中的 RISC-V 微架构定义,新增以下微架构:
- 香山昆明湖
- 玄铁 C908、C908V、C910V2、C920、C920V2
- MIPS P8700
- 8-宽 Tenstorrent Ascalon
- 修正了玄铁 C910 的 RISC-V ISA 字符 串为上游主线 GCC 接受的标准形式。
RuyiSDK 0.35 现已发布,对应的包管理器版本也为 0.35.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您使用愉快!
RuyiSDK 包管理器
- 现在会记录软件包的安装状态了。该信息在
ruyi list
输出中也会体现,并且支持在 ruyi list
时传入 --is-installed y/n
参数进行过滤。
ruyi entity list
可以带一个或多个 -t
/ --entity-type
参数,用来列举特定类型的实体了。
ruyi entity list
现在支持机读模式(porcelain mode)输出了。
RuyiSDK 软件源
- 新增了 Milk-V Duo (128M & 156M) 开发板镜像的历史版本。
- 修复了 Milk-V Duo (128M & 256M) 开发板镜像 2.0.0 版本的配置。
- 更新了多个 Milk-V Meles 的 RevyOS 镜像。
- 修复了 Milk-V Meles 的 RevyOS 镜像 1.20250123.0 版本的配置。
- 更新了一些文档链接的指向。
- 清理了已于 RuyiSDK 0.33 版本弃用的 RuyiSDK 设备安装器的旧版配置数据。
RuyiSDK 0.34 现已发布,对应的包管理器版本也为 0.34.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您使用愉快!
RuyiSDK 包管理器
- 支持了部分解包
tar
归档文件,以适应个别厂商在其官方渠道将多个软件打成一个包分发的做法。
- 允许用
ruyi venv --extra-commands-from
为虚拟环境提供额外的与目标元组(target tuple)无关的命令,如特定厂商的刷写工具等。
ruyi admin format-manifest
会保留文件头部和尾部的注释了。
- 遥测功能更新:
- 当用户在终端首次运行
ruyi
时,现在会一次性询问用户是否允许立即上传安装信息。
- 修复了
ruyi
的命令转发模式下遥测事件未被记录的问题。
- 支持在软件源级别记录软件包的安装动作,以便第一方或第三方软件源的维护者们了解其软件的使用情况。
- 重构了
ruyi
命令行工具的入口点和 ruyi
的日志处理方式,消除了大部分全局量的使用,以便后续 RuyiSDK 生态的其他 Python 组件复用 ruyi
的功能。
RuyiSDK 软件源
本次更新的部分软件包需要最新版本的 RuyiSDK 包管理器才能正常解析、工作,因此强烈建议您在
ruyi update
之余,将您的 ruyi
也升级到最新版本。
再次提醒:现已弃用旧版设备安装器支持,请尽快更新您的 RuyiSDK 包管理器。该支持将于 RuyiSDK 0.35(下个版本)移除。
- 软件源格式更新:
- 明确了官方软件源的 ID 为
ruyisdk
,以便后续与第三方源和谐共存。
- 术语更新:将那些指代非标准行为的“flavor”重命名为了“quirk”。
- 为支持软件包声明其含有的可执行命令,为
binary
元数据新增了 commands
可选字段。
- 为支持
tar
归档文件的部分解包,为 distfile
元数据新增了 prefixes_to_unpack
可选字段。
- 完善了设备支持:
board-image/revyos-sipeed-lpi4a
: 更新了 Sipeed LicheePi 4A 的 RevyOS 镜像版本至 20250420,修复了 20250323 版本的信息。
- 将 Milk-V Duo 系列设备的 1.0.7 版 本的 "Python" 镜像与非 "Python" 镜像调换了名称。
- 新增软件包:
board-util/wlink
: 社区独立实现的 WCH-Link 刷写与调试工具。
source/wch-ch32v103-evt
: WCH CH32V103 EVT 官方代码示例包。
source/wch-ch32v20x-evt
: WCH CH32V20x EVT 官方代码示例包。
source/wch-ch32v307-evt
: WCH CH32V30x & CH32V317 EVT 官方代码示例包。
toolchain/gnu-wch-mrs-toolchain-gcc12-bin
: WCH MounRiver Studio (MRS) 工具链的官方 2.1.0 版本,其中的 GCC 12.x 工具链。仅支持 x86_64 架构。
toolchain/gnu-wch-mrs-toolchain-gcc8-bin
: WCH MounRiver Studio (MRS) 工具链的官方 2.1.0 版本,其中的 GCC 8.x 工具链。仅支持 x86_64 架构。
- 更新软件包:
toolchain/gnu-plct-xthead
: 采用玄铁官方源码、由 PLCT 构建的玄铁工具链的 3.0.1 版本,GCC 版本为 14.1.1。
- 实体数据库更新:
- 新增了 WCH 微架构、CPU 的实体定义。
- 修正了 WCH 开发板的 CPU 信息。
- 插件系统更新:
- 新增了初步的 RISC-V 32 位配置文件支持。
- 修复了一些软件包声明的格式错误。
RuyiSDK 0.33 现已发布,对应的包管理器版本也为 0.33.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您使用愉快!
RuyiSDK 包管理器
- 将设备安装器的数据源迁移到了实体数据库,以降低维护成本、避免频繁更新时潜在的合并冲突等。
RuyiSDK 软件源
- 完善了设备支持:
- 新增支持了 Milk-V Meles 的 16G RAM 型号,支持 RevyOS 系统。
- 实体数据库更新:
- 设备实体定义更新:设备型号变体现已被拆分为单独实体类型
device-variant
了。
- 新增了“设备适用系统信息”实体
image-combo
。
- 现已弃用旧版设备安装器支持,请尽快更新您的 RuyiSDK 包管理器。该支持将于 RuyiSDK 0.35 移除。
服务端组件
- 新增了官方软件源的新闻条目阅读 API。
- 新增了按版本号查询 RuyiSDK 版本发行注记的 API。
- 将官方软件源当前目录结构下的所有子目录都纳入了下载量统计范围。
- 改进了服务容器的构建方式。
RuyiSDK 0.32 现已发布,对应的包管理器版本也为 0.32.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您使用愉快!
RuyiSDK 项目管理
- 为流程合规,现在要求所有向 RuyiSDK 发起的拉取请求(Pull Requests)都包含开发者原创声明(Developer's Certificate of Origin, DCO)了。
RuyiSDK 包管理器
- 新增了贡献指南文档,使社区成员更容易参与项目贡献。
RuyiSDK 软件源
- 完善了设备支持:
- 新增支持了适用于 SpacemiT K1 设备的特殊刷写策略。
- 修复了设备安装器调用
fastboot
失败的问题。
- 更新了 Sipeed LicheeRV Nano 的 Buildroot SDK 镜像。
- 更新了 Sipeed LicheePi 4A 的 RevyOS 镜像版本并修复问题。
- 更新了 Milk-V Meles 的 RevyOS 镜像。
- 重命名了软件包
board-image/revyos-sg2042-milkv-pioneer
为 board-image/revyos-milkv-pioneer
以符合当前的软件包命名规范。
- 实体数据库更新:
- 设备实体定义现已与设备安装器支持范围对齐。补充了 Milk-V、Sipeed、Canaan、StarFive、WCH 等厂商的设备定义。
服务端组件
- 优化了 ruyisdk.org 官网数据统计页面的性能。
- 集成了 GitHub Releases 渠道的下载量到官网数据统计页面的 RuyiSDK 包管理器下载计数中,使统计数据更准确、全面。
- 将原先位于 RuyiSDK 包管理器仓库、需要手工配置生效的镜像源同步脚本迁移到了服务端。
RuyiSDK 0.31 现已发布,对应的包管理器版本也为 0.31.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您使用愉快!
RuyiSDK 包管理器
- RuyiSDK 设备安装器在需要安装的软件包不止一个可用版本的时候,会额外允许您选择一个非默认(最新)的版本了。如果您的开发板需要旧版本的系统,该功能对您可能有所帮助。
- 新增了实验模式开关:环境变量
RUYI_EXPERIMENTAL
,用于启用一些我们暂不承诺兼容性的实验性功能。
- 新增了实验性功能:实体数据库。
- 该功能有助于 RuyiSDK 为您提供与手头设备关联的有用信息。例如,可用
ruyi list --related-to-entity device:sipeed-lpi4a
查询适用于 Sipeed LicheePi 4A 的各种软件包了。
- 初期支持 CPU 微架构(如香山南湖、玄铁 C910 等等)、CPU 型号(如香山南湖、玄铁 TH1520 等等)、设备型号(如 Sipeed LicheePi 4A 等等)、软件包等四种实体类型。
- 这些功能为预览版,后续不排除作出不兼容变更以适应需求,因此仅在启用实验模式时才可用。如您有使用场景,请保持您的
ruyi
与软件源为最新。
- 工程化迭代:
- 为避免 CI 物理机资源的临时下线等原因影响到发版,将 RISC-V 架构的构建任务也暂时迁移至 GitHub Actions 公开免费提供的实例上了。
- 将构建
ruyi
的单文件分发版本所用的 Python 版本升级到了 3.13.2。
RuyiSDK 0.30 现已发布,对应的包管理器版本也为 0.30.0。您可前往以下位置之一下载 RuyiSDK 包管理器:
本次更新主要包含了以下内容,祝您使用愉快!
RuyiSDK 包管理器
- 修复了
ruyi list --category-contains
不工作的问题。
- 修复了全新安装
ruyi
之后直接进行 ruyi install
会崩溃的问题。
- 软件源格式更新:
- 基于目前的设备安装器配置数据,新增实验性的结构化设备型号描述数据库,初期支持为每种设备型号描述其 CPU 与微架构能力。
- 工程化迭代:
- 将 AArch64 架构的构建任务迁移至 GitHub Actions 公开免费提供的实例上,以降低 RuyiSDK 团队的维护成本。
- 修复了 CI 开源许可证检查任务。