]> git.decadent.org.uk Git - dak.git/blob - TODO
sync
[dak.git] / TODO
1                                  TODO
2                                  ====
3
4 [NB: I use this as a thought record/scribble, not everything on here
5      makes sense and/or is actually ever going to get done, so IIWY I
6      wouldn't use it as gospel for the future of katie or as a TODO
7      list for random hacking.]
8
9 ================================================================================
10
11 Others
12 ------
13
14   o reject on > or < in a version constraint
15
16   o tabnanny the source
17
18   o drop map-unreleased
19
20   o check email only portions of addresses match too, iff the names
21   don't, helps with the "James Troup <james@nocrew.org>"
22   vs. "<james@nocrew.org>" case.
23
24   o ensure .dsc section/prio match .changes section/prio
25
26   o rhona's kind of crap when asked to remove a lot of files (e.g. 2k
27    or so).
28
29   o we don't handle the case where an identical orig.tar.gz is
30    mentioned in the .changes, but not in unchecked; but should we
31    care?
32
33   o madison could do better sanity checking for -g/-G (e.g. not more
34    than one suite, etc.)
35
36   o use python2.2-tarfile (once it's in stable?) to check orig.tar.gz
37    timestamps too.
38
39   o need to decide on whether we're tying for most errors at once.. if
40     so (probably) then make sure code doesn't assume variables exist and
41     either way do something about checking error code of check_dsc and
42     later functions so we skip later checks if they're bailing.
43
44   o the .katie stuff is fundamentally braindamaged, it's not versioned
45     so there's no way to change the format, yay me.  need to fix.
46     probably by putting a version var as the first thing and checking
47     that.. auto-upgrade at least from original format would be good.
48     might also be a good idea to put everything in one big dict after
49     that?
50
51   o [?, wishlist, distant future] RFC2047-ing should be extended to
52     all headers of mails sent out.
53
54   o reject sparc64 binaries in a non '*64*' package.
55
56   o katie.py(source_exists): a) we take arguments as parameters that
57     we could figure out for ourselves (we're part of the Katie class
58     after all), b) we have this 3rd argument which defaults to "any"
59     but could in fact be dropped since no one uses it like that.
60
61   o jennifer: doesn't handle bin-only NMUs of stuff still in NEW,
62     BYHAND or ACCEPTED (but not the pool) - not a big deal, upload can
63     be retried once the source is in the archive, but still.
64
65   o security global mail overrides should special case buildd stuff so
66     that buildds get ACCEPTED mails (or maybe amber (?)), that way
67     upload-security doesn't grow boundlessly.
68
69   o amber should upload sourceful packages first, otherwise with big
70     packages (e.g. X) and esp. when source is !i386, half the arches
71     can be uploaded without source, get copied into queue/unaccepted
72     and promptly rejected.
73
74   o rene's NVIU check doesn't catch cases where source package changed
75     name, should check binaries too. [debian-devel@l.d.o, 2004-02-03]
76
77   o cnf[melanie::logfile] is misnamed...
78
79 <aj> i'd be kinda inclined to go with insisting the .changes file take
80    the form ---- BEGIN PGP MESSAGE --- <non -- BEGIN/END lines> --
81    BEGIN PGP SIG -- END PGP MESSAGE -- with no lines before or after,
82    and rejecting .changes that didn't match that
83
84   o rene should check for source packages not building any binaries
85
86   o heidi should have a diff mode that accepts diff output!
87
88   o halle doesn't deal with melanie'd packages, partial replacements
89    etc. and more.
90
91   o lauren, the tramp, blindly deletes with no check that the delete
92    failed which it might well given we only look for package/version,
93    not package/version _in p-u_.  duh.
94
95   o melanie should remove obsolete changes when removing from p-u, or
96    at least warn.  or halle should handle it.
97
98   o need a testsuite _badly_
99
100   o lisa should have an Bitch-Then-Accept option
101
102   o jennifer crashes if run as a user in -n mode when orig.tar.gz is
103    in queue/new...
104
105 <elmo_home> [<random>maybe I should reject debian packages with a non-Debian origin or bugs field</>]
106 <Kamion> [<random>agreed; dunno what origin does but non-Debian bugs fields would be bad]
107
108   o rhona should make use of select..except select, temporary tables
109   etc. rather than looping and calling SQL every time so we can do
110   suite removal sanely (see potato-removal document)
111
112   o melanie will happily include packages in the Cc list that aren't
113     being removed...
114
115   o melanie doesn't remove udebs when removing the source they build from
116
117   o check_dsc_against_db's "delete an entry from files while you're
118     not looking" habit is Evil and Bad.
119
120   o lisa allows you to edit the section and change the component, but
121     really shouldn't.
122
123   o melanie needs to, when not sending bug close mails, promote Cc: to
124     To: and send the mail anyways.
125
126   o the lockfile (Archive_Maintenance_In_Progress) should probably be in a conf file
127
128   o madison should cross-check the b.source field and if it's not null
129     and s.name linked from it != the source given in
130     -S/--source-and-binary ignore.
131
132   o lauren sucks; she should a) only spam d-i for sourceful
133   rejections, b) sort stuff so she rejects sourceful stuff first.  the
134   non-sourceful should probably get a form mail, c) automate the
135   non-sourceful stuff (see b).
136
137   o jennifer should do q-d stuff for faster AA [ryan]
138
139   o split the morgue into source and binary so binaries can be purged first!
140
141   o per-architecture priorities for things like different arch'es
142     gcc's, silly BSD libftw, palo, etc.
143
144   o use postgres 7.2's built-in stat features to figure out how indices are used etc.
145
146   o neve shouldn't be using location, she should run down suites instead
147
148   o halle needs to know about udebs
149
150   o by default hamstring katie's mail sending so that she won't send
151     anything until someone edits a script; she's been used far too
152     much to send spam atm :(
153
154   o $ftpdir/indices isn't created by rose because it's not in katie.conf
155
156   o sanity check depends/recommends/suggests too?  in fact for any
157     empty field?
158
159 [minor] kelly's copychanges, copykatie handling sucks, the per-suite
160         thing is static for all packages, so work out in advance dummy.
161
162 [madison] # filenames ?
163 [madison] # maintainer, component, install date (source only?), fingerprint?
164
165   o UrgencyLog stuff should minimize it's bombing out(?)
166   o Log stuff should open the log file
167
168   o helena should footnote the actual notes, and also * the versions
169     with notes so we can see new versions since being noted...
170
171   o helena should have alternative sorting options, including reverse
172     and without or without differentiaion.
173
174   o julia should sync debadmin and ftpmaster (?)
175
176   o <drow> Can't read file.:
177   /org/security.debian.org/queue/accepted/accepted/apache-perl_1.3.9-14.1-1.21.20000309-1_sparc.katie.
178   You assume that the filenames are relative to accepted/, might want
179   to doc or fix that.
180
181   o <neuro> the orig was in NEW, the changes that caused it to be NEW
182     were pulled out in -2, and we end up with no orig in the archive
183     :(
184
185   o SecurityAcceptedAutoBuild doesn't handle the case of foo_3.3woody1
186     with a new .orig.tar.gz followed by a foo_3.3potato1 with the same
187     .orig.tar.gz; jennifer sees it and copes, but the AA code doesn't
188     and can't really easily know so the potato AA dir is left with no
189     .orig.tar.gz copy.  doh.
190
191   o orig.tar.gz in accepted not handled properly (?)
192
193   o amber doesn't include .orig.tar.gz but it should
194
195   o permissions (paranoia, group write, etc.) configurability and overhaul
196
197   o remember duplicate copyrights in lisaand skip them, per package
198
199   o <M>ove option for lisa byhand proecessing
200
201   o rene could do with overrides
202
203   o db_access.get_location_id should handle the lack of archive_id properly
204
205   o the whole versioncmp thing should be documented
206
207   o lisa doesn't do the right thing with -2 and -1 uploads, as you can
208     end up with the .orig.tar.gz not in the pool
209
210   o lisa exits if you check twice (aj)
211
212   o lisa doesn't trap signals from fernanda properly
213
214   o queued and/or perl on sparc stable sucks - reimplement it.
215
216   o aj's bin nmu changes
217
218   o Lisa:
219     * priority >> optional
220     * arch != {any,all}
221     * build-depends wrong (via andrea)
222     * suid
223     * conficlits
224     * notification/stats to admin daily
225     o trap fernanda exiting
226     o distinguish binary only versus others (neuro)
227
228   o cache changes parsed from ordering (careful tho: would be caching
229     .changes from world writable incoming, not holding)
230
231   o katie doesn't recognise binonlyNMUs correctly in terms of telling
232     who their source is; source-must-exist does, but the info is not
233     propogated down.
234
235   o Fix BTS vs. katie sync issues by queueing(via BSMTP) BTS mail so
236     that it can be released on deman (e.g. ETRN to exim).
237
238   o maintainers file needs overrides
239
240     [ change override.maintainer to override.maintainer-from +
241       override.maintainer-to and have them reference the maintainers
242       table.  Then fix charisma to use them and write some scripting
243       to handle the Santiago situation. ]
244
245   o Validate Depends (et al.) [it should match  \(\s*(<<|<|<=|=|>=|>|>>)\s*<VERSIONREGEXP>\)]
246
247   o Clean up DONE; archive to tar file every 2 weeks, update tar tvzf INDEX file.
248
249   o testing-updates suite: if binary-only and version << version in
250     unstable and source-ver ~= source-ver in testing; then map
251     unstable -> testing-updates ?
252
253   o hooks or configurability for debian specific checks (e.g. check_urgency, auto-building support)
254
255   o morgue needs auto-cleaning (?)
256
257   o saffron: two modes, all included, seperate
258   o saffron: add non-US
259   o saffron: add ability to control components, architectures, archives, suites
260   o saffron: add key to expand header
261
262 ================================================================================
263
264 queue/approved
265 --------------
266
267  o What to do with multi-suite uploads?  Presumably hold in unapproved
268    and warn?  Or what?  Can't accept just for unstable or reject just
269    from stable.
270
271  o Whenever we check for anything in accepted we also need to check in
272    unapproved.
273
274  o non-sourceful uploads should go straight through if they have
275    source in accepted or the archive.
276
277  o security uploads on auric should be pre-approved.
278
279 ================================================================================
280
281 Less Urgent
282 -----------
283
284   o change utils.copy to try rename() first
285
286   o [hard, long term] unchecked -> accepted should go into the db, not
287     a suite, but similar.  this would allow katie to get even faster,
288     make madison more useful, decomplexify specialacceptedautobuild
289     and generally be more sane.  may even be helpful to have e.g. new
290     in the DB, so that we avoid corner cases like the .orig.tar.gz
291     disappearing 'cos the package has been entirely removed but was
292     still on stayofexecution when it entered new.
293
294   o Logging [mostly done] (todo: rhona (hard), .. ?)
295
296   o jennifer: the tar extractor class doesn't need to be redone for each package
297
298   o reverse of source-must-exist; i.e. binary-for-source-must-not-exist
299   o REJECT reminders in shania.
300   o fernanda should check for conflicts and warn about them visavis priority [rmurray]
301   o store a list of removed/files versions; also compare against them.
302     [but be careful about scalability]
303
304   o fernanda: print_copyright should be a lot more intelligent
305      @ handle copyright.gz
306      @ handle copyright.ja and copyright
307      @ handle (detect at least) symlinks to another package's doc directory
308      @ handle and/or fall back on source files (?)
309
310   o To incorporate from utils:
311      @ unreject
312
313   o auto-purge out-of-date stuff from non-free/contrib so that testing and stuff works
314   o doogie's binary -> source index
315   o jt's web stuff, matt's changelog stuff (overlap)
316
317   o [Hard] Need to merge non-non-US and non-US DBs.
318
319   o experimental needs to auto clean (relative to unstable) [partial: rene warns about this]
320
321   o Do a checkpc(1)-a-like which sanitizes a config files.
322   o fix parse_changes()/build_file_list() to sanity check filenames
323   o saftey check and/or rename debs so they match what they should be
324
325   o Improve andrea.
326   o Need to optimize all the queries by using EXAMINE and building some INDEXs.
327     [postgresql 7.2 will help here]
328   o Need to enclose all the setting SQL stuff in transactions (mostly done).
329   o Need to finish alyson (a way to sync katie.conf and the DB)
330   o Need the ability to rebuild all other tables from dists _or_ pools (in the event of disaster) (?)
331   o Make the --help and --version options do stuff for all scripts
332
333   o charisma can't handle whitespace-only lines (for the moment, this is feature)
334
335   o generic way of saying isabinary and isadsc. (?)
336
337   o s/distribution/suite/g
338
339   o cron.weekly:
340      @ weekly postins to d-c (?)
341      @ backup of report (?)
342      @ backup of changes.tgz (?)
343
344   o --help doesn't work without /etc/katie/katie.conf (or similar) at
345     least existing.
346
347   o rename andrea (clashes with existing andrea)...
348
349  * Harder:
350
351     o interrupting of stracing jennifer causes exceptions errors from apt_inst calls
352     o dependency checking (esp. stable) (partially done)
353     o override checks sucks; it needs to track changes made by the
354       maintainer and pass them onto ftpmaster instead of warning the
355       maintainer.
356     o need to do proper rfc822 escaping of from lines (as opposed to s/\.//g)
357     o Revisit linking of binary->source in install() in katie.
358     o Fix component handling in overrides (aj)
359     o Fix lack of entires in source overrides (aj)
360     o direport misreports things as section 'devel' (? we don't use direport)
361     o vrfy check of every Maintainer+Changed-By address; valid for 3 months.
362     o binary-all should be done on a per-source, per-architecture package
363       basis to avoid, e.g. the perl-modules problem.
364     o a source-missing-diff check: if the version has a - in it, and it
365       is sourceful, it needs orig and diff, e.g. if someone uploads
366       esound_0.2.22-6, and it is sourceful, and there is no diff ->
367       REJECT (version has a dash, therefore not debian native.)
368     o check linking of .tar.gz's to .dsc's.. see proftpd 1.2.1 as an example
369     o archive needs md5sum'ed regularly, but takes too long to do all
370       in one go; make progressive or weekly.
371     o katie/jenna/rhona/whatever needs to clear out .changes
372       files from p-u when removing stuff superseded by newer versions.
373       [but for now we have halle]
374     o test sig checking stuff in test/ (stupid thing is not modularized due to global abuse)
375     o when encountering suspicous things (e.g. file tainting) do something more drastic
376
377  * Easy:
378
379     o suite mapping and component mapping are parsed per changes file,
380       they should probably be stored in a dictionary created at startup.
381     o don't stat/md5sum files you have entries for in the DB, moron
382       boy (Katie.check_source_blah_blah)
383     o promote changes["changes"] to mandatory in katie.py(dump_vars)
384       after a month or so (or all .katie files contain in the queue
385       contain it).
386     o melanie should behave better with -a and without -b; see
387       gcc-defaults removal for an example.
388     o Reject on misconfigured kernel-package uploads
389     o utils.extract_component_from_section: main/utils -> main/utils, main rather than utils, main
390     o Fix jennier to warn if run when not in incoming or p-u
391     o katie should validate multi-suite uploads; only possible valid one
392       is "stable unstable"
393     o cron.daily* should change umask (aj sucks)
394     o Rene doesn't look at debian-installer but should.
395     o Rene needs to check for binary-less source packages.
396     o Rene could accept a suite argument (?)
397     o byhand stuff should send notification
398     o catherine should udpate db; move files, not the other way around [neuro]
399     o melanie should update the stable changelog [joey]
400     o update tagdb.dia
401
402  * Bizzare/uncertain:
403
404     o drop rather dubious currval stuff (?)
405     o rationalize os.path.join() usage
406     o Rene also doesn't seem to warn about missing binary packages (??)
407     o logging: hostname + pid ?
408     o ANAIS should be done in katie (?)
409     o Add an 'add' ability to melanie (? separate prog maybe)
410     o Replicate old dinstall report stuff (? needed ?)
411     o Handle the case of 1:1.1 which would overwrite 1.1 (?)
412     o maybe drop -r/--regex in madison, make it the default and
413       implement -e/--exact (a la joey's "elmo")
414     o dsc files are not checked for existence/perms (only an issue if
415       they're in the .dsc, but not the .changes.. possible?)
416
417  * Cleanups & misc:
418
419     o db_access' get_files needs to use exceptions not this None, > 0, < 0 return val BS (?)
420     o The untouchable flag doesn't stop new packages being added to ``untouchable'' suites
421
422 ================================================================================
423
424 Packaging
425 ---------
426
427   o Fix stuff to look in sensible places for libs and config file in debian package (?)
428
429 ================================================================================
430
431            --help      manpage
432 -----------------------------------------------------------------------------
433 alyson        X
434 amber         X
435 andrea        X
436 ashley        X
437 catherine     X          X
438 charisma      X          X
439 cindy         X          X
440 claire        X
441 denise        X
442 fernanda      X
443 halle         X
444 heidi         X          X
445 helena        X
446 jenna         X
447 jennifer      X
448 jeri          X
449 julia         X          X
450 kelly         X          X
451 lisa          X          X
452 madison       X          X
453 melanie       X          X
454 natalie       X          X
455 neve          X
456 rene          X
457 rose          X
458 rhona         X          X
459 saffron       X
460 shania        X
461 tea           X
462 ziyi          X
463
464
465 ================================================================================
466
467 Random useful-at-some-point SQL
468 -------------------------------
469
470 UPDATE files SET last_used = '1980-01-01'
471   FROM binaries WHERE binaries.architecture = <x> 
472                   AND binaries.file = files.id;
473
474 DELETE FROM bin_associations 
475  WHERE EXISTS (SELECT id FROM binaries 
476                 WHERE architecture = <x> 
477                   AND id = bin_associations.bin);
478
479 ================================================================================