Bug 1372697 - Establish per repo mozconfigs for Fennec; r?glandium draft
authorGregory Szorc <gps@mozilla.com>
Mon, 19 Jun 2017 20:05:05 -0700
changeset 597068 485a7a2a576933cf77bd8e52d83e384b4730e880
parent 597067 9cc3689ae079b091d1aa63fe61fd4ec1994f2810
child 597069 ceff802b8410e23916ca95c27e8b83df758ae11d
push id64817
push usergszorc@mozilla.com
push dateTue, 20 Jun 2017 03:06:21 +0000
reviewersglandium
bugs1372697
milestone56.0a1
Bug 1372697 - Establish per repo mozconfigs for Fennec; r?glandium Currently, uplift day activities rewrite "nightly" mozconfig files. This is a sub-optimal practice for a few reasons. First, it conflates the term "nightly." Second, it prevents us from performing a representative beta/release configuration on a mozilla-central changeset. Third, it modifies code as part of branching, which feels wrong. Fourth, it is different from what we do for Firefox (where we have per repo mozconfigs). For the reasons above, this commit establishes mozconfig variations for beta and release builds and l10n packaging for mobile/android. The existing "nightly" mozconfigs were copied to a common file and the repo-specific bits were extracts out. central_to_beta.py and beta_to_release.py no longer modify mozconfigs as part of uplift day activities. Repo overrides to define the mozconfigs have been added to branch_specifics.py. There is still a lot of improvement that can be made. For example, lots of the logic from mozharness configs can be moved into taskgraph. We can also parameterize the build configuration via environment variables, also via taskgraph. This commit gets mobile/android on parity with browser/ and sets us up for future refactoring. MozReview-Commit-ID: 3IbgWLCnWEm
mobile/android/config/mozconfigs/android-aarch64/beta
mobile/android/config/mozconfigs/android-aarch64/beta-l10n
mobile/android/config/mozconfigs/android-aarch64/common
mobile/android/config/mozconfigs/android-aarch64/l10n.common
mobile/android/config/mozconfigs/android-aarch64/nightly
mobile/android/config/mozconfigs/android-aarch64/nightly-l10n
mobile/android/config/mozconfigs/android-aarch64/release
mobile/android/config/mozconfigs/android-aarch64/release-l10n
mobile/android/config/mozconfigs/android-api-15/beta
mobile/android/config/mozconfigs/android-api-15/beta-l10n
mobile/android/config/mozconfigs/android-api-15/common
mobile/android/config/mozconfigs/android-api-15/l10n.common
mobile/android/config/mozconfigs/android-api-15/nightly
mobile/android/config/mozconfigs/android-api-15/nightly-l10n
mobile/android/config/mozconfigs/android-api-15/release
mobile/android/config/mozconfigs/android-api-15/release-l10n
mobile/android/config/mozconfigs/android-x86/beta
mobile/android/config/mozconfigs/android-x86/common
mobile/android/config/mozconfigs/android-x86/nightly
mobile/android/config/mozconfigs/android-x86/release
testing/mozharness/configs/builds/branch_specifics.py
testing/mozharness/configs/merge_day/beta_to_release.py
testing/mozharness/configs/merge_day/central_to_beta.py
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-aarch64/beta
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/beta
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-aarch64/beta-l10n
@@ -0,0 +1,4 @@
+ac_add_options --with-l10n-base=../../mozilla-beta
+ac_add_options --with-branding=mobile/android/branding/beta
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/l10n.common"
copy from mobile/android/config/mozconfigs/android-aarch64/nightly
copy to mobile/android/config/mozconfigs/android-aarch64/common
--- a/mobile/android/config/mozconfigs/android-aarch64/nightly
+++ b/mobile/android/config/mozconfigs/android-aarch64/common
@@ -1,18 +1,14 @@
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
-ac_add_options --enable-profiling
-
 # Android
 ac_add_options --with-android-min-sdk=21
 ac_add_options --target=aarch64-linux-android
 
-ac_add_options --with-branding=mobile/android/branding/nightly
-
 # This will overwrite the default of stripping everything and keep the symbol table.
 # This is useful for profiling with eideticker. See bug 788680
 STRIP_FLAGS="--strip-debug"
 
 export MOZILLA_OFFICIAL=1
 export MOZ_TELEMETRY_REPORTING=1
 
 . "$topsrcdir/mobile/android/config/mozconfigs/common.override"
copy from mobile/android/config/mozconfigs/android-aarch64/nightly-l10n
copy to mobile/android/config/mozconfigs/android-aarch64/l10n.common
--- a/mobile/android/config/mozconfigs/android-aarch64/nightly-l10n
+++ b/mobile/android/config/mozconfigs/android-aarch64/l10n.common
@@ -1,28 +1,23 @@
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
-# L10n
-ac_add_options --with-l10n-base=../../l10n-central
-
 # Global options
 ac_add_options --disable-tests
 
 # Android
 ac_add_options --with-android-min-sdk=21
 ac_add_options --target=aarch64-linux-android
 
 ac_add_options --with-system-zlib
 ac_add_options --enable-updater
 ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
 
 export MOZILLA_OFFICIAL=1
 
-ac_add_options --with-branding=mobile/android/branding/nightly
-
 ac_add_options --disable-stdcxx-compat
 
 # Don't autoclobber l10n, as this can lead to missing binaries and broken builds
 # Bug 1283438
 mk_add_options AUTOCLOBBER=
 
 # Disable Keyfile Loading (and checks) since l10n doesn't need these keys
 # This overrides the settings in the common android mozconfig
--- a/mobile/android/config/mozconfigs/android-aarch64/nightly
+++ b/mobile/android/config/mozconfigs/android-aarch64/nightly
@@ -1,18 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
+ac_add_options --with-branding=mobile/android/branding/nightly
 ac_add_options --enable-profiling
 
-# Android
-ac_add_options --with-android-min-sdk=21
-ac_add_options --target=aarch64-linux-android
-
-ac_add_options --with-branding=mobile/android/branding/nightly
-
-# This will overwrite the default of stripping everything and keep the symbol table.
-# This is useful for profiling with eideticker. See bug 788680
-STRIP_FLAGS="--strip-debug"
-
-export MOZILLA_OFFICIAL=1
-export MOZ_TELEMETRY_REPORTING=1
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/common"
--- a/mobile/android/config/mozconfigs/android-aarch64/nightly-l10n
+++ b/mobile/android/config/mozconfigs/android-aarch64/nightly-l10n
@@ -1,35 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
-# L10n
 ac_add_options --with-l10n-base=../../l10n-central
-
-# Global options
-ac_add_options --disable-tests
-
-# Android
-ac_add_options --with-android-min-sdk=21
-ac_add_options --target=aarch64-linux-android
-
-ac_add_options --with-system-zlib
-ac_add_options --enable-updater
-ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
-
-export MOZILLA_OFFICIAL=1
-
 ac_add_options --with-branding=mobile/android/branding/nightly
 
-ac_add_options --disable-stdcxx-compat
-
-# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
-# Bug 1283438
-mk_add_options AUTOCLOBBER=
-
-# Disable Keyfile Loading (and checks) since l10n doesn't need these keys
-# This overrides the settings in the common android mozconfig
-ac_add_options --without-mozilla-api-keyfile
-ac_add_options --without-adjust-sdk-keyfile
-ac_add_options --without-leanplum-sdk-keyfile
-# Similarly explicitly disable install tracking for l10n, we'll inherit from en-US
-export MOZ_INSTALL_TRACKING=
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/l10n.common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-aarch64/release
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-aarch64/release-l10n
@@ -0,0 +1,4 @@
+ac_add_options --with-l10n-base=../../mozilla-release
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-aarch64/l10n.common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/beta
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/beta
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/beta-l10n
@@ -0,0 +1,4 @@
+ac_add_options --with-l10n-base=../../mozilla-beta
+ac_add_options --with-branding=mobile/android/branding/beta
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/l10n.common"
copy from mobile/android/config/mozconfigs/android-api-15/nightly
copy to mobile/android/config/mozconfigs/android-api-15/common
--- a/mobile/android/config/mozconfigs/android-api-15/nightly
+++ b/mobile/android/config/mozconfigs/android-api-15/common
@@ -1,18 +1,14 @@
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
-ac_add_options --enable-profiling
-
 # Android
 ac_add_options --with-android-min-sdk=15
 ac_add_options --target=arm-linux-androideabi
 
-ac_add_options --with-branding=mobile/android/branding/nightly
-
 # This will overwrite the default of stripping everything and keep the symbol table.
 # This is useful for profiling with eideticker. See bug 788680
 STRIP_FLAGS="--strip-debug"
 
 export MOZILLA_OFFICIAL=1
 export MOZ_TELEMETRY_REPORTING=1
 export MOZ_ANDROID_MMA=1
 
copy from mobile/android/config/mozconfigs/android-api-15/nightly-l10n
copy to mobile/android/config/mozconfigs/android-api-15/l10n.common
--- a/mobile/android/config/mozconfigs/android-api-15/nightly-l10n
+++ b/mobile/android/config/mozconfigs/android-api-15/l10n.common
@@ -1,28 +1,23 @@
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
-# L10n
-ac_add_options --with-l10n-base=../../l10n-central
-
 # Global options
 ac_add_options --disable-tests
 
 # Android
 ac_add_options --with-android-min-sdk=15
 ac_add_options --target=arm-linux-androideabi
 
 ac_add_options --with-system-zlib
 ac_add_options --enable-updater
 ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
 
 export MOZILLA_OFFICIAL=1
 
-ac_add_options --with-branding=mobile/android/branding/nightly
-
 ac_add_options --disable-stdcxx-compat
 
 # Don't autoclobber l10n, as this can lead to missing binaries and broken builds
 # Bug 1283438
 mk_add_options AUTOCLOBBER=
 
 # Disable Keyfile Loading (and checks) since l10n doesn't need these keys
 # This overrides the settings in the common android mozconfig
--- a/mobile/android/config/mozconfigs/android-api-15/nightly
+++ b/mobile/android/config/mozconfigs/android-api-15/nightly
@@ -1,19 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
+ac_add_options --with-branding=mobile/android/branding/nightly
 ac_add_options --enable-profiling
 
-# Android
-ac_add_options --with-android-min-sdk=15
-ac_add_options --target=arm-linux-androideabi
-
-ac_add_options --with-branding=mobile/android/branding/nightly
-
-# This will overwrite the default of stripping everything and keep the symbol table.
-# This is useful for profiling with eideticker. See bug 788680
-STRIP_FLAGS="--strip-debug"
-
-export MOZILLA_OFFICIAL=1
-export MOZ_TELEMETRY_REPORTING=1
-export MOZ_ANDROID_MMA=1
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/common"
--- a/mobile/android/config/mozconfigs/android-api-15/nightly-l10n
+++ b/mobile/android/config/mozconfigs/android-api-15/nightly-l10n
@@ -1,35 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
-# L10n
 ac_add_options --with-l10n-base=../../l10n-central
-
-# Global options
-ac_add_options --disable-tests
-
-# Android
-ac_add_options --with-android-min-sdk=15
-ac_add_options --target=arm-linux-androideabi
-
-ac_add_options --with-system-zlib
-ac_add_options --enable-updater
-ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
-
-export MOZILLA_OFFICIAL=1
-
 ac_add_options --with-branding=mobile/android/branding/nightly
 
-ac_add_options --disable-stdcxx-compat
-
-# Don't autoclobber l10n, as this can lead to missing binaries and broken builds
-# Bug 1283438
-mk_add_options AUTOCLOBBER=
-
-# Disable Keyfile Loading (and checks) since l10n doesn't need these keys
-# This overrides the settings in the common android mozconfig
-ac_add_options --without-mozilla-api-keyfile
-ac_add_options --without-adjust-sdk-keyfile
-ac_add_options --without-leanplum-sdk-keyfile
-# Similarly explicitly disable install tracking for l10n, we'll inherit from en-US
-export MOZ_INSTALL_TRACKING=
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/l10n.common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/release
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-api-15/release-l10n
@@ -0,0 +1,4 @@
+ac_add_options --with-l10n-base=../../mozilla-release
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-api-15/l10n.common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-x86/beta
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-x86/common"
copy from mobile/android/config/mozconfigs/android-x86/nightly
copy to mobile/android/config/mozconfigs/android-x86/common
--- a/mobile/android/config/mozconfigs/android-x86/nightly
+++ b/mobile/android/config/mozconfigs/android-x86/common
@@ -1,17 +1,13 @@
 . "$topsrcdir/mobile/android/config/mozconfigs/common"
 
 ac_add_options --target=i386-linux-android
 ac_add_options --with-android-min-sdk=15
 
-ac_add_options --enable-profiling
-
-ac_add_options --with-branding=mobile/android/branding/nightly
-
 # This will overwrite the default of stripping everything and keep the symbol table.
 # This is useful for profiling with eideticker. See bug 788680
 STRIP_FLAGS="--strip-debug"
 
 export MOZILLA_OFFICIAL=1
 export MOZ_TELEMETRY_REPORTING=1
 
 . "$topsrcdir/mobile/android/config/mozconfigs/common.override"
--- a/mobile/android/config/mozconfigs/android-x86/nightly
+++ b/mobile/android/config/mozconfigs/android-x86/nightly
@@ -1,17 +1,4 @@
-. "$topsrcdir/mobile/android/config/mozconfigs/common"
-
-ac_add_options --target=i386-linux-android
-ac_add_options --with-android-min-sdk=15
-
+ac_add_options --with-branding=mobile/android/branding/nightly
 ac_add_options --enable-profiling
 
-ac_add_options --with-branding=mobile/android/branding/nightly
-
-# This will overwrite the default of stripping everything and keep the symbol table.
-# This is useful for profiling with eideticker. See bug 788680
-STRIP_FLAGS="--strip-debug"
-
-export MOZILLA_OFFICIAL=1
-export MOZ_TELEMETRY_REPORTING=1
-
-. "$topsrcdir/mobile/android/config/mozconfigs/common.override"
+. "$topsrcdir/mobile/android/config/mozconfigs/android-x86/common"
new file mode 100644
--- /dev/null
+++ b/mobile/android/config/mozconfigs/android-x86/release
@@ -0,0 +1,3 @@
+ac_add_options --with-branding=mobile/android/branding/official
+
+. "$topsrcdir/mobile/android/config/mozconfigs/android-x86/common"
--- a/testing/mozharness/configs/builds/branch_specifics.py
+++ b/testing/mozharness/configs/builds/branch_specifics.py
@@ -116,16 +116,28 @@ config = {
                 'update_channel': 'default',
             },
             'win64-debug': {
                 'update_channel': 'default',
             },
             'win64-add-on-devel': {
                 'update_channel': 'default',
             },
+            'android-aarch64': {
+                'src_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/release',
+                'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/release-l10n',
+            },
+            'android-api-15': {
+                'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/release',
+                'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/release-l10n',
+            },
+            'android-x86': {
+                'src_mozconfig': 'mobile/android/config/mozconfigs/android-x86/release',
+                'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-x86/release-l10n',
+            },
         },
     },
     'mozilla-beta': {
         'enable_release_promotion': 1,
         'repo_path': 'releases/mozilla-beta',
         'update_channel': 'beta',
         'branch_uses_per_checkin_strategy': True,
         'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
@@ -210,16 +222,28 @@ config = {
                 'update_channel': 'default',
             },
             'win64-debug': {
                 'update_channel': 'default',
             },
             'win64-add-on-devel': {
                 'update_channel': 'default',
             },
+            'android-aarch64': {
+                'src_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/beta',
+                'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-aarch64/beta-l10n',
+            },
+            'android-api-15': {
+                'src_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/beta',
+                'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-api-15/beta-l10n',
+            },
+            'android-x86': {
+                'src_mozconfig': 'mobile/android/config/mozconfigs/android-x86/beta',
+                'l10n_mozconfig': 'mobile/android/config/mozconfigs/android-x86/beta-l10n',
+            },
         },
     },
     'mozilla-aurora': {
         'repo_path': 'releases/mozilla-aurora',
         'update_channel': 'aurora',
         'branch_uses_per_checkin_strategy': True,
         'stage_server': 'upload.ffxbld.productdelivery.prod.mozaws.net',
     },
--- a/testing/mozharness/configs/merge_day/beta_to_release.py
+++ b/testing/mozharness/configs/merge_day/beta_to_release.py
@@ -7,32 +7,16 @@ config = {
     "copy_files": [
         {
             "src": "browser/config/version.txt",
             "dst": "browser/config/version_display.txt",
         },
     ],
     "replacements": [
         # File, from, to
-        ("{}{}".format(d, f),
-        "ac_add_options --with-branding=mobile/android/branding/beta",
-        "ac_add_options --with-branding=mobile/android/branding/official")
-        for d in ["mobile/android/config/mozconfigs/android-api-15/",
-                  "mobile/android/config/mozconfigs/android-x86/",
-                  "mobile/android/config/mozconfigs/android-aarch64/"]
-        for f in ["nightly", "nightly-l10n"]
-    ] + [
-        # File, from, to
-        (f, "ac_add_options --with-l10n-base=../../mozilla-beta",
-        "ac_add_options --with-l10n-base=../../mozilla-release")
-        for f in ["mobile/android/config/mozconfigs/android-api-15/nightly-l10n",
-                  "mobile/android/config/mozconfigs/android-x86/nightly-l10n",
-                  "mobile/android/config/mozconfigs/android-aarch64/nightly-l10n"]
-    ] + [
-        # File, from, to
         ("browser/confvars.sh",
          "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-beta,firefox-mozilla-release",
          "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-release"),
         ("browser/confvars.sh",
          "MAR_CHANNEL_ID=firefox-mozilla-beta",
          "MAR_CHANNEL_ID=firefox-mozilla-release"),
     ],
 
--- a/testing/mozharness/configs/merge_day/central_to_beta.py
+++ b/testing/mozharness/configs/merge_day/central_to_beta.py
@@ -6,38 +6,16 @@ config = {
     "log_name": "central_to_beta",
     "version_files": [
         {"file": "browser/config/version.txt", "suffix": ""},
         {"file": "browser/config/version_display.txt", "suffix": "b1"},
         {"file": "config/milestone.txt", "suffix": ""},
     ],
     "replacements": [
         # File, from, to
-        ("{}{}".format(d, f),
-        "ac_add_options --with-branding=mobile/android/branding/nightly",
-        "ac_add_options --with-branding=mobile/android/branding/beta")
-        for d in ["mobile/android/config/mozconfigs/android-api-15/",
-                  "mobile/android/config/mozconfigs/android-x86/",
-                  "mobile/android/config/mozconfigs/android-aarch64/"]
-        for f in ["nightly", "nightly-l10n"]
-    ] + [
-        # File, from, to
-        (f, "ac_add_options --with-l10n-base=../../l10n-central",
-        "ac_add_options --with-l10n-base=../../mozilla-beta")
-        for f in ["mobile/android/config/mozconfigs/android-api-15/nightly-l10n",
-                  "mobile/android/config/mozconfigs/android-x86/nightly-l10n",
-                  "mobile/android/config/mozconfigs/android-aarch64/nightly-l10n"]
-    ] + [
-        # File, from, to
-        (f, "ac_add_options --enable-profiling", "") for f in
-        ["mobile/android/config/mozconfigs/android-api-15/nightly",
-         "mobile/android/config/mozconfigs/android-x86/nightly",
-         "mobile/android/config/mozconfigs/android-aarch64/nightly",]
-    ] + [
-        # File, from, to
         ("browser/confvars.sh",
          "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-central",
          "ACCEPTED_MAR_CHANNEL_IDS=firefox-mozilla-beta,firefox-mozilla-release"),
         ("browser/confvars.sh",
          "MAR_CHANNEL_ID=firefox-mozilla-central",
          "MAR_CHANNEL_ID=firefox-mozilla-beta"),
     ] + [
         # File, from, to