Not all builds should be treated equally. Some are more important than others. I propose that the FATE should distinguish between important and less important configurations. My motivation for this is that I want to implement a meter that indicates the health of the overall code base. While it would be ideal for all FATE configurations to be 100% green at all times, I don’t think it’s fair to penalize the entire FFmpeg codebase just because some less prevalent platforms aren’t performing up to spec.
What platforms should be considered first class? I’m thinking latest gcc 4.3 and 4.2 series for Linux on x86_32, x86_64, and PowerPC, at a minimum.
In other FATE news, I have started computing percentages of test coverage. According to my numbers, FATE currently tests 58% of FFmpeg’s total mux/demux/encode/decode features. It’s a start, I suppose.
To answer this properly you’d really need some market research as to the proportions of the archs being used. I’d guess that x86 is waaaaaaaaaaay more prevalent than powerpc and I’d wonder about the proportions of powerpc 32-bit/64-bit and ARM.
Personally, I’d weight x86 and recent GCC much higher than anything else but maybe I’m being ignorant about just how many ARM devices are out there that use FFmpeg, or how many PPC systems are still in use.
Not sure about PPC, but I’d consider x86, amd64 and arm before the rest of the world, and gcc 4.3 more than 4.2 (why? because 4.2 has some nasty code generation bugs and I think 4.3 might actually work quite better). And Linux of course, but I wouldn’t stop there if you can.
FFmpeg libraries are used so much on Windows and OSX by other projects that it could really use some coverage there, but I think if they want it to be well tested they can push something themselves ;)
Maybe weighting has some cons too. In biasing the presentation of ‘how healthy the code’ is, we don’t want to neglect applications that could arise on platforms.
I suppose that’s why we’ve thought of ARM being important. We know a lot of portable devices are out there that use ARM and we can probably expect FFmpeg to be deployed on those devices in some capacity.
I think the main point of weighting, if it’s done at all, should focus on lessening the impact of obsolete architectures on the current perceived state. And I suppose the weightings can be altered if platforms re-emerge or so.
That FFmpeg is already being used on ARM is evident from the number of people trying to build it for the iPhone.