gecko-dev/python/mozbuild
Nick Alexander 9c3e48627a Bug 1137898 - Migrate to android:versionCode scheme v1. r=rnewman,snorp
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
2015-08-26 18:34:48 -07:00
..
dumbmake Bug 1176642 - Use absolute_import in mozbuild; r=glandium 2015-06-21 18:37:18 -07:00
mozbuild Bug 1137898 - Migrate to android:versionCode scheme v1. r=rnewman,snorp 2015-08-26 18:34:48 -07:00
mozpack bug 1190522 - Rewrite pkg-dmg as a Python script. r=gps 2015-08-03 15:40:04 -04:00
TODO Bug 784841 - Part 2: Implement sandboxing for Python build files; r=ted,glandium 2013-01-15 22:21:21 -08:00
setup.py Bug 1172645 - Make mozbuild's setup.py work; r=glandium 2015-06-12 09:37:54 -07:00