[ann] Android Resources have moved to mobile/android/app/src/main/res

[ann] Android Resources have moved to mobile/android/app/src/main/res

Hi folks,

tl;dr: mobile/android/resources is now mobile/android/app/src/main/res -- see [1].

Details

---------

The Photon development team is leveraging the partial Gradle support in the tree to refresh the existing Firefox for Android skin. The future is Gradle and the android-api-15-gradle build job (like android-api-15, but with
--with-gradle) is building and testing the Photon enabled build. To that end we're following Gradle conventions for the resources, which means:

Over time, the source code in mobile/android/base/java will migrate to the Gradle convention location, which is mobile/android/app/src/main/java.

Future

---------

I'm planning to land [2] this week, which pushes the moz.build APK towards the Gradle APK. About a week later, I'll throw the Gradle switch on Nightly, so that we build Nightly --with-gradle. Assuming everything doesn't burn on Nightly, I'll uplift [2] to Beta about a week after that. The idea is that with the prep work on Beta and --with-gradle riding the Nightly train, we'll be better positioned to deal with Gradle related falllout independently of Photon requirements. (The last thing we want is to depend on Gradle for Photon and hit a snag as we get to Beta or Release and a tight timeline.)

Follow-up

-------------

Discussion is best on mobile-firefox-dev. Jing-wei Wu, Max Liu, and Nevin Chen, are doing all the hard work here -- start with them. I'm supporting the Gradle build work.

Re: [ann] Android Resources have moved to mobile/android/app/src/main/res

tl;dr: mobile/android/resources is now mobile/android/app/src/main/res -- see [1].

Details

---------

The Photon development team is leveraging the partial Gradle support in the tree to refresh the existing Firefox for Android skin. The future is Gradle and the android-api-15-gradle build job (like android-api-15, but with
--with-gradle) is building and testing the Photon enabled build. To that end we're following Gradle conventions for the resources, which means:

Over time, the source code in mobile/android/base/java will migrate to the Gradle convention location, which is mobile/android/app/src/main/java.

Future

---------

I'm planning to land [2] this week, which pushes the moz.build APK towards the Gradle APK.

I landed [2] last night; it should be in today's Nightly. Please let me know of any resource-related fallout, blocking [2] of course.

Best,

Nick

About a week later, I'll throw the Gradle switch on Nightly, so that we build Nightly --with-gradle. Assuming everything doesn't burn on Nightly, I'll uplift [2] to Beta about a week after that. The idea is that with the prep work on Beta and --with-gradle riding the Nightly train, we'll be better positioned to deal with Gradle related falllout independently of Photon requirements. (The last thing we want is to depend on Gradle for Photon and hit a snag as we get to Beta or Release and a tight timeline.)

Follow-up

-------------

Discussion is best on mobile-firefox-dev. Jing-wei Wu, Max Liu, and Nevin Chen, are doing all the hard work here -- start with them. I'm supporting the Gradle build work.

Re: [ann] Android Resources have moved to mobile/android/app/src/main/res

I'm planning to land [2] this week, which pushes the moz.build APK towards the Gradle APK. About a week later, I'll throw the Gradle switch on Nightly, so that we build Nightly --with-gradle. Assuming everything doesn't burn on Nightly, I'll uplift [2] to Beta about a week after that. The idea is that with the prep work on Beta and --with-gradle riding the Nightly train, we'll be better positioned to deal with Gradle related falllout independently of Photon requirements. (The last thing we want is to depend on Gradle for Photon and hit a snag as we get to Beta or Release and a tight timeline.)

So, one month later, [2] completely crashed and burned: there were serious resource issues all over the APK. The backout happened just before the SFO All Hands, and I haven't gotten back to this part of the Gradle-ification project. The good news is that we don't _have_ to address the issues with [2] to move Gradle-ification forward; that was just one approach that was trying to bound risk in a certain way. I think what really was shown is that the risk to rolling Nightly onto Gradle is much lower than I had anticipated; our bug reporting system and update system is 100% able to react to packaging errors of the type we might see flipping the Gradle switch. That's good!

What's not good: we need to address [3] and find a way to generate JNI wrappers in the Gradle builds. The _proper_ way to do this is to use an Annotation Processor during the Gradle builds, but that sets off a chain reaction of mental anguish as almost our entire toolchain needs to roll forward. I'll try to work around this; more details in [3].

What's doubly not good: I'm about to go on parental leave for 6 weeks, so I will have only very limited availability until September 15th or so, and this project will drag on yet further.

Yours,

Nick

Follow-up

-------------

Discussion is best on mobile-firefox-dev. Jing-wei Wu, Max Liu, and Nevin Chen, are doing all the hard work here -- start with them. I'm supporting the Gradle build work.