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
> <
jdarc...@mozilla.com <mailto:
jdarc...@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 <
sfo...@mozilla.com
>> <mailto:
sfo...@mozilla.com>> wrote:
>>
>>
>>
>> On Wed, Oct 28, 2015 at 11:52 AM, Patryk Adamczyk
>> <
pada...@mozilla.com <mailto:
pada...@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-...@lists.mozilla.org <mailto:
dev-...@lists.mozilla.org>
>
https://lists.mozilla.org/listinfo/dev-fxos
--
Fabrice Desré
b2g team
Mozilla Corporation