[TIMOB-23550] CLI: Use platform-specific moduleApiVersions and enforce them in lookup of modules
GitHub Issue | n/a |
---|---|
Type | Improvement |
Priority | High |
Status | Open |
Resolution | Unresolved |
Affected Version/s | n/a |
Fix Version/s | n/a |
Components | Android, CLI |
Labels | n/a |
Reporter | Christopher Williams |
Assignee | Christopher Williams |
Created | 2016-06-22T18:29:07.000+0000 |
Updated | 2016-09-26T05:03:21.000+0000 |
Description
As part of upgrading to latest V8, the native module API version should be bumped solely for android. We have the concept of a moduleApiVersion that gets written into the manifest.json of the SDK, but we don't appear to enforce that version whatsoever when we look up modules for packaging into the app. We also have no means of incrementing the module api version per-platform (so if we update V8 on Android, we can only bump Android's native module api version and not iOS' as well).
This would be nice to enforce/validate at the CLI level like we do for other attributes of modules in node-apps's timodule.js #find() method. However, it is not *required* to get the new modules working, and often times the minsdk attribute would partially suffice. Studio does some validation of the apiversion when filtering the list of modules to add to a project, so we at least filter/validate when adding - but with the module api version change from 5.4 -> 6.0 for Android, we're likely to run into cases of people swapping between those versions on one project and not realizing the 5.4.x/apiversion="2" modules won't work on 6.0.0 (until it breaks at project build time with an error about undefined symbols while the emulator is launching).