AMO/FlightDeck/Roadmap
From MozillaWiki
< AMO | FlightDeck
Contents
APP HARDENING
Refactor client-side code and the related server-side pieces that support it
Summary | Details | Difficulty |
Retrofit the site’s JS code with client-side MVC model | The JavaScript needs a major refactoring and integration of a cleaner JS MVC system. | HARD |
Revision queue for editor actions | Create a back-end mechanism that organizes and executes revisions in the proper order, regardless of how or when various async, revision-creating events finish processing. | HARD |
Refactor and clean-up CSS | The CSS across the site is redundant and sub-optimal. We will refactor and slim down all the style sheets that need it. | MEDIUM |
Increase page load performance | Minify and gzip all assets, integrate a legit dependency system in FlightDeck. | EASY |
Package build speed optimization | Look into both software and hardware options for decreasing build times and increasing stability of the service. | UNKNOWN |
Update ACE editor to latest stable version | Update the ACE editor and ensure that it recognizes and correctly handles debugging suggestions for the advanced ES5 keywords and methods found in Firefox. | MEDIUM |
ADVANCED SEARCH
Provide advanced search facets/filters and better fuzzy search
Summary | Details | Difficulty |
Add advanced facets/filters | FlightDeck search should allow for more advanced facets and filters that allow developers a more convenient way to find the result set they are looking for.
filter: author/owner filter: dependencies facet: number of forks facet: most active (recency of last update in ratio to # of total commits divided by age) facet: size of the add-on/library facet: number of dependencies |
MEDIUM |
Enhance fuzzy search | The full-text search should be augmented to allow for fuzzy search in the same vein as other full-text search engines like Solr. | UNKNOWN |
Develop a system for elevating user libraries | We need to analyze and discuss the best way to expose well made user libraries to the community. Will this be a search-based solution, some kind of repository that is managed, or something else that we haven’t considered? | UNKNOWN |
AMO INTEGRATION
Make it easy for developers to use/view AMO features from the Builder
Summary | Details | Difficulty |
Ability to push add-ons to AMO | FlightDeck should allow developers to push their add-ons to AMO with any associated meta data pre-populated. | HARD |
Provide AMO status messages | FlightDeck should sync messages from AMO that let the developer know at what stage in the add-on life-cycle a given add-on is at. | MEDIUM |
Share AMO sessions via OAuth | FlightDeck should use AMO’s OAuth service to share sessions, thus eliminating the need for the user to login multiple places with the same credentials. | HARD |
EDITOR ENHANCEMENTS
Augment the editor in the Builder with new add-on specific development features
Summary | Details | Difficulty |
Code completion for official API modules | Code completion should be added for all the add-on kit and api-utils modules. This shall include object and method completion for any public objects/functions provided by the module. | MEDIUM |
Code completion for third-party libraries | Code completion should be extended to support third-party. It should be aware of when a library has been introduced into the environment with the require() statement and load the associated completion data into ACE. | HARD |
Code completion for require() calls | Code completion will be offered for all modules accessible via require(). This feature will be context dependent.
|
MEDIUM |
API Stubs | Create a UI that allows developers to auto-populate stubs for APIs to the editor that add appropriate code templates and files for the API in question. Comments should optionally be included within the skeleton to describe the various parts of the code and what developers need to input in the unpopulated areas. | HARD |
VERSION CONTROL INTEGRATION (Github)
Allow users to use Github as their version control system
Summary | Details | Difficulty |
Enable linking of Github accounts | Developers should be able to link their Github and FlightDeck accounts. This link should provide simple mirroring for add-ons and libraries they choose to host on GitHub. We will not support things like merging and other complex git actions. | HARD |
Develop a simple push/pull flow from the Builder to Github | Pulls should sync all local and server stored files with GitHub’s copy of the user’s add-on, if there are unpushed changes, alert the user and require that they either blow out unpushed changes or merge them outside of the Builder. Allow developers to push changes to an associated Github repo if there are no conflicts detected. If conflicts are found, notify the user that syncing is not possible until they resolve the conflicts outside of the Builder. | MEDIUM |
COLLABORATION AND SHARING
Enable multi-user collaboration and advanced user permissions
Summary | Details | Difficulty |
Ability to add collaborators to add-ons/libraries | Developers will have the option to grant collaborative permissions for add-ons and libraries to other registered users of FlightDeck. The permissions should account for the following:
|
HARD |
CLIENT-SIDE EDITING & TESTING
Allow the Builder to edit and test add-ons locally
Summary | Details | Difficulty |
Sync, edit, and save data locally | Enable the app to CRUD add-on/library data on the local file system. | HARD |
Compile add-on XPIs locally | Allow for client-side creation of XPIs using a TBD JavaScript version of the CFX build tool | HARD |
Enable offline use of the app | Handle the offline state so that the app runs normally and syncs any necessary changes when a connection is acquired. | HARD |