[Freedesktop-sdk] ABI stability and release model

Javier Jardón jjardon at gnome.org
Wed Mar 27 12:00:31 UTC 2019


Hi Tristan, Alex

On Wed, 27 Mar 2019 at 10:51, Alexander Larsson <alexl at redhat.com> wrote:
>
> On Fri, Mar 22, 2019 at 8:46 AM Tristan Van Berkom
> <tristan.vanberkom at codethink.co.uk> wrote:
> >
> > Hi all,
> >
> > It was raised recently by Cameron on this list that there are some
> > problems with ABI stability which effectively break things for end
> > users.
> >
> > Asides from this, I think it is also worth considering concerns about
> > overusing end users bandwidth (to install new updates) and similarly,
> > the churn and compute resources we impose on downstream projects who
> > need to rebuild as a result of releasing new things frequently.
>
> Yeah, I have not been following these discussions in details. But I'm
> getting very concerned about the amount of churn that seems to be
> happening in the 18.08 release. One of the major selling points of
> flatpak is that applications will keep working because they depend on
> a particular runtime version which have tight guarantees on ABI and
> behaviour. If this is not true, and the runtime gets updates that are
> not carefully vetted then we'll lose that and we can easily get into a
> place where flatpak:ed apps get a reputation for constantly breaking.
> Such a reputation is *very* hard to get rid of, and can easily taint
> the project forever.
>
> We do want *some* updates even to released runtimes. For instance, for
> hardware enablement updates to the GL drivers are important for
> desktop apps. We also need to keep on top of things that changes in
> the flatpak echosystem like portal updates and whatnot, as well as
> security updates and bugs that affect actual apps. However, it seems
> like modules are being updated just because there are new upstream
> version numbers, which seems very wrong.
>
> There also seem to be an very high degree of trust in ABI checks. Yes,
> knowing when ABI accidentally breaks is nice, but there are many ways
> that the behavior of a library can change that don't change the ABI in
> detectable ways yet still break currently shipping apps.
>
> At this point all the actively used flatpak runtimes are based on the
> freedesktop sdk, so it is very important to get this right.

Ok, so before this email thread started, we already had several
discussion about the problems exposed here

This are some of the things we had decided:

- Release less often: 1 release per month, with exception for urgent
fixes which should be released ASAP [1]
- Do not add new components to the current stable branch (18.08)
unless strictly necessary [2]
- Now that we can track more than one branch (see [3]), we can track
only stable branches of each component, while still
  being notify of major updates, which we will apply on next release/master only
- Add CI to not only check ABI, but API additions as well, and do not
update if that is the case unless strictly necessary [3]

I think all the above should be enough, we will probably start
development in master soon and the 18.08 branch will naturally slow
down as well

Please let us know if you have any other concerns

Cheers,
Javier

[1] https://gitlab.com/freedesktop-sdk/freedesktop-sdk/issues/674
[2] https://gitlab.com/freedesktop-sdk/freedesktop-sdk/issues/689
[3] https://gitlab.com/freedesktop-sdk/freedesktop-sdk/merge_requests/535
[4] https://gitlab.com/freedesktop-sdk/freedesktop-sdk/issues/705


More information about the Freedesktop-sdk mailing list