my blog

Monday 18 April 2011

Taking my release manager hat off

Back in June 2005, I noticed that we were lacking some tarballs due mails for the GNOME 2.11 release cycle and I sent a small mail to get this fixed. This is how I got trapped: after this mail got read by Mark McLoughlin, he suggested I could replace him on the GNOME release team. A few years later, in September 2007, Elijah chose to pass his GNOME release manager hat to me. And now, in April 2011, it's time for me to pass the baton: Luca Ferretti is replacing me on the release team (he joined as a trainee in the past few months), and my good friend Frédéric Péters becomes the new GNOME release manager.

Release Team love

Picture by Frédéric Péters

I'm really happy of what we did as a team during those nearly six years. I'm more than happy, actually: I'm proud of it. Everything that happened between 2005 and 2011 is of course the achievement of the whole community, but I do believe the release team played an active part — even if not always visible — in what we produced. Of course, there's one failure I will never forgive myself: I never managed to get French adopted as official language for the project, even though I believe good progress was achieved on this front.

Down with release team!

Picture by Claudio Saavedra

Leaving the release team is not a recent decision; I actually took it back in 2009. I clearly remember sitting in a meeting room in Gran Canaria during the Desktop Summit, and deciding that I would leave the release team once GNOME 3.0 would be out. And a year later, in the Hague, when it became obvious that we would reschedule GNOME 3.0 to March 2011, I wondered if it meant I should stay six more months or if I should leave after 2.32. But I couldn't leave before 3.0, so I chose to stay.

The decision being taken for a long time doesn't make it easy, though, as the release team has been part of my identify for a long time now. However, it's time to move on.

I support the release team

Picture by Ryan Lortie

I'm of course sad to see my evil twin leave at the same time, as well as another member of the french consp^W^Wteam. But there is new blood coming in to replace us, and I'm convinced they will contribute to make the GNOME 3 era a very successful one. And with Frédéric Péters taking the release manager hat, I can only say I'm leaving the release team with confidence that the team will stay strong!

Wednesday 13 April 2011

gnome-panel is dead, long live gnome-panel!

With GNOME 3, we obviously recommend to users that they should use (and at least try for a few days, it's usually enough to get addicted) our new interface, based on GNOME Shell. That being said, not everybody can use GNOME Shell yet (if you're unlucky with your hardware, for instance), and some people just really want to stay with an interface closer to what GNOME 2 provided. And that's where the fallback mode enters.

Sure, the fallback mode is not our target in terms of design, but that doesn't mean it's unloved. It's actually looking quite good with 3.0 and I encourage people to go ahead and try it instead of just proactively hating GNOME 3 because of the changes it brings. You can configure GNOME to always use the fallback mode in the the System Info panel of the System Settings:

You can force the fallback mode in System Settings

The fallback mode is made of the same components as your GNOME 2 session. Except that they got boosted with love! Let me tell you about the changes in gnome-panel for GNOME 3.0 to give you an idea of what kind of love I'm talking about.

Under the hood

  • Bonobo no more: okay, this was already in GNOME 2.32, although we had a compatibility module for bonobo-based applets. Now all the communication between the panel and the applets is done over D-Bus. Sounds like a jump to the future, doesn't it? Of course, this means that applets have to be ported but I heard there is documentation for that. This work was lead by Carlos Garcia Campos.
  • Port to GTK+ 3: how could we release for GNOME 3 with a GTK+ 2-based panel? No way. So various people worked hard on moving to the latest GTK+; thanks should go to Carlos Garcia Campos, Germán Póo-Caamaño, Milan Bouchet-Valat, Christian Persch and Benjamin Otte.
  • Port to GSettings: since we wanted to be cool, there was no way we would still use the venerable gconf to store settings. Porting to GSettings was quite fun, especially as gnome-panel was probably one of the heaviest user of gconf (and it was certainly using it in interesting ways). We now use GSettings in interesting ways too since some API is still missing in GSettings. Oh, and we're also using dconf (which is what GSettings uses as a backend by default) directly, which is completely insane and crazy. But we love insane and crazy!
  • Port to GDBus: that's really the cherry on the cake. We still had some code using dbus-glib, and moving to GDBus just made sense. Ryan Lortie was the one removing the last mention of dbus-glib-1 from configure.ac. That being said, we now optionally depend on telepathy-glib which uses dbus-glib :-)
  • Real libpanel-applet documentation: sure, sure, we don't want you to write new applets because they won't work in the non-fallback mode. But if you really decide to not listen to us, you now have a complete and up-to-date documentation to help you.
  • Easier way to define default panel layout: if you ever tried to define a default panel layout with GNOME 2, you certainly knocked your head against a brick wall several times (I know I did). Those days are over now: just use a simple keyfile-based file and just specify the keys you want to change for each object.
  • Lots of code cleanup and changes for GNOME 3 friendliness. Did I say lots? I probably meant tons. Really.

User-visible changes

  • New panel layout and theme: that's probably the first thing you'll notice in the fallback mode: it looks a bit different, and the content in the panels has changed a bit by default. It was done to make the fallback mode look closer to the non-fallback mode, which is sound. But if you don't like that, just change it. Use another theme. Move your panels and applets (see below). You can make it look like GNOME 2 if you really want to (but I must admit I very much like the new way :-)).
  • Centered applets: that's the second thing you'll notice: the clock is centered by default! Woo! Centered applets? Am I dreaming? People have been requesting this for a looooong time. And it's here. And it works. Really. Try it. You can center more than one applet, obviously.
  • User menu: that's the third thing you'll notice: the menu bar lost its System menu, and instead, there's a user menu on the right. If gnome-panel is built with telepathy-glib, this menu will enable you to change your presence on the desktop (including for IM). It also contains, more or less, the same actions that were available in the old System menu.
  • Align your applets correctly: so, now you see applets on the left, centered and on the right. It turns out this is now enforced: you cannot put applets at some arbitrary positions anymore. They will always be left-aligned, centered or right-aligned. This actually matches what people generally try to achieve when they setup their panels, and while I was initially reluctant to do that, Ryan convinced me. And he did good since this offers a much better experience. But that's not all, this also fixes all the annoying issues you had when changing the resolution of the screen or moving a panel, where some applets suddenly moved to weird positions and you had to reconfigure everything to be properly positioned. Now it just works. Really. Magic, I tell you.
  • Still editable, but not by accident: this all sounds cool, but you tried to add an applet, or to even just move one, but without success? There's a secret trick here: press alt (or the modifier configured for metacity, if you changed it) and right-click. And here you go, you can do everything again! This is indeed not very discoverable, and we might work on improving that, but this makes using gnome-panel a much more solid experience. First, you don't have this feeling it can break easily (I had this feeling), and second, you won't remove things by accident anymore. This also means we don't need the per-applet lock setting anymore, so it's gone. And really, did you edit your panels that frequently? I doubt so :-)
  • Bye-bye drawers: I had to remove drawers. Those were buggy in various ways, and I don't think this was fixable with the old approach. This is going to annoy the people who were using them (I've not seen a lot of users of drawers, though), but I think if we had to break this (and we had to), this had to be done for 3.0. Maybe we'll bring back a way to stack launchers, or something similar. But that needs a proper design, to avoid the a drawer is a panel, but it behaves a bit differently approach.
  • (Update) No more popup menus on menus: I forgot to mention that the popup menu in the applications menu is now gone. This has always been broken (it was only working for items that didn't have a submenu, for example), and this was really a hack that was not portable to GTK+ 3. So instead of trying to keep the hack alive, I killed it.
  • Small fixes for some several long-standing bugs. The one I immediately think of is the thin lines appearing in the notification area. Yup: they're gone now. It was really a stupid bug, but for some reason, I was not able to easily reproduce it before so could not fix it.

That's a lot of changes, and if you have any doubts about that, here are some stats: 174 files changed, 12699 insertions(+), 19364 deletions(-) (this is just for code, and it doesn't include translations, schemas, etc.). It's actually the second most active development cycle in terms of lines changed since 2.0 (the first one being the one from 2.2 to 2.4, which included a nearly complete rewrite of a good part of the code).

Oh, and this is how it looks like:

GNOME 3 Fallback Mode

It's certainly not as elegant as GNOME Shell, and you can see that the NetworkManager icon is not using a symbolic icon yet, which is a bit annoying. But still, it's pretty usable, I'd say :-)

In case anyone wonders, I love the new GNOME 3 and so I moved to the non-fallback mode (which I wholeheartedly recommend). But if GNOME Shell is not for you, give the fallback mode a try, you'll love it too!

Monday 11 April 2011

GNOME 3 celebrations from everywhere

After GNOME 3.0 went out, I disappeared a bit from our reality (as I was trying to get back to a more healthy state), but I still managed to read feedback here and there about the release. I guess I'll blog a bit about the fallback mode, since it appears this is either not known at all or well-misunderstood...

What really made my day, though, was how our release got celebrated. I'm not even talking about the launch parties (some had amazing cakes, woo), but just about things like this:

  • our friends at KDE codenaming their 4.6.2 release Congrats specifically for GNOME 3: The codename "Congrats" dedicates this release to our friends over at the GNOME camp, who release a new major version today.
  • our friends at Ubuntu celebrating GNOME 3 in the front page of their website with a picture dedicated to the release in the slide show. Unfortunately, I didn't take a screenshot of this and it's now gone — if anybody took a picture, please share it!
  • our friends at openSUSE welcoming GNOME 3 with a present: 10,000 Live DVDs of GNOME 3 that will get donated to the GNOME Foundation for events.

GNOME 3 is a top tweet

I'm sure I missed a lot of other nice celebrations (links in comments are welcome :-)), but even with only those four items, I feel a lot of love! Thanks to everyone who had a nice thought after the release, we really appreciate that!

Wednesday 6 April 2011

Enjoy GNOME 3 today!

GNOME 3.0

GNOME 3 banner by Jakub Steiner & Lapo Calamandrei

After nine years in the world of GNOME 2, our community is now moving one step further with the availability of the first GNOME 3 release. We're writing an important new line in the history of our project.

It's hard to ignore the feelings this event creates.

I remember the long discussion Lucas and I had about the future of GNOME, in front of his hotel at FOSDEM 2008.
I remember how, at GUADEC 2008 in Istanbul, the release team discussed the idea of finally doing GNOME 3.
I remember the Boston hackfest in October 2008, and all the ideas that were generated there.
I remember writing the first draft of our plan for GNOME 3.0, late at night at the end of March 2009, while being hosted by Christophe.
I remember meeting with as many teams as possible for two days at GUADEC 2010 in the Hague, to decide if we should delay the release.
And I obviously remember the Bangalore Hackfest we did last week to work on the final details on the release.

I love our project and what we achieved. You will love it too!

Getting ready to celebrate GNOME 3? Maybe in Lyon?

Today, we'll release GNOME 3 to the world.

We still need to finalize a few things here and there, but the release is mostly ready. While every .0 release generates some stress (especially when it's one starting a new major cycle), there has been much confidence about how smooth this would all go. This is mostly thanks to the Bangalore Hackfest, where we were able to prepare for this big step.

I actually came back from India on Monday around noon and I immediately started working on the release. We nearly got all tarballs in time (thanks!), and even though we had to re-roll a few tarballs to fix some extremely visible issues, everything went fine so far. I was able to quickly publish the 3.0.0 modulesets so that anybody could help with smoketesting and I built everything, at least twice. The few visible issues I've seen in my tests are either already fixed in re-rolled tarballs or in git, or with a patch in bugzilla. Since those issues are not necessarily considered as blockers (it depends on how severe they are), some of them might stay for 3.0.0; but they'll certainly be fixed for 3.0.1, due in one month. So all in all, things are good there. There is still some coordination to be done for the website update, though.

The bad news is that my body apparently doesn't want to keep working like this for long: what was supposed to be a short break at 6PM yesterday ended up being the end of the day, as I fell asleep for the whole night. I guess considerably eating on my sleep time in the last two weeks and falling sick during the last days in India didn't help :-)

It's slowly getting hard to keep focusing on just the release in this last day, since I already find myself thinking about all the release celebration! There's much excitement all around, and all the launch parties around the world make me think we'll all have fun for the celebration. I'll go to the Lyon party tomorrow (Thursday), and I certainly hope to meet many people there. So don't hesitate to pass by if you're near Lyon tomorrow!

Now, going back to release mode :-)

Friday 1 April 2011

Delaying GNOME 3.0, again

Update: in case people had any doubt, this was an April 1st joke :-)

The Bangalore Hackfest was really useful for the release team to evaluate the status of GNOME 3. We really want GNOME 3 to be amazing, and various recent events lead us to wonder if doing the release next week is a good thing; we had a lot of discussion and meetings, and we even had a call with the Board to evaluate different options.

It was not an easy decision, but after announcing that GNOME 3 would occur in September 2010 instead of March 2010 as originally planned, and then pushing it back to March 2011, we have to announce another delay: GNOME 3.0 is now scheduled for September 2011.

The announcement linked above explains the various reasons for this decision, which was really hard to take. You can also go read the next mail I sent afterwards to the same mailing list for more information. I really want to thank all the community for their hard work, and everybody should just keep rocking. Because what we achieved so far is still pretty impressive.

Of course, this changes a bit the topic for the talks we're going to deliver to the GNOME.Asia conference, especially my keynote scheduled tomorrow on April 2nd...

by Vincent