Beta Features/Echo notifications

Overview
Beta Features will trigger Echo notifications at different times. The goal is to increase visibility and get additional feedback, so the product teams can invite feedback and improve features before they are release, as well as let users know when a feature has been released.

Here are the two notifications we propose to implement first:
 * New Feature Available: Sent by a product team to all logged-in users, when a new feature is available to test.
 * New Feature Release: Sent by a product team to all logged-in users, when a new feature has been released.

To make these two notifications work, these tasks will be needed:
 * Echo Extension Update: We need to create a new Echo category and icon, and update the FAQ and documentation.
 * Beta Features Update: We want to add anchor links and section highlights to the BetaFeatures extension (card #432)

Each task above is specified below. Corresponding tickets on Mingle include: (this wiki page will be the primary specification for development purposes)
 * #425 New Features Notifications
 * #432 BetaFeatures Extension Update

Update: Developer Kunal Mehta [legoktm] has started development on a first version of the "new feature available" notification, which is being reviewed on this Gerrit patch. It is roughly based on this original proposal for Echo notifications on BetaFeatures. However, more work is needed to test and debug this first version, as well as to create the second notification "New Feature Release", and the Echo and Beta Features extension updates.

New Feature Available
As a user, I want to know if know if a new feature is ready for testing, so I can try it out before it is released.

We want to notify users when a new feature is ready for testing, so more of them get a chance to see it before it is released.
 * Acceptance Criteria
 * Show this notification content:

'Check out this new feature: < Media Viewer >. Try it in beta and share your feedback!'

​ Here are proposed attributes for this notification:
 * Check to see if the user has enabled the feature already as a BetaFeature
 * If they haven't enabled it yet, link to that feature section in Beta Features preferences (with anchor link and highlight)
 * If they have enabled it, link to the feature overview page where they can discuss it. (e.g. 'About Media Viewer')
 * This notification is triggered manually with a maintenance script, on a per-wiki basis (so product teams can control the timing and reach of each notification)
 * Attributes


 * Trigger: Manual (triggered by product team for each wiki, using maintenance script)
 * Main Link: Beta Features preference page (if user has not yet enabled this feature)
 * Secondary Link: Feature overview page (if user has already enabled this feature)
 * Payload: Feature name (e.g. Media Viewer)
 * Frequency: Medium
 * Priority: High
 * Category: New Feature


 * Flyout Summary: [icon] 'Check out this new feature: < Media Viewer >. Try it in beta and share your feedback!'
 * All-notifications Summary: [icon] 'Check out this new feature: < Media Viewer >. Try it in beta and !' (2nd link to feature discussion)
 * Email Subject: 'Try out this new feature on Wikipedia: Media Viewer'
 * Email Summary: 'Check out this new feature on Wikipedia: Try it in beta and share your feedback! .' (or 'Leave feedback' if already enabled)


 * Web preference default: Enabled for all users
 * Email preference default: Disabled for all users
 * Web bundling: Disabled
 * Email bundling: Disabled
 * Metrics type: "new-feature"


 * Notes:
 * This will also require changes to the Echo extension (e.g.: new category label and icons, default enabling, FAQ, docs, metrics), as specified below
 * This will also require changes to the Beta Features extension (e.g.: anchors and highlights for direct link to the BetaFeature), as specified below

New Feature Released
As a user, I want to know if know if a new feature has been released, so I am not surprised by this new change and can learn more about it.

We want to notify users when a new feature is released, to reduce stress and provide more information.
 * Acceptance Criteria
 * Show this notification content:

'This new feature has just launched: < Media Viewer >. Learn more.'

​ Here are proposed attributes for this notification:
 * If they click on the feature name, link to the feature overview page where they can discuss it. (e.g. 'About Media Viewer')
 * This notification is triggered manually with a maintenance script, on a per-wiki basis (so product teams can control the timing and reach of each notification)
 * Attributes


 * Trigger: Manual (triggered by product team for each wiki, using maintenance script)
 * Main Link: Feature overview page
 * Secondary Link: N/A
 * Payload: Feature name (e.g. Media Viewer)
 * Frequency: Medium
 * Priority: High
 * Category: New Feature


 * Flyout Summary: [icon] 'This new feature has just launched: < Media Viewer >. Learn more.'
 * All-notifications Summary: [icon] 'This new feature has just launched: < Media Viewer >. Learn more.'
 * Email Subject: 'This new feature has launched on [ sitename ]: Media Viewer'
 * Email Summary: 'This new feature has just launched on [ sitename ]: < Media Viewer >. .'


 * Web preference default: Enabled for all users
 * Email preference default: Disabled for all users
 * Web bundling: Disabled
 * Email bundling: Disabled
 * Metrics type: "new-feature"

Echo Extension Update

 * Create a new notification category label for 'New Feature'


 * Create new category icons for that notification (design team task)


 * Enable that category by default for web notifications to all registered users (keep email notifications optional).


 * Update the FAQ and documentation, as well as the tooltips and links in Echo preference settings


 * Update the metrics schema and tracking on these dashboards (proposed schema tag: "new-feature")

BetaFeatures Extension Update
anchors for direct link to the BetaFeature)
 * Add 'anchor links to BetaFeatures preferences page


 * Show yellow highlights to indicate which BetaFeature is selected


 * Upgrade framework for supporting notifications, as needed


 * Upgrade maintenance script for sending notifications, as needed

More changes may be needed, once we have a final design. For more information, see this BetaFeatures extension (card #432).