mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-02 15:15:23 +00:00
9c3e48627a
Android version codes serve multiple masters. They indicate newer versions, yes; but they also break ties between versions with different features and requirements. High order bits effectively partition the space of versions and are valuable. Since Android version codes are signed Java integers, we have 31 bits to work with. Mozilla's traditional build ID is YYYYMMDDhhmmss. This was chopped to ten characters (YYYYMMDDhh, i.e., hourly build IDs) and then converted to a decimal. This took many high order bits. We will lose another high order bit in the 36th month of 2015 -- i.e., as soon as the year rolls over to 2016. If we waited to lose the next higher order bit, we'd lose that one in the 46th month of 2017 -- i.e., as soon as the year rolls over to 2018. The following patch sacrifices a high order bit to change the version scheme, winning us roughly 15 years of hourly build IDs before we are forced to lose another high order bit. So it's clearly to our advantage to change the scheme sooner rather than later -- we will sacrifice 1 bit for 15 years of build IDs, rather than keeping the current scheme and sacrificing (say) 2 bits for 3 years of build IDs. The resulting scheme produces build IDs that look like (in binary): 0111 1000 0010 tttt tttt tttt tttt txpg The meaning of these build IDs is documented in the Python source code that generates them. --HG-- extra : commitid : 7BEkkGHsYVL extra : rebase_source : bbc0ead8e7a383c320e838b023b02b1fb0d94ff3 extra : amend_source : dab8c737e3274694aad40123e77884a3239908de extra : histedit_source : 530bedde3695d534805465cdf8bcb9cd23f7b031 |
||
---|---|---|
.. | ||
bitstring | ||
blessings | ||
compare-locales | ||
configobj | ||
eme | ||
futures | ||
jsmin | ||
lldbutils | ||
mach | ||
mock-1.0.0 | ||
mozboot | ||
mozbuild | ||
mozversioncontrol/mozversioncontrol | ||
psutil | ||
pyasn1 | ||
pyasn1-modules | ||
PyECC | ||
pystache | ||
pyyaml | ||
redo | ||
requests | ||
rsa | ||
virtualenv | ||
which | ||
mach_commands.py | ||
moz.build | ||
README |
This directory contains common Python code. The basic rule is that if Python code is cross-module (that's "module" in the Mozilla meaning - as in "module ownership") and is MPL-compatible, it should go here. What should not go here: * Python that is not MPL-compatible (see other-licenses/) * Python that has good reason to remain close to its "owning" (Mozilla) module (e.g. it is only being consumed from there). Historical information can be found at https://bugzilla.mozilla.org/show_bug.cgi?id=775243 ## pyyaml | pystache Used in taskcluster related mach commands to update download from github and remove .git and tests. Then run tests in taskcluster/tests/