DevTools/Features/GCLI

From MozillaWiki
Jump to: navigation, search
Please use "Edit with form" above to edit this page.

Status

Command Line
Stage Shipped
Status In progress
Release target Firefox 16
Health OK
Status note `

Team

Product manager Kevin Dangoor
Directly Responsible Individual Joe Walker
Lead engineer Joe Walker
Security lead `
Privacy lead `
Localization lead `
Accessibility lead `
QA lead Mihaela Velimiroviciu
UX lead `
Product marketing lead `
Operations lead `
Additional members Nick Fitzgerald

Open issues/risks

`

Stage 1: Definition

1. Feature overview

GCLI is a Graphical Command Line Interface. Command lines are fast and powerful, but they're also opaque and ugly due to a reliance on technology from the 70's. GCLI wants command lines to be discoverable and beautiful in addition to being fast and powerful. GCLI commands are just JavaScript so it is easy to extend.

GCLI was originally part of the Bespin/Skywriter/Ace project (and was previously known as Cockpit). It is usable in a variety of situations. This project aims to integrate GCLI with the Web Console. The Web Console will be enhanced so that it can run JavaScript either using the current 'pure JavaScript' syntax or the simpler GCLI way of entering commands.

As part of developer tools, GCLI will enable developers to access a wide range of development and diagnosis tools without a cluttered interface. It will help users enter the correct parameters quickly and without reference to manuals.

Current web developer tools like Firebug and the Webkit Inspector have command lines, however they are largely unused for user interaction because they insist on a pure JavaScript syntax.

2. Users & use cases

All users of the web developer tools.

3. Dependencies

`

4. Requirements

`

Non-goals

`

Stage 2: Design

5. Functional specification

Commands

In this section, we should enumerate the commands that we're going to ship initially and some guidelines for how commands should be designed.

6. User experience design

`

Stage 3: Planning

7. Implementation plan

`

8. Reviews

Security review

`

Privacy review

`

Localization review

`

Accessibility

`

Quality Assurance review

`

Operations review

`

Stage 4: Development

9. Implementation

`

Stage 5: Release

10. Landing criteria

`


Feature details

Priority P1
Rank 2.1
Theme / Goal `
Roadmap Developer Tools
Secondary roadmap `
Feature list Desktop
Project `
Engineering team DevTools

Team status notes

  status notes
Products ` `
Engineering ` `
Security sec-review-complete Notes
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance in progress Test plan
User experience ` `
Product marketing ` `
Operations ` `


Summary

GCLI is a Graphical Command Line Interface. Command lines are fast and powerful, but they're also opaque and ugly due to a reliance on technology from the 70's. GCLI wants command lines to be discoverable and beautiful in addition to being fast and powerful. GCLI commands are just JavaScript so it is easy to extend.

GCLI was originally part of the Bespin/Skywriter/Ace project (and was previously known as Cockpit). It is usable in a variety of situations. This project aims to integrate GCLI with the Web Console. The Web Console will be enhanced so that it can run JavaScript either using the current 'pure JavaScript' syntax or the simpler GCLI way of entering commands.

As part of developer tools, GCLI will enable developers to access a wide range of development and diagnosis tools without a cluttered interface. It will help users enter the correct parameters quickly and without reference to manuals.

Current web developer tools like Firebug and the Webkit Inspector have command lines, however they are largely unused for user interaction because they insist on a pure JavaScript syntax.


Release Requirements

The GCLI enhancements to the Web Console can be split into a number of sections, which could all land together, or separately.

  1. Support code.
    1. Require.jsm is a small amount of code to allow us to import CommonJS code.
    2. GCLI and Ace use a small library called Pilot. We hope to remove GCLI's dependence on Pilot, so this item will probably disappear.
  2. API level code to allow registration of commands (but not their execution). Not useful by itself except as an API commitment.
  3. Basic command execution, prefed out. Command help unavailable.
  4. Full command line including localized help.
  5. Other enhancements (bucket for stuff that we'd like to do, but not before the steps above).


Next Steps

  • Creating demo
  • Getting code sections above reviewed
  • Accessibility review
  • Localization review


Related Pages

Team

The GCLI is an experiment and it will take a little time to get the UX right. We want your help and feedback! Send email to dev-apps-firefox

  • Joe Walker: (irc:joe_walker) Lead developer and feature designer
  • Nick Fitzgerald: (irc:fitzgen)
  • Kevin Dangoor: PM

Goals/Use Cases

A Web Console user should be able to change filters or clear the console entirely with the keyboard.

Someone who wants to compare the styles of a set of page elements should be able to run a command to select some elements and then another command to open the Style Inspector, all without reaching for the mouse.

Non-Goals

For this project, we're not looking to entirely replace the Web Console's JavaScript command line with the GCLI. After we are comfortable with the UX, we will revisit that.