Blog
See important news from the RuyiSDK team at any time
RuyiSDK 0.34 is now released. The corresponding package manager version is also 0.34.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- Supported partial extraction of tarballs, to accommodate certain vendors' practice of bundling multiple software packages into a single distribution archive through their official channels.
- Target-tuple-independent commands, such as vendor-specific flashing tools can now be additionally provided in virtual environments with
ruyi venv --extra-commands-from.
ruyi admin format-manifest now preserves header and footer comments.
- Telemetry feature updates:
- When
ruyi is invoked for the first time in a terminal, the user will now be asked once for a one-time immediate upload of installation information.
- Fixed an issue where telemetry events were not recorded in
ruyi's proxying mode.
- Added support for recording package installation actions at the software repository level, allowing first-party or third-party RuyiSDK repository maintainers to understand the usage of their software.
- Refactored the entry point of the
ruyi command-line tool and ruyi's logging mechanism, eliminating most global variable usage to facilitate reuse of ruyi by other Python components in the RuyiSDK ecosystem in the future.
The latest version of the RuyiSDK package manager is required for some packages
updated in this release to be properly parsed and work. Therefore, we strongly
recommend that you upgrade your ruyi to the latest version besides doing your
routine ruyi update.
Reminder: Support for legacy versions of the device provisioner is now
deprecated. Please update your RuyiSDK package manager as soon as possible.
This support will be removed in RuyiSDK 0.35 (the next version).
- Software repository format updates:
- The ID of the official repository is explicitly defined as
ruyisdk, for coexistence with future third-party repositories.
- Terminology update: Renamed "flavors" that refer to non-standard behaviors to "quirks".
- A new optional field
commands is added to binary metadata to allow packages to declare executable commands they contain.
- A new optional field
prefixes_to_unpack is added to distfile metadata to support partial extraction of tarballs.
- Improved device support:
board-image/revyos-sipeed-lpi4a: Updated the RevyOS image for Sipeed LicheePi 4A to 20250420 and fixed the 20250323 version.
- Swapped the names of the version 1.0.7 "Python" and non-"Python" images for Milk-V Duo series.
- Added packages:
board-util/wlink: Community-developed independent implementation of WCH-Link flashing and debugging tool.
source/wch-ch32v103-evt: WCH CH32V103 EVT official code example package.
source/wch-ch32v20x-evt: WCH CH32V20x EVT official code example package.
source/wch-ch32v307-evt: WCH CH32V30x & CH32V317 EVT official code example package.
toolchain/gnu-wch-mrs-toolchain-gcc12-bin: The GCC 12.x toolchain in the official 2.1.0 version of WCH MounRiver Studio (MRS) toolchain. The package is x86_64-only.
toolchain/gnu-wch-mrs-toolchain-gcc8-bin: The GCC 8.x toolchain in the official 2.1.0 version of WCH MounRiver Studio (MRS) toolchain. The package is x86_64-only.
- Updated packages:
toolchain/gnu-plct-xthead: Version 3.0.1 of the Xuantie (formerly T-Head) toolchain built by PLCT using official Xuantie sources, with GCC 14.1.1.
- Entity database updates:
- Added entity definitions for WCH micro-architectures and CPUs.
- Fixed CPU information for WCH boards.
- Plugin system updates:
- Added initial support for RISC-V 32-bit profiles.
- Fixed formatting errors in some package declarations.
RuyiSDK 0.33 is now released. The corresponding package manager version is also 0.33.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- Migrated the device provisioner's data source to the entity database, to reduce maintenance costs and avoid potential merge conflicts in case of frequent updates.
- Improved device support:
- Added support for the 16GB RAM model of Milk-V Meles, with RevyOS.
- Entity database updates:
- Device entity definition update: device model variants have now been split into a separate entity type
device-variant.
- Added a new "applicable system for device" informational entity
image-combo.
- Support for legacy versions of the device provisioner is now deprecated. Please update your RuyiSDK package manager as soon as possible. The support will be removed in RuyiSDK 0.35.
- Added an API for reading news items from the official software repository.
- Added an API for querying RuyiSDK release notes by version tag.
- Extended download statistics coverage to all subdirectories under the current directory structure of the official software repository.
- Improved the build process of service containers.
RuyiSDK 0.32 is now released. The corresponding package manager version is also 0.32.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- For compliance, all pull requests to RuyiSDK now require a DCO (Developer Certificate of Origin).
- Added contribution guidelines to make it easier for community members to contribute to the project.
- Improved device support:
- Added special flashing strategy support for SpacemiT K1 devices.
- Fixed an issue where the device provisioner failed to call
fastboot.
- Updated the Buildroot SDK image for Sipeed LicheeRV Nano.
- Updated the RevyOS image version for Sipeed LicheePi 4A and fixed issues.
- Updated the RevyOS image for Milk-V Meles.
- Renamed package
board-image/revyos-sg2042-milkv-pioneer to board-image/revyos-milkv-pioneer to comply with current package naming conventions.
- Entity database updates:
- Device entity definitions are now on par with the device provisioner's support range. Added device definitions for vendors including Milk-V, Sipeed, Canaan, StarFive, WCH, etc.
- Optimized ruyisdk.org's statistics page for performance.
- Integrated download counts from GitHub Releases channel into the RuyiSDK package manager download statistics on the official website, making the statistical data more accurate and comprehensive.
- Migrated the mirror synchronization script which resided in the RuyiSDK package manager repository and required manual set-up to server-side.
RuyiSDK 0.31 is now released. The corresponding package manager version is also 0.31.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- The RuyiSDK device installer now allows you to select a non-default (latest) version when multiple versions of a requested software package are available. This feature can be helpful if your development board requires an older system version.
- Added an experimental mode flag: the environment variable
RUYI_EXPERIMENTAL, for enabling experimental features for which we do not yet guarantee compatibility.
- Added experimental feature: Entity Database.
- This feature helps RuyiSDK provide useful information related to your devices. For example, you can now use
ruyi list --related-to-entity device:sipeed-lpi4a to query various software packages applicable to the Sipeed LicheePi 4A.
- Initial support includes four entity types: CPU microarchitecture (such as Xiangshan Nanhu, Xuantie C910, etc.), CPU models (such as Xiangshan Nanhu, Xuantie TH1520, etc.), device models (such as Sipeed LicheePi 4A, etc.), and software packages.
- These features are in preview, and incompatible changes may be made in the future to adapt to requirements, so they are only available when experimental mode is enabled. If you have use cases, please keep your
ruyi and software repository up to date.
- Engineering changes:
- To avoid releases being affected by temporary outages of physical CI resources, the RISC-V build tasks have also been temporarily migrated to free public runners provided by GitHub Actions.
- Upgraded the Python version used to build the one-file
ruyi distribution to 3.13.2.
RuyiSDK 0.30 is now released. The corresponding package manager version is also 0.30.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- Fixed an issue where
ruyi list --category-contains was not working.
- Fixed an issue where performing
ruyi install immediately after a fresh installation of ruyi would cause a crash.
- Repository format updates:
- Added an experimental structured device model description database based on the current device installer configuration data, with initial support for describing the CPU and microarchitecture capabilities of each device model.
- Engineering changes:
- Migrated AArch64 build tasks to free public runners provided by GitHub Actions, to reduce maintenance costs for the RuyiSDK team.
- Fixed the CI open source license check task.
RuyiSDK 0.29 is now released. The corresponding package manager version is also 0.29.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- Fixed the porcelain mode support for the
ruyi news list command.
- Added porcelain mode support for the
ruyi news read command, with the return format matching that of ruyi news list.
- Repository format updates:
- No longer supports global configurations and package descriptions in JSON format. The official RuyiSDK repository has been migrated since version 0.18 and is not expected to be affected by this change. If you have not yet upgraded your
ruyi version, it is recommended that you reinstall ruyi and recreate your virtual environments (if any).
- An optional
upstream_version field is allowed in package manifests, which is used to record the corresponding upstream version for that version. Since the RuyiSDK repository uses semantic versioning, some form of mapping is often required for upstream versioning schemes that do not conform to semantic versioning; this field helps tools in the RuyiSDK ecosystem understand such mapping relationships.
- Made backward-compatible provisions for future support of package-level shared metadata.
RuyiSDK 0.28 is now released. The corresponding package manager version is also 0.28.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- When running commands that do not rely on repository data, the repository will no longer be pulled if it is not yet locally present.
ruyi list now supports basic filtering queries: use --category-is to query packages under a specific category, and use --name-contains to query packages whose names contain specific text.
ruyi list without any parameters is no longer supported due to the ever-increasing number of packages. If you have scripts that rely on the previous behavior, please modify them according to the prompts.
- Added the following packages:
source/wiringx: Official source code for the wiringX project. wiringX is a modular GPIO support component.
- Updated the following packages:
board-image/bianbu-bpi-f3
board-image/revyos-milkv-meles
board-image/revyos-sg2042-milkv-pioneer
- Fixed the file type marker for the
boot partition of board-image/revyos-milkv-meles.
RuyiSDK 0.27 is now released. The corresponding package manager version is also 0.27.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- Added the
ruyi telemetry upload command. If you are okay with sharing with us your usage data, now in non-persistent environments such as CI builds, you can ensure with the command that telemetry data is uploaded before the task ends and the environment is cleaned up.
- Added support for specifying service levels for software package versions. If a particular version of a software package has known issues,
ruyi will display a prompt when installing or extracting that version. This information can be maintained by packagers in the software source. In the future, filtering packages by service level will also be supported: it will be possible to skip versions with known issues, or only use verified versions, etc.
- Engineering changes:
- Added support for pygit2 1.17.0. The one-file distribution of
ruyi has been switched to this version.
- Updated the following packages:
board-image/buildroot-sdk-milkv-duo
board-image/buildroot-sdk-milkv-duo256m
board-image/buildroot-sdk-milkv-duos-sd
board-image/uboot-revyos-sipeed-lpi4a-16g
board-image/uboot-revyos-sipeed-lpi4a-8g
- Fixed issues with some packages being unable to download normally after receiving automated version upgrades.
RuyiSDK 0.26 is now released. The corresponding package manager version is also 0.26.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- Added a
--verbose (-v) option to ruyi telemetry status, allowing users to continue viewing their telemetry data upload plans after running ruyi telemetry consent.
- Fixed an issue where the toolchain
-mcpu value might not be correctly mapped when creating a virtual environment using a vendor toolchain. If you are affected, please recreate your virtual environment after running ruyi update.
- Continued work on platform compatibility guarantees:
- Added a platform compatibility technical document that clarifies the baseline versions of third-party dependencies currently supported by
ruyi.
- Ensured via CI that all changes to
ruyi do not affect ruyi passing the test suite on Ubuntu 22.04.
- Engineering changes:
- Fixed an issue where a layer of subdirectory structure was missing in the source package.
- Updated Poetry to version 2.0, along with updating the Python project metadata (
pyproject.toml) for ruyi.
- Updated
board-image/revyos-sipeed-lpi4a.
- Supported the new profile API to work with
ruyi 0.26.0 changes, ensuring correct -mcpu configuration for virtual environments.
RuyiSDK 0.25 is now released. The corresponding package manager version is also 0.25.0.
You can download the RuyiSDK package manager from one of the following locations:
This update mainly consists of the following changes. Happy hacking!
- Added the
ruyi config subcommand, making it easier for users to query and modify RuyiSDK package manager configurations via command line or script. This command's usage was inspired by git config, see ruyi config --help output for details.
- Added the
ruyi telemetry subcommand, making it easier for users to query and change telemetry preferences via command line or script. See ruyi telemetry --help output for details.
- Specifically: Before expressing your telemetry preferences, you will receive a reminder every time you run
ruyi. You can now turn off telemetry data collection with ruyi telemetry off or explicitly accept telemetry data collection and upload with ruyi telemetry consent.
- Fixed an issue with Debian package extraction when used with arpy 1.x.
- Added two specification documents: RuyiSDK official software source package version specification, and RuyiSDK board model and system image naming specification. You can read these in the
docs/ directory of the RuyiSDK package manager repository.