Skip to main content

Blog

See important news from the RuyiSDK team at any time

Release notes for RuyiSDK 0.39

· 2 min read

RuyiSDK 0.39 is now released. The corresponding package manager version is also 0.39.0. You can download the RuyiSDK package manager from one of the following locations:

This update mainly consists of the following changes. Happy hacking!

RuyiSDK Package Manager

  • ruyi is now published on PyPI. Now you can install the RuyiSDK package manager with pip install ruyi or a similar command, as long as you have a Python environment.
  • If you provide your own local RuyiSDK software repository by overriding its local path, and the remote URL of that repo's current branch differs from the corresponding ruyi configuration, ruyi update will now exit with an error instead of overwriting your remote URL.
  • Continued polishing of shell completions:
    • Optimized ruyi startup latency in normal (non-completion) mode.
    • If the software repository has never been synchronized locally, ruyi no longer attempt to sync it during command-line completion.
  • Engineering changes:
    • End-to-end integration tests now run for every PR to ensure typical CLI usage does not regress.
    • Shell completion scripts are now included in the ruyi source distribution under contrib/shell-completions, making it easier for distro packagers to integrate.
    • Preparing for Ubuntu 22.04 LTS packaging: the test suite now runs with pytest 6.2.5.
    • When building ruyi's one-file distribution, prebuilt cffi and pygit2 are used for the RISC-V build to reduce build times.
    • Simplified the ruyi release process: tagging and the release workflow are now automated.

RuyiSDK Software Repository

  • Package updates:
    • source/milkv-duo-examples: Milk-V Duo example code, version 20241219.
  • Improved device support:
    • RevyOS U-Boot for Milk-V Meles (4/8/16G variants): caught up with upstream versions.
    • RevyOS for Milk-V Pioneer and Milk-V Meles: added missing versions.
    • Buildroot SDK for Sipeed LicheeRV Nano: caught up with upstream versions.
  • Engineering changes:
    • Formatted all package manifests and added a CI check to ensure new packages follow the unified coding style.

Thanks to @Cyl18 and @weilinfox for their contributions!

Release notes for RuyiSDK 0.38

· One min read

RuyiSDK 0.38 is now released. The corresponding package manager version is also 0.38.0. You can download the RuyiSDK package manager from one of the following locations:

This update mainly consists of the following changes. Happy hacking!

RuyiSDK Package Manager

  • Added ruyi device flash as an easier-to-remember alias for the RuyiSDK device provisioner. Thanks to @Sequel from the RuyiSDK community forum for the feedback!
  • When ruyi needs to invoke an external command but cannot find it, it will now wait for you to install it and retry, if the current terminal is interactive. You can install the required command in another terminal, then return to the terminal where ruyi is running and press Enter to continue. You can also press Ctrl+C to exit. Thanks to @Sequel from the RuyiSDK community forum for the feedback!

RuyiSDK Software Repository

  • Improved device support:
    • Added historical versions of RevyOS for Sipeed LicheePi 4A. Thanks to @Cyl18 for the contribution!
    • Added versions 1.1.2 and 1.1.4 of Arduino for Milk-V Duo. Thanks to @Cyl18 for the contribution!

Release notes for RuyiSDK 0.37

· 2 min read

RuyiSDK 0.37 is now released. The corresponding package manager version is also 0.37.0. You can download the RuyiSDK package manager from one of the following locations:

This update mainly consists of the following changes. Happy hacking!

RuyiSDK Package Manager

  • Added basic command-line completion support, initially for Bash and Zsh. Thanks to @wychlw for the contribution!

    To enable command-line completion for ruyi, source the completion script in your shell profile, e.g. .bashrc or .zshrc:

    # For zsh users: replace "bash" with "zsh"
    eval "$(ruyi --output-completion-script=bash)"

    Currently, subcommands of ruyi and package name arguments for commands like ruyi install are supported.

  • ruyi self clean no longer crashes if the news read-state file does not exist. Thanks to @weilinfox for reporting the bug!

  • Python tracebacks are no longer shown to the user when fetching a remote Git repository fails.

  • FTP passive mode is now only enabled for curl or wget when the download URL protocol is FTP. This fixes an issue where some RuyiSDK users were unable to download any files due to a bug in cURL 8.14.1. Thanks to @weilinfox for reporting the ruyi bug!

  • Refactored the handling of bundled resources in ruyi, decoupling it from the virtual environment mechanism. This allows for bundling other non-venv-related resources in the future, such as command-line completion scripts, internationalization string files, etc. A CI check is also in place to ensure the compressed resources included in ruyi are always in sync with the original files.

  • Added support status for OpenCloudOS 9.4, openEuler 24.03 LTS SP2, openEuler 25.03, and openKylin 2.0. The Python dependencies for ruyi are partially missing on these distributions, but the versions of other dependencies are sufficient. We expect to have full support for them by October 2025.

RuyiSDK Software Repository

  • Entity database updates:
    • Added the SpacemiT X60 micro-architecture.
    • Added the SpacemiT K1 processor model.
    • Added device variants for BananaPi BPI-F3 with eMMC and SD storage.
  • Improved device support:
    • Updated the Buildroot SDK for Milk-V Duo (64 & 256M RAM variants) and Duo S (SD storage variant). Thanks to @Cyl18 for the contribution!
    • Added support for the SD storage variant of BananaPi BPI-F3, with Bianbu Desktop and Bianbu Minimal systems provided by SpacemiT. Thanks to @wychlw for the contribution!

Release notes for RuyiSDK 0.36

· 2 min read

RuyiSDK 0.36 is now released. The corresponding package manager version is also 0.36.0. You can download the RuyiSDK package manager from one of the following locations:

This update mainly consists of the following changes. Happy hacking!

RuyiSDK Package Manager

  • After each ruyi update, you will now be informed of which installed packages have newer versions available. Since some projects may require precise toolchain versions, you can choose to update with ruyi install and recreate relevant virtual environments as needed.
  • You can now uninstall installed packages using ruyi uninstall. Shorter aliases ruyi remove and ruyi rm are also available.
  • The ruyi list output now shows whether each package's installation files are fully downloaded.
  • When both machine-readable output (porcelain mode) and debug output (RUYI_DEBUG=y) are enabled, the initial log lines will no longer be output in wrong format.
  • Startup performance of the ruyi tool has been improved, saving 200-300ms per run (depending on your machine). This paves the way for low-latency command-line completion in the future. A CI lint is also in place to ensure future code changes do not regress this optimization.

RuyiSDK Software Repository

  • Updated toolchain/gnu-plct: The GNU RISC-V toolchain maintained and built by PLCT, now including GNU binutils 2.45 (pre-release snapshot), GCC 15.1.0 and glibc 2.40.
  • Updated RISC-V microarchitecture definitions in the entity database, adding:
    • Xiangshan Kunminghu
    • Xuantie C908, C908V, C910V2, C920, C920V2
    • MIPS P8700
    • 8-wide Tenstorrent Ascalon
  • Corrected the RISC-V ISA string of Xuantie C910 to the standard form accepted by upstream GCC.

Release notes for RuyiSDK 0.35

· One min read

RuyiSDK 0.35 is now released. The corresponding package manager version is also 0.35.0. You can download the RuyiSDK package manager from one of the following locations:

This update mainly consists of the following changes. Happy hacking!

RuyiSDK Package Manager

  • Package installation status is now tracked. This information is also reflected in the ruyi list output, and filtering packages by installation status is also supported by passing the --is-installed y/n parameter to ruyi list.
  • ruyi entity list can now take one or more -t / --entity-type parameters to list entities of specific type(s).
  • ruyi entity list now supports porcelain mode output for machine-readable results.

RuyiSDK Software Repository

  • Added historical versions for Milk-V Duo (128M & 256M) board images.
  • Fixed configuration for Milk-V Duo (128M & 256M) board images version 2.0.0.
  • Updated multiple RevyOS images for Milk-V Meles.
  • Fixed configuration for RevyOS image version 1.20250123.0 for Milk-V Meles.
  • Updated some documentation links.
  • Cleaned up legacy configuration data for the RuyiSDK device provisioner that was deprecated in RuyiSDK 0.33.

Release notes for RuyiSDK 0.34

· 3 min read

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!

RuyiSDK Package Manager

  • 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.

RuyiSDK Software Repository

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.

Release notes for RuyiSDK 0.33

· 2 min read

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!

RuyiSDK Package Manager

  • 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.

RuyiSDK Software Repository

  • 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.

Server-side Components

  • 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.

Release notes for RuyiSDK 0.32

· 2 min read
xen0n
RuyiSDK 技术主管

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!

RuyiSDK Project Management

  • For compliance, all pull requests to RuyiSDK now require a DCO (Developer Certificate of Origin).

RuyiSDK Package Manager

  • Added contribution guidelines to make it easier for community members to contribute to the project.

RuyiSDK Software Repository

  • 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.

Server-side Components

  • 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.

Release notes for RuyiSDK 0.31

· 2 min read
xen0n
RuyiSDK 技术主管

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!

RuyiSDK Package Manager

  • 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.

Release notes for RuyiSDK 0.30

· One min read
xen0n
RuyiSDK 技术主管

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!

RuyiSDK Package Manager

  • 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.