Bug hitlist, first week of May

Hooray, hooray, the first of May, Metacity unit and regression testing begins today. Okay, so it doesn’t scan as well as the original, but it’s almost as exciting. Well, perhaps. I (Thomas) am planning the framework at present, have something fairly solid in my head now, and will probably post something up here in the next few days when I have it planned out so everyone else can argue it :)

As well as this, here are the bugs on the front burner for me for this week: if you want something else fixed, talk to us about it (and send us patches!):

* GNOME bug 499996 (possibly aka Debian bug 443933 possibly aka Debian bug 460712)
* Launchpad bug 221144 (possibly aka Debian bug 476386) (may be related to the above, although perhaps not)
* Launchpad bug 216049 – restore to wrong workspace
* GNOME bug 468075 aka Launchpad bug 133541 – vertical maximisation ignores struts, apparent regression
* GNOME bug 528927 — something to do with _net_wm_state_demands_attention, details a little unclear
If you think it should be different, feel free to advocate below.

Are there distributions not using Launchpad which have a systematic way to link to upstream bugs that we could make use of for keeping people installed?

This is the first time we’ve used the new “bug hitlist” tag, which may become partly automated like Metacity Journal is. If you’re working on a bug in Metacity and you have an @gnome.org address, feel free to post bug hitlist entries; if you are and you don’t, feel free to comment to one of them and ask for one to be made or added to.

I shall post Metacity Journal tomorrow, I think, but I just wanted to acknowledge the particular good contributions that Santanu Chatterjee has been making on fixing problems with keyboard grabs during drag-and-drop.

2.23.13 out

What is it ?

Metacity is a simple compositing window manager that integrates nicely with GNOME 2.

What’s changed ?

Thanks to Erwann Chenede and Carlos Garnacho for improvements in this version.

  • Re-enable cascading (Erwann) (GNOME bug #529925)
  • Propagate opacity to frame windows (spec compliance!) (Carlos)

Translations
None this time!

Where can I get it ?

http://download.gnome.org/sources/metacity/2.23/

c1c7f4ce88c42515917278d136080537 bzip2
5071f294e6fd4829db60fe7a6a5c705c gzip

2008-04-27: Metacity given enough eyeballs

Ye Olde Fighting Cocks, St Albans. Photo by Gary Houston, public domain.

Eric Raymond has proposed in his essay “The Cathedral and the Bazaar” that given enough eyeballs, all bugs are shallow, using Linux as a particular example. The idea may be true in the abstract, but in practice even if a project has many users it won’t necessarily have enough eyeballs, and most users of the program would just never be inspired to take printouts of the code to bed: sometimes this is because most users of the program aren’t programmers, other times, because the code is badly-commented and obscure, and still other times because maintenance, frankly, often doesn’t seem immediately as much fun as new development. (Not that long ago, someone sent PostSecret the back of a packet of Viagra where they’d scribbled: “These are for my wife’s benefit. When I’m with my new love interest, I don’t need them.”)

But does this mean that we should just throw out reliable code every five years? By no means! That would just mean we had to go over and over through teething troubles and never reach maturity. What we need is a way to make this code maintainable, so that it may asymptotically approach perfection, firstly by maintainable coding practices and secondly by having external support systems. (Knuth has the asymptotic perfection approach to development of TEΧ, of course; interestingly he also recently said that the idea of unit testing didn’t appeal to him because he rarely needed feedback on what would work and what wouldn’t; James Cape pointed out that this runs rather counter to the idea of code maintenance.) Elijah used the analogy of being dropped in an unfamiliar town with no street signs, but in the end it should be possible to drop people in the town and expect them to find their way, given some help.

The kernel does have this kind of structure, of course, and that’s part of why it can be used as an example of the “given enough eyeballs” dictum in the first place. The challenge for the rest of us is to find ways to help paint the street signs, both through keeping the code maintainable and through external structures.

This is all written from Thomas’s private opinion, and not the opinion of Metacity or GNOME or anyone else, really. But this is here to say that a year ago Thomas, in fixing a complicated bug, accidentally removed Metacity’s ability to stack up several small windows in a cascade. On Friday, in GNOME bug 529925, Erwann Chenede found the two missing lines and put them back in. A release is imminent. I am heartened that Erwann read the code, arrived out of the blue, and found the bug. And I would like Metacity to have the sort of code where people take the printouts to bed to read.

(Ah, so good to see the script picked a photo of the Fighting Cocks for this entry where I’ve had many happy conversations over many pints.)

Bugs

Much busy activity, especially with making sure our bug tracker knows about everything Launchpad knows about Metacity; in particular,

  • GNOME bug 530056 – someone says Metacity becomes a zombie process when you start evince. Anyone else seen this? It’s never happened to me.

Checkins on trunk

Links

Hmm, kind of quiet.

Translations

  • On branches/gnome-2-22: et by plaes, he by yairhr, nn by eskildh, tr by bcicek
  • On trunk: es by jorgegonz, he by yairhr, nn by eskildh, sl by mateju, tr by bcicek

Photo: Ye Olde Fighting Cocks, St Albans. Photo by Gary Houston, public domain.

2008-04-16: an abbreviated Metacity Journal just to get back into the swing of things

The Robin Hood, St Albans. Photo by Gary Houston, public domain.

Checkins on trunk

LinksI’m seeing quite a theme of comparisons with Compiz here.

Translations

  • On branches/gnome-2-22: he by yairhr, nn by eskildh, tr by bcicek
  • On trunk: es by jorgegonz, he by yairhr, nn by eskildh, sl by mateju, tr by bcicek

Photo: The Robin Hood, St Albans. Photo by Gary Houston, public domain.

Zenity

This post is a presentation of the ideas behind GNOME bug 521914.

At present, we ship a program called metacity-dialog, which is often to be found as the sole occupant of /usr/lib/metacity, and it gets spawned on the rare occasions when Metacity needs to ask the user a question. For example, if you attempt to close a window, Metacity asks the permission of the program which owns it; if nothing is heard back from that program within a reasonable time, Metacity spawns metacity-dialog to ask the user whether the window should be closed by force.

There are only three occasions when Metacity needs to ask such questions, and metacity-dialog has ad hoc code for each, with the usual problems attendant on ad hoc code. When there’s any difficulty with metacity-dialog (see, for example, Debian bug 427406), reproducing the fault can be pretty difficult.

GNOME also includes another program called zenity, whose purpose is to pop up and ask questions in just this way. Zenity is stable, polished, and well-understood. With the closing of GNOME bug 335763, zenity’s abilities are now a superset of metacity-dialog’s. It would be a simple matter to remove metacity-dialog from the codebase, and use zenity instead.

The only difficulty I can see is that in some distros it may not always be true that if Metacity is installed, zenity will be too, and it may be difficult to add this as a dependency. Of course, they can always patch and keep metacity-dialog; what do you folks think?

Photo by Dave Spellman; cc-by-nc.

2008-03-30: Metacity Journal: out like a lion

The White Hart, St Albans. Photo by Gary Houston, public domain.Here we are again. It’s been a hectic few weeks and the backlog has built up a lot, so we’ll just talk about the most recent couple of days.

There’s been an effort to get all unanswered bugs answered. The next step is to go through all NEEDINFO bugs and close as appropriate, and then group all policy questions together and try to find answers to them.

You are invited to share your opinion on, and help out with, any of the following:

Bugs

  • GNOME bug 490668 – When Metacity starts up, nothing has focus. This isn’t beautiful, but more importantly it confuses accessibility software.
  • GNOME bug 491090 – on startup, minimised windows are not dealt with correctly; this was actually fixed in 2.20 and never fixed in trunk; now fixed
  • GNOME bug 511826 – we don’t pick up colour changes when GTK themes change (unless this is a GTK bug; someone needs to investigate)
  • GNOME bug 516088 – the drop shadow on the panel doesn’t show after login (for some people)
  • GNOME bug 517429 – workspace and ctrl-alt-tab switchers should be compositorified like the alt-tab switcher
  • GNOME bug 521914 – use zenity: see “Policy Changes”, below
  • GNOME bug 522166 – compositor was slowed down; Iain removed the delay; rejoicing
  • GNOME bug 523914 – the window drop shadow is not centred; it shouldn’t be, because lighting is always from the northwest
  • GNOME bug 525051 – bring us into line with new gnome-session rules about .desktop files
  • Launchpad bug #199402 – fix crash in the theme viewer (unusually, this bug was closed before it made its way upstream)

Policy changes

  • GNOME bug 499301: MetaDisplay is now a singleton. meta_displays_list() is replaced by meta_get_display().
  • GNOME bug 521914: we are strongly considering removing metacity-dialog and replacing it with zenity. A separate post on this matter is forthcoming.

New gnome-love bug

  • GNOME bug 524343: Fallback icons should be from stock. This is a trivial fix which should help you learn more about how Metacity works. Come and pester Thomas on IRC (marnanel on irc.gnome.org, channel #gnome) about how to do this if you want to try.

Checkins on trunk

Links

Translations

  • On trunk: es by jorgegonz

Photo: The White Hart, St Albans. Photo by Gary Houston, public domain.

2.23.3

What is it ?

Metacity is a simple compositing window manager that integrates nicely with GNOME 2.

What’s changed ?

Thanks to Marco Pesenti Gritti, Iain Holmes, Josh Lee, Thomas Thurman, and Matthew Wilson for improvements in this version.

– Workspaces whose name is the same as the standard name, plus some string, are not cut off. (Thomas) (GNOME bug 453678)
– Improve compositor performance (Iain) (GNOME bug 522166)
– Draw wallpaper correctly when we start up with compositor (Iain) (GNOME bug 522599)
– Don’t draw shadows on shaped windows unless they have frames (Iain) (GNOME bug 505333)
– Several other smaller compositor fixes (Iain)
– Newly-created keep-above windows get focus (Marco) (GNOME bug 519188)
– Allow moving workspace when dragging with modifier key (Matthew) (GNOME bug 474195)

Translations
Kenneth Nielsen (da), Gabor Kelemen (hu), Vasiliy Faronov (ru), Daniel Nylander (sv), Maxim Dziumanenko (uk), Woodman Tuen (zh_HK)

Where can I get it ?

http://download.gnome.org/sources/metacity/2.23/

1dc28ef6b8da2662caff2b25eca3fda5 bzip2
bb0917ad4f4a9168e9cce6a60bd2dff2 gzip

Logging again

As I mentioned earlier, Metacity has quite a good logging system, but it’s almost never turned on; you have to set some environment variables. If someone reports a bug, we have to ask them specifically to turn it on, and then run Metacity again, and see whether the problem recurs. Federico and Luke suggested earlier that it could be supplanted by a gconf key, which users find easier to turn on and off than an environment variable; I think that’s a generally good idea.

I’m also floating the idea here of encouraging people to log all the time, at least on unstable builds, perhaps by making it the default. In that way, when something went wrong there’d be a logfile to refer to, even when you couldn’t recreate the bug. Obviously you’d be able to turn it off as well.

The files would be dated as Sabayon now can. Since we also have the ability (for session management) to dump a list of window details, it might be useful to dump them in the file when it got closed, too. Perhaps we could do some kind of logrotate thing so that the files didn’t grow like that fish (no, not our own Wanda).

Federico mentions that bug-buddy now has the ability to attach logfiles to bug reports; I think this would be enormously useful, and save us days of debugging time, but is still a bad idea because nobody wants a list of all the names and movements of all their windows for the past few hours attached to a public bug (some people may remember the unfortunate side-effects last year of having a stack trace of someone’s totem process attached in such a way). This is an existing problem, since it’s inherent to the use of logfiles in a window manager, and applies whether the log is supplied by bug-buddy or attached by a human. I’m having trouble thinking of a good way around it.

2.22.0 released

What is it ?

Metacity is a simple window manager that integrates nicely with GNOME 2.

What’s changed ?

Translations
Jordi Mallach (ca), Kostas Papadimas (el), David Lodge (en_GB),
Jorge González (es), Gabor Kelemen (hu), Žygimantas Beručka (lt),
Vasiliy Faronov (ru), Maxim Dziumanenko (uk)

Where can I get it ?

Source code

http://ftp.gnome.org/pub/GNOME/sources/metacity/2.22/

MD5 Sums

8cb6d02cf66a1003532b4f5d2754d696 metacity-2.22.0.tar.bz2
08bc5077b328f15532b3132429ae26e5 metacity-2.22.0.tar.gz

Thank you to my daughter Riordon for helping me with the release :)

Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported.