Hi all!
tl;dr - I am considering temporarily regressing timezone switching in Gaia master. If that happens, we will have a short period when updating timezone will be reflected only after restarting B2G.
We want all master testers to be aware of that, and if you see a reason for which we should absolutely not do this, please, let me know.
----------------------------
Long explanation:
We are moving away from our aged l10n_date.js shim to shiny new Ecma 402, a.k.a Intl API for date, time, currency and number formatting[0].
The new API is awesome. It lets us be more consistent, it's faster, it's more powerful, it lowers the burden on our localizers and simplifies our code.
It also allows us to remove the main source of mozL10n.get uses and that in turn brings us closer to make it possible for apps to migrate to new L10n API.
There is one small issue. Our Intl API uses ICU library which has a bug[1]. They didn't expect that timezone may change while ICU is initialized so they designed the whole API around the idea that timezone is immutable.
The result is that today we are sitting for almost two months here with a flock of refactoring patches for System, Homescreen, Lockscreen, SMS, Dialer, Communications and Settings that will make our code cleaner, faster and work better for different locales including RTL.
The bug is assigned and we are getting close to fixing the ICU bug, but we still need more time. We can keep waiting with all those patches, or we can accept the regression and unblock all the work.
That's also important because if there's any other bug with the new API we will not find it until we start landing. The later we land, the less time we'll have to discover those bugs.
-----------------
Bottom line is, that I believe that we have all the stakeholders aligned and we know we can fix the ICU bug in time, so I believe the risk of us not being able to fix ICU and having to backport or the refactoring is close to zero. I'm willing to take that risk as a module owner.
But since we don't have an established practice for introducing known temporary regression, I prefer to be overcautious and make sure that everyone affected is aware and has a chance to veto this decision.
Thanks,
zb.
[0]
https://bugzilla.mozilla.org/show_bug.cgi?id=1170963
[1]
https://bugzilla.mozilla.org/show_bug.cgi?id=1172609