Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We release a number of small plug-ins that go along with our software. Each plug-in allows our software to talk to a single manufactuer's hardware. I would like to devise a system for keeping track of plug-in releases.

Example info that should be stored:

  • Hardware manufacturer name
  • 32-bit? 64-bit? both?
  • What modes of operation does the hardware support?
  • What versions of the manufacturer's driver have been tested with the plugin?

Desirable properties of the system:

  • Able to synchronize with version control software
  • Stores data in human-readable text file (also good for differ tool)
  • Free visual, spreadsheet-like editor available
  • Able to do simple analysis like "What is the oldest plug-in?"

I've got to imagine that someone else has tackled this problem already. Right now my best guess is XML/JSON with a visual editor, but I have been disappointed in the editors I've tried so far. I'd like to get input from some more experienced developers. Thanks!

share|improve this question
I don't understand why you can't do this with appropriate uses of repositories, branching and tagging in the VCS of your choice. – Thomas Owens Sep 26 '11 at 23:58

Continuous integration is probably something you'd find useful for this task.

I'd recommend you have a look at Hudson (or Jenkins1).

Essentially it's a build robot, and you can arbitrarily add scripts and activities to be run as part of the build process. For example, monitor the SCM repository for changes and trigger a build, run unit tests, log information about the build, etc. etc.

If you send log entries to a database (e.g. SQlite) you'll be able to do any queries you like.

1. the Hudson/Jenkins split.

share|improve this answer

If you were working with Debian packages, you could just do ls/find on your pool directory.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.