We've been looking into the platform scripts for BB recently. Hopefully
I'll have some code to share soon.

Here is what we are thinking:
- build - should create and deploy debug token by default rather than
signing. We'd also like this to compile any native plugins.
- release - just calls build with a release flag which code signs
- clean - remove the generated files
- run - deploys to device or simulator which is pre-configured
- * target * - this would be an additional script to add/remove devices for
the run command
- log - I believe the blackberry-deploy tool can pull down the BB10 app
logs. I'll double check that tomorrow.

Questions:
- Am I safe in my assumption that all platforms may define parameters
differently as long as default actions are the same?
- Should the build script call run after successful build as it does now?

Thanks,
Bryan


On Tue, Mar 19, 2013 at 8:43 PM, Tim Kim <timki...@gmail.com> wrote:

> I agree with the BlackBerry scripts must do. Most of the BlackBerry stuff
> should be pretty simple. If you took all the existing ant commands and
> what's in the cordova scripts already, you're most of the way there.
>
> However, I'm not sure what log would look like. I think there's a way to
> ssh your way into the BB10 and get access to the device log which could be
> pretty useful. However, I haven't been able to do it on my dev alpha (was
> locked out via file permissions), but maybe the z10 is able to???
>
>
> On 19 March 2013 17:25, Benn Mapes <benn.ma...@gmail.com> wrote:
>
> > Ok just to get this straight, we would like to see these scripts in the
> > cordova directory of a Cordova project.
> >
> > *build* - compiles the project so that it can be deployed (possible flags
> > are debug and release?)
> >
> > *clean* - removes all generated files (are these just the project
> specific
> > files or the ones generated for the platform as well, i.e
> CordovaDeploy.exe
> > for windows)
> >
> > *log  *- logs device output (not supported yet for windows)
> >
> > *release* - Is this just the equivalent of `build` but in release mode?
> > maybe you can just make this a flag in the build script?
> >
> > *run *- This would handle deploying the already built application to a
> > device or emulator of the users choosing (do we want to prompt for this
> or
> > use flags to decide?)
> >
> > *emulate* - I like jesse's suggestion that this should be used for
> *ripple
> > only*
> > *
> > *
> > Cheers,
> > ~Benn
> >
> >
> > On Tue, Mar 19, 2013 at 4:48 PM, Jesse <purplecabb...@gmail.com> wrote:
> >
> > > I agree with Anis, and your easy wins Fil!
> > >
> > > emulate is confusing, unless emulate is 'ripple only!'
> > >
> > > I think run should take a parameter which specifies where it should
> run,
> > > defaulting to an attached device perhaps.
> > >
> > > The cordova-deploy tool for Windows Phone 8 and Windows Phone 7 ( same
> > API,
> > > different implementations/requirements/libraries ) has a simple
> interface
> > > where you can call it with -devices and it will simply list targets [1]
> > >
> > >
> > > In this case, the deploy tool is not going to build anything, as it is
> > > specifically *just* a deploy tool, but ultimately on WP7+8 this is what
> > the
> > > cl tools will use anyway.
> > > An approach like this allows you to target multiple emulators ( WP8
> has 7
> > > different emulators )
> > >
> > >
> > > [1]
> > >
> > >
> >
> https://github.com/purplecabbage/cordova-wp8/blob/master/tooling/CordovaDeploy/CordovaDeploy/Program.cs#L45
> > >
> > > @purplecabbage
> > > risingj.com
> > >
> > >
> > > On Tue, Mar 19, 2013 at 4:32 PM, Anis KADRI <anis.ka...@gmail.com>
> > wrote:
> > >
> > > > I agree with your easy wins.
> > > >
> > > > As for the 'emulate' command I don't think it should exist and should
> > be
> > > > replaced with 'run'. I thought we agreed on it in a previous thread.
> I
> > > > believe the way Android does it is the way to go.
> > > >
> > > > The issue is to get it to work on iOS with Fruitstrap. Obviously we
> > can't
> > > > ship FruitStrap with Cordova but we can script it to download it when
> > we
> > > > use the "run" command.
> > > >
> > > > Don't know anything about BlackBerry but I want to say that there
> > should
> > > be
> > > > a way to detected connected devices without prompting the user, yes ?
> > > >
> > > > -a
> > > >
> > > >
> > > > On Tue, Mar 19, 2013 at 3:42 PM, Filip Maj <f...@adobe.com> wrote:
> > > >
> > > > > 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
> > > > >
> > > > >
> > > >
> > >
> >
>
>
>
> --
> Timothy Kim
>

Reply via email to