Over a year ago, I developed two command line utilities for NetBSD (sysbuild and sysupgrade) and a supporting library for the two tools (shtk). These were all introduced in their corresponding blog posts —Introducing sysbuild for NetBSD, Introducing sysupgrade for NetBSD and Introducing shtk— and since then I have heard good comments about them.

About a couple of weeks ago, I started working on the much-needed rewrite of pkg_comp and a supporting standalone tool. I was using the same development methodology as with the other three projects: putting all the code in pkgsrc and implementing the build system from the package's Makefile. Along the way, this became increasingly annoying to the point where I could not stand it any more. pkgsrc is a packaging system, not a development platform. Developing a project within it is difficult due to the indirections between the outer Makefile and the work directory, and the expected workflow of working with packages.

A separate issue is that having the source code in pkgsrc prevents the distribution of the packages as standalone tools for third-party operating systems. (Mind you: I've recently started building NetBSD from Linux and FreeBSD and missed sysbuild dearly.) It's hard and ugly (but not impossible) to generate tarballs for the sources in pkgsrc that can later be hosted elsewhere... and, even if doing that, using pkgsrc as the master tree for the code would seem backwards.

To resolve this situation, I have moved the source code of all these tools into their own GitHub repositories, which are linked from here: shtk, sysbuild and sysupgrade. Along the way, I have added the standard automake-based build infrastructure to these so that they can be built as regular open source packages — something that will make their integration into other packaging systems much easier.

This is my real first introduction to GitHub and, so far, I like the experience. It's certainly geared towards developers but it seems they have introduced features to be more friendly to end-users. For example: the project pages are certainly not something an end-user would want to look at, but there is this GitHub Pages thingy that probably fills this gap. Anyway. If the experience continues to go well, I might consider moving my other projects from Google Code to GitHub!

Why GitHub? Just because. I am using Git these days to manage all of my source code and, while it's not perfect, it does the work just fine. GitHub is a very popular hosting platform for Git-based projects with a huge community around it, and that's important.

Are you a GitHub fan? Did I miss anything while publishing my projects there that I ought to fix?

Go to posts index

Comments from the original Blogger-hosted post: