Skip to content

Research: Extension Management

dangoor edited this page Feb 27, 2013 · 19 revisions

Extension Management Research

In Sprint 21, we had a story to research Extension Management Workflow and Metadata. This document has a summary of the results and links to the details. If you're interested in diving straight into all of the details, take a look at the "Detailed Documents" section at the end.

In the interest of truly summarizing what we've come up with, this document will leave out background and details, so do be sure to dive in where you are interested in learning more or helping with implementation.

Finding and Installing Extensions

The Extension Manager Workflows document how users will interact with the extension manager in Brackets.

The wireframe below gives an idea of how the extensions may be presented (the presentation in the sidebar is the relevant bit, a sidebar may very well not be the home of the extension manager).

Wireframe of Extension Listing

  • Users will be able to quickly see the most popular extensions (based on ratings and downloads)
  • Very speedy (entirely client-side) search is right at the top
  • Installing an extension just takes a click on the install button
  • More information is available to help the user pick the right extension (longer description, reviews)
  • Installation occurs in the background, while the user works
  • Our goal is to make extensions restartless, but the details and timing need to be worked out in the extension API research

Managing Extensions

This wireframe shows how the user can manage installed extensions:

Wireframe showing installed extensions

  • Users can disable an extension to temporarily turn it off
  • Or, if they're sure they no longer want it, they can remove the extension
  • They'll have a way to get help if an extension isn't working properly
  • In the future, extensions may offer settings of their own which the user can get to from here
  • Users will be able to rate and review extensions, after authenticating with the registry
  • Brackets will tell the user when updates are available
    • They can get more information about the updates
    • Ideally, updates will happen without a restart of Brackets

Creating Extensions

  • We want to support a workflow that makes it easy to get started writing an extension with a template for a new extension
  • Testing extensions will be easy as it is today
  • In-development extensions will appear in the extension manager
  • When the extension developer is ready to publish their extension, they can do so from the extension manager with the click of a button (authentication is required for this)

The extension package format will be familiar for anyone who has used npm, and easy for anyone who has not. All of the information about the extension is located in a package.json file, with optional information in some other files. This allows that information to be stored in a version control system and makes publishing a new version a one click step.

Our goal is for extensions to be as compatible with Brackets and one another as possible, even as changes are made. We'll do our best to minimize disruption for Brackets users while ensuring that their editor remains stable.

The Registry Server

The registry server will be set up to quickly deliver information about the extensions and the extensions themselves. It will have a straightforward REST+JSON API for submitting ratings and reviews and publishing extensions, and we will seek to make authentication as easy on the users as possible.

There will also be a management API for ensuring that Brackets users get updates as quickly as possible when out of date or potentially damaging extensions are identified.

Detailed Documents

The preceding sections were intended as a quick overview of the results of our research. For background and additional details, you can dive in below:

Open Questions

Clone this wiki locally