{"id":746,"date":"2012-11-26T01:31:17","date_gmt":"2012-11-25T23:31:17","guid":{"rendered":"http:\/\/www.lucas-nussbaum.net\/blog\/?p=746"},"modified":"2012-11-26T01:31:17","modified_gmt":"2012-11-25T23:31:17","slug":"half-of-the-package-maintainers-are-not-dds-or-dms","status":"publish","type":"post","link":"https:\/\/www.lucas-nussbaum.net\/blog\/?p=746","title":{"rendered":"Half of the package maintainers are not DDs or DMs"},"content":{"rendered":"<p>During the Paris Mini-Debconf, Nicolas Dandrimont talked about <a href=\"http:\/\/fr2012.mini.debconf.org\/slides\/debexpo.pdf\">The state of mentors.debian.net: GSoC and beyond<\/a>. He said that <em>Half of Debian\u00e2\u20ac\u2122s packages are maintained by sponsored maintainers.<\/em> That statement was actually wrong, as he confirmed later.<\/p>\n<p>However, using a few UDD queries, I could come up with:<\/p>\n<ul>\n<li><strong>3147 packages out of 18649 packages in sid (17%) were last uploaded using a sponsored upload.<\/strong><\/li>\n<li><strong>There are 963 distinct sponsorees, vs. a total of 2015 distinct emails in the Changed-By field of packages in sid. Given that it&#8217;s more likely for DDs to have used several emails to upload packages, it&#8217;s very likely that half of the package maintainers are sponsored maintainers.<\/strong><\/li>\n<li><strong>There are 2185 packages without a DD in either the Maintainer: or the Uploaders: fields. (That includes some packages that are maintained by a team that could include some DDs)<\/strong><\/li>\n<\/ul>\n<p>Full UDD notes:<\/p>\n<pre>all packages in sid:\r\nselect source, version from sources_uniq where release = 'sid'\r\n\r\npackages in sid known to upload_history:\r\nselect source, version from upload_history where\r\n(source, version) in (select source, version from sources_uniq where release = 'sid')\r\n\r\npackages that were uploaded by the changed_by person:\r\ncreate temporary table sources_not_sponsored as select distinct source, version\r\n from upload_history, carnivore_keys, carnivore_emails\r\n where (source, version) in (select source, version from sources_uniq where release = 'sid')\r\n and fingerprint = key\r\n and carnivore_keys.id = carnivore_emails.id\r\n and carnivore_emails.email = changed_by_email;\r\n\r\npackages not uploaded by the changed_by person:\r\ncreate temp table uh_sid as select source, version, fingerprint, changed_by_email\r\nfrom upload_history\r\nwhere (source, version) in (select source, version from sources_uniq where release = 'sid');\r\n\r\ncreate temp table uh_sid_sponsored as select source, version, fingerprint, changed_by_email from uh_sid\r\nwhere (source, version) not in (select source, version from sources_not_sponsored);\r\n\r\nlist with sponsor login:\r\nselect distinct source, version, fingerprint, changed_by_email, login\r\nfrom uh_sid_sponsored\r\nleft join carnivore_keys on fingerprint = key\r\nleft join carnivore_login on carnivore_keys.id = carnivore_login.id;\r\n\r\n=&gt; 4188 sponsored packages. some of them are in a strange state (changed_by is a DD, but uploaded by another DD). excluding those:\r\n\r\ncreate temp table sponsored_but_dds as select distinct source, version, fingerprint, changed_by_email, login\r\nfrom uh_sid_sponsored, carnivore_emails, carnivore_login\r\nwhere changed_by_email = carnivore_emails.email\r\nand carnivore_emails.id = carnivore_login.id;\r\n\r\ncreate temp table really_sponsored as select distinct source, version, fingerprint, changed_by_email, login\r\nfrom uh_sid_sponsored\r\nleft join carnivore_keys on fingerprint = key\r\nleft join carnivore_login on carnivore_keys.id = carnivore_login.id\r\nwhere (source, version) not in (select source, version from sponsored_but_dds);\r\n\r\n=&gt; 3147 sponsored packages\r\n\r\nselect distinct changed_by_email from really_sponsored ;\r\n=&gt; 963 different sponsorees\r\n\r\nselect distinct changed_by_email from upload_history where\r\n(source, version) in (select source, version from sources_uniq where release = 'sid');\r\n=&gt; 2015 distinct emails.\r\n\r\nno DD amongst maintainer or uploader:\r\n\r\ncreate temp table dds_emails as select email from carnivore_emails, carnivore_login\r\nwhere carnivore_emails.id = carnivore_login.id;\r\n\r\nselect source, version, maintainer, uploaders from sources_uniq\r\nwhere release='sid'\r\nand maintainer_email not in (select * from dds_emails)\r\nand not exists (select * from uploaders where release = 'sid' and sources_uniq.source = uploaders.source and sources_uniq.version = uploaders.version and email in (select * from dds_emails))\r\nand maintainer_email != 'packages@qa.debian.org'\r\nand (source, version) in (select source, version from really_sponsored);<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>During the Paris Mini-Debconf, Nicolas Dandrimont talked about The state of mentors.debian.net: GSoC and beyond. He said that Half of Debian\u00e2\u20ac\u2122s packages are maintained by sponsored maintainers. That statement was actually wrong, as he confirmed later. However, using a few UDD queries, I could come up with: 3147 packages out of 18649 packages in sid [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,13],"tags":[],"class_list":["post-746","post","type-post","status-publish","format-standard","hentry","category-debianubuntu","category-planetdebian"],"_links":{"self":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=746"}],"version-history":[{"count":1,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/746\/revisions"}],"predecessor-version":[{"id":747,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=\/wp\/v2\/posts\/746\/revisions\/747"}],"wp:attachment":[{"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.lucas-nussbaum.net\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}