This is such a great idea. I love it. Thinking it through some has hurt my brain, though. But not as much as manually resolving dependencies. I think obviously the biggest challenge is going to be the dependencies. I lost count of how many times I gave up on trying out someone's cool project when resolving dependencies became too big a hassle. I consider myself of high technical aptitude, but not in that area--I'd rather go play Diablo some more. And if I was a regular joe, I'd definitely go play Diablo some more.
Managing dependencies somehow with the distributor is imperative. René's suggestion, having standard "platform" builds, seems the only realistic way to go. Still, it could be a daunting ordeal just to validate your app on all the platforms, even if you reduce the parts to: 1) hardware architecture; 2) OS level; 3) Python runtime and libraries; 4) times, say, two--one each for the current and previous stable runtimes. That's a lotta work just to validate an app. I can't imagine the work required to make all the environments. But if you have a Python runtime build for each major system platform, and they are at least 95% cross-platform compatible, it should greatly simplify distribution as well as dependency resolution. And app developers could code around the 5% if/when they are identified and documented. As Patrick points out, if you stay current you should be mostly okay. It seems most devs and teams strive to make their new releases backwards compatible, and phase out their deprecations to minimize impact. The only real difficulty the app developers need to worry about, then, is how to distribute dependencies not provided by the platform. For example, if you presume to install them in Python's site-packages or site-wide library paths, you will eventually create conflicts. It would require a lot of effort, multi-teamwork, and tight organization. But the results could be so great. Developing for the platform then becomes a design decision. And da Gumm can try all your apps widdout hurting his brain no more, instead of playing Diablo again. =) Well... I'll never give up Diablo. Gumm