Hi, #1 The problem Right now the simplest (and also the most correct IMO) way to specify plugin restrictions to specific cordova version is the following:
plugin.xml: <engines> <engine name="cordova" version=">=2.7.0" /> </engines> But in this case as per plugman engines definition (plugman/src/util/default-engines.js) plugman will always try to find version verification script in some predefined location, not taking into account currently running platform, and will fail on WP since correct script name is version.bat, not just version. module.exports = function(project_dir){ return { 'cordova': { 'platform':'*', 'scriptSrc': path.join(project_dir,'cordova','version') }, <- works in general, but NOT for WP7/8 ... 'cordova-wp8': { 'platform':'wp8', 'scriptSrc': path.join(project_dir,'cordova','version.bat') }, <- correct location, not used in case of example above This means that right now there is no way to specify platform dependent location of version verification script for 'cordova' engine check which is going to be the most popular. #2 Proposed solution Taking into account we have platform context when we are looking for the appropriate engine plugman/src/install.js function getEngines(pluginElement, platform, project_dir, plugin_dir){ I propose to think about 'cordova' engine settings (in default-engines.js) as a fallback in case we don't have any platform specific engine for some platform. So in case of engine.attrib["name"] == 'cordova' we should check if there is engine with ['cordova-' + platform] name first and if it does not exist use 'cordova' engine settings only. For example we already do this by the following line, but we need both engines (cordova and cordova-wp8) specified in plugin.xml file. Thoughts? // make sure we check for platform req's and not just cordova reqs if(cordovaEngineIndex && cordovaPlatformEngineIndex) uncheckedEngines.pop(cordovaEngineIndex); PS. Another minor potential issue seems to be in check above; cordovaEngineIndex && cordovaPlatformEngineIndex will return false if one of indexes is zero (zero is valid/correct index in this context so it must be true). Thx! Sergey