I’ll start with the obvious, as it fits so nicely:
When everything you have is a stable release cycle, every problem looks like it doesn’t break API.
Lots of problems in the current release cycle can be traced back to this problem:
- Fedora rawhide is so broken, it’s almost impossible to use. Applications run against binary incompatible libraries all the time.
- Getting a jhbuild to finish is next to impossible. Some package changed APIs again…
- Releasing 2.91.0 one week after 2.32.0 pretty much means a lot of projects didn’t even start looking at porting to the new APIs yet.
- We can’t really do a lot of API changes because we only have 4 months (think API freeze), and in that timeframe we not only have to do our new APIs, but also fix compiles against API breaks in libraries all the time.
The worst thing though is that I don’t think that we developers seize the moment where we have the unique chance to get rid of all the warts that annoyed us since forever. Or actually reviewing our APIs for sanity. Instead we’re chasing taillights by trying to make releases.
So are we doing it wrong?
5 comments ↓
Releasing 2.91.0 one week after 2.32.0 pretty much means a lot of projects didn’t even start looking at porting to the new APIs yet.
I have to disagree on that. Most of the API changes between 2.x and 3.x involve dropping deprecated interfaces rather than adding new ones – the new ones are almost all available in the 2.x series, and in many cases have been for years. Projects that are broken by things like the gdk cleanup could have moved to Cairo long ago – if they haven’t done so, it might be for lack of labour, but it’s certainly not for lack of time between 2.32 and 2.91.
Besides, remember that Gnome 3.0 was supposed to be out by now. They pushed it back to give projects more time to complete the porting work – not so that projects could delay starting it.
That said, I *do* think Gnome has made a mess of things with the 2.32 vs 3.0 releases. In my mind, it would have been better to have pushed 3.0 back but left 2.30 as the final release of the 2.x series, allowing developers to devote their full attention to “the big new thing”. As it is, I think 2.32 has been an unwelcome distraction and disruption over recent months…
Yes.
In my opinion it worked fine for gvfs so I don’t consider it a general problem. There’s always the option to work on branches that have no obligations like release schedules. So what’s going wrong *in this specific case* should be the question.
Yes, if you can’t develop the API outside the distro, your doing it wrong.
If your “stable releases” don’t work…
The mere fact that you ask this question is ridiculous.