Contents
About
This is a rough plan for features, improvements, and fixes that the BMO team is planning to implement within 1-2 years. It will be periodically updated as items are accomplished and Mozilla's needs and priorities change. It does not represent everything we work on; there are many small items that are regularly implemented, and some bigger, urgent tasks that are inserted into our work load.
We document all changes to BMO, which are typically deployed once per week. mcote also periodically records major changes and plans.
See also BMO/Roadmap_2014 for a previous version of this document, created in July 2014.
Legend
- [p1] Most Important
- [p4] Least Important
API
- [p4] REST Redesign
- The current REST API is based on the old RPC APIs.
- We want to move to a more intuitive, flexible design.
- We will draw heavily from bzapi's design.
Accounts
- [p2] Add support for authenticating via Firefox Accounts.
- Persona will be going away; Firefox Accounts seems like the best replacement.
UI/UX
- [p1] Faster, better search
- Mirror relevant data from BMO MySQL db to an ElasticSearch db.
- [p1] Modal UI
- Cleaner, lighter, more responsive, and more flexible design for show_bug.
- Can currently be enabled via the "Experimental UI" option in BMO's user preferences.
- Need to get feature parity with classic UI, and then make it the default.
- [p2] user roles / show_bug alternatives
- Streamline show_bug to show only the controls and data related to a particular task (e.g. triage).
- Initially just JavaScript to hide/show selected fields.
- Required: modal UI
- [p2] Responsive design.
- A version of show_bug that looks better on mobile, even if it's scoped down.
- [p3] Inbound email
- Ability to reply to bugmail to easily add comments.
- Nothing fancier than comments planned.
- [p2] (in upstream trunk) Bug updates without bugmail
- "Minor edit" mode.
- Allows bulk updates through API without generating tonnes of bugmail; means we don't have to script things.
- Restricted to a group.
- Required: Merge upstream master to BMO.
- [p2] Quick edits
- Allows updating of comment within a short period; no bugmail sent for email.
- Edit period ends if bug changes.
- [p3] In-page notifications when a bug is updated.
- Uses WebSockets and/or push notifications.
- [p3] Favourites feature
- Replace voting with favouriting.
- [p3] Complete sandstone (footer, etc)
- Nicer look & feel.
- [p3] Clean up attachment page
- Adding/modifying attachments is unnecessarily confusing.
- [p4] Markdown support
- Required: Merge upstream master into BMO (not much to do aside from this).
Plumbing
- [p1] Merge upstream master branch into BMO.
- There are a number of small fixes and improvements that we never backported.
- Merging in new upstream changes will be easier and can be done periodically once we are up to date.
- Easier for contributors to BMO to figure out what has been done where (i.e. confusion over whether something is not done or just done upstream and not backported).
- ([DONE] 2016/05/14) [p1] Switch all systems from Pacific Time to UTC.
- Having datetimes in Pacific Time is non-standard and causes problems around daylight savings time.
- Required for a proper AWS cluster, since the time zone in RDS cannot be changed.
- [p2] Move attachments out of db into s3.
- Will dramatically decrease db size.
- [p1] Implement CSP.
- Security enhancement.
- [p3] Migrate from YUI to jQuery.
- YUI is no longer supported and is much less popular than jQuery.
- Much of this work is being done upstream, which we can pull down.
- Required: Merge upstream master into BMO.
Performance
- [p2] API throttling
- Cache REST requests with memcache.
- Prevent too-frequent polling with identical requests, and accidental DDOS.
- A 5-minute cache of duplicate bzapi requests would have a 25% hit rate
- [p2] enter_bug perf
- enter_bug is very slow, particularly in the Core product due to tracking flags.
Customer Support
- [p3] Integration with Aha! for Program Management.
- They rely on this tool a lot and have been doing mostly manual integration.
- [p3] Cisco Spark integration.
- Helps out the WebRTC team.
- [p1] Work with the Bugmaster team to define some new tools and processes for bug triaging.
- At the moment this is mostly limited to consultation with the Bugmaster team, e.g. providing usage data. Work items will likely be spun off of here and categorized above.
- First part landed 2016/05/24: Readable bug statuses (bug 1268305).