About seven years ago, I worked on a project called Keryx. I wanted to install new software on my Ubuntu computers in rural Tennessee, and resolving dependencies by hand was not cutting it. So I joined Chris Oliver to write something to make the job easier.

Then I took a break from development. Long story short, I learned way too much about trees, went to college, and then got a job.

Now I have some free time. I’ve got great internet connectivity, but tens of thousands of downloads prove Keryx is still relevant. So I refactored the code and issued a new release today.

What’s new?

Most of the work was refactoring. While Chris is a heck of a coder, seven years ago neither of us followed all best practices.

We had worked on a 1.0 branch, but I chose to throw back to 0.92 for my refactoring efforts. Why? Nostalgia, probably. I’m also pretty certain Keryx 0.92.4 did a pretty good job. I don’t remember much about 1.0. And I like refactoring. It’s fun.

So what did I actually do?

  1. Tried to get the code in line with PEP 8, Python’s style guide
  2. Removed non-critical features, cutting the lines of code 10% from 2865 to 2555
  3. Switched from py2exe to pyinstaller for builds
  4. Started documenting with Sphinx
  5. Cut project load time ~85% (at least on my machine)

In short, I had fun.

0.92.5 is not a polished release. It’s simply functional. I feared that if I waited till things seemed nearly-perfect, I’d never release at all. So give it a try, report the bugs, and I’ll try to issue bugfix releases as often as possible.

What’s next?

I’m going to strip out the GUI, implement a CLI, and then build up a new GUI. I think that promotes good development practices, and helps me understand all the magical things that Chris originally implemented.

I’ll build a better standalone APT emulator which could be used in other projects. That was originally a goal of the 1.0 series.

And hopefully I’ll build a new website, because this project is all about accessibility. Unfortunately, for the moment, it’s also about convenience for me. So it might be a while before that happens.