+1 this sounds amazing Wilson, been waiting for this day! Especially the idea of using a live guide. Would be great if we can have a process in place that ensures it always stays update to date. IMO The change to the workflow would be worth it to stay aligned.
Eric > On 4 Nov 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
_______________________________________________ dev-fxos mailing list [email protected] https://lists.mozilla.org/listinfo/dev-fxos

