DevTools/WebIDE/External Tools
From MozillaWiki
Contents
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
- Leveraging grunt and other node tools (yeoman)
- marionette (QA)
- Uses same transport-layer code from DevTools, otherwise unrelated to DT
- Various testing frameworks use this to connect to devices, etc.