So the majority of my attention today was devoted to moving from using subversion as my revision control system, to instead using git. I’ve used git a few times before in the past, for other projects, so I had a fair idea what I wanted to do, but nevertheless git has some disfunctionalities that took me a little while to remember how to work around.
Some decisions were made by the developers of git (and I’m sure for very good reasons) that make it difficult to commit changes from one repository to another, in the traditional sense. In a certain fashion, it makes sense. Git is designed for a large web of developers to be able to work on their local repositories, and then when their code hits a certain level of maturity, other devs can pull those changes into their own repositories. And indeed, git works exceptionally well for this. Unfortunately it just makes for an extra pain in the ass when you, personally, have two systems and you do your work on one and you want your changes to appear on the other. If firewalls and NATs didn’t exist it wouldn’t be a problem, but they do. And my “development” system resides behind a firewall and doesn’t allow incoming ssh, while my server does allow it. Anyways, gist of it is, it took me awhile to remember how to make ‘git push’ work in the fashion in which you’d expect.
With that done, I set about modernizing the build chain. In the past all the building was done with a very primitive, hand-written Makefile. It did the job just fine, but I wanted to at least put a proper build chain in place, should I ever decide to share the code with anyone (someone signs on as a co-dev, etc).
That about sums up my efforts of the last day or two. There’ve been quite a few minor adjustments to the code, but nothing drastic. My SSH library, libmoosshsrv, has taken a few steps closer to being publicly releasable. I’m still not confident enough that it’s crypto-secure to pull the trigger on that yet, but it at least implements everything the RFC states is required, and most of the things that are recommended. However, the more I’ve thought about it, the more I think the library would actually be much less useful for other devs than most people seem to think. Conventional single-player roguelikes are served quite well by having a set-up similar to crawl.akrasiac.org, where you log in with some public credentials (joshua/joshua, if you like movie references), and your login shell is set to be the roguelike executable. The only systems that would gain any significant amount of benefit from libmoosshsrv would likely be multi-player roguelikes, or perhaps single-player roguelikes with interactions between games. There don’t seem to be very many of those projects around.