Lovely how flashback is spelled on the RDS feed of a radio station.
So, GStreamer summit coming to a close. I’m happy with the outcome, even though we still haven’t managed to constructively hack together, but I have some plans for that for next time. The main focus was to decide on a direction to take from here on, get started with 0.9, merge the different technical approaches, and so on. My personal focus was on discussing the development process as such – how do we avoid the big free-for-all during a development cycle that breaks the core for months on end, how do we apply some of the best practices we learned from other projects, what can I do to make our long-term quality more measurable and visible without blocking other people in their flow, …
I think we’ve come up with a nice procedure we agreed on for the nearby future that addresses a lot of my previous concerns:
- we are aiming at a shorter turnaround cycle for GStreamer, more in the 4 month range
- this makes it easier for people that for some reason weren’t able to finish their subsystem rewrite – the next train will be ready to go soon after
- subsystem rewrites (ie, the ones with a fairly huge and API-breaking impact) are done on a branch until they work in such a way that unit tests pass, and a first set of about ten reference elements work correctly
- when this subsystem is ready, it’s put on the merge schedule to be merged ASAP
- when it gets merged, the person responsible mails docs and info to the list, where people can ask questions and discuss; a mini-freeze on HEAD happens
- other people take up the task of porting a second set of about ten elements to show they can follow and understand the changes; people test their apps with the new changes
- if for some reason the merge to HEAD is broken, it gets backed out so the person responsible can go back to fixing whatever didn’t work very well
This is pretty much the gist of it. I went into more detail in a mail to our mailing list.
In practice, this means:
- we are aiming for a GStreamer 0.10 release around May 15th
- Wim will probably spend the first few weeks chunking up his patch that involves threadsafety and refcounting, as well as some other niceties, so that people can follow each of these rewrites. That’ll be nice to test this process with
- GStreamer plugins will be split into three modules, to satisfy both the “distinction between unencumbered and dodgy” requirement and the “please don’t let autogen last an hour” requirement
As part of this, I’m also going to really focus on nice Buildbot integration. Yesterday I hacked on better branch handling in Buildbot, and today I can finally set up nice separate buildbots for all these branches. As soon as they’re set up correctly, I can branch 0.8 off, and I can get started doing the plugin split.
It’s also a tough act balancing the requirements of the company with the requirements of the community project, but I think we did well here. For us as a company, this schedule is also good – it means we can start selling some products for the next stable GStreamer very soon, without having to jump to really big hoops to backport stuff to 0.8 that will never work quite right.
Exciting times ahead for GStreamer, I’m sure.
In related news, we’ve had Dave and Nora stay at our place for the last week. Beside my being pretty tired most of the time, I had a good time having them over. Of course, the fact that Nora is a chef helped a lot as well :) Two days ago she made the most wonderful dish involving seared tuna (so that it’s still raw in the middle) with sesame and coconut rice… And it all seemed so simple.
Yesterday evening as we got back from the restaurant where we almost didn’t pay because we asked for the bill twice and they didn’t bring it, Kristien and I stopped at blockbuster’s to rent a movie while Dave realized he forgot his backpack at the restaurant and went back. Sadly, blockbuster had just closed one minute before. Luckily, we did eventually pay at the restaurant, otherwise Dave would have had a hard time getting his laptop back. It’s all karma.
We ended up watching Tesis, which was OK, but really not as good as I had expected. All in all, it was pretty slow and pretty predictable. Oh well.
Exciting times ahead…