summaryrefslogtreecommitdiffstats
path: root/TODO
blob: 8133feebe8b065d6539145dfcdef3eeed39d931f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
ToDo for jenkins.debian.net
===========================
:Author:           Holger Levsen
:Authorinitials:   holger
:EMail:            holger@layer-acht.org
:Status:           in progress
:lang:             en
:Doctype:          article
:Licence:	   GPLv2

== About jenkins.debian.net

See link:https://jenkins.debian.net/userContent/about.html["about jenkins.debian.net"].

== Fix user submitted bugs

* See https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=jenkins;users=qa.debian.org@packages.debian.org

== General ToDo

* move /srv/jenkins.debian.net-scm-sync.git somewhere public?
* keep git+svn urls, and use commit hooks. also better for test setups of this setup as well as overall stability.
* fully automate backup and backup /var/lib/jenkins/jobs /var/lib/munin /var/log /root/ /var/lib/jenkins/reproducible.db too
* put kgb-client.conf in git and sed passwords from filesystem into it...
* push jenkins munin plugins upstream

== Debian Packaging related

* /usr/sbin/jenkins.debian.net-setup needs to be written
* what update-j.d.n.sh does, needs to be put elsewhere...
* debian/copyright is incorrect about some licenses: a.) the profitbricks+debian+jenkins logos b.) the preseeding files

=== jenkins-job-builder related

* get rid of some reduncacy in job-cfg/*.yaml
* this seems to be helpful: http://en.wikipedia.org/wiki/YAML#References (pyyaml which jenkins-job-builder uses supports them)
* FIXME: sometimes true and some True used in yaml files
* support for gitweb in jobs 
** needs clean merge of my patches to jenkins-job-builder first...
* cleanup my patches (eg add documentation) and send pull requests on github:
** publisher:logparse
** publisher:htmlpublisher
** publisher:imagegallery
** svn:scm
** properties: sidebar
* d-i and chroot housekeeping jobs should be kept 365 days

== Improve existing tests

=== d-i_manual*

* svn:trunk/manual/po triggers the full build, should trigger language specific builds.
* svn:trunk/manual is all thats needed, not whole svn:trunk
* inform translators (and debian-boot for the package)

=== d-i_build*

* run scripts/digress/ ?
* bubulle wrote: "Another interesting target would be d-i builds *including non uploaded packages* (something like "d-i from git repositories" images). That would in some way require to create a quite specific image, with all udebs (while netboot only has udebs needed before one gets a working network setup).
* build branches? (which?)

=== chroot-installation_*

* inform debian-devel@
* "Hash Sum Mismatch" problem with squid, see https://jenkins.debian.net/job/chroot-installation_squeeze_install_developer_upgrade_to_wheezy/13/console
** pere says this is supposed to be fixed in squid3
* chroot-installation: only trigger (=really run) jobs if available+used packages have changed (save packages in db and compare)
*  warn about transitional packages installed (on non-upgrades only)

----
<pabs> h01ger: how about all of the blends?
<h01ger> pabs, if you could give me concrete (meta-)package names to install, that would be great+very helpful
<h01ger> for ^education* and ^debian-edu* i can find them myself
<pabs> h01ger: hmm, doesn't seem to be easy to find that list, but here are a few: ezgo-* med-* science-* junior-* gis-*
----

=== webchecks*

* inform debian-www@ ?

=== g-i-installation_*:

* babelbox.git has a nice langlist
* $name-preseed.base -> sed .cfg (LANG)
* for edu: pick LANG from predefined list at random - if last build was not successful or unstable fall back to English
** these jobs would not need to do an install, just booting them in rescue mode is probably enough
* test moar images: debian wheezy+sid cd and dvd images too and use lxde cd for installing lxde + etc
* use jigdo to download images - but no edu jigdo images.
* still havent got http://www.os-autoinst.org/ out of my mind

=== reproducible

* schedule packages by adding them to a table in the db, to make sure each package is only scheduled once.
** needs new table: sources_scheduled: name, schedule_date (older=will be scheduled sooner, so its possible to set schedule_date to 1970...
** schedule (once every hour) if there are less then 300 packages scheduled:
*** schedule up to 200 new ones
*** then schedule up to 100 new versions (but not more than 200 in total)
** if thats less than 200 and in total there are less then 300 scheduled:
*** schedule up to 100 same versions, older than a week
*** schedule the oldest FTBFS packages - once every other scheduler run, which is run 24x a day
** another job: reschedule packages supplied by params (first those initital ones but also on demand, via cli or webgui)
** dont reschedule packages which 404ed or are blacklisted

* then have other three runner job constantly picking up scheduled packages
** needs new table: runner_status, id, status (RUNNING, IDLE, STOPPED, START), timestamp
** if there are more than 30 packages scheduled, take 10, if more than 10, take 3, else 1. if 0, sleep 15m
** they write a timestamp to runner_status on each started package, so hanging builds can be detected
** have another job which kills them and marks them killed in db
** setup script shall cleanup workspaces from workers
*** killer job is run before setup
*** scheduler and builder jobs are started after

* for PKG in $(cat packages.yml | ../shyaml/shyaml keys) ; do echo "   $PKG" ; for ATTRIBUTE in version issues bugs comments ; do echo " $ATTRIBUTE = $(cat packages.yml | ../shyaml/shyaml get-value ${PKG}.${ATTRIBUTE} | xargs echo )" ; done ; done
* watch: zephyr (debbindiff timeout?)
* watch: haskell-hsql-odbc
* watch: cxxtest: dbd failure should be in rbuild output!
* watch: file - debbindiff file should be deleted....
* generate .json for tracker.d.o
* reschedule all pkg tested before oct 06 00:00 UTC (we want to know if they generate .buildinfo files)
* reschedule all files with 0 length .rbuild.log files
* watch it build :)

=== Test Debian live

* daily build from sid
* test live images from http://live.debian.net/cdimage/release/current-next and .../current

== Add more tests

=== Test more Debian Edu related things

* manual - by language and full
* build a cd-image from all edu packages (even (and especially) UNRELEASED ones and do a g-i-installation test with it
** this probably better is done after the edu packages has been switched to git and when edu cd are (also?) build on pettersson.d.o
** also because it's probably better to do this with unmodified d-i first :-)
* test minimal and sugar profile, as well as gnome and lxde
* test dvd. test amd64 +i386 chroot setup.

=== Test tasks:

* test installations with (at least) more language tasks enabled, though tasksel doesn't work like this:

----
<h01ger> how do i install a task outside d-i?
<h01ger> what interesting tasks are there?
<jcristau> tasksel install <task>
<daemonkeeper> h01ger:  http://packages.debian.org/source/sid/tasksel
----

Help explaining how to test tasks (ie all the language tasks) very much welcome!

== Ideas...

=== Test co-installability

----
<jwilk> Install everything with priority >= optional? These packages are not supposed to conflict with each other. </wishful-thinking>
<h01ger> jwilk, there are tools to detect these package sets just based on debian/control information. no need to test this every day by installing them :)
<h01ger> running these tools daily OTOH...
<h01ger> http://coinst.irill.org/
----

=== Test them all

* build packages from all team repos on alioth with jenkins-debian-glue on team request (eg, via a .txt file in a git.repo) for specific branches (which shall also be automated, eg. to be able to only have squeeze+sid branches build, but not all other branches.)


// vim: set filetype=asciidoc: