'Packaging Infrastructure' Contract Weekly Report #3

Blog post by waddlesplash on Fri, 2015-06-19 18:48

Hello again!

As mentioned in last week's report, I planned to work on integration with IRC to allow the developers to get real-time updates on what the builder was doing, finishing the documentation, and then working on the logic that actually builds packages. The first two of the three are pretty much done, and the last one I did get started on. So this week went pretty well.

The IRC integration that I wrote is pretty simple right now. It posts to a predefined list of channels when a build fails (like Buildbot) or when a builder breaks (e.g. when running pkgman update doesn't work properly). It can also accept some basic commands from channel operators, such as "relint these recipes" and "build this software". That's about all it does for now, but as the server gets more functionality, I'll be adding more commands.

As for actual package builds, those are what I've spent the past few days on. As you can see, the last commit to my repository added a really rudimentary way for running package builds. The server doesn't automatically do rebuilds when the HaikuPorts tree changes, but I'll be adding that soon. What I've been working on since that commit two days ago is file transfers (from the client to the server) and evauluating methods for dependency solving. I'm not sure at this point if a full dependency solver (one that looks at versions and not just names) is needed or not. It may be a better option to just barf and catch fire if there are version-level incompatibilites rather than trying to solve them (we probably want to avoid such a thing in our package repository anyway; Linux distributions are often plagued with this problem and it's no fun for anyone).

While working on the IRC logic, I also spent a bunch of time doing various cleanups here and there in the server to make it more stable and contingency-proof. The result is a much stabler system than I had last week, and it's shaping up that with another week or two of work, it'll be both stable and useful enough that I'll be able to start a test instance on my VPS.

Next week I'll leaving for a vacation, so I won't be working on the contact much for the next week and a half or so. See you all after I get back!