[TIMOB-16999] Restructure module projects to support parity and shared files
GitHub Issue | n/a |
---|---|
Type | New Feature |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2014-08-05T22:26:20.000+0000 |
Affected Version/s | n/a |
Fix Version/s | Release 3.3.0 |
Components | CLI |
Labels | module_build, planning-3.3.0, q1-2014-candidate, qe-manualtest |
Reporter | Jeff English |
Assignee | Chris Barber |
Created | 2012-07-11T12:43:26.000+0000 |
Updated | 2014-08-05T22:26:20.000+0000 |
Description
Currently a developer has to create 3 different projects (iOS, Android, and MobileWeb), maintain 3 copies of the source, manifest, etc., perform 3 different builds, and then package those 3 builds into a single distributable zip file.
A developer should be able to:
1. Create a new module project specifying the platforms to be supported
2. A single folder structure should be created with the assets, documentation, example, build.py, LICENSE, Anvil folder, etc.
3. Separate platform specific folders containing build scripts that reference the common files in the module project root
4. The platform specific build scripts should be able to be run individually
This update should also take into consideration hyperloop modules and updating the templates used for creating a new module project.
Future enhancements:
5. A packaging script that is called at the end of the build that will combine all of the platform zips into a single zip (TIMOB-17002)
6. The build.py (or other CLI command) should reside in the module root and call each of the platform specific build scripts. (TIMOB-17002)
It sounds like most of this will be done in 3.3.0, with perhaps the exception of #4.
Here's the changes between the old module creation and the new module creation: Android Module
BlackBerry Module
iOS Module
Mobile Web Module
The only major difference is each platform's build script and output file is in a platform specific subdirectory.
How do we test this?
To test, create a module. Observe the assets, docs, and example directories in the root of the module project that are shared between each platform. Build a module for a platform and observer that the shared resources are bundled with the module.
Tested and verified the fix, following [~cbarber] comment, using Mac osx 10.9.3 Mavericks Appcelerator Studio, build: 3.3.0.201405271647 Titanium SDK, build: 3.3.0.v20140530112513 Node.JS Version: v0.10.13 NPM Version: 1.3.2 acs@1.0.14 alloy@1.4.0-beta npm@1.3.2 titanium@3.3.0-beta titanium-code-processor@1.1.1 Built for ios