Skip to main content

3 posts tagged with "release"

View All Tags

Version 0.7

· One min read
Maximilian Köhl
Founder of Silitics

We are excited to announce the release of Rugpi version 0.7. 🎉 With this release, we expand the device support beyond Raspberry Pi and add official support for Debian and Alpine Linux.

Rugpi version 0.7 introduces support for generic EFI-compatible systems by integrating with Grub. Images for EFI systems can be built based on Debian and Alpine Linux. In addition to Raspberry Pi OS, Rugpi also comes with built-in recipes for Debian and Alpine Linux that work on Raspberry Pi 4 and 5. The image building pipeline has become more flexible again and can now also be used to bootstrap root filesystems, which is how support for the different distributions is implemented.

⚠️ With version 0.7 we introduced a few backwards-incompatible changes to the image building pipeline. Checkout, the how to upgrade guide for details.

Version 0.6

· 4 min read
Maximilian Köhl
Founder of Silitics

We are excited to announce the release of Rugpi version 0.6. 🎉 This release introduces significant enhancements to the image building pipeline, elevating its flexibility and power.

⚠️ With version 0.6 we introduced backwards-incompatible changes to the image building pipeline. Continue reading for details on the changes and a smooth upgrade process.

What's new?

Version 0.6 comes with an overhauled and more powerful image building pipeline. In addition, it makes it much easier to share recipes with the community via Rugpi repositories.

(1) Layers.  With version 0.6, we introduce the concept of layers. Unlike previous versions of Rugpi, where customizations were limited to a single set of recipes, you can now create multiple layers, each with its own set of recipes and parameters. Layers offer more flexibility. For example, if you are working on different variants of a product, you can define a layer for each variant. Layers can also be build on top of each other, allowing you to establish a base layer and then create additional variants on top of it. Layers are cached and only rebuild if there are changes to their recipes, parameters, or parent layers.

(2) Explicit Recipes Enabling.  We have made a shift from recipes enabled by default to a more explicit approach. Recipes now always need to be explicitly enabled, providing greater control over the applied customizations. In particular, this means that modifications specific to Raspberry Pi will no longer be applied automatically. Instead, you now need to explicitly enable them via the core/raspberrypi recipe. In the future, this will allow us to support other boards than Raspberry Pi.

(3) Repositories.  It was an explicit goal from the beginning to facilitate the sharing of recipes within the community. With version 0.6, we introduce repositories, making it much easier to share recipes and layers. Repositories can be local directories, e.g., managed with Git submodules, or remote Git repositories. They can be included with a single line in your Rugpi Bakery configuration. For example:

[repositories]
rugpi-extra = { git = "https://github.com/silitics/rugpi-extra.git", branch = "v0.6" }

Repositories also provide a namespace for recipes thereby avoiding conflicts. For instance, the zsh recipe from the rugpi-extra repository is referred to by rugpi-extra/zsh.

(4) Multiple Images.  It is now possible to define multiple images. As a result, you can now easily build images for different boards which require different boot flows or architectures. Furthermore, different images can be based on different layers, providing even more flexibility.

(4) Simplified Building Process.  Building an image is now a one-liner:

./run-bakery bake image <image-name> build/<image-name>.img

This will download the required base image, apply all customizations as defined by the layers, and finally assemble the image, which is then ready to be flashed or installed.

Upgrading to v0.6

Excited about the new features? 🚀 Upgrading to version 0.6 is easy:

  1. Replace your run-bakery script with the latest version found in the template.
  2. Create a layer configuration using core/raspios-bookworm (for Raspberry Pi OS Bookworm) as parent layer and move the set of enabled recipes and their parameters there.
  3. Adapt the set of enabled recipes and their parameters. To this end, you need to prefix the recipes previously provided by Rugpi with core/, enable the core/raspberrypi recipe to get back the Raspberry Pi-specific modifications, add the rugpi-extra repository in case you are using any of the recipes which have been moved there, adjust the recipe names in the parameters section accordingly, and explicitly add local recipes you want to enable.
  4. Move the image configuration into a respective images section.

Check out the new template for an example.

What's next?

With the overhauled image building pipeline and layer system, we are now in a position to add support for other boards and fail-safe delta updates. We also aim to improve the command line interface and the Rugpi Admin web interface. Finally, another focus will be on reproducibility, compliance, and provenance tracking of the software components integrated into an image.

Got ideas or suggestions? Please open a discussion or issue on Github.

Version 0.5

· 3 min read
Maximilian Köhl
Founder of Silitics

We are excited to announce the release of Rugpi version 0.5. 🎉

Version 0.5 signifies the end of Rugpi's experimental phase. We are confident that the foundational update mechanism is sound. From this point forward, we aim to maintain backwards-compatibility for updates. This means, if you deploy a system with Rugpi now, you should be able to update it remotely later. While the update process itself is stable, we are still iterating on the design of the image building pipeline and the CLI and APIs. What will change in the upcoming months is the way system images are build. We are planning to introduce layers, drawing inspiration from Docker. Layers will streamline the image-building process and enable fail-safe delta updates in the future.

What's new?

On top of conducting further testing of the build and update process, this release also brings valuable new features over the initial prototype, which we introduced back in July.

Rugpi now supports all models of Raspberry Pi and 32-bit Raspberry Pi OS. We have tested the images on various models. A big shout out and many thanks go to Reuben Miller, who helped significantly with testing. In particular, Rugpi is known to work on Raspberry Pi Zero 2 W, a low-cost but still powerful variant of Raspberry Pi. Having extended support beyond the latest boards by integrating with U-Boot, we are now also confident that Rugpi can be brought to other boards than Raspberry Pi. While building a seamless, optimized experience for Raspberry Pi clearly remains our focus, feel free to contact us in case you like Rugpi and want to use it with a different single-board computer.

In addition to support for all models of Raspberry Pi, Rugpi now also supports streaming updates directly to the underlying storage. Furthermore, there is now an option to persist the writeable overlay by default making it easier to apply user-defined customizations in the field.

What's next?

Having validated Rugpi's foundational design, we now aim to further extend its features. In particular, we plan to introduce a layer system to Rugpi. Layers will be cached and shared between different variants of a system image. Furthermore, they will enable a crucial feature, fail-safe delta updates. We also plan to introduce recipe collections and making it easier to share recipes, collections, and layers.

Industry Adoption and Collaboration

We saw great positive resonance to our initial prototype. With thin-edge.io we are proud to have found a partner spearheading the way to industry adoption. Thin-edge.io officially supports Rugpi to build and deploy images. To learn more, checkout the thin-edge.io Rugpi reference repository.

If you're planning to adopt Rugpi or have feedback to share, we want to hear from you! Your contributions and insights are invaluable as we continue to shape the future of Rugpi. Join the community and share your experiences with Rugpi by opening a discussion on GitHub.