[SCM] Tools to automatically infer debtags tags branch, master, updated. 42455e63a004d9c980df209cbaf6305cba9e8ffc

Enrico Zini enrico at enricozini.org
Sat Feb 21 20:22:14 UTC 2009


The following commit has been merged in the master branch:
commit 42455e63a004d9c980df209cbaf6305cba9e8ffc
Author: Enrico Zini <enrico at enricozini.org>
Date:   Sat Feb 21 20:22:10 2009 +0000

    Added maint_tags
    
    First attempt at autogenerating some tags about maintenance status

diff --git a/maint_tags b/maint_tags
new file mode 100755
index 0000000..b3c9fd3
--- /dev/null
+++ b/maint_tags
@@ -0,0 +1,143 @@
+#!/usr/bin/python
+
+import psycopg2
+
+conn = psycopg2.connect(host="localhost",port=5441,user="guest",database="udd")
+
+data = dict()
+
+queries = [
+        ("maint::orphaned", """
+select s.package from packages_summary s, orphaned_packages o where s.source = o.source and s.distribution = 'debian' and o.type='O' group by 1
+"""),
+
+        ("maint::rfa", """
+select s.package from packages_summary s, orphaned_packages o where s.source = o.source and s.distribution = 'debian' and o.type='RFA' group by 1
+"""),
+
+        ("maint::old-rc-bugs", """
+select package from bugs where exists (select * from packages_summary where package = bugs.package) and status <> 'done' and severity >= 'serious' and last_modified < current_date - interval '3 months'
+"""),
+
+        ("maint::low-popcon", """
+select package from popcon where insts < (select avg(insts) from popcon)*0.01 and exists (select * from packages_summary where package = popcon.package);
+""")
+]
+
+c = conn.cursor()
+for tag, query in queries:
+    c.execute(query)
+    for row in c:
+        data.setdefault(row[0], set()).add(tag)
+
+
+pkgs = data.keys()
+pkgs.sort()
+for pkg in pkgs:
+    print "%s: %s" % (pkg, ", ".join(sorted(data[pkg])))
+
+
+# Random bits of discussion
+#
+# - low-popularity packages can delegate security to the maintainers
+# - support-level tags
+#   - Auto-generated tags
+#     - MIA maintainer (should get orphaned)
+#     + orphaned
+#     + old RC bugs
+#   - DD-introduced tags in control file
+#     - self-declared fringe package
+#     - self-declared dead-upstream
+#     - self-declared dead-upstream but DD will fix bugs
+#   - What else?
+#     - brainstorm personal best practices/metrics for choosing packages
+#     - package depends on orphaned packages
+#     - development status (alpha, beta, production, ...)
+#     - "I don't use this package anymore" (could be computed by
+#     scanning RFA bugs)
+# 
+#     > Keywords would include buggyness, dead upstream, long-orphaned, long
+#     > time without upload, low popcon.
+#
+# Facet: maint
+# Description: Maintenance status
+#
+# Tag: maint::orphaned
+# Description: Orphaned
+#  There is no maintainer for this package.  Maintenance is done by the Debian QA
+#  Team.
+#  (it can be autogenerated by looking if debian-qa is in the Maintainer field)
+#
+# Tag: maint::rfa
+# Description: Adoption requested
+#  The maintainer is still maintaning the package, but has requestes for someone
+#  else to take over its maintenance.
+#  (it can be autogenerated by scanning open WNPP bugs)
+#
+# Tag: maint::mia
+# Description: Maintainer unreachable
+#  The maintainer for this package is currently unreachable.
+#  (mia-query on merkel shows all sorts of data, but I need to see how it
+#  can be turned in a tag.  It has been suggested that if a maintainer is
+#  MIA, the package should just be orphaned, so this tag would be of no
+#  use, and I tend to agree)
+#
+# Tag: maint::old-rc-bugs
+# Description: Old unfixed RC bugs
+#  The package has unfixed RC bugs older than 3 months.
+#  (it can be autogenerated by scanning the BTS)
+#
+# Tag: maint::fringe
+# Description: Fringe package (FIXME)
+#  The maintainer declared this to be a fringe package.
+#  .
+#  (TODO: define what this practically means)
+#  .
+#  (from IRC) more users == greater level of peer review and peer support?
+#  (maintainers can enter this information in debian/control and I can scan it using Mole)
+#  (Isn't this what Priority: extra is for?)
+#
+# Tag: maint::unmaintained-upstream
+# Description: Unmaintained upstream
+#  The package is not maintained anymore by its upstream developers.
+#  .
+#  Debian still carries on basic maintenance, but no new upstream versions of the
+#  package are to be expected.
+#  (maintainers can enter this information in debian/control and I can scan it using Mole)
+#
+# maint::rfh for RFH bugs should be a trivial extension of this concept.
+#
+# The interesting question would be how to handle ITA bugs. These packages
+# can either be owned by debian-qa (in this case we already have
+# maint::orphaned) or they can be owned by the former maintainer (in case
+# of a fast O -> ITA or in case the ITA is a former RFA).
+#
+#
+# I'm a bit unsure about that one. Having old RC bugs does say nothing
+# about a package without actually reading at least the titles of the bugs
+# in question (think non-free documentation/RFCs vs. "should not go to
+# stable because of instable API/ABI/..." vs. "this is crap, should be
+# removed" vs. "FTBFS in unstable because <random other library> is
+# fucked up"). I see no real information value here.
+#
+# What I would like to see would be a maint:obsolete tag. Can be added
+# to packages that are already removed from unstable and only supported
+# in stable or for packages that are only maintained in unstable for
+# external reasons (like dependencies). Think GNOME 1/GTK 1.2. This would
+# generally be the debtags equivalent to the oldlibs section.
+#
+# For the "removed from unstable" case this would need to be filtered
+# manually probably, since it shouldn't be assigned to libraries in stable
+# just because they had a SONAME change in unstable...
+#
+# For packages that aren't removed from unstable this could be a
+# maintainer field.
+#
+# Didn't someone mention in the Debconf session something along the lines
+# of maint::only-upstream? In the sense of "I'm the Debian maintainer and I
+# package new upstream versions and forward bugs, but I don't understand
+# the code [because it is too complex, because I don't speak the
+# programming language] and will/can not fix any bugs in it myself".
+#
+# That should probably correlate to a open RFH/RFA bug but there might be
+# reasons it doesn't.

-- 
Tools to automatically infer debtags tags



More information about the Debtags-devel mailing list