Hi,

I could offer to start helping on the Windows Phone side of things. 

P.S: This is my first email to the group, and I think I should introduce myself 
- I am Parashuram, working for Microsoft Open Technologies Inc. 

-----Original Message-----
From: Filip Maj [mailto:f...@adobe.com] 
Sent: Tuesday, March 19, 2013 3:42 PM
To: dev@cordova.apache.org
Subject: Platform-level command line scripts

Bringing this up once more, hopefully the last time :)

TL;DR: the behavior and naming of the platform-level scripts are still not 100% 
lined up. I'd like to fix this and agree with you all on some of the finer 
points surrounding this issue.

Benn Mapes, an intern at Adobe, has been working on adding Windows Phone 
support to cordova-cli. It's been a bit of work, but the first step is to land 
command line scripts at the Windows Phone project level, which he is actively 
working on. With this happening, I want to make sure we have our base 
project-level CLI scripts sorted properly.

Additionally, I've been seeing issues filed against the CLI with essentially 
users being confused as to why the behavior of "cordova build"
vs "cordova emulate" on different platforms is different [1] [2].

The answer to all of this is that the project-level scripts have slightly 
different behavior. I've looked into what each of Android, iOS and BlackBerry 
(10) do and I've got a basic table sorted out (below). I would like to get to 
an agreement on naming and behavior for each, and ideally file issues to get as 
many of our platform implementations as possible to implement/tweak behavior so 
that we are consistent on this front.

Scripts
-------

 - build
   - Android: equivalent of running `ant debug`, which simply compiles your app 
in debug mode
   - BB10: packages your app into a zip, runs `bbwp` on it, and code-signs it
   - iOS: runs a compilation with xcodebuild with configuration set to "Debug"
 - clean
   - Android: equivalent of running `ant clean`, which removes any build 
artifacts
   - BB10: does not exist
   - iOS: does not exist
 - log
   - Android: `adb logcat`
   - BB10: does not exist
   - iOS: `tail -f console.log`
 - release:
   - Android `ant release`, compiles with your actual signing key
   - BB10: NOPE
   - iOS: compiles with xcodebuild with configuration set to "Release"
 - run:
   - Android: runs on EITHER a connected device, or if no device, on a running 
emulator, or if no running emulator, launches an emulator (and if multiple 
emulator profiles exist, prompts user to pick one), then finally runs the app 
on it
   - BB10: asks user if there's a connected device. Then either launches a 
simulator + loads the app (if user says he/she has no connected device), or 
attempts runs a debug build of the app on a connected device
   - iOS: launches an emulator using ios-sim with the app
 - emulate:
   - Android: does not exist
   - BB10: does not exist
   - iOS: launches an emulator using ios-sim with the app

Easy Wins
---------

 - build: BB10 should change current behaviour so that it doesn't code sign the 
package.
 - clean: add scripts for BB10 and iOS to support this (should be dead simple).
 - release: BB10 should implement a script that runs a build + a code-sign on 
the built package.

Harder Wins
-----------

There's confusing behavior with run + emulate commands across platforms.
IMO emulate should handle launching an emulator, and run should handle 
deployment, with an extra flag available for run command that specifies the 
deployment target (device or emulator, perhaps --device and --emulator). Also 
not entirely sure how Ripple fits in here but I would definitely like to see 
Ripple as the default emulator target.

Lots to chew on here but I would highly appreciate some feedback! Renaming some 
of these commands is on the table too if anyone sees benefit there!

[1] https://issues.apache.org/jira/browse/CB-2722
[2] https://issues.apache.org/jira/browse/CB-2724

Reply via email to