Hi Jan, That all makes sense and answers my question. Ideally we would like to avoid the intermediate updates as this adds complexity to update logic (i.e. you have to leap-frog through that for devices that are factory fresh). Sounds like there are no immediate plans for breaking changes and I'll keep an eye on the mailing list so I can weigh in. Thank you very much for taking the time to give such a well thought out answer! For anyone else who finds this thread later, I also found reference to this in the documentation https://rauc.readthedocs.io/en/latest/advanced.html#migrating-to-an-updated-bundle-version . Best, ~Matt On Fri, Jun 5, 2020 at 2:25 AM Jan Lübbe wrote: > Hi, > > On Thu, 2020-06-04 at 15:02 -0400, Matt Campbell wrote: > > I'm looking into RAUC for a product, and I was wondering if there are > > any project goals around the stability of the RAUC bundle format. > > Specifically, it would be great if all future versions of the rauc > > binary was compatible will all previous bundle formats, and also that > > all older versions of the binary can install future created bundles. > > Obviously that's a big ask, but it'd be great to know what to expect > > of RAUC in the future. Even a rough idea of how compatibility will > > play out will help me greatly in evaluating RAUC. > > The basic bundle format has not changed so far (squashfs with > CMS > signature), which means that newer versions can install old bundles. > Going forward, any issue with installing old bundles would be > considered a bug. > > Newer RAUC versions have introduced new features and slot types, though > (such as casync, emmc-boot partitions, MBR partition switching). If you > use those features, old versions of RAUC won't be able to install those > bundles. As long as you don't use new features, our intention is that > bundles created by newer versions will be installable by older > versions. > > There are ideas of introducing a new bundle format to allow streaming > installation (over the network), but we won't remove support for the > original format. > > > If there are ever reasons that require an incompatible change, you can > use a two step migration: > You can use an intermediate update to ship a new RAUC binary in a > bundle created by the old version. Then use the newly installed RAUC > for the real update. > > > Does that answer your questions? > > Regards, > Jan > > -- Matthew Campbell Senior Embedded Systems Engineer mcampbell@izotope.com iZotope, Inc. www.izotope.com