[Freedesktop-sdk] ABI stability and release model

Tristan Van Berkom tristan.vanberkom at codethink.co.uk
Thu Mar 28 08:43:43 UTC 2019


Hi all,

Thanks to all for participating in this discussion.

I just want to make sure we are really all on the same page here.

On Wed, 2019-03-27 at 13:23 +0000, Javier Jardón wrote:
> > On Wed, 27 Mar 2019 at 12:37, Robert McQueen <rob at endlessm.com> wrote:
[...]
> > With my Flatpak hat on, I must say: offering ABI stability (and really
> > solid, boring, ABI stability) in the runtimes, is absolutely
> > instrumental to the whole Flatpak ecosystem. If we don't have that, we
> > may as well not have an SDK, and practically speaking, we won't have a
> > Flatpak app ecosystem at all.
> 
> I think everyone in the team agrees with that, and always have. We
> have always treated any ABI break as a bug (we even contact upstream
> several times to fix some ABI breaks in mesa for example)
> That's why we have ABI checks in our CI and what is written in the
> current release model [1] from the beginning

Javier, I know that you agree we need to tighten our story and provide
the real stability that our downstreams require - I think that the
above statement is not exactly true though, and for the sake of the
readership I think it's important to underline the difference.

The policy you are linking here only guarantees backwards compatibility
of the ABI offered by the runtime - this is subtly different from full
ABI stability of a given release, which is to say that the ABI surface
should remain unchanging for the duration of the cycle.

I think it's important that everyone walks away from this discussion
with confidence that the ABI downstream expects to remain stable
actually is, and that it is not a moving target where new features are
added in libraries during a stable release.

[...]
> We simply use 18.08 because at the moment we didn't have the man power
> (or a reason really) to develop 2 branches at the same time, so we
> focus in the stable one (18.08)
> This will change soon when we start the preparation for 19.08 (merging
> 18.08 back to master and continue from there, as documented in the
> previous document I linked [1])

I am still unclear about what I should take home from this.

Am I to understand that we cannot expect stability of 18.08 until we
change our focus to 19.08 ?

The way I see it, we need to have 2 branches open at all times
(regardless of how many people decide to work on those or not), one
which is stable and in production, and one where we are upgrading
things and adding features towards the next stable release targeting
production.

> > In setting up the release cycle for the SDK and managing the cost of
> > running an LTS, we can only play with two variables. The frequency of
> > releases, and the lifespan that we support them for. My understanding
> > is that we would do basically: one year, one year. It seems like
> > perhaps this needs revisiting if we are seeing new developer
> > tools/technologies that need to be updated more frequently because of
> > app/runtime developer needs? Maybe 6 month frequency, 1 year support,
> > or to avoid too many parallel series, we have a tick/tock with a 1 year
> > support and a shorter one in between.
> 
> Sure, happy to revise the release cycle [1] after we release 19.08
> this August and we have a perspective of what happen last year / what
> we expect to happen
> Maybe a good topic to chat at GUADEC?

Revising the schedule and frequency of releases, along with how long we
actually care about previous LTS releases and when we want to end of
life them, is a good thing to discuss at GUADEC, I think we don't need
to hash this out right now.

However, I would like to know where does that leave us with 18.08 ?

>From what I gather, the 18.08 cat has been out of the bag for a while
and is currently in production - I think that the sane thing to do is
to freeze the 18.08 ABI right now (August is a long time away, we
should not have a moving target in production for another 4 or 5
months).

>From your previous messages, I believe that you are on board with doing
exactly that, but I don't think the message is clear enough.

For the sake of clarity; both for contributors to the freedesktop-sdk
project and also for the downstream parties which have raised their
concerns on this list, I would like to ask:

Is the 18.08 ABI now officially frozen as a result of this discussion ?

Cheers,
    -Tristan



More information about the Freedesktop-sdk mailing list