/[dep]/web/deps/dep2.mdwn
ViewVC logotype

Contents of /web/deps/dep2.mdwn

Parent Directory Parent Directory | Revision Log Revision Log


Revision 254 - (hide annotations) (download)
Wed Feb 1 18:18:28 2012 UTC (16 months, 2 weeks ago) by hertzog
File size: 11682 byte(s)
DEP-2: Update on the information flow

Note to re-ask ourselves the question whether we can get a consensus on
having to modify all Debian services to directly send the mail to the
DPMH and only there (i.e. no longer to the Maintainer field).

Clarify that if the Maintainer field is replaced, its former value is
moved to Uploaders.
1 hertzog 244 [[!meta title="DEP-2: Debian Package Maintenance Hub"]]
2    
3     Title: Debian Package Maintenance Hub
4     DEP: 2
5     State: DRAFT
6 hertzog 247 Date: 2012-01-13
7 hertzog 244 Drivers: Raphael Hertzog <hertzog@debian.org>
8     URL: http://dep.debian.net/deps/dep2
9     Abstract:
10     Debian maintainers rely on a multitude of services (DDPO, PTS,
11     DDPO-by-mail, BTS, etc), and information sources, in order to do
12     their job. The flow of information varies greatly from case to case.
13     .
14     This proposal is about creating a central infrastructure
15     that would consolidate several of those services and that would
16     standardize the information flow.
17    
18    
19     Rationale
20     ---------
21     This new package maintenance infrastructure is needed:
22    
23     * to fix long standing problems;
24 hertzog 249 * to provide a clean base to implement new features:
25     * that will help maintainers do a better job;
26     * that will help packaging teams to organize themselves;
27     * that will help the QA team to ensure that all Debian packages are
28     well maintained.
29 hertzog 244
30     ### Problems to solve
31    
32     #### Maintainer vs Uploader
33    
34     The flow of information is not the same depending on whether you're
35     listed in the Maintainer field (in which case most services mail you
36     directly) or not (in which case you're supposed to subscribe via the PTS
37     or via a dedicated mailing list). But the opposite is true as well, some
38     information is only available via the PTS and many maintainers have to
39     subscribe to the PTS while excluding almost everything just to get
40     the information they want.
41    
42     See also [#507288](http://bugs.debian.org/507288) for some more
43     discussions on this topic.
44    
45     This makes it very painful to change/switch the Maintainer field because
46 hertzog 250 people have to update their PTS subscriptions accordingly.
47 hertzog 244
48     #### Duplication of work / inconsistency between the DDPO and the PTS
49    
50     The DDPO and the PTS are completely separate services. This leads to
51     duplication of work when a new information needs to be made available in
52     their respective interface. It can also lead to inconsistencies between
53     both services when bug occurs or when different choices are made.
54    
55     #### Mailing lists as Maintainer
56    
57     We often have mailing lists listed in the Maintainer field and it's not
58     clear who are the real package maintainers and how many of them there are.
59     The Uploaders field is often outdated, and/or is just a representation of
60     who worked last on the package instead of who feels responsible for the
61     package.
62    
63     ### Goals
64    
65 hertzog 249 #### Provide a working replacement for DDPO/PTS
66 hertzog 244
67 hertzog 249 Since the service aims to merge the DDPO and the PTS, it must be a working
68     replacement of both services and its set of features must englobe the
69     features of the actual services.
70 hertzog 244
71 hertzog 250 #### Replace maintenance mailing lists
72 hertzog 249
73     Packaging teams often separate the mailing list that gets the bug traffic and
74     other notifications from their main discussion mailing list. This new
75     infrastructure should entirely replace the former kind of mailing lists.
76     Anybody receiving notifications and information directed to the package
77     maintainer should get them via this new infrastructure.
78    
79     It allows us to know how many people are notified for a given problem.
80     If nobody is notified, the package is effectively orphaned. A more
81     interesting case to detect is when several persons are being notified but
82     all of them are MIA or marked as not being available for Debian (busy/in
83     vacation).
84    
85 hertzog 252 #### Keep track of the list of maintainers
86    
87     Packages using this infrastructure should automatically keep track
88     of the list of their maintainers because anyone subscribing to a package
89     must pick a "role":
90     - "maintainer" (only DD can select this role, or DM for their own packages)
91     - "contributor"
92     - "follower" (aka lurker)
93    
94 hertzog 250 #### Replace WNPP's RFH, RFA, O
95    
96     Since the infrastructure already stores the information about who is
97     maintaining what, it only makes sense to extend it to provide the
98     list of orphaned packages (i.e. packages without maintainers).
99    
100     RFH should be replaced by a system where the help request is better
101     formalized so that we can better direct new contributors in places
102     where their skills would be well used. Instead of just requesting
103     help, you could request:
104     - a new maintainer (to replace you, i.e. RFA)
105     - a supplementary co-maintainer
106     - a bug triager
107     - a C/Python/Perl/… programmer (you should be able to choose the programming
108     language)
109    
110     Each request also documents whether there's an associated offer of
111     "mentorship" associated to the help request. Of course, there would
112     also be a free form description to give more details about what's
113     expected.
114    
115     #### Replace the LowThresholdNmu list
116    
117     The [LowThresholdNmu](http://wiki.debian.org/LowThresholdNmu) wiki page
118     is a hack to let people know when NMU are welcome and not frowned
119     upon. This information should be properly stored in the database
120     and it should be associated to each package.
121    
122 hertzog 251 #### Enable new interactions with maintainers
123 hertzog 250
124 hertzog 251 The central role of this new "communication infrastructure" makes it
125     possible to design new interactions with maintainers. Instead of being
126     only a source of information, the infrastructure could be used to query
127     package maintainers and/or let them provide supplementary information.
128    
129     This could be used to improve the MIA tracking process.
130    
131     This infrastructure would also be a more natural place to store the
132     "available for Debian work" boolean flag ("vacation") that's currently
133     never used because it's buried in db.debian.org and that it's not
134     practical to update it.
135    
136     This infrastructure could also be used to let maintainers document the
137     responsibilities that they have agreed to endorse, and describe the
138     associated commitments. That way it would be easier to detect packages
139     that cannot be well maintained because the set of maintainers do not cover
140     all the tasks that must be assumed to have a properly maintained package.
141    
142     #### Provide new services to packaging teams
143    
144     Given that this infrastructure would have native support for packaging
145     teams, it would also be a good place to offer some standardized services
146     for them.
147    
148     For example, one of the central tool for teams are their VCS and it can be
149     useful for teams to be able to monitor the state of their package in the
150     VCS. The [PET](http://pet.alioth.debian.org/) tool could be adapted,
151     integrated and made available to all teams by default.
152    
153     #### Support alternate notification systems
154    
155     Email is the only official media used to communicate information to
156     Debian package maintainers. If all the relevant mails are going through
157     a central service, it's possible to store those emails and to forward
158     the relevant information by other means (RSS, XMPP, IRC, etc.). Also
159     new maintainers can then have access to some historic information
160     that used to be private for no good reasons.
161    
162    
163 hertzog 249 High-level design of the new infrastructure
164     -------------------------------------------
165    
166 hertzog 244 ### Fixing the flow of information
167    
168     In order to cleanly solve the problem of the information flow, and to get
169     rid of the hacks made everywhere to send a copy of the mails to the PTS,
170     packages would be (progressively) modified to indicate
171     “Maintainer: &lt;source&gt;@pkgmaint.debian.org” in their control file.
172 hertzog 254 The current content of the field would be moved to the “Uploaders” field.
173 hertzog 244
174     Until all packages have been converted, the PTS would forward copies of
175     the mails to ensure that the new infrastucture can still be used for all
176     packages (even those who have not been updated yet).
177    
178     Using this intermediary address also solves the problem of maintainers who
179     orphan their packages and are still listed as maintainers in many released
180     packages.
181    
182 hertzog 254 QUESTION: It would be cleaner if DAK, the BTS, and all relevant services,
183     could stop sending mails to the Maintainer field, and would instead always
184     send the mail to the new infrastructure. That way we wouldn't need to
185     change the Maintainer field and there would be no transition period.
186    
187     The new infrastructure would then be configured with initial subscriptions
188     for emails listed in Maintainer fields (except for mailing lists, since
189     the infrastructure aims to replace them).
190    
191 hertzog 249 ### Leveraging UDD
192 hertzog 244
193 hertzog 249 At least the PTS has been parsing Sources/Packages files by itself, as
194     well as a bunch of other source of information. But many of the most
195     recent developments have piggy-backed on UDD to retrieve the information
196     needed, leaving to UDD the responsibility of bringing all the information
197     in a single place.
198 hertzog 244
199 hertzog 249 This principle should be generalized to avoid duplication of work and to
200     make sure that all the important information are available in UDD.
201 hertzog 244
202 hertzog 249 But we must make sure that UDD won't become a bottleneck. Either because
203     we have a local (live?) replicate of the database, or because we have
204     ensured that our usage of UDD is limited to batch tasks that are not
205     on the critical path for all the real-time user requests.
206    
207     ### Using a modern framework for web development
208    
209     DDPO is implemented in PHP. The PTS uses a mix of Perl, Python, XSLT and
210 hertzog 250 shell scripts. While both works very well and are reliable, the diversity
211     of the tools and the fact that some are not widely known (e.g. XSLT)
212     seriously limit the set of contributors who are able to hack on all the
213     parts of the infrastructure.
214 hertzog 249
215 hertzog 250 With a modern framework for web development, we enlarge the set of people
216     who are able to help us develop and maintain this infrastructure. It also
217     offers us a proper separation between presentation and code, so that it's
218     easier to let web designers integrate this service with the general
219     look&feel of the various Debian websites. On top of this, we get a fully
220     internationalized website for free.
221    
222 hertzog 249 ### API for data export
223    
224     If the infrastructure is going to have a central role, there will be
225     requests to extract data out of the system. We should cater for this by
226     providing a public API (over HTTP) allowing to retrieve all the (public)
227     information in some standardized manner.
228    
229     JSON seems to be a good option for data export. It allows other services
230     to reuse information from the DPMH, and it makes it easy for various
231     web services to retrieve the information dynamically via Javascript.
232    
233     ### Native support of packaging teams
234    
235     Any Debian Developer must be able to create a "packaging team" in the
236     system. Each packaging team has a set of packages that it maintains (or
237     keeps an eye on). Anyone can "subscribe" to the team and gets (by default)
238     all correspondance of all packages associated to that team.
239    
240     The team subscription can be tuned (much like the current PTS subscription)
241     to receive only a subset of the usual mails. A direct package subscription would
242     take precedence over a team subscription, thus allowing the user to
243     exclude some packages from its team subscription (or get more info for
244     some specific packages where they are particularly interested).
245    
246    
247     Implementation details
248     ----------------------
249    
250     Questions:
251    
252     * How do we store emails? For how long? (we store all mails except the BTS mails)
253     * What language and web framework? (buxy's default choice: Python & Django)
254     * How do we authenticate users? And for DD super-powers?
255     * [To be completed]
256    
257 hertzog 244 Acronyms
258     --------
259    
260 hertzog 249 * DPMH: Debian Package Maintenance Hub (this project)
261 hertzog 244 * DDPO: [Debian Developer's Packages Overview](http://qa.debian.org/developer.php)
262     * PTS: [Package Tracking System](http://packages.qa.debian.org)
263 hertzog 247 * BTS: [Bug Tracking System](http://bugs.debian.org)
264 hertzog 249 * UDD: [Ultimate Debian Database](http://udd.debian.org)
265     * DD: Debian Developer
266 hertzog 250 * WNPP: [Work Needing and Prospective Packages](http://www.debian.org/devel/wnpp/)
267     * RFH: Request For Help
268     * RFA: Request For Adoption
269     * O: Orphaned
270     * NMU: Non-Maintainer Upload
271 hertzog 244
272     Changes
273     -------
274    
275     * 2011-01-13: Initial draft by Raphaël Hertzog.
276 hertzog 250 * 2011-01-28: Integrate feedback from debian-qa@lists.debian.org.

  ViewVC Help
Powered by ViewVC 1.1.5