vendredi 8 avril 2011

Oops!… I did it again

Well, I still don't feel ready enough to go back to (real) work. So, once more, I had to get my fingers on something to hack and I picked the Buildd Status Pages once more. It's not my favorite project, but I decided to implement the few remaining ideas and get (temporarily) done with it. So, here we are with new features (and a few bug fixes):

  • Add option to show (co-)maintained packages (Closes: #559515, #507782). It takes as input two files (Maintainers and Uploaders) to find the list of packages. Unfortunately, they contain binary packages (and particularly architecture "all" packages) that wanna-build doesn't know anything about. On buildd.debian.org, I don't have enough data (yet) to filter out that list manually. Ideally, my input should be a list of sources packages with at least one binary non architecture "all" packages only. Anyway… now, if you enter an email address, the script should parse those files looking for your list. Then, it adds a link to DDPO using that email address and replaces it by the list of found packages in the form, so that you can manually filter it.
    Update: I ended up filtering manually the list of packages. I keep only packages that wanna-build knows something about, on at least one architecture.

  • Escape special HTML characters when we fetch a log (Closes: #621739). No comment on this one please :) At least, it was very easy to fix.

  • Add a "raw" option to fetch.php so that it outputs only what's in the log file, without any processing or escaping.

  • Add a link to buildd.debian-ports.org, with the same list of selected packages and suite. Additionally, I've made some changes so that the deployment there becomes a bit easier.

  • Try to produce valid XHTML code. I just went through errors I've seen and fixed them. The produced XHTML code is rather simple. So, I don't need a real library for that yet.

  • Add support for tail of logs. If your package fails to build on some architecture, the script will show you the last 15 relevant lines below the status table.


In my opinion, this new set of features deprecates totally the old version, since all (and more) is now covered and working with this new version. So, I think we can remove pkg.cgi and friends and put some redirection to the new scripts. If you disagree, please tell us ! I'll submit a bugreport to QA folks asking them to change/remove links still present on the PTS and DDPO.

I think that this is the last set of changes before a while (except fixes). I hope that you'll enjoy these new features as much as I do. If I still have some energy, I'll try to spend it on -release stuff where there are several ongoing transitions (and many others waiting for acks, hints, analysis, etc…).

mercredi 6 avril 2011

Buildd status pages: say goodbye to external dependencies

Last week, I had to put my daily (real) work off for a bit, to get some rest.  I took this occasion to implement a few ideas I had for the Buildd Status Pages. Mainly, I wanted to get rid of my external dependencies which are:

  • https://buildd.debian.org/build.php which shows all build logs available for a package. It's nice and simple, but old and not easy to read. In my opinion, it's almost useless because it takes some time to realize (visually) what happened to the package (there are no colors to distinguish successful builds from failures, text is not aligned, etc…).

  • https://buildd.debian.org/fetch.cgi which shows the content of a build log given a package, a version, an architecture and a time-stamp identifying the log file (you can see this as an example). The page works, there is no real need to rewrite it, modify it or whatever. It just does its job perfectly, but it was my last external dependency :)


Besides of getting rid of external dependencies, there were also a few feature requests (#618676, #612174, #518526) waiting for a while and it was good time to fix them. Hopefully, there are related to what I was fixing.

The final version is now deployed and can be used. The implemented changes are :

  • From the regular package view, you have now a link to all logs available for that packages (click on Logs in the table), or all logs for a specific architecture (click on old in the table, for you preferred architecture).

  • The listing of available build logs has now its own new page. The default listing shows everything, i.e. every version available and everywhere known architecture (just like the old page did before). But now, you get with that the build time and disk space consumed during the build, when available. Furthermore, it groups the logs by version so that it becomes easier to see that "all that group are logs for the same version". And you can also show build logs for a specific architecture by choosing one (links in rows) ; or restrict on versions, in a similar way. And, of course, there are some additional colors in each row to distinguish successful builds from those who failed.

  • The page that fetches the log is now available from other pages. And this removes the last external dependency.

  • All pages have an appropriate HTML title set (yeah, it's a shame that I didn't fix that since the first deployment).


I think that I tested well enough this new version and it works okay. Nevertheless, if you encounter a bug or a strange behavior, please don't hesitate to contact me (either by mail or on irc) or submit a bug report against buildd.debian.org.

The next steps (probably) are :

  • add the last feature that pkg.cgi has which the ability to select a list of packages according to their maintainer (or co-maintainer).

  • a better integration with P-A-S files.

  • show tail of logs for build failures.

  • ask wb-adm if build.cgi, bymaint.php, fetch.php, info.cgi are still needed/useful. If you do use use/need them, please speak up before they get removed.

  • if you have any other idea, do submit a bugreport.