This is the top level issue for tracking the restructuring of the titanium_mobile repository and its build scripts.
This is a list of high level components and functional components:
- Should we move titanium_mobile repo to titanium_mobile_old and create a new titanium_mobile repo?
- What about pending pull requests?
- Use git hooks for auto updating
- Support submodule-specific scripting (i.e. doc generation)
- Test submodules
- How to split repos and keep history (filter subtree?)
- Branch management
Splitting up the titanium_mobile repo
- Move android, iphone, and mobileweb into separate repos
- Rename iphone to ios
- Add supported OSes to package.json
- Move anvil, apidocs to separate repos
- Move support/templates, support/node_modules, and package.json to root
Remove deprecated directories/files
- Remove all unused Python scripts
- Remove support directory
Replace scons with a node.js-based build system
- Document current scons process
- Responsible for managing the submodule'd platforms
- Compile platform-specific resources (in parallel)
- Install SDK locally
- Assemble distribution files per operating system (Mac, Linux, Windows)
- Compile documentation
- Download npm dependencies
- Manage branches and releases via a configuration file
- Integration with Jenkins CI server
- Minimal dependencies
- No global libraries (i.e. jake)
- Build dependency's node_modules directory must NOT conflict with node_modules needed for SDK builds
- Create OS specific CI servers for monitoring specific platform repos
- Run Anvil on each master/major.minor merge
- Pre-compile V8
- Fetch latest platform-specific builds from S3, then assemble release
- Upload builds to S3
Suggestion is to first start with ensuring BB and Windows Mobile are integrated into the existing process (they are currently stand-alone repos_ and then proceed to split out titanium_mobile into separate repos once that process is well tested.
Estimate time for tasks and various options.