DevTools/WebIDE/External Tools

From MozillaWiki
Jump to: navigation, search

Command Line / External Tools for Apps

People

  • J. Ryan Stinnett (DevTools)
  • Alex Poirot (DevTools)
  • Rodrigo Silveira (Apps Engineering)
  • Matt MacPherson (Apps Engineering)
  • Rory Petty (Apps Engineering)
  • Fred Wenzel (Apps Engineering manager)
  • Christopher Van (Marketplace)
  • Jennifer Fong (Apps Engineering)
  • Jukka Jylänki (Emscripten)
  • Les Orchard (Apps Engineering (was MDN))

Outcome of Discussion

Principles

  • Mozilla teams see low value in creating "another" CLI tool for app developers
    • Many web / app developers already have a favorite (Grunt / Gulp) if they know how to use CLI tools today
  • Would be better to start by improving integration within existing toolchains

Active Work

  • To support complex build steps (like Cordova, Grunt, Gulp, etc.):
    • WebIDE should offer a pre-push hook to call a build command
    • The command to call could be defined in some file at the project root
    • App DevTools team is working on this in Q3 2014

Future Plans

  • Cordova and other CLI tools should have a way to push apps
    • A small Node tool could be made that just does this, so it can be done in a headless (non-GUI) way
  • Cordova and other CLI tools should have a way to trigger debugging
    • Best path forward here seems to be fixing the Mac issue with Paul's WebIDE CLI
  • To support additional goals, like app validation or submission:
    • Short Term: Standalone tools (like from Marketplace team) are a good solution
    • Long Term: Extend WebIDE's available actions with shared JS code
  • There is interest in standalone CLI tools to support CI testing environments, but not seen as needed for a primary workflow
    • May only need a subset here, like validation only

Existing Tools (or in development)

  • ffdb.py (Emscripten: Jukka Jylänki)
    • Push apps to simulator or device
    • Various other utils: memory, prefs, etc.
    • No interaction with WebIDE
    • Python, self-contained
  • WebIDE CLI (DevTools: Paul Rouget)
    • Blocked for now: Does not work on Mac (bug 1020739)
    • Open apps in WebIDE
    • Push apps to simulator or device
    • Debug apps on simulator or device
    • Part of Firefox / WebIDE binary
  • Cordova FxOS support (Apps Engineering: Rodrigo Silveira)
    • Adds support to Cordova for FxOS APIs
    • Short term goal: Push apps to simulator or device
    • Long term goal: Debug apps via WebIDE
    • Node.js
  • firefox-webapp (Marketplace: Christopher Van)
    • Manifest validation
    • Future goal: Submission to Marketplace
    • Node.js
  • firefox-client (DevTools: Heather Arthur, Alex Poirot)
    • Connect to DevTools servers, like b2g devices or simulators
    • Generic tool, not specific to apps
    • Node.js
  • python-fxdevtools (DevTools: Dave Camp)
    • Same as firefox-client above, but in Python
  • recroom (Apps Engineering: Matt MacPherson)
    • Leveraging grunt and other node tools (yeoman)
      • AppManager / WebIDE could look at grunt file and display tasks (ala xcode)
    • Looking to consume, not write another toolchain
    • Some API from WebIDE build apps for deploying
    • push to simulator, push to device
    • maybe even publish to Marketplace
    • "standard" workflow elements that WebIDE provides
  • marionette (QA)
    • Uses same transport-layer code from DevTools, otherwise unrelated to DT
    • Various testing frameworks use this to connect to devices, etc.