Giter Club home page Giter Club logo

platform-status's Introduction

Project Platform Status

Build Status dependencies devdependencies

tomayto, tomahto, or also platform-status

Goal

Platform Status gives developers a cross-platform and cross-browser roadmap for browser features, from standardization and development to release. Not only a channel to raise awareness, it can also drive adoption and improve the vital feedback loop Firefox's platform needs to have with web developers. For most developers it will be a reference to discover and learn, but it has the potential to provide the entry points for radical participation on Mozilla's platform development.

Why

Existing web compatibility references, like caniuse focus on cross-browser compatibility but don't cover un-released features and lag behind on features that already shipped. Major browser vendors (Edge, Chrome, Webkit) are publicising their own platform status with references to their bug tracking and bug owners. Similar to Platform Status' goal, Chrome tracks consensus/enthusiasm from other browsers using sources that range from bugs, to IRC logs to tweets.

Platform Status can send an open and clear message to developers about the state of Mozilla's platform, from proposals of new web features to release.

What is success

  • Developers discover new platform features early in the process, try them out and provide feedback
  • Developers adopt bleeding edge standards because they get clear signals from browser vendors
  • Firefox platform team and a community can maintain the data with low effort

Additional Attributions

Portions of the status data are from chromestatus.com (CC BY 2.5), dev.windows.com (CC BY 2.5), and webkit.org (LGPL). Link Closed icon by Thomas Helbig from the Noun Project.

platform-status's People

Contributors

alippai avatar alrra avatar andreea93m avatar benjaminhoegh avatar brendandahl avatar chrisdavidmills avatar darkwing avatar delapuente avatar digitarald avatar elchi3 avatar exe-boss avatar futursolo avatar greenkeeperio-bot avatar jarst avatar marco-c avatar marxo avatar mozfreddyb avatar potch avatar saschanaz avatar sebastianz avatar shibetendo64 avatar shuangmoz avatar sorin-davidoi avatar staktrace avatar stof avatar takenspc avatar tantek avatar teoli2003 avatar timabraldes avatar zalun avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

platform-status's Issues

Design tweaks

The initial layout is launched, here come the tweaks ๐Ÿ”จ โ€ฆ

  • Tone down colors (green especially) to be less neon โšก
  • Full browser logos on mobile
  • Better bugzilla label (NEW to 12/24 Resolved, normalize the rest)
  • Anchor for feature (see gh headers)
  • Better separation (more space?)
  • Status click targets for desktop

Build collections of features by interest

Put a lens on the platform status to reflect interests of developers. Highlight some features per collection to raise awareness.

  • Games
    • WebGL 2
    • WebAssembly
    • Web Audio
    • TBD โ€ฆ
  • Apps
    • Service Workers
    • Push API
    • Web Manifest
    • Fetch API
    • BackgroundSync
    • Geofencing
    • TBD โ€ฆ
      Design
    • Flexbox
    • Web Animations
    • CSS Scroll Snap
    • Web Components
      • template Element
      • Shadow DOM

Appendix A

Games features outlined by @juj

Unit tests for engine/

Ensure that our parsers work, that external sources don't change format or otherwise break unexpectedly.

Force HTTPS for the page to enable service workers

For the cookbook I use

app.use(function forceSSL(req, res, next) {
  var host = req.get('Host');
  if (!host.startsWith('localhost')) {
    // https://developer.mozilla.org/en-US/docs/Web/Security/HTTP_strict_transport_security
    res.header('Strict-Transport-Security', 'max-age=15768000');
    // https://github.com/rangle/force-ssl-heroku/blob/master/force-ssl-heroku.js
    if (req.headers['x-forwarded-proto'] !== 'https') {
      return res.redirect('https://' + host + req.url);
    }
  }
  return next();
});

We might not have a node.js server for this one when we host it, but lets see.

Define comprehensive list of features to track

Currently the list of features to track is not defined within this spec. IE, Chrome, webkit all seem to track different things. We should define out list relating to WADI (or do we wish to be comprehensive live IE?).

W3C Manifest
Service Workers
Push API with permissions APIs
Notification Dashboard/Control
Push Service (autopush server supporting Webpush)
Offliner libraries (internal projects) oghliner and offliner
Background Sync (https://github.com/slightlyoff/BackgroundSync)

Some of these have subfeatures so that partial implementations may be tracked separately. This issue is to come up with the canonical list to start.

Define measurable success goals

Spawned off #13 โ€ฆ

via @dbialer:

I think it would be good to build product KPIs directly into this so that we have a clear understanding of what success looks like and measure from the start. We should instrument and build measurability directly into the MVP with Github, feedback mechanisms, and perhaps analytics. These could include:

  • a. Page/project visits as an indicator of interest in this project and usage. We should have a goal of X visits per month as an indicator of usage. What is a reasonable goal here? 5K visits per month?
  • b. community participation - how many non-paid staff contributors join this (as one of the goals is to increase radical participation). We should have a goal of Y contributors by Z date. Perhaps pull requests or commits? How would 5-10 contributors (outside paid staff) by sometime in Q1?
  • c. Feedback - one of the goals is feedback. How do we collect that? filing issues? Can we have a feedback form? We should have a goal of some sort of active/useful feedback. Not sure what would be good here.
  • d. How do we know it is low maintenance? We should have a goal that other teams are updating their information around X features.

If we don't achieve goals that get us on the right track, then perhaps this isn't as useful as we think? So part of this project should not just be coding, but achieving the usage we desire.

Any thoughts on this?

Re: @TimAl

We should have a goal of X visits per month as an indicator of usage

Sounds good to me. I have no idea what a reasonable number would be... I also don't really know when it would be reasonable to expect usage to pick up.

We should have a goal of Y contributors by Z date. Perhaps pull requests or commits? How would 5-10 contributors (outside paid staff) by sometime in Q1?

I like the idea of making contribution a goal. These numbers sound optimistic to me but I don't know if this project will turn out to be more "if you build it they will come" or "if you start building it they will come and help out"

Feedback - one of the goals is feedback. How do we collect that? filing issues? Can we have a feedback form? We should have a goal of some sort of active/useful feedback. Not sure what would be good here.

Good points/questions. We should probably file an issue for this and continue the discussion there.

How do we know it is low maintenance?

This seems like a hugely important piece of the project. If it's not low-maintenace then eventually it will fizzle. Maybe a UX person can help us with this? Measure the number of clicks to update something? Measure the number of manual tasks? This also seems like a good candidate for a separate issue where we can discuss

So part of this project should not just be coding, but achieving the usage we desire

I totally agree with this message

need favicon

we need a favicon; even in the very early stages, I find it helpful to locate the app among my many tabs

Smart wait for Selenium server to start

From Marco's comment in #100 -

Is it waiting for the Selenium server to start? Maybe you could start it and then periodically check if it's started by checking if you can connect to its port.

Let's implement this smart wait

Add functional tests

  • Run on each build (Selenium)
  • Downside: We don't have much interaction yet to test

@darkwing had recommendations using Intern and Selenium.

Validate fixtures

Check for uniqueness of values given for bugzilla, documentation, spec, browsers reference, etc.

Discuss: Information Architecture

Make a simple UI that serves both casual browsing and experienced users.

Looking at prior art

  • Long accordion list are hard for casual browsing as they require lots of browsing, clicking while hiding a big part of the list items
  • Edge sees 20% of visitors coming from mobile

Elements of a feature

  • Title and one-line summary
  • Firefox implementation status as first-level detail
  • Enthusiasm/Implementation per vendor
    • States
      • None: Question mark - Gray
      • Deprecated/Skepticism: Disabled state - Red
      • Under Consideration: Logo enabled but faded - Orange
      • In Development: Nightly logo or another in-development indicator - Yellow
      • Shipped: Release logo - Green
    • Combination of color codes and logos
    • Additional links available to vendor status page and bug
  • Standardization URL and stage
  • Firefox meta (see MVP)
    • Bugzilla bug and status
    • Documentation
  • Edit link to features/*.md file on github

v1 Mockup

Mobile Portrait Sketch

v0 Drafts

Question: Which indicators for support status work best in a small space?

Bars

Bars

Circle indicators

Circles

Selenium Error: Invalid or corrupt jarfile

When I don't run selenium manually, tests fail:

Suite firefox on any platform FAILED
Error: [POST http://localhost:4444/wd/hub/session] connect ECONNREFUSED
  at Server.createSession  <node_modules/intern/node_modules/leadfoot/Server.js:310:15>
  at <node_modules/intern/lib/executors/Runner.js:190:22>
  at retry  <node_modules/intern/lib/util.js:723:13>
  at <node_modules/intern/node_modules/dojo/Promise.ts:393:15>
  at runCallbacks  <node_modules/intern/node_modules/dojo/Promise.ts:11:11>
  at <node_modules/intern/node_modules/dojo/Promise.ts:317:4>
  at run  <node_modules/intern/node_modules/dojo/Promise.ts:237:7>
  at <node_modules/intern/node_modules/dojo/nextTick.ts:44:3>
  at process._tickCallback  <node.js:355:11>

TOTAL: tested 0 platforms, 0/0 tests failed; fatal error occurred

selenium.log shows the following error:

Error: Invalid or corrupt jarfile tests/support/var/selenium-server-standalone-2.48.2.jar

Add analytics

Add analytics before launch to measure project success against goals from #27.

We also want to track usage to understand users and their use cases.

Feature list v1

Follow up for #26 , we will update this bug description as new ideas get added.

Shortlist

  • W3C Manifest ๐Ÿ“ฆ
  • Service Workers ๐Ÿ“ฆ
  • Push API ๐Ÿ“ฆ
  • Streams API ๐Ÿ“ฆ
  • Fetch API ๐Ÿ“ฆ
  • Promises
  • Background Sync (https://github.com/slightlyoff/BackgroundSync)
  • asm.js ๐ŸŽฎ
  • wasm.js ๐ŸŽฎ
  • WebGL 1 ๐ŸŽฎ
  • WebGL 2 ๐ŸŽฎ
  • Web Audio ๐ŸŽฎ
  • Web Sockets ๐ŸŽฎ
  • WebRTC ๐ŸŽฎ
  • SIMD ๐ŸŽฎ
  • Page Visibility API ๐ŸŽฎ ๐Ÿ“ฆ
  • Gamepad API ๐ŸŽฎ
  • Shared Array Buffers/Threading ๐ŸŽฎ
  • Fullscreen API ๐ŸŽฎ ๐Ÿ“ฆ
  • IndexedDB ๐ŸŽฎ ๐Ÿ“ฆ
  • Media Source Extensions (MSE)
  • Pointer Lock ๐ŸŽฎ
  • Screen Orientation API ๐ŸŽฎ
  • Device Orientation/Motion Event ๐ŸŽฎ
  • Vibration API ๐ŸŽฎ
  • Custom Elements
  • Shadow DOM
  • HTML Templates
  • HTML Imports
  • Media Capture from Canvas
  • MediaRecorder
  • Permissions API

๐ŸŽฎ - requested by games team
๐Ÿ“ฆ - by app initiative
โ— - piecemeal implementation/hard to track

Backlog

  • Web Cryptography API โ—
  • Presentation API โ—
  • ES6
    • Default parameters
    • Destructuring
    • new.target
    • Classes
    • Symbols
    • Unscopables
    • Proxies
  • Pointer Events
  • Ambient Light Sensor API
  • Navigation Timing API
  • Vibration API

Fetch JSON from external platform-status sources to fill in their respective status

This will give us a level for enthusiasm/implementation, or if its missing a no-public-signals. When available we also get the implementation bug and owner. The priority is general standards/development/implementation status and not compatibility.

Browser status to fill in from external site: Webkit, Chrome, Edge

What we don't get:

  • Opera
  • Release version for Webkit
  • Fine-grained browser-platform status (like caniuse/browsercompat)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.