From the beginning, time zone rules were a component in Mainline, called Time Zone Data or tzdata module. This integration allowed us to react more quickly to government-mandated time zone changes than before. However until 2023 tzdata updates were still bundled with other Mainline changes, sometimes leading to testing complexities and slower deployment.
In 2023, we made further investments in Mainline’s infrastructure and decoupled the tzdata module from the other components. With this isolation, we gained the ability to respond rapidly to time zone legislation changes — often releasing updates to Android users outside of the established release cadence. Additionally, this change means time zone updates can reach a far greater number of Android devices, ensuring you as Android users always see the correct time.
↫ Almaz Mingaleev and Masha Khokhlova
This is equal parts boring and equal parts amazing. The amount of work developers have to put into making sure timezones work is astonishing, and the fact that a large chunk of it is done by volunteers is even more impressive.
One codebase I worked on had a lot of scheduling stuff, and the scheduling naturally had to work well (otherwise people wouldn’t receive their subscription boxes). Time-based stuff — particularly handling daylight saving time switches in the current time zone — was the source of most of the bugs in my app. I don’t know why time has to be so hard!
This stuff is on my mind right now; we just had a time switch this weekend and it reignited my hatred for the standard/daylight saving time switch. Nobody likes it; the best you get is “it doesn’t bother me so much”. Why do we participate in this collective self-torture anyway?