On Wed, Nov 4, 2015 at 3:19 PM, Guillaume Marty <[email protected]> wrote:
> That's really exciting news! I support all the proposals in your email. > > I have a question though. What of the web components that currently lives > in Gaia tree only (the /shared/elements/gaia_* folders)? Are they going to > move to their own repos? > As these are just shiny wrappers around old building-block styling I suggest they will remain in the tree until they are replaced by the latest fxos-componet equivalent. Once usage has dropped to zero they can be deleted. > On 4 November 2015 at 14:56, Wilson Page <[email protected]> wrote: > >> The following is an initial strategy, along with some insight behind our >> thinking. >> >> RENAMING TO FXOS-* >> >> We will be renaming the *Github* organisation 'gaia-components' -> >> 'fxos-components' along with namespaces for each component (eg. >> <gaia-header> -> <fxos-header>). >> >> This is to improve transparency and solidify our message. Many people >> have heard of *FirefoxOS*, but not 'Gaia'. Let's tear-down these >> confusing barriers to contribution/understanding and align our vocabulary. >> >> PLATFORM STABILITY >> >> We've been using web-components in production across *FirefoxOS* for >> over a year in various places: >> >> - <gaia-header> (all apps) >> - <gaia-dialog> (spark apps) >> - <gaia-switch> (spark apps) >> - <gaia-toast> (system app) >> - Vertical homescreen >> - New homescreen >> - All Music NGA UI >> - Other stuff I've forgotten :) >> >> This has given us confidence that what we have in the platform right now >> is fast and reliable enough for production. >> >> Shadow DOM V1 (the latest spec all vendors agree on) has shipped in >> Chrome and WebKit Nightly. We're currently working on our implementation. >> Word from DOM team is, that once complete, they too will be happy to ship. >> I have been given a *ballpark* estimate of Q1 2016. >> >> All vendors have not yet agreed on the intricacies of Custom Elements. >> They will be meeting in Dec/Jan for a face-to-face to present proposals and >> iron our the remaining kinks of a more ES6 centric design. >> >> In * Gaia* we're using *Google's* initial specification which we haven't >> preffed on by default yet. Third-parties are able to use this API (and >> Shadow DOM V0) by using the >> "moz-extremely-unstable-and-will-change-webcomponents" permission in their >> app manifest. >> >> Imagining optimistically by May 2016 we'll have Shadow DOM V1 preffed on, >> third-parties will be able to use our fxos-components in Gecko by either >> using the above pref, or a custom-elements polyfill >> <https://github.com/WebReflection/document-register-element> (currently >> used by the *Google AMP* project). >> >> For the time being we have confidence that the current implementation is >> sufficient for our internal needs. New Shadow DOM and Custom Element APIs >> will land parallel alongside the old, before being deprecated, giving us >> ample time to upgrade. We have also abstracted core APIs behind our >> gaia-component >> <https://github.com/gaia-components/gaia-component>wrapper, which >> reduces the number of code changes required to migrate if/when platform >> changes. >> >> SEPARATE REPOS >> >> Component will continue to live in their own repos on *Github* under the >> newly named 'fxos-components' organisation. Each repo will contain >> source-code, live demo(s), tests and documentation. >> >> PACKAGE MANAGEMENT >> >> After much discussion both on mailing lists and person to person, we have >> decided to make the following changes to how we manage external components >> in *Gaia*. >> >> We will move from *Bower* to *NPM3*. *NPM* has become the package >> manager of choice for the majority, with *NPM3*, comes with several nice >> front-end features >> <http://blog.npmjs.org/post/101775448305/npm-and-front-end-packaging> >> (some borrowed from *Bower*). >> >> Due to the reasons I outlined in this thread, >> <https://groups.google.com/d/msg/mozilla.dev.fxos/-Gou264FGa8/gAAnE7GSAAAJ> >> components will be installed locally to each app referenced within a >> `package.json` at the app root. This adds a small amount of >> learning/friction to our workflow, but brings stability to our process >> (similar to writing tests). >> >> Today external dependencies are checked-in to the *Gaia* tree. This >> avoid complexities with install, version mismatches, build systems and >> dependency on third-party servers. The downside is that it adds weight to >> the tree and noisy diffs. We'll be sticking to this approach unless more >> attractive options come to light. >> >> 'LIVE' STYLE GUIDE >> >> We will build a single style-guide index page that will link to each >> component's individual gh-page demo. This will act as an index of the >> components that we deem 'production ready' and will be Gaia devs' go-to >> catalogue. >> >> The style-guide will link to each demo, which is turn will link to source >> Github repo with code, documentation, tests and issues. Incorporating a >> 'readiness' checklist within README, following on from the hard work >> Fred did, <https://wiki.mozilla.org/Gaia/Shared/Components> would >> quickly highlight stability and feature gaps. >> >> I'd also love to have visual/UX specs checked in alongside source-code as >> a proof implementation matches specs, but this may require significant >> changes to visual/UX workflow. >> >> FOSTERING CONTRIBUTION >> >> Many of these changes are an attempt to lower the barrier to entry for >> contribution to *FirefoxOS*. Having components separated from *Gaia* >> increases discoverability and sends the message that these components can >> be used stand-alone. >> >> The scope of 'required understanding for first commit' is shrunk >> dramatically when contributors have less code to look at. Using common >> tools and patterns of the community, we're doing open-source in a >> familiar/approachable way to others. >> >> --- >> >> Let's stop duplicate efforts, save engineering time, give designers a >> fast/reliable upgrade channel and overall increase quality. >> >> If you're as excited by this as me, we're looking for help to make this a >> success. Ping me if you have questions, suggestions or time to lend. >> >> Peace :) >> >> *W I L S O N P A G E* >> >> Front-end Developer >> Firefox OS (Gaia) >> London Office >> >> Twitter: @wilsonpage >> IRC: wilsonpage >> >> _______________________________________________ >> dev-fxos mailing list >> [email protected] >> https://lists.mozilla.org/listinfo/dev-fxos >> >> > > > -- > Guillaume Marty > @g_marty > http://gu.illau.me >
_______________________________________________ dev-fxos mailing list [email protected] https://lists.mozilla.org/listinfo/dev-fxos

