-[NB: I use this as a thought record/scribble, not everything on here
- makes sense and/or is actually ever going to get done, so IIWY I
- wouldn't use it as gospel for the future of dak or as a TODO
- list for random hacking.]
-
-================================================================================
-
-Others
-------
-
- o 'dak check-overrides' should remove the src-only override when a
- binary+source override exists
-
- o reject on > or < in a version constraint
-
- o 'dak reject-proposed-updates' should only start an editor once to
- capture a message; it will usually be the same message for all
- files on the same command line.
-
-23:07 < aba> elmo: and, how about enhancing 'dak cruft-report' to spot half-dropped
- binaries on one arch (i.e. package used to build A and B, but B is
- no longer built on some archs)?
-
- o tabnanny the source
-
- o drop map-unreleased
-
- o check email only portions of addresses match too, iff the names
- don't, helps with the "James Troup <james@nocrew.org>"
- vs. "<james@nocrew.org>" case.
-
- o ensure .dsc section/prio match .changes section/prio
-
- o 'dak clean-suites' performance is kind of crap when asked to
- remove a lot of files (e.g. 2k or so).
-
- o we don't handle the case where an identical orig.tar.gz is
- mentioned in the .changes, but not in unchecked; but should we
- care?
-
- o 'dak ls' could do better sanity checking for -g/-G (e.g. not more
- than one suite, etc.)
-
- o use python2.2-tarfile (once it's in stable?) to check orig.tar.gz
- timestamps too.
-
- o need to decide on whether we're tying for most errors at once.. if
- so (probably) then make sure code doesn't assume variables exist and
- either way do something about checking error code of check_dsc and
- later functions so we skip later checks if they're bailing.
-
- o the .dak stuff is fundamentally braindamaged, it's not versioned
- so there's no way to change the format, yay me. need to fix.
- probably by putting a version var as the first thing and checking
- that.. auto-upgrade at least from original format would be good.
- might also be a good idea to put everything in one big dict after
- that?
-
- o [?, wishlist, distant future] RFC2047-ing should be extended to
- all headers of mails sent out.
-
- o reject sparc64 binaries in a non '*64*' package.
-
- o queue.py(source_exists): a) we take arguments as parameters that
- we could figure out for ourselves (we're part of the Upload class
- after all), b) we have this 3rd argument which defaults to "any"
- but could in fact be dropped since no one uses it like that.
-
- o 'dak process-unchecked': doesn't handle bin-only NMUs of stuff
- still in NEW, BYHAND or ACCEPTED (but not the pool) - not a big
- deal, upload can be retried once the source is in the archive, but
- still.
-
- o security global mail overrides should special case buildd stuff so
- that buildds get ACCEPTED mails (or maybe 'dak security-install' (?)), that way
- upload-security doesn't grow boundlessly.
-
- o 'dak security-install' should upload sourceful packages first,
- otherwise with big packages (e.g. X) and esp. when source is !i386,
- half the arches can be uploaded without source, get copied into
- queue/unaccepted and promptly rejected.
-
- o 'dak cruft-report's NVIU check doesn't catch cases where source
- package changed name, should check binaries
- too. [debian-devel@l.d.o, 2004-02-03]
-
- o cnf[Rm::logfile] is misnamed...
-
-<aj> i'd be kinda inclined to go with insisting the .changes file take
- the form ---- BEGIN PGP MESSAGE --- <non -- BEGIN/END lines> --
- BEGIN PGP SIG -- END PGP MESSAGE -- with no lines before or after,
- and rejecting .changes that didn't match that
-
- o 'dak cruft-report' should check for source packages not building any binaries
-
- o 'dak control-suite' should have a diff mode that accepts diff output!
-
- o 'dak clean-proposed-updates' doesn't deal with 'dak rm'-d
- packages, partial replacements etc. and more.
-
- o 'dak reject-proposed-updates' blindly deletes with no check that
- the delete failed which it might well given we only look for
- package/version, not package/version _in p-u_. duh.
-
- o 'dak rm' should remove obsolete changes when removing from p-u, or
- at least warn. or 'dak reject-proposed-updates' should handle it.
-
- o need a testsuite _badly_
-
- o 'dak process-unchecked' crashes if run as a user in -n mode when
- orig.tar.gz is in queue/new...
-
-<elmo_home> [<random>maybe I should reject debian packages with a non-Debian origin or bugs field</>]
-<Kamion> [<random>agreed; dunno what origin does but non-Debian bugs fields would be bad]
-
- o 'dak clean-suites' should make use of select..except select, temporary tables
- etc. rather than looping and calling SQL every time so we can do
- suite removal sanely (see potato-removal document)
-
- o 'dak rm' will happily include packages in the Cc list that aren't
- being removed...
-
- o 'dak rm' doesn't remove udebs when removing the source they build from
-
- o check_dsc_against_db's "delete an entry from files while you're
- not looking" habit is Evil and Bad.
-
- o 'dak process-new' allows you to edit the section and change the
- component, but really shouldn't.
-
- o 'dak rm' needs to, when not sending bug close mails, promote Cc: to
- To: and send the mail anyways.
-
- o the lockfile (Archive_Maintenance_In_Progress) should probably be in a conf file
-
- o 'dak ls' should cross-check the b.source field and if it's not
- null and s.name linked from it != the source given in
- -S/--source-and-binary ignore.
-
- o 'dak reject-proposed-updates' sucks; it should a) only spam d-i
- for sourceful rejections, b) sort stuff so it rejects sourceful
- stuff first. the non-sourceful should probably get a form mail, c)
- automate the non-sourceful stuff (see b).
-
- o 'dak process-unchecked' should do q-d stuff for faster AA [ryan]
-
- o split the morgue into source and binary so binaries can be purged first!
-
- o per-architecture priorities for things like different arch'es
- gcc's, silly BSD libftw, palo, etc.
-
- o use postgres 7.2's built-in stat features to figure out how indices are used etc.
-
- o 'dak init-archive' shouldn't be using location, it should run down suites instead
-
- o 'dak clean-proposed-updates' needs to know about udebs
-
- o by default hamstring dak's mail sending so that it won't send
- anything until someone edits a script; it's been used far too
- much to send spam atm :(
-
- o $ftpdir/indices isn't created by 'dak init-dir' because it's not in dak.conf
-
- o sanity check depends/recommends/suggests too? in fact for any
- empty field?
-
-[minor] 'dak process-accepted's copychanges, copydotdak handling
- sucks, the per-suite thing is static for all packages, so work out
- in advance dummy.
-
-[dak ls] # filenames ?
-[dak ls] # maintainer, component, install date (source only?), fingerprint?
-
- o UrgencyLog stuff should minimize it's bombing out(?)
- o Log stuff should open the log file
-
- o 'dak queue-report' should footnote the actual notes, and also *
- the versions with notes so we can see new versions since being
- noted...
-
- o 'dak queue-report' should have alternative sorting options, including reverse
- and without or without differentiaion.
-
- o 'dak import-users-from-passwd' should sync debadmin and ftpmaster (?)
-
- o <drow> Can't read file.:
- /org/security.debian.org/queue/accepted/accepted/apache-perl_1.3.9-14.1-1.21.20000309-1_sparc.dak.
- You assume that the filenames are relative to accepted/, might want
- to doc or fix that.
-
- o <neuro> the orig was in NEW, the changes that caused it to be NEW
- were pulled out in -2, and we end up with no orig in the archive
- :(
-
- o SecurityQueueBuild doesn't handle the case of foo_3.3woody1 with a
- new .orig.tar.gz followed by a foo_3.3potato1 with the same
- .orig.tar.gz; 'dak process-unchecked' sees it and copes, but the AA
- code doesn't and can't really easily know so the potato AA dir is
- left with no .orig.tar.gz copy. doh.
-
- o orig.tar.gz in accepted not handled properly (?)
-
- o 'dak security-install' doesn't include .orig.tar.gz but it should
-
- o permissions (paranoia, group write, etc.) configurability and overhaul
-
- o remember duplicate copyrights in 'dak process-new' and skip them, per package
-
- o <M>ove option for 'dak process-new' byhand proecessing
-
- o 'dak cruft-report' could do with overrides
-
- o database.get_location_id should handle the lack of archive_id properly
-
- o the whole versioncmp thing should be documented
-
- o 'dak process-new' doesn't do the right thing with -2 and -1 uploads, as you can
- end up with the .orig.tar.gz not in the pool
-
- o 'dak process-new' exits if you check twice (aj)
-
- o 'dak process-new' doesn't trap signals from 'dak examine-package' properly
-
- o queued and/or perl on sparc stable sucks - reimplement it.
-
- o aj's bin nmu changes
-
- o 'dak process-new':
- * priority >> optional
- * arch != {any,all}
- * build-depends wrong (via 'dak compare-suites')
- * suid
- * conflicts
- * notification/stats to admin daily
- o trap 'dak examine-package' exiting
- o distinguish binary only versus others (neuro)
+Various
+-------
+
+* Lintian based automated rejects
+ - Have a set of lintian tags each package *must* not have. If it does
+ -> reject.
+ - If a tag is overriden by the maintainer, do not reject, but put it
+ into NEW. If the override is ok note that in a table and dont act on
+ it for any future uploads of this package anymore.
+ - possibly have two classes of tags. one for "shouldnt happen by
+ accident" and one "shouldnt happen". the first gets ignored from us
+ if overwritten in the package, the second only us can overwrite.
+ - its a suite option in dak, not active for all at once.
+
+* Throw away all DD uploaded .debs. (Depend on "Lintian based automated
+ rejects")
+ - Depends on the lintian based automated rejects, we do want correct
+ .debs uploaded. Ubuntu nicely demonstrated the quality loss if people
+ can just upload anything without even having to get one build
+ running.
+ - Need a way to define a build-architecture for arch_all debs. Some of
+ them can only be build on certain architectures.
+ A control file header build-architecture: YXY should do it.
+ - its a suite option, not active for all at once.
+ - should have all buildd machines under dsa control
+
+* Implement autosigning, see ftpmaster_autosigning on ftp-master host in text/.
+
+* Check TODO.old and move still-valid/useful entries over here.
+
+* need a testsuite _badly_
+
+* database table "binaries" contains a column 'type TEXT NOT
+ NULL'. This should be made a FK on override_type, as it only contains
+ deb/udeb strings.
+
+ - sql query to do the db work for it:
+ ALTER TABLE binaries ADD COLUMN new_type INT4 REFERENCES override_type(id);
+ UPDATE BINARIES SET new_type = 7 WHERE type = 'deb';
+ UPDATE BINARIES SET new_type = 8 WHERE type = 'udeb';
+ ALTER TABLE binaries DROP COLUMN type;
+ ALTER TABLE binaries RENAME COLUMN new_type TO type;
+
+ - needs updateX.py written and then the rest of the code changed to deal
+ with it.
+
+* Checkout SQL Alchemy and probably use that for our database layer.
+
+* reject on > or < in a version constraint
+
+* use pythonX.Y-tarfile to check orig.tar.gz timestamps too.
+
+* the .dak stuff is fundamentally braindamaged for various reasons, it
+ should DIE. If we want to cache information - use a ("temporary")
+ database table and let p-a clean it up, e.g. like contents does.
+
+* security global mail overrides should special case buildd stuff so
+ that buildds get ACCEPTED mails. Or maybe send them at
+ new-security-install time. That way upload-security doesn't grow
+ boundlessly.
+
+* debianqueued sucks. Reimplement in a sane way.
+
+NEW processing
+--------------
+* 'dak process-new' allows you to edit the section and change the
+ component, but really shouldn't allow the component change.