Introducing yb - a new tool for Yocto environment setup/management
Today I’m excited to publish a tool I’ve been developing internally for about a year now. It is called ‘yb’, and you can think of it like a cross between kas, Google’s repo, and myrepos (mr).
Project page: https://github.com/Agilent/yb
Download it here: https://github.com/Agilent/yb/releases/tag/0.0.11
The tool is written in Rust. It is statically linked, so all you need to do is download the binary and put it somewhere in PATH.
The primary contribution I believe this tool makes is the ability to not only setup Yocto environments, but keep them in sync with the rest of your team as your product(s) evolve. This is realized via the ‘stream’ mechanism - a git repo that holds your specs (basically like kas’ configuration files). Most operations in yb automatically fetch updates to the active stream before doing anything. If you need to add or remove a layer from your build, just do it in the stream. Anyone using that stream will automatically get the update and be informed to update their environment.
I am also very proud of the ‘status’ command. It works even with vanilla Yocto environments (i.e. what you’re using today) as long as the tool can find “bitbake” on PATH. The “status” command will automatically do a ‘git fetch’ on each layer. When used along with streams/specs, it will also first check for updates to the stream.
I hope you can give it a try and let me know what you find useful/broken. It is still in relatively early development (in particular the ‘yb sync’ command) but it is already helpful for my teams’ day-to-day work.
(P.S. Please forgive the multi-mailing list post)