andré klapper aklapper/guadec2010/projects-in-need.pdf · the reality translators waste time...
TRANSCRIPT
Identifyingsoftware projects & translation teams in
need
André Klapper <[email protected]>
GUADEC 2010, Den Haag
One line about the author
Bugs | R-T | L10N | CZ |
What this talk is about
● Lots of software modules & human languages● Persons and their actions● Contributors● ⇒ Indicators for manpower that just exists on
paper but not in reality● ⇒ Indicators for dangerous project states
„Indicators“.Not: proof.
⇒ Still needs manual checking.
„Abandoned“?
Manual checking needed, because:● Obsolete / Legacy as not needed anymore
(e.g. gnome-vfs superseded by gvfs) fine⇒● Bug-free, feature-complete, perfect! fine⇒● Maintainer AWOL (away without official leave)
bad⇒
What this talk is not about
● Missing manpower in general – Every project and team would like to have more people.
The perfect world
The perfect world
● Maintainer / language team coordinator realizes inability to be a good maintainer anymore
● Already has a new maintainer in mind, or● Posts on mailing list and/or blogs about
searching for new maintainer● Volunteers come up and become new
maintainers; old maintainer resigns● ⇒ Progress instead of stagnation
The nearly perfect world
The nearly perfect world
● Somebody asks how to help in a specific project (Mailinglist, IRC)
● Gets a response to contact the maintainer● Contacts the maintainer● Receives a response by maintainer who says
„I'm short in time“ and offers hand-over.● Becomes the new maintainer● ⇒ Progress instead of stagnation
The (nearly) perfect world
Examples for new GNOME module maintainers in 2009:
● Adam Plumb (nautilus-python)● Milan Bouchet-Valat (gnome-system-tools)● Pierre Wieser (nautilus-actions)● Patrick Welche (Dasher)
The reality
The reality
● Translators waste time translating unused modules that will never see a release again.
● Newbies want to help developing and attach patches in Bugzilla. Bitrot without any attention.
● People that don't know where and how to escalate in such cases.
● Newbies lose interest to continue contributing.● ⇒ Stagnation instead of progress.● ⇒ Negative first impression for new contributor
The reality
Contributors = Volunteers
„Volunteers“ =
Don't have to do it.
Can walk away again.
Some ideas
Modules: Git
Idea:● „git log“ in every module● Amount of recent commits● Number of different committers/authors
Modules: Git: Problems
● Some committers use several email addresses● TODO: Exclude /po subdirectory
Modules: Bugzilla
Idea:● Query bugzilla.gnome.org● Number of bug reports recently (2yrs) filed● Number of bug reports recently closed as
RESOLVED FIXED or RESOLVED WONTFIX
Modules: Bugzilla: Problems
● Only popular and established modules get a higher number of bug reports / Data for smaller modules not significant
Translations: Git
Idea:● „git log“ in /po subdirectories of every module
for every language team
Translations: Git: Problems
● Changes by non-translators (e.g. mass-edit of a typo in a msgid string)
● Does not include User Docs (help/po | docs/po)● Norwegian: nb/nn/no, Serbian: Cyrillic/Latin etc● If ALL languages for a module under certain
threshold it might not be lazy translation teams but the module very stable wrt strings. Or dead.
● Bad results for newly established translation teams
Translations: Bugzilla
Idea:● Query bugzilla.gnome.org● Number of bug reports recently filed● Number of bug reports recently closed as
RESOLVED FIXED or RESOLVED WONTFIX
Translations: Bugzilla: Problems
● Only few L10N bug reports in general● If amount of language speakers high more ⇒
bug reports; more likely an active team exists● If amount of language speakers low few bug ⇒
reports; more likely a team does not exist
⇒ results are insignificant
Translations: damned-lies
● Idea: Use damned-lies on l10n.gnome.org● Language coverage (%) stats of 2.24 to 2.30 at
http://l10n.gnome.org/releases/compare/ui/8-12-13-16/
● Amount of translation team members
Translations: damned-lies: Problems
● Not all teams use l10n.gnome.org/damned-lies and its workflow
Some partial results
Modules
Number of Git commits
● 710 modules in git.gnome.org● 135 modules with 0 commits in last 2 years ● 125 modules with ≤10 commits in last 2 years
Number of Git commits
● 135 modules with 0 commits in last 2 years:● accroc, assetmlweb, asyncworker, bin, blogs-web, bookworm, bugmasters, bugzilla.gnome.org,
build, buildbot-web, cairoio, camel-imap4, camtrack, chessclock, cifrado, coaster, cvs-web, CWordHelper, dashboard, dbus-hook, denzil, dia-web, dogtail-tests, eazel-tools, epiphany-mono, evo-conversation, evolution-monoembed, evolution-xmltv, flow, foiegras, foocanvas, gci, gconf-apoc, gdip-pixbuf-loader, gdome2, gecko-embed, gegl-web, gfax, gimp-data-extras, gimp-resource-repository, gio, giomm, giulia, giv, glade--, gle, glightoff, gnome-art-tool, gnome-audio, gnome-braille, gnome-db-web, gnome-docu, gnome-gecko-embed, gnome-lokkit, gnomemm, gnomemm_docs, gnomemm_hello, gnome-panel-extensions, gnome-printer-add, gnome-reset, gnome-session-manager, gnome-smproxy, gnome-startup-profiling, gnome-test-specs, gnome-vfs-monikers, gnome-xcf-thumbnailer, gobject-npapi, gopersist, gppthtml, gruler, gshrooms, gstreamermm-plugins-good, gtkimageviewer, gtkmm_hello, gtkmm-root, gtkmozembedmm, gtkvts, gw-web, halloween, horizon, im-canna, jhfarmer, kanjipad, kbdraw, libbacon, libcm, libgnomeservice, libgswitchit, libguniqueapp, libinotify, libipoddevice, libredcarpet, livecd-project, local-export-daemon, loudmouth, ludwig, memprof-web, microtinder, Mocca, mozilla-bonobo, muine-shell, nautilus-locked-folder, nautilus-revisioning, orbitcpp, pango-profile, perl-GStreamer-GConf, perl-Gtk2-Recent, perl-Gtk2-SourceView, perl-Gtk2-TrayIcon, perl-Gtk2-TrayManager, popt, porting-doc, present, proximo, pygnome-hello, pyspi, rcd, rcd-modules, rcd-mp, rc-python-libs, rug, sarma, search-party, silky-www, siobhan, snark, svn-migration, tepache, timeline, usability-web, wallpaper-web, web-gtkorg, web-mirror, wiki-web, yarrr
Number of Git commits
● 125 modules with 10 commits in last 2 years:⩽● asbestos, gconf-dconf-bridge, gimp-perl, gnome-cookbook, gperfmeter, libsounds, libtruthiness,
lock-service, nautilus-image-converter, perl-Gnome2-Canvas, perl-Gnome2-Dia, perl-Gnome2-GConf, perl-Gnome2-Print, perl-Gnome2-VFS, perl-Gnome2-Wnck, perl-Gtk2-GLExt, perl-Gtk2-Html2, perl-Gtk2-Spell, at-poke, bugzwerk, desktop-data-model, evolution-brainread, gdesklets-extras, gimp-plugin-template, gnome-alsamixer, gnome-chess, gnome-jabber, gnome-raw-thumbnailer, gtkglext-sharp, lsr, model-examples, msm, nautilus-gtkhtml, nautilus-rpm, seed-examples, silky, socorro, vicious-extensions, api-web, cupid, dbus-inspector, drwright, gade, gimp-freetype, gimp-pspi, gnome-mime-data, hardware-device-themes, libgnetwork, libmimedir, medusa, perl-Gtk2-GladeXML, pygtkglext, vmx-manager, drgeo, gail, gfloppy, gnome-docker, gtkhtml2, gtkmathview, gupnp-ui, libart_lgpl, libgircclient, nautilus-rc, perl-ExtUtils-PkgConfig, perl-Gnome2, usability-lab, bprof, cowbell, drivel, glade, gnome-i18n, gnome-nds-thumbnailer, gnome-torrent, gnomeweb-plone, gsettings-desktop-schemas, gtetrinet, libchamplainmm, mhonarc, mlview, perl-Gnome2-PanelApplet, perl-Gnome2-Vte, vcs-mirror, bprobe, divifund, gdesklets, jumpnbumpmenu, libbtctl, libgnomecanvasmm, mail-web, nautilus-media, nautilus-vcs, svn-web, bookmark-applet, clutter-gstreamermm, gio-strigi, gnome-sound-theme, guikachu, libgnomedbmm, mcatalog, perl-Gtk2-MozEmbed, pyorbit, torrent-web, viewcvs-web, eggcups, gnome-network, gnome-vfsmm, libcroco, mango, pan, perl-Goo-Canvas, capuchin, gnome-pkgview, gtkglextmm, libgail-gnome, libgnomemm, libgnomeuimm, monster-masher, firestarter, gnet, gnome-desktop-testing, gnome-edu, libnotifymm, libpanelappletmm, opengl-glib, sodipodi,
Bugzilla activity
● 496 modules in bugzilla.gnome.org● 170 modules with no reports closed as FIXED
or WONTFIX in the last two years● One idea: New bug reports / Fixed|Wontfix bug
reports in the last two years data not helpful ⇒(yet), e.g. for modules with lots of crasher duplicate reports, or small amounts of reports
Number of Git Commits / Number of different authors
● Commits / Number of different authors● Results not convincing for small and big
modules not helpful⇒
Number of Git Commits / Number of commits by most active author
„The bus factor“● 0% < x ≤ 20%: 113 modules● 20% < x ≤ 40%: 158 modules● 40% < x ≤ 60%: 136 modules● 60% < x ≤ 80%: 72 modules● 80% < x < 100%:47 modules● 100%: 55 modules (Bus factor)
Translations
Damned Lies coverage statsD
ata
from
ht
tp:/ /
l10n
. gno
me.
org/
rele
ases
/ co
mp a
re/u
i/8-1
2-1
3- 1
6/
Number of Git commits
⇒ 0-2 commits in 2 years: an, bal, bem, dv, ff, fur, gn, ha, km, ks, ky, nap, tg, yo, zh_trad, zu
Number of Git commits / Number of team members in Damned-Lies
⇒ Insignificant results; not a helpful approach
Damned Lies coverage / Number of team members in Damned Lies
Problems & Combining data (to do)
Problems
Problems:● Not all modules in GNOME Bugzilla have their
codebases in GNOME Git (and vice versa)● L10N: Languages vs Translation teams● L10N: Sort by language name vs ISO639
Modules
General Git activity
Bugzilla activity
Git Committers
Translations
Damned Lies
Bugzilla activity
General Git activity
To do: Combining data
● Define thresholds (e.g. minimum number of existing bug reports for $module for Bugzilla results to be taken into account)
● Weight the useful data sources (Git, Bugzilla, l10n) & find a formula for combining them, e.g.
$module: 0.7*(Damned Lies)+0.3*(Git commits)● Define threshold for results (at which value
does a module's situation become potentially dangerous and should be investigated?)
Act.
Contact people
● Maintainer / coordinator email available from MAINTAINERS git file, Bugzilla, l10n.gnome.org
● Actively contact teams / maintainers of projects / languages that look suspicious and ask for reasons (no interest anymore, reallife, no community around (cf. http://blogs.gnome.org/ otte/2008/12/18/on-loneliness/), superseded?)
Make public
● Make need for help public (contact downstream translation teams, blog/post if new module maintainers are needed?)
⇒ Create a new team in GNOME for this area?
Other ideas
Other Ideas / Improvements
● Bottlenecks in support processes? (getting Git access; direct Git commit from l10n.gnome.org)
● Damned-lies: Average time between translation upload and „committed“ status (review speed)
● Bugzilla: Average time between bug report and first comment on it and/or RESOLVED state
● Bugzilla: Add warning for reporters about low Git activity and contact info (maintainer, or a potential new GNOME team)?
● Damned-lies: Similar „low priority“ warning?
Other Ideas
● Social interactions – e.g. Paul Adams for KdePIM: http://blogs.fsfe.org/padams/?p=18
● Set #bugreports in relation to lines of code?● <insert_here>...?
Other ideas:Questionnaire for new maintainers
● Community and long-term developers existing?● Communication channels existing and used
(IRC, mailing lists, blogs)?● Clear instructions what to do after becoming a
maintainer? (Bugzilla, Git, release procedures)● Does the former maintainer still support you in
case of technical questions?● Did you feel "welcome" in the GNOME
community and if so, why?● Would you do it again?
Thanks
For code help, data, discussion, pictures:
Blaizzen on talk.maemo.org
Karsten Bräckelmann
Benjamin Bunzel
Lenka Čvančarová
Jiří Eischmann
Santiago Fariña
Javier Jardón
Claude Paroz
Olav Vitters
Feedback / Data / Discussion
● <mailto:[email protected]>● Code (sh), slides (pdf/odp), data (cvs/odt) at:
<http://www.gnome.org/~aklapper/guadec2010>● (set up a mailing list if folks are interested?)