I did a talk on Monday about how /why we are using Web Components in Firefox OS.
Video: https://air.mozilla.org/london-web-components-meetup-wilson-page-web-components-in-firefox-os-20151026/ Slides: http://wilsonpage.github.io/presentations/web-components-in-production/ *W I L S O N P A G E* Front-end Developer Firefox OS (Gaia) London Office Twitter: @wilsonpage IRC: wilsonpage On Thu, Oct 29, 2015 at 5:14 PM, Naoki Hirata <nhir...@mozilla.com> wrote: > I'd like to point that their QA is their dogfooders (which we have to > coerce people to do because of variety of reasons) and devs are proactive > on making sure that they don't break and if they do, they end up having to > fix it. > > The context is a bit more different of an app versus an OS. If you make a > patch to break an app, it's not as serious as if you make a patch to brick > a device. > > I'm curious how many branches they have. > > On Thu, Oct 29, 2015 at 10:03 AM, Fabrice Desré <fabr...@mozilla.com> > wrote: > >> It's interesting that you use Facebook as an example. There was a talk >> recently from one of their release manager >> (https://air.mozilla.org/release-engineering-at-facebook/) and some take >> away are: >> - they use a (huge) mercurial monorepo (like Google does). Everything >> needs to always work on tip basically. For sure being a closed >> organisation may make that easier, but FxOS/gaia could be seen as a >> closed organisation with not much harm I think. >> - no manual QA, everything relies on CI. They ship their sites twice a >> day, their mobile apps weekly. >> - all employees are forced to use the beta version. So when they stage >> changes to users, it's not for quality/bug testing reasons but mostly to >> test product ideas (ie. a/b testing). >> - our build & CI systems are from the last glaciation compared to theirs. >> >> Fabrice >> >> On 10/29/2015 05:05 AM, Wilson Page wrote: >> > Instantly propagating updates can sound dreamy, but live code everywhere >> > can lead to regressions coming from nowhere. >> > >> > This approach also puts a massive burden on component reviewers and >> > contributors. It's much safer to land changes to a component and have >> > apps *PULL* in the changes. This gives the app owner a chance to spot >> > regressions, file a bug, remain on the old version and avoid breakage. >> > >> > If component updates are *PUSHED *into the apps, regressions will >> > increase. It is not possible for a component owner or contributor to >> > know every single instance whereby their component is being used. >> > Regressions *will* be caused by new patches, our job is to catch them as >> > early as possible and mitigate the impact these regressions have. >> > >> > This problem is why the Semver <http://semver.org/> standard exists and >> > package managers like NPM have grown so successful. >> > >> > *Our options are: >> > * >> > A. We force *PUSH* updates into apps and speed up the update process and >> > introduce more global regressions. >> > B. We land frequent risk-free incremental patches into a component's >> > source repo and *PULL* stable versions into Gaia one app at a time (not >> > to dissimilar from our train-model). >> > >> > *How do other people do it?* >> > >> > If we look at deployment strategies that have proven to work in >> > production, they all tend look similar to Option B. Facebook doesn't >> > push new features onto all of their users at once; they trickle the >> > changes out to 1%, 2%, 3% of users, until it reaches 100% of users. >> > >> > This gives Facebook the opportunity to catch issues early, backout and >> > fix; without impacting very many users. It would be appealing for them >> > to be able to ship new changes to everyone in a split second, but this >> > can hurt their users and end up costing more time than it saves. >> > >> > --- >> > >> > This clearly need some more discussion, but it's important to note *this >> > is not a new problem* :) >> > >> > *W I L S O N P A G E* >> > >> > Front-end Developer >> > Firefox OS (Gaia) >> > London Office >> > >> > Twitter: @wilsonpage >> > IRC: wilsonpage >> > >> > On Wed, Oct 28, 2015 at 8:56 PM, Justin D'Arcangelo >> > <jdarcang...@mozilla.com <mailto:jdarcang...@mozilla.com>> wrote: >> > >> > I agree with Sam. But it needs to be trivial for apps to pick up the >> > latest changes too. This could be easily solved with Bower. Each app >> > could “lock in” to particular versions of the components they’re >> > using. Then to get latest, the apps only need to have their version >> > numbers bumped in bower.json. >> > >> > -Justin >> > >> > >> >> On Oct 28, 2015, at 4:49 PM, Sam Foster <sfos...@mozilla.com >> >> <mailto:sfos...@mozilla.com>> wrote: >> >> >> >> >> >> >> >> On Wed, Oct 28, 2015 at 11:52 AM, Patryk Adamczyk >> >> <padamc...@mozilla.com <mailto:padamc...@mozilla.com>> wrote: >> >> >> >> >> >> So there is also another part to this, and that would to have >> >> it sit in a live styleguide. >> >> Imagine if the components can be in github and a single change >> >> in github would instantly update: >> >> + master and every FXOS app >> >> + style guide website >> >> >> >> That would be amazing! >> >> >> >> It would really echo the ideas of focus and dynamic efficiency. >> >> >> >> >> >> I don't think this is either practical or desirable. To have a >> >> single change cause ripples across all FxOS apps would be really >> >> really difficult to manage. Talk about strange magic from a >> >> distance! Plus we are moving away from a monolithic "Gaia app". *I >> >> do agree we need a simple opt-in way to buy into consistent look >> >> and feel and control interactions*. And a way to pick up bug fixes >> >> or updates from shared components without simultaneously breaking >> >> unrelated stuff - see Jim's note about font-size changes. But I >> >> would like to steer us away from the notion of a one-size-fits-all >> >> UI toolkit. It always ends in tears. Apologies if I'm over >> >> simplifying or mis-characterizing here, I just want to offer the >> >> counter-argument. >> >> >> >> /Sam >> > >> > >> > _______________________________________________ >> > dev-fxos mailing list >> > dev-fxos@lists.mozilla.org <mailto:dev-fxos@lists.mozilla.org> >> > https://lists.mozilla.org/listinfo/dev-fxos >> > >> > >> > >> > >> > _______________________________________________ >> > dev-fxos mailing list >> > dev-fxos@lists.mozilla.org >> > https://lists.mozilla.org/listinfo/dev-fxos >> > >> >> >> -- >> Fabrice Desré >> b2g team >> Mozilla Corporation >> _______________________________________________ >> dev-fxos mailing list >> dev-fxos@lists.mozilla.org >> https://lists.mozilla.org/listinfo/dev-fxos >> > > > _______________________________________________ > dev-fxos mailing list > dev-fxos@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-fxos > >
_______________________________________________ dev-fxos mailing list dev-fxos@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-fxos