[TIMOB-8653] Tooling: Separate SDK from the Platform
GitHub Issue | n/a |
---|---|
Type | Sub-task |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2012-05-08T10:29:43.000+0000 |
Affected Version/s | Release 2.1.0 |
Fix Version/s | n/a |
Components | Tooling |
Labels | core, look1 |
Reporter | Marshall Culpepper |
Assignee | Bill Dawson |
Created | 2012-04-10T14:10:10.000+0000 |
Updated | 2017-03-16T22:06:13.000+0000 |
Description
This task comprises a few high level tasks:
* The SDK should live as it's own standalone component, with it's own git repository
* The SDK and Platform should be able to have their own release cycles, and the SDK should be able to work with multiple versions of the Platform
The titanium_mobile PR is: https://github.com/appcelerator/titanium_mobile/pull/2111 The PR for the new repository (titanium_mobile_tooling) is: https://github.com/appcelerator/titanium_mobile_tooling/pull/1 Some prelim notes: * You can't use Titanium Studio for testing, which is why the testing notes have the commands spelled out for you. (This is good, since you're anyway meant to test the commands, and it's easier to see output/errors from Terminal.) * We should have one person test for Android, one for iPhone, one for MobileWeb.
Testing Instructions
Builds
Build/Release titanium_mobile
* With the new branch, runscons
. There should be no errors, and the ZIP file should appear underdist/
. * "Release" this new build however you normally do that on your dev machine, i.e., unzip the zip somewhere.Build/Release titanium_mobile_tooling.
* Run ./build.py. There should be no errors and the filedist/mobiletools-osx-2.1.0.zip
should appear. * Release this zip such that the pathmobiletools/osx/2.1.0
lives side-by-side withmobilesdk/osx/2.1.0
. The point is, these two components -- the SDK and the Tooling -- are siblings in theTitanium/
hierarchy. If you, like many of us devs, use symbolic links for your dev versions of the sdk, you can now do something similar with the tooling as well. For example, my/Library/Application Support/Titanium/mobilesdk/osx/DEV_2.1.X
points to/Users/bill/src/titanium_mobile/dist/mobilesdk/osx/2.1.0
and my/Library/Application Support/Titanium/mobiletools/osx/DEV_2.1.X
. In summary, do it however you wish, but these two components should somehow be siblings.Create projects
Create an iPhone project.
* In Terminal, use the tooling'sproject.py
to create an iphone-only project. Example:* Note that the second-to-last argument is the path to the _mobile sdk_. * The project should be created without error.
Create an Android project.
* In Terminal, use the tooling'sproject.py
to create an android-only project. Example:* Note that the second-to-last argument is the path to the _mobile sdk_. * Note that the last argument is the path to the _android sdk_. * The project should be created without error.
Create a MobileWeb project.
* In Terminal, use the tooling'sproject.py
to create a mobileweb-only project. Example:* Note that the second-to-last argument is the path to the _mobile sdk_. * The project should be created without error.
Create a project for all three platforms.
* In Terminal, use the tooling'sproject.py
to create a project for three platforms. Example:* The project should be created without error.
Running projects
Run the iPhone project to simulator.
* Use iPhone's builder.py to build and run the project on simulator. Example:* The project should build without error, then open in the iPhone simulator. Note that sometimes first launch will timeout... this is the case with current tooling as well.
Run the Android project to emulator.
* Use Android's builder.py to both launch the emulator and release a project to emulator. (You need two Terminal windows for this!) * In the first terminal window, use builder.py to launch the emulator. Example:* After the emulator has launched (and you can see it with {adb devices}), build and launch the android project into it using builder.py in a *second Terminal window*. Example:
* The project should build without error and launch in the emulator.
Build the MobileWeb project and view in browser.
* Use mobileweb's builder.py to build the project. Example:* Open the resulting index.html in your browser. Example:
Test titanium.py
Help
* Make sure the {help} command works without error. Example:Create an application project
* Use titanium.py to create a new application project. Example:* There should be no errors, and you should see three messages saying
Created ____ application project
.Create an iPhone module project.
* Use titanium.py to create a new iphone module project. Example:* You should get no errors and you should see a message that it was created. * Test the module by going into its folder and running
build.py
. Example:* There should be no errors.
Create an Android module project
* Use titanium.py to create a new android module project. Example:* You should get no errors and you should see a message that it was created. * Test the module by going into its folder and running
ant
. Example:* There should be no errors.
Create a Plugin project.
* Use titanium.py to create a new plugin project. Example:* You should get no errors and you should see a message that it was created. * Test the plugin by going into its folder and running
./build.py
. Example:* There should be no errors.
Run the other titanium.py commands
I'm too tired to type them all. :) Run "help" again to see the commands, then test the ones you want too. :)Marking as Invalid since we're going to toss this out. Want to make sure QE doesn't take the time to test it.
This is not really invalid. We need to combine the repository separation with the new node.js based CLI and tooling so this is definitely needed. We are just not going to release it to the public until CLI project is ready to be released.
Right. But I think maybe in this case it's better to close this one and rely on another ticket. The testing notes might not be applicable, and the Git Commits history is enormous with changes that are not applicable any more. Although if we delete the git branches in the repositories, it could be that the git history goes away here too. I'm not sure how this work. Anyway I'll just leave it like this for now. :)
Closing ticket as fixed.