I found an odd situation at work and I’m trying to figure out where to start with a solution.
We have a custom hardware/software device which contains multiple boards, each with their own function and flavor of software (CPLD, bootloader, application, etc). Additionally, the device interacts with a specific web app and a PC application.
Each one of these components has a revision history, tracked individually. Particular devices (which of course are all featureless black boxes) potentially have different versions of any and all components, hardware and software- we’re still in the prototype and test stages.
What I’d like is some kind of unified version tracking, where I can trace software builds against bugs and feature requests, have a history/schematics for the boards, and- most importantly- what versions of components were tested against which other versions of components. In other words, I know that bootloader version 1 passed test in conjunction with board version A, but was not necessarily tested against version B of the same board, even though it was extant at the time.
Individual rev tracking is relatively easy; we have a handful of developers working different software components. It’s tying them together and being able to say that “PRODUCT VERSION 1.0″ consists of this bag of components, tested against each other and not much else. That way, when we update, say, the bootloader, I can have it regression tested against the current versions of all other components, label the whole “PRODUCT VERSION 1.1″, and know what that snapshot is, even though someone comes out with version 1.4 of the application code the same day.
Ideally I’d like to track revision history separately across all components, along with users being able to log bugs against specific components or against the product as a whole, after which developers can re-assign the bugs to whichever subsystem is appropriate.
Something web-based would be ideal as developers aren’t physically colocated.
We’re currently using Bugzilla, which is nowhere near up to the task. I’m looking at Trac, but I’m not sure it’s the right tool from the job. It seems like there are a lot of source control systems, a lot of revision history systems, and a few project management systems out there, but I haven’t found anything that handles everything I need.
It may sound more complicated that it is, but it’s pretty complicated when we’re down in the trenches with it. There has to be a solution to this!