Dev call 1/27/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

  • we're really close to a release candidate now--just squaring away some issues that have popped up and letting the code bake

Miro Community 1.0 status (roadmap)

  • we're working on 1.0 now--probably a 4-6 week dev cycle

Ben

  • Fixed bugs.

  • Feeling great about 3.0.

  • Has a few more things to do, but is pretty much set for 3.0 things.

Luc

  • Fixed bugs for 3.0.

  • Worked on testing. Started seeing memory leak issues.

  • We can release even with the Perian issue as long as we mention the issue in the release notes.

Janet

  • Going through testing and bugs and keeping up with changes.

  • We're really close to release-candidate worthy.

  • Worked on performance testing and testing on OSX--lots of performance fixes in 3.0.

Will

  • Fixed bugs.

Paul

  • Worked on Miro Community post 0.9 issues.

  • Now working on 1.0. Looking at a 4-6 week time frame.

bugzilla

  • 33 bugs/feature-requests created

  • 3 bugs marked DUPLICATE

  • 23 bugs marked FIXED

Dev call 1/27/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

  • went through P1s one by one to figure out where we were with them all

  • need help testing

  • shooting for a release candidate as soon as we can

Miro Community 1.0 status (roadmap)

  • Miro Community 0.9 was released!

  • working on 1.0 now

Paul

  • rolled out Miro Community 0.9 (w00t!)

  • 308 Miro Communities out there

  • working on 1.0 now

Janet

  • split time between testing Miro Community and Miro

  • working on Miro regression testing

  • continued building regression tests in Eggplant

Luc

  • got his Internet connection back (w00t!)

  • updated overlay pallette in OSX code to display subtitle items all the time

  • worked on slow first-playback issue on OSX

  • reimplemented MultilineTextEntry for OSX widgets

  • worked on fixing up Edit Item dialog

  • tracked down Perian developers and asked about their release timeframe for 1.2.1

Ben

  • worked on a ton of Miro 3.0 bugs

  • working on VLC playback issues; testing out vlc bindings

Will

  • reworked GStreamer playback video renderer

  • did a huge pylint pass

bugzilla

  • 24 bugs/feature-requests created

  • 5 bugs marked WORKSFORME

  • 1 bugs marked INVALID

  • 2 bugs marked DUPLICATE

  • 3 bugs marked WONTFIX

  • 19 bugs marked FIXED

  • 3 bugs marked INCOMPLETE

Handling media keys in GNOME with Python

Spent a while figuring out how to get Miro to handle media keys in Gnome. My current understanding (and this could be entirely wrong) is that as of 2.18, Gnome handles the multimedia keys. In order for your application to respond to multimedia keys, you have to connect to the signal through dbus.

My biggest problem is that my web searching revealed a lot of bugs, but no documentation. I did finally find Handling multimedia keys in GNOME 2.18 and then worked out the rest. I still have no clue where to find the documentation for it.

Here's what I got working:

import logging
import dbus

from miro import app

class MediaKeyHandler(object):
    def __init__(self, window):
        self.app = "Miro"
        self.bus = dbus.Bus(dbus.Bus.TYPE_SESSION)
        self.bus_object = self.bus.get_object(
            'org.gnome.SettingsDaemon', '/org/gnome/SettingsDaemon/MediaKeys')

        self.bus_object.GrabMediaPlayerKeys(
            self.app, 0, dbus_interface='org.gnome.SettingsDaemon.MediaKeys')

        self.bus_object.connect_to_signal(
            'MediaPlayerKeyPressed', self.handle_mediakey)

        window.connect("focus-in-event", self.on_window_focus)

    def handle_mediakey(self, application, *mmkeys):
        if application != self.app:
            return
        for key in mmkeys:
            if key == "Play":
                app.widgetapp.on_play_clicked()
            elif key == "Stop":
                app.widgetapp.on_stop_clicked()
            elif key == "Next":
                app.widgetapp.on_forward_clicked()
            elif key == "Previous":
                app.widgetapp.on_previous_clicked()

    def on_window_focus(self, window):
        self.bus_object.GrabMediaPlayerKeys(
            self.app, 0, dbus_interface='org.gnome.SettingsDaemon.MediaKeys')
        return False

def get_media_key_handler(window):
    """
    Creates and returns a MediaKeyHandler or returns None if such a thing
    is not available on this platform.

    :param window: a Gtk.Window instance
    """
    try:
        return MediaKeyHandler(window)
    except dbus.DBusException:
        logging.exception("cannot load MediaKeyHandler")

If you see problems with this, let me know so I can ammend the code.

Update:

November 5th, 2010 - Fixed a bug in the code.

November 9th, 2010 - Tweaked the code to re-assert key handling on focus.

How can I help?

I keep seeing people say things like, "I'm not a programmer, so I can't help."

I think this is a common misconception about Free Software. Free Software empowers you. Let me say that again...

Free Software EMPOWERS You.

Miro is a Free Software project and like all Free Software projects, there are a variety of ways that you can be involved. By being involved you are taking the responsibility to help solve your own problems.

You can test nightly builds and release candidates.

You can submit bugs and help us triage and fix them.

You can send in patches. Patches can be for code, documentation, packaging, ...

You can package Miro for other distributions.

You can translate strings.

You can tell your friends and family about Miro and help them get setup. You can blog about Miro. You can dent about Miro.

You can adopt a line of code. This helps fund ongoing development. If we had more funds, we could have more paid developers.

Miro is built and maintained by all of us working together contributing our time and resources. There are features to be implemented, bugs to be squashed, systems and software to integrate with, standards to develop--the future is great with possibilities. There's a lot of stuff that can be done and you can help the Miro community do it.

2.6 is now 3.0

On the dev conference call today we talked about how many things have been fixed, changed, implemented, et al in the Miro 2.6 development cycle. We decided this isn't a .1 improvement--it should get it's own major version number.

As such, we're changing the version number for the next version of Miro from 2.6 to 3.0.

The effects of this are pretty small--it's just a name change. However, our Bugzilla Roadmap urls are specific to a version.

Instead of using:

http://bugzilla.pculture.org/roadmap.cgi?product=Miro&target=2.6

Use this:

http://bugzilla.pculture.org/roadmap.cgi?product=Miro&target=3.0

Dev call 1/20/2010 minutes

minutes

Miro 3.0 status (roadmap) (was Miro 2.6)

  • went through the last P1 bugs one by one

  • need more outside testing

  • shooting for a release candidate next week

  • renaming to Miro 3.0

Miro Community 0.9 status (roadmap)

  • 0.9 will get released monday (new themes, new awesome, ...)

  • almost there.... doing bug fixes now

Janet

  • spent time regression testing on Windows and OSX

  • worked on subtitle support tests

  • worked on eggplant tests

  • planning to work on Miro Community 0.9 testing for the rest of the week

Ben

  • worked on getting external subtitle files working with vlc

  • working on other vlc quirkiness

  • worked on some other stuff

Will

  • synced translations, finished up dependency upgrades on Windows, fixed gst_extractor, fixed moviedata_util, fixed a bunch of little bugs, added tests, peer reviewed code, updated copyright dates, upgraded to libtorrent 0.14.8, did some bug triage, and implemented most of the item edit dialog.

  • has a week or two of work left on Miro 3.0

Paul

  • worked on the last feature bits for 0.9

  • working on bug fixes now--almost done

bugzilla

  • 26 bugs/feature-requests created

  • 21 bugs marked FIXED

  • 5 bugs marked WORKSFORME

  • 3 bugs marked INVALID

Dev call 1/13/2010 minutes

minutes

Miro 2.6 status (roadmap)

  • Waiting on Perian fix.

  • Getting close to feature freeze.

Miro Community 0.9 status (roadmap)

  • Developing is coming along very nicely.

Janet

  • Worked on regression testing, found some issues which were fixed.

  • Working on building automated tests with Eggplant.

Luc

  • Worked on issues for 2.6.

  • Followed Ben's footsteps. Fixed mediatype checking working, sidebar update indicators, and some other things.

  • Worked on sidebar scrollbar issues.

  • Working on connecting subtitle files with items.

  • Most recent bugs are taking a lot longer.

Will

  • Had a crummy week.

  • Fixed some issues, but didn't get much of what he wanted done.

Ben

  • Implemented media type checking.

  • Animated the update indicator in the sidebar.

  • Fixed the Windows shutdown crash bug.

  • Totally awesome performance fixes.

  • Fixed a bunch of other issues.

Paul

  • Implemented editor comments.

  • Worked on flat pages.

  • Worked on Miro Community 0.9 stuff--it's coming along nicely.

bugzilla

  • 26 bugs/feature-requests created

  • 11 bugs marked FIXED

  • 1 bugs marked WORKSFORME

  • 1 bugs marked INVALID

Dev call 1/6/2010 minutes

minutes

Miro 2.6 status (roadmap)

  • Ben landed a ton of awesome performance fixes.

  • Will worked on fixing unit tests and getting unit tests to pass on Windows.

  • Development is progressing nicely.

Miro Community 0.9 status (roadmap)

  • Paul is working diligently on it.

Janet

  • worked on tests Miro Community

  • worked on tests for getmiro.com

  • started working with Eggplant to writing automation tests for Miro but ran into a problem with text recognition

  • went through the regression tests with Miro and only found a few issues

Will

  • working on the Windows build box and trying to figure out why it hangs at night like a naughty naughty machine

  • spent serious quality time with unit tests; more to do, though

Luc

  • working on small irritating bugs that are hard to reproduce and some of them seem to work fine (i.e. no bug)

  • working on support for connecting subtitle files to videos

  • talked with Perian folks and they fixed the bug Luc submitted; we're waiting on the next version of Perian

Paul

  • was on vacation most of last week

  • working on Miro Community 0.9 things

bugzilla

  • 11 bugs/feature-requests created

  • 2 bugs marked WORKSFORME

  • 2 bugs marked INVALID

  • 2 bugs marked DUPLICATE

  • 4 bugs marked FIXED

  • 2 bugs marked INCOMPLETE

Year end: 2009

This was a pretty big year for the Miro project and the first year for the Miro Community project. In Miro-land, we pushed out Miro 2.0 which was a complete re-write of the user interface. Then we pushed out Miro 2.5 which was a rewrite of the storage/database layer. We also switched from svn to git. That's three really big changes for a single project in one year.

Miro 2.5 was a messy release and we've made a bunch of changes so we don't have to go through that again. We've been spending time on the unit test, QA automation, and code quality for Miro 2.6. We've changed the release process so that it buffers more time to catch issues. We're doing more peer review of complex code changes. The switch to git will help since branching and merging are much easier and less error-prone.

Bugzilla stats:

Overall statistics
------------------
                                  2007  2008  2009
Opened reports at end of year:     453   705  1102
Opened:                           4052  1625  1593
Closed:                           4368  2032  1654
Users created:                     644  1083   771
Comments created:                13564  7529  8329

"Opened reports at end of year" is the total number of opened bugs at the end of that year. So at the end of 2007, we had 453 open bugs. At the end of 2008, we had 705 open bugs, ...

I wasn't sure whether to include 2007 or not since half way through that year we switched from Trac to Bugzilla. No one needed to create an account in Trac, so user numbers should be lower. Also, we were getting a lot of Trac spam, so comment, opened and closed numbers were much higher.

Bugs closed by activity:
------------------------
             2007  2008  2009
fixed         736   932   969
invalid       170   133    85
wontfix        35   142    71
duplicate     139   313   190
worksforme    169   344   151
incomplete      0    57    84

I thought this was an interesting data set.

The INCOMPLETE status was added mid-2008. We use this for whenever we ask a user for some information that we need to work on a bug and the user never gets back to us. It's better than marking it as INVALID or WORKSFORME since it's easier to find this set of bugs that were pushed to the side because need more information.

We're fixing on average 3 bugs a day--that's pretty impressive.

Top 10 bug reporters:
--------------------
   444 - Janet (PCF)
   183 - Anne Jonas (PCF)
    71 - Will Kahn-Greene (PCF)
    71 - Dean Jansen (PCF)
    42 - Nicholas Reville (PCF)
    39 - sg
    37 - Keith Lard
    28 - Uwe Hermann
    28 - Ben Dean-Kawamura (PCF)
    22 - Pan  ~ dietmar

Out of 1593 bugs, PCF employees reported 839--that's just over half. Of the non-PCF people in this list, Uwe is the Debian packager for Miro and Pan is an OpenSUSE packager for Miro. sg and Keith Lard both run OSX.

Top 10 bug closers:
------------------
   421 - Janet (PCF)
   369 - Paul Swartz (PCF)
   353 - Will Kahn-Greene (PCF)
   195 - Ben Dean-Kawamura (PCF)
   114 - Luc Heinrich (PCF)
    26 - Christopher Webber (PCF)
    21 - Dean Jansen (PCF)
    20 - sg
    19 - Anne Jonas (PCF)
    14 - Nicholas Reville (PCF)
Top 10 bug commenters:
---------------------
  2050 - Janet (PCF)
  1757 - Will Kahn-Greene (PCF)
   823 - Paul Swartz (PCF)
   533 - Ben Dean-Kawamura (PCF)
   354 - Anne Jonas (PCF)
   254 - Nicholas Reville (PCF)
   234 - Dean Jansen (PCF)
   187 - Luc Heinrich (PCF)
    98 - sg
    88 - Uwe Hermann

Git stats

Moving along, I can now get stats out of our git repository. git ftw!

In 2009, we did 11 releases (22 releases if you include release candidates) of which 2 were MASSIVE code overhaul releases. Miro 2.0 involved a re-write of the user interface using native widgets which resulted us in dropping 4,000 files from the codebase (a large portion of that was probably locale-related). Miro 2.5 involved a re-write of the database layer. We had a lot of bug fix releases to stabilize things after these two big releases.

Between Miro 1.0 and 1.1: 1606 files changed, 127775 insertions(+), 14605 deletions(-)

Between Miro 1.1 and 1.2: 2318 files changed, 233370 insertions(+), 185511 deletions(-)

Between Miro v1.2 and v2.0: 4715 files changed, 271506 insertions(+), 560366 deletions(-)

Between Miro v2.0 and v2.5: 662 files changed, 169258 insertions(+), 175292 deletions(-)

Half of the 2.0 work and all of the 2.5 work was done in 2009. 2.0 was clearly a monumental release like no other release we've ever done.

In 2009, we did 1,382 commits. For comparison, we did 2,049 commits in 2008. The bulk of the work for Miro 2.0 was done at the end of 2008--I think that accounts for the large discrepancy here.

Contributor stats

I don't have stats for testing contributions or translation contributions so I can't speak to those. I can only speak to patches and bug triage contributions.

In 2009, we had 19 contributed fixes/features. PCF employees are doing the bulk of the work. This is still an area we could use help with.

In 2009, we've done a lot to lower the barriers to entry and make this easier: improved code quality, wrote documentation, improved build documentation, improved build scripts, added unit tests, ... In 2010, we're continuing this work.

Summary

Despite the Miro 2.5 release which was pretty rocky, I think we had a really good year and got a lot accomplished. I'm looking forward to Miro 2.6 (or whatever the next release gets called).

I'd love to see more contributions from other people. If you have some free time or some passion and want to help out, let me know. If you don't have free time, but have some spare change floating around, please donate--this helps PCF pay for employees to work on Miro.

Dev call 12/23/2009 minutes

minutes

Miro 2.6 status (roadmap)

  • it's coming along

Miro Community 0.9 status (roadmap)

  • it's coming along

Paul

  • working towards the 0.9 Miro Community release

  • tweaking the Windows installer and trying out another installer partner

Luc

  • fixing browser-related issues

  • working on more Miro 2.6 bugs

Will

  • updated the binary kits to libtorrent 0.14.7

  • spent time looking at sphinx-gsoc2009 to see if it was usable for a Miro User Manual--it's not

Janet

  • working on Miro Community testing

  • started to do performance comparisons between Miro 2.5.4 and what's in master after Ben's and Will's performace fixes

  • got a license for Eggplant for Miro interface testing

Ben

  • worked on performance work that makes things a lot faster for certain operations

  • has one additional thing to check in performance wise

bugzilla

  • 4 bugs/feature-requests created

  • 3 bugs marked DUPLICATE

  • 7 bugs marked FIXED

notes

We're working on Miro 2.6 targeted bugs. If there are issues that should be targeted for 2.6, let us know. If there's anything you can help with either by adding information or contributing patches to any of the bugs targeted for Miro 2.6, please do!