Closed Bug 1445798 Opened 6 years ago Closed 6 years ago

Add Leanplum settings opt-out strings

Categories

(Firefox for Android Graveyard :: Metrics, enhancement, P1)

enhancement

Tracking

(firefox61 fixed)

RESOLVED FIXED
Firefox 61
Tracking Status
firefox61 --- fixed

People

(Reporter: jcollings, Assigned: petru)

References

Details

(Whiteboard: [Leanplum] [61] [stockwell infra])

Attachments

(2 files, 1 obsolete file)

Currently users can only opt out of notifications on app level (OS settings) but we want to allow users to opt out of notifications within the Firefox settings.
Opt out of just Leanplum or all notifications (html notifications, currently playing notifications, etc.)?
That's a good question - a user is not going to know which came from Leanplum or us, etc. etc. But, we should have different types of notification categories. Can we include an UX person to help us with this?
I can have the Softvision folks work on this if we can get some UX love.

Jean, I'd talk to Barbara and Andreas about getting UX.
There's two things we can do here.

1. Implement fine-grained control inside the app settings to turn on/off certain types of notifications. Settings > Notifications seems like the perfect place for this. Ideally, we'd "label" our Leanplum push notifications with "content suggestion", "feature highlight", etc. and then we'd implement corresponding toggles in Settings > Notifications (without mentioning Leanplum of course). 

2. Android Oreo has support for Notification channels: https://developer.android.com/guide/topics/ui/notifiers/notifications.html#ManageChannels - this could also be something we could tap into, but it's a bit of a power user feature, and only available from Oreo and up.
NI'ing Andreas and Barbara to make a decision on prioritization and on getting other resources in line:
UX needed for the fine grained controls.
SUMO needed for a new entry on how to use those controls.
Flags: needinfo?(bbermes)
Flags: needinfo?(abovens)
Maybe Bram can take a look, if Tif is ok?

I feel this could be moved to 62 to give UX some time.
Flags: needinfo?(tshakespeare)
Flags: needinfo?(bram)
Flags: needinfo?(bbermes)
Hey Barbara - Can you give me a timeline of this work, and priorities of Android projects? That way the UX Android Pod can best align our priorities between Focus, TV, New Fennec, and this project.

Thanks!
Flags: needinfo?(tshakespeare)
Flags: needinfo?(bram)
Flags: needinfo?(bbermes)
Discussed with Tif to get it done for 61.

When does the UX need to locked down, Mike? 

Get UX finalized by mid-May?
Flags: needinfo?(bbermes) → needinfo?(michael.l.comella)
For 61, I would estimate mid-to-late April: engineering work would ideally stop by May 07 [1]. However, it depends on how much engineering work needs to be done and how much UX back-and-forth will be required.

This assumes all development is done on the Nightly train, rather than uplifting to Beta: you'd have to talk to Releng to get permission to uplift a significant amount of code onto Beta. fwiw, 61 ships to release on June 26th [2].

[1]: http://whattrainisitnow.com/
[2]: https://wiki.mozilla.org/RapidRelease/Calendar
Flags: needinfo?(michael.l.comella)
This will have string changes which are not normally upliftable.
(In reply to Kevin Brosnan [:kbrosnan] from comment #10)
> This will have string changes which are not normally upliftable.

This is in reference to uplifting for the 60 train, right?
Strings are added as part of the nightly development. Uplifting a string patch from nightly to beta is extremely rare. If your strings are firm one workaround is to land the strings you want without associated code. Then uplift the feature work that is not string related. Though only do this is you know you can deliver the feature. Having volunteer localizers waste their time on non-shipping strings is poor form.
(In reply to Kevin Brosnan [:kbrosnan] from comment #12)
> Strings are added as part of the nightly development. Uplifting a string
> patch from nightly to beta is extremely rare. If your strings are firm one
> workaround is to land the strings you want without associated code. Then
> uplift the feature work that is not string related. Though only do this is
> you know you can deliver the feature. Having volunteer localizers waste
> their time on non-shipping strings is poor form.

OK so getting it into 61 is fine - it's the 60 beta you are saying would be more difficult?
You can only get strings into nightly. I did not mention versions because we do not have code written yet. Uplifting code that contains string changes requires approval from L10N leaders as such changes put additional stress on the volunteer localization members.
Ok so Andreas and Barbara we need strings ASAP.
Flags: needinfo?(bbermes)
Assignee: nobody → petru.lingurar
I'd need to see UX mockups first.
Flags: needinfo?(abovens)
Tif can someone UX this?
Flags: needinfo?(tshakespeare)
Sure, I asked Bram to take a look this week.
Flags: needinfo?(tshakespeare)
I had to quickly educate myself on Lean Plum and came up with a reasonably user-friendly description that we can use to turn its notifications on and off.

> Product and feature tips
> Learn about the best way to use Firefox features and other Mozilla products

I agree that it should just be one switch – splitting it up into sub-notification groups would be far too complicated.

What do you think of the wording?
Flags: needinfo?(bbermes)
Thanks Bram! NI'ing Andreas for review: https://bugzilla.mozilla.org/show_bug.cgi?id=1445798#c19
Flags: needinfo?(abovens)
I'd go for "Learn about Firefox features and other Mozilla products". ("... the best way to use ..." feels too complicated.)
Flags: needinfo?(abovens)
(In reply to Andreas Bovens [:abovens] from comment #21)
> I'd go for "Learn about Firefox features and other Mozilla products". ("...
> the best way to use ..." feels too complicated.)

Sounds good to me - Bram?
Flags: needinfo?(bram)
Should we have some text addressing notifications from websites? Something like "To control website notifications visit that website, tap the lock icon in the address bar and select site settings."
Or should we have a toggle similar to desktop's "Block new requests asking to allow notifications" (which blocks web push notification requests)? The only way to do that right now in Fennec is to block all notifications coming from Firefox at the system level. Scope creep, I know.
To answer Kevin's question:
"To control notifications coming from a specific website, visit that website, tap the lock icon in the address bar and select "Site Settings"."
"Learn more about using Firefox and other Mozilla products"

From Brian Jones who can't log into Bugzilla the moment. Please note the lack of period at the end which is on purpose.
Let’s go with the copy that Brian Jones had suggested on comment 26.

(In reply to Andreas Bovens [:abovens] from comment #24)
> Or should we have a toggle similar to desktop's "Block new requests asking
> to allow notifications" (which blocks web push notification requests)?

This is definitely something to think about in another bug.

I propose using the copy that Andreas had proposed: “Block new requests asking to allow notifications”, as it’s the string we use on desktop.
Flags: needinfo?(bram)
Thanks - seems like we have UX and strings.

Kevin, do you have an previous bug we can reference to get the string added to nightly?
Flags: needinfo?(kbrosnan)
I can't find a bug for disabling all website notifications in the Firefox settings.
Flags: needinfo?(kbrosnan)
Next step is for us to land the new string ("Learn more about using Firefox and other Mozilla products") in nightly - NI'ing Vlad to see what he can find.
Flags: needinfo?(vlad.baicu)
I have added the needed strings to be localized as per comment 19 and comment 26 .

Don't really know what the next steps regarding localization are, hoping Mike can help.
Attachment #8964748 - Attachment is obsolete: true
Flags: needinfo?(vlad.baicu) → needinfo?(michael.l.comella)
> Don't really know what the next steps regarding localization are, hoping Mike can help.

This is all that needs to be done! After a change lands on Nightly, the localizers just land their changes on the trains and by the time it ships, all the strings are localized and in the product.
Flags: needinfo?(michael.l.comella)
Comment on attachment 8968159 [details]
Bug 1445798 - Add Leanplum settings opt-out strings needed for bug #1454686;

https://reviewboard.mozilla.org/r/236838/#review242834

This looks good with the brandname/vendor substitution.

Can you change the title of the bug to better describe what this bug is for (change the string) and file a follow-up to implement the feature? This is necessary because mozreview only allows one patch series to fix a given bug and the patch series is being used to add strings (unless you plan to add the feature in this bug and not just land the strings!).

Also, your commit messages should describe what changes you're making in the code, not the bug that they're fixing – devs can find out that information from the bug number. For example, this patch could be, "Bug 1445798: add Leanplum settings opt-out strings."

::: mobile/android/base/locales/en-US/android_strings.dtd:286
(Diff revision 1)
>  
>  <!ENTITY pref_whats_new_notification "What\'s new in &brandShortName;">
>  <!ENTITY pref_whats_new_notification_summary "Learn about new features after an update">
>  
> +<!ENTITY pref_feature_tips_notification "Product and feature tips">
> +<!ENTITY pref_feature_tips_notification_summary "Learn more about using Firefox and other Mozilla products">

You'll actually want to substitute "Firefox" and "Mozilla" with "&brandShortName;" and "&vendorShortName;" like https://searchfox.org/mozilla-central/rev/a30a60eadcff99d2a043241955d215dbeccad876/browser/locales/en-US/chrome/browser/aboutDialog.dtd#63
Attachment #8968159 - Flags: review?(michael.l.comella) → review-
Status: NEW → ASSIGNED
Summary: Apply App Level Push Notifications Opt-out for Leanplum for Android Users → Add Leanplum settings opt-out strings
(In reply to Michael Comella (:mcomella) [needinfo or I won't see it] from comment #35)
> [...] mozreview only allows one patch series to fix a given bug

Having separate bugs for the strings and the feature itself is no drama, but the above is not true. If you manually specify the review ID, you can push additional patch series to a bug:
> hg push review -r mybug --reviewid bz://<bug number>/myfavouritereviewid
Comment on attachment 8968159 [details]
Bug 1445798 - Add Leanplum settings opt-out strings needed for bug #1454686;

https://reviewboard.mozilla.org/r/236838/#review243166

My fault, I forgot about the localization notes!

::: mobile/android/base/locales/en-US/android_strings.dtd:285
(Diff revision 2)
>  <!ENTITY pref_tracking_protection_disabled "Disabled">
>  
>  <!ENTITY pref_whats_new_notification "What\'s new in &brandShortName;">
>  <!ENTITY pref_whats_new_notification_summary "Learn about new features after an update">
>  
> +<!ENTITY pref_feature_tips_notification "Product and feature tips">

Sorry, I didn't think about this before: if we're landing strings without the feature, localizers won't be able to see where these strings are used! We should provide a localization note *on each string* to notify them how the strings will be used.

You can copy the format for localization notes from other strings in this file.
Attachment #8968159 - Flags: review?(michael.l.comella) → review-
Thank you Mike!
Patch updated.
Will make sure to remember this procedures.
Blocks: 1454686
Comment on attachment 8968159 [details]
Bug 1445798 - Add Leanplum settings opt-out strings needed for bug #1454686;

https://reviewboard.mozilla.org/r/236838/#review243518

lgtm. Thanks for filing the follow-up!

::: mobile/android/base/locales/en-US/android_strings.dtd:288
(Diff revision 3)
>  <!ENTITY pref_whats_new_notification_summary "Learn about new features after an update">
>  
> +<!-- Localization note (pref_feature_tips_notification): Title of a new toggleable setting in Settings-Notifications screen.
> +     Similar to the already existing "pref_whats_new_notification"-->
> +<!ENTITY pref_feature_tips_notification "Product and feature tips">
> +<!-- Localization note (pref_feature_tips_notification_summary): Description of a new toggleable setting in Settings-Notifications screen.

I might have included a bit more about what this setting does, but I think the strings themselves are descriptive enough so that this won't be an issue.

That being said, I guess I've never gotten feedback from localizers if my l10n notes were useful or not... :\
Attachment #8968159 - Flags: review?(michael.l.comella) → review+
Pushed by michael.l.comella@gmail.com:
https://hg.mozilla.org/integration/autoland/rev/9dece6b7a594
Add Leanplum settings opt-out strings needed for bug #1454686; r=mcomella
https://hg.mozilla.org/mozilla-central/rev/9dece6b7a594
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 61
Backout by csabou@mozilla.com:
https://hg.mozilla.org/mozilla-central/rev/ea3555cf12af
Backed out changeset 9dece6b7a594 for permafailing on Android lint. a=backout
Updated patch to supress the lint errors until bug 1454686 lands.
Thanks Mike and Sebastian!
Flags: needinfo?(petru.lingurar)
Any chance to land this quickly? I'd like to avoid losing the translations done so far, and to do that I'm blocked from exposing other strings.
Pushed by apavel@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/33a23441508a
Add Leanplum settings opt-out strings needed for bug #1454686; r=mcomella
https://hg.mozilla.org/mozilla-central/rev/33a23441508a
Status: REOPENED → RESOLVED
Closed: 6 years ago6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 61
Pushed by archaeopteryx@coole-files.de:
https://hg.mozilla.org/integration/mozilla-inbound/rev/c106f1118f7f
Backed out changeset 33a23441508a because it's old version not ignoring unused strings
https://hg.mozilla.org/integration/mozilla-inbound/rev/ce533f03054c
Add Leanplum settings opt-out strings needed for bug #1454686; a=Aryx to have the strings landed and no failing Android lint jobs
Pushed by archaeopteryx@coole-files.de:
https://hg.mozilla.org/integration/mozilla-inbound/rev/e4d9b6c9016b
Backed out changeset ce533f03054c for Android bustage
https://hg.mozilla.org/integration/mozilla-inbound/rev/770da11a3960
Add Leanplum settings opt-out strings needed for bug #1454686; r=mcomella
The new version of the patch caused android bustage, that's why we reverted to the previous version.

Push with bustage: [task 2018-04-22T19:33:22.961Z] 19:33:22     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/services/common/tests/unit/test_blocklist_signatures'
[task 2018-04-22T19:33:22.961Z] 19:33:22     INFO -  ../../../../../config/nsinstall -R -m 644 'collection_signing_root.pem' '../../../../../_tests/xpcshell/services/common/tests/unit/test_blocklist_signatures'
[task 2018-04-22T19:33:22.961Z] 19:33:22     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/services/common/tests/unit/test_blocklist_signatures'
[task 2018-04-22T19:33:40.948Z] 19:33:40     INFO -  make[4]: *** Deleting file 'android_apks'
[task 2018-04-22T19:33:40.948Z] 19:33:40     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/mobile/android/base'
[task 2018-04-22T19:33:40.948Z] 19:33:40     INFO -  android_apks
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  /builds/worker/workspace/build/src/obj-firefox/_virtualenv/bin/python -m mozbuild.action.file_generate /builds/worker/workspace/build/src/mobile/android/gradle.py assemble_app android_apks .deps/android_apks.pp AndroidManifest.xml generated/preprocessed/org/mozilla/gecko/AdjustConstants.java generated/preprocessed/org/mozilla/gecko/AppConstants.java generated/preprocessed/org/mozilla/gecko/MmaConstants.java res/raw/browsersearch.json res/raw/suggestedsites.json res/values/strings.xml
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -   0:00.15 /builds/worker/workspace/build/src/android-gradle-dependencies/gradle-dist/bin/gradle --console=plain geckoview:generateJNIWrappersForGeneratedOfficialWithGeckoBinariesNoMinApiDebug app:generateJNIWrappersForFennecOfficialWithoutGeckoBinariesNoMinApiPhotonDebug app:assembleOfficialWithoutGeckoBinariesNoMinApiPhotonDebug app:assembleOfficialWithoutGeckoBinariesNoMinApiPhotonDebugAndroidTest -x lint --continue
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/4.1/userguide/gradle_daemon.html.
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  Daemon will be stopped at the end of the build stopping after processing
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  Parallel execution is an incubating feature.
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :generateCodeAndResources
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :thirdparty:preBuild
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :geckoview:preBuild
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :app:preBuild
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :geckoview:preBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :thirdparty:preBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :app:preBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :geckoview:preOfficialWithGeckoBinariesNoMinApiDebugBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :thirdparty:preDebugBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :app:extractProguardFiles
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :thirdparty:checkDebugManifest
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :geckoview:compileOfficialWithGeckoBinariesNoMinApiDebugAidl
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :thirdparty:processDebugManifest
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :app:prepareLintJar
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :app:generateOfficialWithoutGeckoBinariesNoMinApiPhotonDebugResValues
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :app:rewriteManifestPackageForOfficialWithoutGeckoBinariesNoMinApiPhotonDebug
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :app:syncPreprocessedResForOfficialWithoutGeckoBinariesNoMinApiPhotonDebugaidl E 04-22 19:33:32 29121 29121 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  aidl E 04-22 19:33:32 29151 29151 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  aidl E 04-22 19:33:32 29169 29169 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  :thirdparty:compileDebugAidlaidl E 04-22 19:33:33 29181 29181 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  aidl E 04-22 19:33:33 29193 29193 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  :geckoview:compileOfficialWithGeckoBinariesNoMinApiDebugRenderscript
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  :geckoview:checkOfficialWithGeckoBinariesNoMinApiDebugManifest
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  :geckoview:generateOfficialWithGeckoBinariesNoMinApiDebugBuildConfig
[task 2018-04-22T19:33:40.953Z] 19:33:40     INFO -  :geckoview:generateOfficialWithGeckoBinariesNoMinApiDebugResValues
[task 2018-04-22T19:33:40.953Z] 19:33:40     INFO -  :geckoview:generateOfficialWithGeckoBinariesNoMinApiDebugResources
[task 2018-04-22T19:33:40.953Z] 19:33:40     INFO -  :geckoview:packageOfficialWithGeckoBinariesNoMinApiDebugResources[Fatal Error] :225:80: The prefix "tools" for attribute "tools:ignore" associated with an element type "string" is not bound.
[task 2018-04-22T19:33:40.953Z] 19:33:40     INFO -  ERROR:  'The prefix "tools" for attribute "tools:ignore" associated with an element type "string" is not bound.'

[task 2018-04-22T19:33:22.961Z] 19:33:22     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/services/common/tests/unit/test_blocklist_signatures'
[task 2018-04-22T19:33:22.961Z] 19:33:22     INFO -  ../../../../../config/nsinstall -R -m 644 'collection_signing_root.pem' '../../../../../_tests/xpcshell/services/common/tests/unit/test_blocklist_signatures'
[task 2018-04-22T19:33:22.961Z] 19:33:22     INFO -  make[4]: Leaving directory '/builds/worker/workspace/build/src/obj-firefox/services/common/tests/unit/test_blocklist_signatures'
[task 2018-04-22T19:33:40.948Z] 19:33:40     INFO -  make[4]: *** Deleting file 'android_apks'
[task 2018-04-22T19:33:40.948Z] 19:33:40     INFO -  make[4]: Entering directory '/builds/worker/workspace/build/src/obj-firefox/mobile/android/base'
[task 2018-04-22T19:33:40.948Z] 19:33:40     INFO -  android_apks
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  /builds/worker/workspace/build/src/obj-firefox/_virtualenv/bin/python -m mozbuild.action.file_generate /builds/worker/workspace/build/src/mobile/android/gradle.py assemble_app android_apks .deps/android_apks.pp AndroidManifest.xml generated/preprocessed/org/mozilla/gecko/AdjustConstants.java generated/preprocessed/org/mozilla/gecko/AppConstants.java generated/preprocessed/org/mozilla/gecko/MmaConstants.java res/raw/browsersearch.json res/raw/suggestedsites.json res/values/strings.xml
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -   0:00.15 /builds/worker/workspace/build/src/android-gradle-dependencies/gradle-dist/bin/gradle --console=plain geckoview:generateJNIWrappersForGeneratedOfficialWithGeckoBinariesNoMinApiDebug app:generateJNIWrappersForFennecOfficialWithoutGeckoBinariesNoMinApiPhotonDebug app:assembleOfficialWithoutGeckoBinariesNoMinApiPhotonDebug app:assembleOfficialWithoutGeckoBinariesNoMinApiPhotonDebugAndroidTest -x lint --continue
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=utf-8
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: https://docs.gradle.org/4.1/userguide/gradle_daemon.html.
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  Daemon will be stopped at the end of the build stopping after processing
[task 2018-04-22T19:33:40.949Z] 19:33:40     INFO -  Parallel execution is an incubating feature.
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :generateCodeAndResources
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :thirdparty:preBuild
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :geckoview:preBuild
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :app:preBuild
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :geckoview:preBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :thirdparty:preBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :app:preBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :geckoview:preOfficialWithGeckoBinariesNoMinApiDebugBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :thirdparty:preDebugBuild UP-TO-DATE
[task 2018-04-22T19:33:40.950Z] 19:33:40     INFO -  :app:extractProguardFiles
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :thirdparty:checkDebugManifest
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :geckoview:compileOfficialWithGeckoBinariesNoMinApiDebugAidl
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :thirdparty:processDebugManifest
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :app:prepareLintJar
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :app:generateOfficialWithoutGeckoBinariesNoMinApiPhotonDebugResValues
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :app:rewriteManifestPackageForOfficialWithoutGeckoBinariesNoMinApiPhotonDebug
[task 2018-04-22T19:33:40.951Z] 19:33:40     INFO -  :app:syncPreprocessedResForOfficialWithoutGeckoBinariesNoMinApiPhotonDebugaidl E 04-22 19:33:32 29121 29121 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  aidl E 04-22 19:33:32 29151 29151 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  aidl E 04-22 19:33:32 29169 29169 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  :thirdparty:compileDebugAidlaidl E 04-22 19:33:33 29181 29181 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  aidl E 04-22 19:33:33 29193 29193 aidl.cpp:580] refusing to generate code from aidl file defining parcelable
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  :geckoview:compileOfficialWithGeckoBinariesNoMinApiDebugRenderscript
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  :geckoview:checkOfficialWithGeckoBinariesNoMinApiDebugManifest
[task 2018-04-22T19:33:40.952Z] 19:33:40     INFO -  :geckoview:generateOfficialWithGeckoBinariesNoMinApiDebugBuildConfig
[task 2018-04-22T19:33:40.953Z] 19:33:40     INFO -  :geckoview:generateOfficialWithGeckoBinariesNoMinApiDebugResValues
[task 2018-04-22T19:33:40.953Z] 19:33:40     INFO -  :geckoview:generateOfficialWithGeckoBinariesNoMinApiDebugResources
[task 2018-04-22T19:33:40.953Z] 19:33:40     INFO -  :geckoview:packageOfficialWithGeckoBinariesNoMinApiDebugResources[Fatal Error] :225:80: The prefix "tools" for attribute "tools:ignore" associated with an element type "string" is not bound.
[task 2018-04-22T19:33:40.953Z] 19:33:40     INFO -  ERROR:  'The prefix "tools" for attribute "tools:ignore" associated with an element type "string" is not bound.'
Flags: needinfo?(petru.lingurar)
Patch rebased and updated to ignore unused android strings until bug 1454686.
Flags: needinfo?(petru.lingurar)
The patch that landed in the end was the original patch without "tools:ignore", and it has been merged to central, unfortunately. It is currently causing failures on autoland.

The patch with "tools:ignore" was backed out because that patch needs to declare the "tools" namespace in the string.xml.in file.
This is still happening:
[task 2018-04-23T20:56:57.476Z] 20:56:57     INFO -  :app:processOfficialWithoutGeckoBinariesNoMinApiPhotonDebugResources UP-TO-DATE
[task 2018-04-23T20:56:57.476Z] 20:56:57     INFO -  :app:syncPreprocessedJavaForOfficialWithoutGeckoBinariesNoMinApiPhotonDebug UP-TO-DATE
[task 2018-04-23T20:56:57.476Z] 20:56:57     INFO -  :app:generateOfficialWithoutGeckoBinariesNoMinApiPhotonDebugSources UP-TO-DATE
[task 2018-04-23T20:56:57.486Z] 20:56:57     INFO -  :app:javaPreCompileOfficialWithoutGeckoBinariesNoMinApiPhotonDebug UP-TO-DATE
[task 2018-04-23T20:56:57.607Z] 20:56:57     INFO -  :app:compileOfficialWithoutGeckoBinariesNoMinApiPhotonDebugJavaWithJavac UP-TO-DATE
[task 2018-04-23T20:57:23.996Z] 20:57:23     INFO -  :app:lintOfficialWithoutGeckoBinariesNoMinApiPhotonDebug
[task 2018-04-23T20:57:23.996Z] 20:57:23     INFO -  Wrote HTML report to file:///builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/reports/lint-results-officialWithoutGeckoBinariesNoMinApiPhotonDebug.html
[task 2018-04-23T20:57:24.006Z] 20:57:24     INFO -  Wrote XML report to file:///builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/reports/lint-results-officialWithoutGeckoBinariesNoMinApiPhotonDebug.xml
[task 2018-04-23T20:57:24.006Z] 20:57:24     INFO -  Lint found 2 errors, 435 warnings
[task 2018-04-23T20:57:24.016Z] 20:57:24     INFO -  :app:lintOfficialWithoutGeckoBinariesNoMinApiPhotonDebug FAILED
[task 2018-04-23T20:57:24.026Z] 20:57:24     INFO -  FAILURE: Build failed with an exception.
[task 2018-04-23T20:57:24.026Z] 20:57:24     INFO -  * What went wrong:
[task 2018-04-23T20:57:24.026Z] 20:57:24     INFO -  Execution failed for task ':app:lintOfficialWithoutGeckoBinariesNoMinApiPhotonDebug'.
[task 2018-04-23T20:57:24.026Z] 20:57:24     INFO -  > Lint found errors in the project; aborting build.
[task 2018-04-23T20:57:24.027Z] 20:57:24     INFO -    Fix the issues identified by lint, or add the following to your build script to proceed with errors:
[task 2018-04-23T20:57:24.027Z] 20:57:24     INFO -    ...
[task 2018-04-23T20:57:24.027Z] 20:57:24     INFO -    android {
[task 2018-04-23T20:57:24.027Z] 20:57:24     INFO -        lintOptions {
[task 2018-04-23T20:57:24.027Z] 20:57:24     INFO -            abortOnError false
[task 2018-04-23T20:57:24.027Z] 20:57:24     INFO -        }
[task 2018-04-23T20:57:24.027Z] 20:57:24     INFO -    }
[task 2018-04-23T20:57:24.027Z] 20:57:24     INFO -    ...
[task 2018-04-23T20:57:24.027Z] 20:57:24     INFO -  * Try:
[task 2018-04-23T20:57:24.028Z] 20:57:24     INFO -  Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
[task 2018-04-23T20:57:24.028Z] 20:57:24     INFO -  * Get more help at https://help.gradle.org
[task 2018-04-23T20:57:24.028Z] 20:57:24     INFO -  BUILD FAILED in 33s
[task 2018-04-23T20:57:24.028Z] 20:57:24     INFO -  47 actionable tasks: 3 executed, 44 up-to-date
[task 2018-04-23T20:57:24.677Z] 20:57:24     INFO -  TinderboxPrint: report<br/><a href="https://queue.taskcluster.net/v1/task/ONM2LUneT-C0QfT-eq4UtQ/runs/0/artifacts/public/android/lint/lint-results-officialWithoutGeckoBinariesNoMinApiPhotonDebug.html">HTML officialWithoutGeckoBinariesNoMinApiPhotonDebug report</a>, visit "Inspect Task" link for details
[task 2018-04-23T20:57:24.678Z] 20:57:24     INFO -  TinderboxPrint: report<br/><a href="https://queue.taskcluster.net/v1/task/ONM2LUneT-C0QfT-eq4UtQ/runs/0/artifacts/public/android/lint/lint-results-officialWithoutGeckoBinariesNoMinApiPhotonDebug.xml">XML officialWithoutGeckoBinariesNoMinApiPhotonDebug report</a>, visit "Inspect Task" link for details
[task 2018-04-23T20:57:24.678Z] 20:57:24     INFO -  TEST-UNEXPECTED-FAIL | android-lint | Lint found errors in the project; aborting build. See the report at: https://queue.taskcluster.net/v1/task/ONM2LUneT-C0QfT-eq4UtQ/runs/0/artifacts/public/android/lint/lint-results-officialWithoutGeckoBinariesNoMinApiPhotonDebug.html
[task 2018-04-23T20:57:24.678Z] 20:57:24     INFO -  SUITE-START | android-lint | officialWithoutGeckoBinariesNoMinApiPhotonDebug
[task 2018-04-23T20:57:24.679Z] 20:57:24     INFO -  TEST-UNEXPECTED-FAIL | <issue category="Performance" errorLine1="  &lt;string name=&quot;pref_feature_tips_notification&quot;&gt;Product and feature tips&lt;/string&gt;" errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" explanation="Unused resources make applications larger and slow down builds." id="UnusedResources" message="The resource `R.string.pref_feature_tips_notification` appears to be unused" priority="3" quickfix="studio" severity="Error" summary="Unused resources">
[task 2018-04-23T20:57:24.679Z] 20:57:24     INFO -  TEST-UNEXPECTED-FAIL |         <location column="11" file="/builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/moz.build/src/officialWithoutGeckoBinariesNoMinApiPhotonDebug/res/values/strings.xml" line="225" />
[task 2018-04-23T20:57:24.679Z] 20:57:24     INFO -  TEST-UNEXPECTED-FAIL |     </issue>
[task 2018-04-23T20:57:24.679Z] 20:57:24     INFO -  TEST-UNEXPECTED-FAIL | <issue category="Performance" errorLine1="  &lt;string name=&quot;pref_feature_tips_notification_summary&quot;&gt;Learn more about using Nightly and other Mozilla products&lt;/string&gt;" errorLine2="          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~" explanation="Unused resources make applications larger and slow down builds." id="UnusedResources" message="The resource `R.string.pref_feature_tips_notification_summary` appears to be unused" priority="3" quickfix="studio" severity="Error" summary="Unused resources">
[task 2018-04-23T20:57:24.680Z] 20:57:24     INFO -  TEST-UNEXPECTED-FAIL |         <location column="11" file="/builds/worker/workspace/build/src/obj-firefox/gradle/build/mobile/android/app/moz.build/src/officialWithoutGeckoBinariesNoMinApiPhotonDebug/res/values/strings.xml" line="226" />
[task 2018-04-23T20:57:24.680Z] 20:57:24     INFO -  TEST-UNEXPECTED-FAIL |     </issue>
[task 2018-04-23T20:57:24.680Z] 20:57:24     INFO -  SUITE-END | android-lint | officialWithoutGeckoBinariesNoMinApiPhotonDebug
[task 2018-04-23T20:57:24.691Z] 20:57:24    ERROR - Return code: 1
[task 2018-04-23T20:57:24.691Z] 20:57:24    ERROR - 1 not in success codes: [0]
[task 2018-04-23T20:57:24.691Z] 20:57:24  WARNING - setting return code to 2
[task 2018-04-23T20:57:24.691Z] 20:57:24    FATAL - Halting on failure while running ['/usr/bin/python2.7', 'mach', '--log-no-times', 'android', 'lint']
[task 2018-04-23T20:57:24.691Z] 20:57:24    FATAL - Running post_fatal callback...
[task 2018-04-23T20:57:24.691Z] 20:57:24    FATAL - Exiting 2
[task 2018-04-23T20:57:24.691Z] 20:57:24     INFO - [mozharness: 2018-04-23 20:57:24.691890Z] Finished build step (failed)
[task 2018-04-23T20:57:24.692Z] 20:57:24     INFO - Running post-run listener: _summarize
[task 2018-04-23T20:57:24.692Z] 20:57:24    ERROR - # TBPL FAILURE #
[task 2018-04-23T20:57:24.692Z] 20:57:24     INFO - [mozharness: 2018-04-23 20:57:24.692263Z] FxDesktopBuild summary:
[task 2018-04-23T20:57:24.692Z] 20:57:24    ERROR - # TBPL FAILURE #
[task 2018-04-23T20:57:24.692Z] 20:57:24     INFO - Running post-run listener: copy_logs_to_upload_dir
[task 2018-04-23T20:57:24.692Z] 20:57:24     INFO - Copying logs to upload dir...
[task 2018-04-23T20:57:24.692Z] 20:57:24     INFO - mkdir: /builds/worker/workspace/build/upload/logs
[task 2018-04-23T20:57:24.693Z] 20:57:24    DEBUG - Copying /builds/worker/logs/localconfig.json to /builds/worker/workspace/build/upload/logs/localconfig.json
[task 2018-04-23T20:57:24.693Z] 20:57:24    DEBUG - mkdir_p: /builds/worker/workspace/build/upload/logs Already exists.
[task 2018-04-23T20:57:24.693Z] 20:57:24    DEBUG - Copying /builds/worker/logs/log_info.log to /builds/worker/workspace/build/upload/logs/log_info.log
[task 2018-04-23T20:57:24.693Z] 20:57:24    DEBUG - mkdir_p: /builds/worker/workspace/build/upload/logs Already exists.
[task 2018-04-23T20:57:24.694Z] 20:57:24    DEBUG - Copying /builds/worker/logs/log_raw.log to /builds/worker/workspace/build/upload/logs/log_raw.log
[task 2018-04-23T20:57:24.694Z] 20:57:24    DEBUG - mkdir_p: /builds/worker/workspace/build/upload/logs Already exists.
[task 2018-04-23T20:57:24.694Z] 20:57:24    DEBUG - Copying /builds/worker/logs/log_warning.log to /builds/worker/workspace/build/upload/logs/log_warning.log
[task 2018-04-23T20:57:24.694Z] 20:57:24    DEBUG - mkdir_p: /builds/worker/workspace/build/upload/logs Already exists.
[task 2018-04-23T20:57:24.695Z] 20:57:24    DEBUG - Copying /builds/worker/logs/log_critical.log to /builds/worker/workspace/build/upload/logs/log_critical.log
[task 2018-04-23T20:57:24.695Z] 20:57:24    DEBUG - mkdir_p: /builds/worker/workspace/build/upload/logs Already exists.
[task 2018-04-23T20:57:24.695Z] 20:57:24    DEBUG - Copying /builds/worker/logs/log_error.log to /builds/worker/workspace/build/upload/logs/log_error.log
[task 2018-04-23T20:57:24.695Z] 20:57:24    DEBUG - mkdir_p: /builds/worker/workspace/build/upload/logs Already exists.
[task 2018-04-23T20:57:24.695Z] 20:57:24    DEBUG - Copying /builds/worker/logs/log_debug.log to /builds/worker/workspace/build/upload/logs/log_debug.log
[task 2018-04-23T20:57:24.696Z] 20:57:24    DEBUG - mkdir_p: /builds/worker/workspace/build/upload/logs Already exists.
[task 2018-04-23T20:57:24.696Z] 20:57:24    DEBUG - Copying /builds/worker/logs/log_fatal.log to /builds/worker/workspace/build/upload/logs/log_fatal.log
[taskcluster 2018-04-23 20:57:25.084Z] === Task Finished ===
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Petru can you remedy this ASAP.
Flags: needinfo?(petru.lingurar)
Tried to suppress the lint error in the xml file and that led to other errors.
In comment 56 is an updated patch for to ignore all android strings UnusedResources Lint errors until the feature from bug bug 1454686 is ready.
Ran Lint with that patch and the build was successful. 
Just needs to be reviewed and merged if deemed ok.
Flags: needinfo?(petru.lingurar)
Whiteboard: [Leanplum] [61] → [Leanplum] [61] [stockwell infra]
Pushed by apavel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/1e5514bef692
Add Leanplum settings opt-out strings needed for bug #1454686; r=mcomella
https://hg.mozilla.org/mozilla-central/rev/1e5514bef692
Status: REOPENED → RESOLVED
Closed: 6 years ago6 years ago
Resolution: --- → FIXED
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in before you can comment on or make changes to this bug.