piuparts.py: Add /etc/init/startpar-bridge.conf to ignored_files to workaround #74439...
[piuparts/piuparts.git] / TODO
1 Things to do for piuparts
2 =========================
3
4 Please also check the BTS, especially the bugs with a severity higher than
5 wishlist!
6
7
8 for 0.5x:
9
10 - use /sys/fs/selinux from wheezy onwards - see #682068 for more info
11
12 - make piuparts-master + piuparts-slave packages work with documented steps:
13   - do not enable sudoers.d/piuparts-slave in p-s.deb, neither the cronjobs.
14     - this is manual work one has done once after installation. we only
15       document whats needs to be done how.
16   - the shipped crontabs are not suitable from cron.d/ due to missing user
17     column -> provide instructions how to install them as piuparts(s|m) user
18     from /u/s/doc/p-(s|m)/examples
19   - verify that all scripts in $user/bin/ also work from master-slave packages
20     eventually enable some conjobs in the packages
21   - slave.postinst should setup '~piupartsm/.ssh/authorized_keys' using triggers
22     dpkg-trigger piuparts-master-please-install-the-slave-key
23     + the current method only works if -slave is configured after -master
24     - maybe do this manually again as well?
25
26 - Documentation related:
27   - examples are duplicated in piuparts.1.txt and README.txt - only keep one copy.
28   - README_server has some duplication information on configuration as well.
29   - link wiki:piuparts/UseCases||UsageTips in README_1st (after we agreed on a name)
30   - add a sample config with all possible keys set to some useful value
31     (like /usr/share/doc/apt/examples/configure-index.gz)
32
33 - more stats and graphs:
34   - packages processed per day and section
35     - master writes submissions.txt per section since 0.45
36   - # of open bugs with tag piuparts
37   - generate http://piuparts.debian.org/stable/states.png + testing.png from
38     existing data
39   - generate simple diagrams: number of source + binary package in all single distros:
40     squeeze, wheezy, jessie, sid.
41   - move counts.txt from htdocs to master.
42
43 - piuparts.conf.pejacevic: use mirror via nfs (faster)
44
45 - look for a solution to use the global debian mirror for debian-backports,
46   too, to avoid hardcoding a specific mirror in distros.conf
47
48 - maybe compress all logfiles
49
50
51 for 0.6x:
52
53 - really support multiple architectures:
54   - piuparts-report should have a list of available arch and list packages only
55     available on untested archs in a new state
56     "(depends-)not-available-on-tested-archs"
57   - master should (per default) only schedule packages which are not available
58     on the master arch to slaves of different archs ->
59     "schedule-evenly-to-slaves = no"
60
61 - piuparts-master: keep track of to whom a reservation was given
62
63 - if it weren't for 'slave-bin/slave_cleanup', the slave would only need
64   rights to run "sudo piuparts" but nothing else. If we can clean this up,
65   the sudoers.d should recommend sudo (lsof|kill|umount) for admins.
66
67 - if there were real schroot support, piuparts could be used without sudo.
68   (#708663)
69
70 - generate piuparts.1.txt automatically from piuparts.py - see this blog post
71   for a nice howto:
72   http://andialbrecht.wordpress.com/2009/03/17/creating-a-man-page-with-distutils-and-optparse/
73   - though this seems pretty complicated... maybe rather grep for
74     parser.add_option and help= in piuparts.py ?!
75     - requires merging all the additional infomation in piuparts.1.txt into piuarts.py
76     - parsing piuparts --help output may be easier than parsing piuparts.py
77
78 - rework known_problems:
79   - split detect_well_known_errors
80     - parsing the logfiles should stay there
81     - generating the html should be integrated into piuparts-report
82   - use a number prefix for sorting
83   - add title information
84   - piuparts-report: "discover" the available known_problems, dont hardcode the
85     list
86   - drop _issue/_error duplication, have flags inside to indicate thether to
87     generate _issues.tpl (pass/) and/or _error.tpl (fail/ bugged/ affected/)
88   - rework known problems to a python-friendlier format
89
90 - install from git/Makefile: remove the need for /etc/piuparts
91
92 - accept a PIUPARTS_CONF environment variable everywhere to point to a different
93   piuparts.conf
94
95 - write reportbug-like wrapper for mass bug filing (start simple, make it more
96   sophisticated later).
97
98 - find_default_debian_mirrors: 
99   - check whether find_default_debian_mirrors produces something useful if
100     sources.list does not exist (and sources.list.d/*.list is there instead)
101   - maybe just copy sources.list(.d/*) instead?
102
103 - make it possible to call aptitude (or similar) instead of apt-get and allow to
104   override the commandline arguments.
105
106 - the templates used by update-reports.py and detect_well_known_errors should
107   be taken from /etc/piuparts/templates/ and not be included in the python source
108
109 - check the logfiles (especially pass/) for
110   - "Exception in thread"
111   - java stacktraces
112   - "Can't locate .* in @INC"
113
114
115 for 0.7x and later:
116
117 - mounting /proc and perhaps others (usbfs, sysfs, /dev/pts, etc.) in the chroot
118   might be a good idea because some packages might need this.
119
120 - rewrite piuparts-analyze to run over all sections and cache BTS responses
121
122 - "decorate" (strike-through) bug links generated by piuparts-analyze to
123   indicate resolved state (take package version into account!)
124
125 - report:
126   - write stats about the reasons for failures, as its done with shell scripts
127     now (piuparts-analyze.py is an existing "fragment".)
128   - RSS feeds of logs
129   - do more fancy R graphs, eg. also per state
130   - link (and target) to piuparts.d.o configuration is static to pejacevic. should
131     refer to the actual hosts configuration if running somewhere else
132
133 - a redirect of http://piuparts.d.o/foo to http://p.d.o/source/f/foo.html would
134   be nice
135
136 - not sure if it's a sensible thing to to, but provide a way to turn off
137   debugging output for piuparts.py - see
138   http://docs.python.org/library/logging.html
139
140 - commandline-switches for all programms
141
142 - move shell cronjobs functionality into master, slave & report
143
144 - automated testing of piuparts using an archive of known broken packages:
145   - create archive of broken packages to provide test cases for piuparts testing.
146   - create emacspeak-broken-dpkg-preconfigure package for broken repo. (then later
147     put more broken packages in there and use that for testing piuparts)