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.
** create d-i_svn_trigger job to trigger sub-set jobs (like manual)
** create d-i git hooks
* fully automate backup and backup /var/lib/jenkins/jobs /var/lib/munin /var/log /root/ too
* try awstats
* put kgb-client.conf in git and sed passwords from filesystem into it...
* push jenkins munin plugins upstream
* some way to map failing jobs to debian bugs and display that in the job.... (probably via a 2nd build step)

== 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
* better switch to scm trigger instead of scm pulling before releasing this as 0.1...

=== 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?)
* inform debian-boot@ ?

=== 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

general

* 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

* use git repo in job config?
* investigate packages not in sid from https://jenkins.debian.net/view/reproducible/job/reproducible_build_d-i/lastBuild/console - the list was taken from the jenkins d-i jobs...
* pbuilder results cleanup
* pbuilder cleanup cache
* cleanup userContent/diffp/
** graph number of reproducible packages

=== 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!

=== 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: