Week 1 on Reproducible Builds

In this post I’m reviewing what I’ve done the last 6 days of Outreachy-funded reproducible builds work, outline what I plan to do the next two weeks, and speculate on long term goals. For those of you involved in the Debian reproducible builds project, please provide feedback about future plans and work!

Week One review

One week of Outreachy completed! What have I done?

  • Reproduced the reproducible builds tests website locally
  • Added information to the INSTALL file about reproducing the tests website (viewable here)
  • Checked in changes that broke nearly every link to the tests website
  • Fixed mosts of the broken links by adding redirects. (Please let me know if you find any!)

The change that broke everything was the addition of a directory: tests.reproducible-builds.org/debian

The directory was added to contain all Debian-specific pages, in line with the other project’s reproducible builds status pages: arch linux, fedora, coreboot, etcs. Previously, all Debian pages we simply served directly out of the DocumentRoot. To fix all the broken things, I’m pretty sure I had to find, inspect, and add  /debian or change global variables within every file pointer in the entire tests website. Sometime tedious, but chasing down bugs and complaints was mostly fun 🙂

I also learned (everything I now know) about Apache websites, redirects, the website/navigation/directory structure of tests.reproducible-builds.org, and the roles of many of the reproducible scripts in jenkins.debian.net/bin.

Week Two plan

What will or should I do next?

In the short term, over the next two weeks, I hope to make useful improvements to the tests website and backend while continuing to get up to speed (as well as learn Python).

  • Improve navigation on tests.reproducible-builds.org/debian
    • fix highlighting in the nav bar on package pages
    • address navigation bar re-organizing requests like this one
    • add documentation/hovertext for links
  • Create a front page for the test reproducible builds site (update: probably not do this yet, low priority, already “too many front pages” for reproducible builds)
  • Convert bin/reproducible_html_pkg_sets.sh to python

Have other thoughts about minor improvements to tests.reproducible-builds.org? Please let me know! The above list is not internally prioritized, feel free to ask for things to be bubbled up.

Longer-term goals

My long term summer goal is to make the Debian test code more easily extensible to show the reproducible results from other projects. This will lower the barrier for new projects to keep track of the reproducibility of their code, for great good.

This starts with the reproducible.db database, which presently only tracks reproducible testing results for the Debian project.  The reproducible builds project’s needs have outgrown the original SQLight database, so this redesigning includes a migration to Postgre. Goals of the redesign include ease of querying/comparing packages across distributions, as well as generalization to include results from projects other than Debian. I’ll start on this work in two weeks, when I get to DebCamp! 🙂

Redesigning the database will also lead to updating the python script which use that data to produce the Debian tests website. Other project scripts (like Fedora, RedHat and Coreboot) can then be updated to track results in the database as well, instead simply directly producing their own test websites.

update: as an intermediate step — before redesigned the reproducible.db database to handle multiple projects — h01ger recommended I help the FreeBSD project recorded tests to a FreeBSD specific database.

Leave a Reply

Your email address will not be published. Required fields are marked *