htdocs/index.tpl: turn mentionings of new suites into links
[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.6x:
9
10 - README_server.txt: rewrite style a bit more. its super easy to setup now!
11
12 - ==== piuparts.debian.org specific configuration
13  ^^^^^^^ scripts should be the headline, not piu.d.o
14
15 - move more bits from README_pejacevic.txt to README_server.txt
16
17 - split out README_protocol and README_piuparts.conf? -> in piuparts.conf manpage maybe?
18
19 - support multiple architectures: #762308
20   - piuparts-report should have a list of available arch and list packages
21     only available on untested archs in a new state
22     "(depends-)not-available-on-tested-archs"
23   - master should (per default) only schedule packages which are not available
24     on the master arch to slaves of different archs ->
25     "schedule-evenly-to-slaves = no"
26
27 - once that works, update README_pejacevic: search for "soon shall go into operation..." :)
28
29 - piuparts-master: keep track of to whom a reservation was given
30
31 - more stats and graphs:
32   - new section stats page:
33     - packages processed per day and section, master writes submissions.txt
34       since 0.45 for all sections.
35     - generate simple diagrams: number of source + binary packages in all
36       single distros: lenny, squeeze, wheezy, jessie, sid.
37     - graph about piuparts stati for all sections combined? (possible ignore
38       successful)
39
40 - master should create the master and backup directories, if they dont exit. If master does that remove that sentence from README_server.txt again. same with slave and tmp.
41
42 - piuparts.conf.pejacevic: maybe use mirror via nfs (faster)
43
44 - also test packages from security.d.o
45   => is jessie-pu sufficient? this should quickly include these packages
46
47 - maybe compress all logfiles
48
49 - look for a solution to use the global debian mirror for debian-backports,
50   too, to avoid hardcoding a specific mirror in distros.conf
51
52 - if it weren't for 'slave-bin/slave_cleanup', the slave would only need
53   rights to run "sudo piuparts" but nothing else. If we can clean this up,
54   the sudoers.d should recommend sudo (lsof|kill|umount) for admins.
55
56 - if there were real schroot support, piuparts could be used without sudo.
57   (#708663)
58
59 - use network namespaces to disable network during the tests:
60   - < weasel> says: unshare --uts --ipc --net -- sh -c 'ip addr add 127.0.0.1/8 dev lo && ip link set dev lo up && stuff'
61     and points to https://anonscm.debian.org/gitweb/?p=mirror/dsa-puppet.git;a=blob;f=modules/porterbox/files/dd-schroot-cmd#l104
62   - problem might be access to the mirror, either (bind mounted) nfs access will still work in the chroots or do as its done on the porterboxes:
63     apt-get install -d <foo>, unshare apt-get install foo
64
65 - add a sample config with all possible keys set to some useful value
66   (like /usr/share/doc/apt/examples/configure-index.gz)
67
68 - generate piuparts.1.txt automatically from piuparts.py - see this blog post
69   for a nice howto:
70   http://andialbrecht.wordpress.com/2009/03/17/creating-a-man-page-with-distutils-and-optparse/
71   - though this seems pretty complicated... maybe rather grep for
72     parser.add_option and help= in piuparts.py ?!
73     - requires merging all the additional infomation in piuparts.1.txt into
74       piuarts.py
75     - parsing piuparts --help output may be easier than parsing piuparts.py
76   - elso: examples are duplicated in piuparts.1.txt and README.txt
77
78 - check the logfiles (especially pass/) for
79   - "Exception in thread"
80   - java stacktraces
81   - "Can't locate .* in @INC"
82
83 - we should probably have an install test with --enable-recommends and
84 without --warn-on-others to avoid adding artificial barriers where package
85 subsets are configured
86   (wheezy2jessie-rcmd is *not* the solution for this)
87
88 - mount /dev/pts:
89   E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)
90
91 - record file ownership by user/group name, not id
92   new dynamic system users added to the base system may have a lower id in the
93   reference system than after actually testing some packages
94   e.g. group of /usr/lib/dbus-1.0/dbus-daemon-launch-helper (wheezy2jessie-pu)
95
96 - there was some issue (not) terminating a test run by the slave with ^C^C,
97   forgot the details
98
99 - report actually ignored files/patterns ROT13 encoded to be able to spot and
100   reschedule such tests
101
102 - p-r: in the section summary page, report the piuparts flags being used
103
104 - p-s: report age of the basetgz being used
105
106
107 for 0.7x and later:
108
109 - install from git/Makefile: remove the need for /etc/piuparts
110
111 - accept a PIUPARTS_CONF environment variable everywhere to point to a different
112   piuparts.conf
113
114 - write reportbug-like wrapper for mass bug filing (start simple, make it more
115   sophisticated later).
116
117 - rework known_problems:
118   - split detect_well_known_errors
119     - parsing the logfiles should stay there
120     - generating the html should be integrated into piuparts-report
121   - use a number prefix for sorting
122   - add title information
123   - piuparts-report: "discover" the available known_problems, dont hardcode the
124     list
125   - drop _issue/_error duplication, have flags inside to indicate thether to
126     generate _issues.tpl (pass/) and/or _error.tpl (fail/ bugged/ affected/)
127   - rework known problems to a python-friendlier format
128
129 - the templates used by update-reports.py and detect_well_known_errors should
130   be taken from /etc/piuparts/templates/ and not be included in the python source
131
132 - a redirect of http://piuparts.d.o/foo to http://p.d.o/source/f/foo.html would
133   be nice
134
135
136 for 0.8x and later:
137
138 - find_default_debian_mirrors: 
139   - check whether find_default_debian_mirrors produces something useful if
140     sources.list does not exist (and sources.list.d/*.list is there instead)
141   - maybe just copy sources.list(.d/*) instead?
142
143 - make it possible to call aptitude (or similar) instead of apt-get and allow to
144   override the commandline arguments.
145
146 - mounting /proc and perhaps others (usbfs, sysfs, /dev/pts, etc.) in the chroot
147   might be a good idea because some packages might need this.
148
149 - rewrite piuparts-analyze to run over all sections and cache BTS responses
150
151 - "decorate" (strike-through) bug links generated by piuparts-analyze to
152   indicate resolved state (take package version into account!)
153
154 - report:
155   - write stats about the reasons for failures, as its done with shell scripts
156     now (piuparts-analyze.py is an existing "fragment".)
157   - RSS feeds of logs
158   - do more fancy R graphs, eg. also per state
159   - link (and target) to piuparts.d.o configuration is static to pejacevic. should
160     refer to the actual hosts configuration if running somewhere else
161
162 - not sure if it's a sensible thing to to, but provide a way to turn off
163   debugging output for piuparts.py - see
164   http://docs.python.org/library/logging.html
165
166 - commandline-switches for all programms
167
168 - move shell cronjobs functionality into master, slave & report
169
170 - automated testing of piuparts using an archive of known broken packages:
171   - create archive of broken packages to provide test cases for piuparts testing.
172   - create emacspeak-broken-dpkg-preconfigure package for broken repo. (then later
173     put more broken packages in there and use that for testing piuparts)