One of the trickier things about defining our "plugin" format is the definition of a platform. That is, how can we tell from metadata whether a given plugin is executable on the current platform?
If we use 'distutils.util.get_platform()' and do simple string comparison, I believe this will result in both false positives and false negatives, due to e.g. the absence of processor info for Windows platforms, and the presence of processor info or OS version info for other platforms. For example, a 'linux-i386' module might work with a 'linux-i686' platform, yet not be accepted by a simple string comparison.
Of course, if that metadata is encoded only in the plugin filename, then it's relatively simple to create copies with different filenames, one per applicable platform string. Or, perhaps there could be some type of configuration file that simply lists what platform strings (besides the one the machine itself generates) are acceptable on the machine.
But, false positives seem harder to fix. For example, "win32" is used for both 32-bit and 64-bit Windows targets. I'm unsure whether any of the other targets have similar issues.
Does anybody have any ideas?