Reviving Keryx

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.

1 comment

  1. Awesome to see you reviving this. It’s been a long long time since I’ve worked on Keryx but when you look at the download page and see it’s still being downloaded every single day, you know it’s still useful for people.

    I’m glad to see pyinstaller. It’s come a long ways since I struggled using any of them to package things back in the day. All the other changes seem very worthy.

    Excited to see this and hopefully I’ll be able to jump in sometime and contribute a little bit!

Leave a Reply

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