Things to do for piuparts
=========================

Please also check the BTS, especially the bugs with a severity
higher than wishlist!

for 0.44:

- piuparts-slave should do the rescheduling of old logs and do so with
  lowest precedence, that is, only when there are no new logs to be tested.

- piuparts-report.py: fix those FIXMEs in main()

- remove the "bugged" directory-status tracking altogether.  also remove "fixed".

- write reportbug(-like) wrapper for mass bug filing (start
  simple, make it more sophisticated later). 

- generate piuparts.1.txt automatically from piuparts.py - see
  this blog post for a nice howto:
  http://andialbrecht.wordpress.com/2009/03/17/creating-a-man-page-with-distutils-and-optparse/

- sometimes a chroot doesn't get removed on piatti - find out
  why and fix it.

- display biggest blockers, either using something like
  lynx --dump http://piuparts.debian.org/$1/state-dependency-failed-testing.html | \
	grep -E "dependency .* is failed-testing" | \
	sed  's#\(.*\)\(\[.*\]\)\(.*\)#\1\3#' | \
	sort|uniq -c| grep -v " 1 "|sort -n | tac 
  or https://github.com/davesteele/piublocker
  - actually, don't merely display them on the website, better: use that
    to suggest packages to file bugs against, in the to be written
    bug-submitting-tool - start with the errors which are easy to detect
    reliably.
    The bug-submitting tool should get the bug categories from piupartslib
    and download it's data from a configurationable piuparts install.

- copy/move .kpr files to htdocs?

- create piuparts-master and piuparts-slave packages.


for 0.45:

- mv piatti.git piuparts.git/doc/examples  and include it into a new
  binary package.  when doing so keep in mind the two tango icons
  and credit those in debian/copyright.

- publish FAI classes to setup piuparts.$fqdn automatically.


for 0.46:

- remove configfile option "mirror" and use the mirror from
  "packages-url".

- find_default_debian_mirrors: if parts[2] contains a / (think
  stable/updates for security.d.o), you can't ignore this, it
  will break later...

- support for extra-packages-url (for backports, security, etc)

- make it possible to call aptitude (or similar) instead of
  apt-get and allow to override the commandline arguments of the
  used program (to be able to test with and without recommended
  packages or authentication).

- piuparts-slave: timestamps to log messages

- master:
  - write stats about number of daily tests (-> report: create
    fancy graphs)


for 0.47:

- slave_run: cleanup stale proc mountpoints

- mounting /proc and perhaps others (usbfs, sysfs, /dev/pts,
  etc.) in the chroot might be a good idea because some packages
  might need this.  

- the templates used by update-reports.py should be taken from
  /etc/piuparts/templates/ and not be included in the python
  source


for 0.48 and later:

- report:
  - write stats about the reasons for failures, as its done with
    shell scripts now (piuparts-analyze.py is an existing
    "fragment".)
  - RSS feeds of logs
  - do more fancy R graphs, eg. also per state
  - sort packages on maintainer pages alphabetically (states first 
    though)
  - link (and target) to piuparts.d.o configuration is static to
    piatti. should refer to the actual hosts configuration, eg
    goldwassers

- a redirect of http://piuparts.d.o/foo to
  http://p.d.o/source/f/foo.html would be nice

- monitor: master.log grows to fast and there is no mechanism to stop it
  - use logrotate


for 0.50 and later:

- really support multiple architectures:
  - piuparts-report should have a list of available arch and list
    packages only available on untested archs in a new state
    "(depends-)not-available-on-tested-archs"
  - master should (per default) only schedule packages which are
    not available on the master arch to slaves of different archs
  -> "schedule-evenly-to-slaves = no"

- piuparts-master: keep track of to whom a reservation was given

- piuparts can't currently test upgrades of required packages.
  (Because they cannot be removed, it assumes these are
  untestable, which is only true for removal tests...

- not sure if it's a sensible thing to to, but provide a way to
  turn off debugging output for piuparts.py - see
  http://docs.python.org/library/logging.html

- commandline-switches for all programms 

- move shell cronjobs functionality into master, slave & report


Low priority stuff (a.k.a. "nobody's said they must have it now")
-----------------------------------------------------------------

- piuparts.py: add a panic handler to remove the temp_tgz

- create archive of broken packages to provide test cases for 
  piuparts testing.

- create emacspeak-broken-dpkg-preconfigure package for broken
  repo. (then later put more broken packages in there and use
  that for testing piuparts)

- read circular depends from /etc/piuparts/circular-depends-*.txt
  instead of having this infinite string in the config file
  filename should be configurable, e.g.
  [section]/circular-depends-file

