Commit 328ca73
committed
android build: Update Gradle to 6.0.1.
Part of the RN v0.61 -> v0.62 changes to the template app [1],
corresponding to several commits, listed below. Probably best to do
this before the main upgrade commit.
The "Fixed issues" and the "Known issues" sections of the release
notes (linked for each upgrade below) are particularly informative
for the patch-version upgrades, where, otherwise, the release notes
seem identical to those of the corresponding minor version.
----- v5.6 (facebook/react-native@be2a2529a) -----
Release notes from Gradle upstream:
https://docs.gradle.org/5.6/release-notes.html
Upgrade guide:
https://docs.gradle.org/5.6/userguide/upgrading_version_5.html#changes_5.6
Before doing this upgrade, I ran `gradle help --scan` (actually,
`./gradlew help --scan`) to check for deprecations that might turn
into failures after the upgrade, as recommended by the upgrade
guide. The report (https://scans.gradle.com/s/2pgdvrpgnpyms [2])
didn't have a "Deprecations" item in the left nav, as shown in the
guide's screenshot, but it did show some deprecation warnings in the
console. (A similar output was seen from the alternative command
they suggest, `gradle help --warning-mode all`; I ran it with
`./gradlew`.) We see this in the console for three of our
dependencies:
```
WARNING: Configuration 'compile' is obsolete and has been replaced
with 'implementation' and 'api'.
It will be removed soon. For more information see:
http://d.android.com/r/tools/update-dependency-configurations.html
```
The three dependencies are (with our issues to upgrade/replace, two
of them filed just now):
- `react-native-photo-view` zulip#4217
- `react-native-text-input-reset` zulip#4239
- `react-native-device-info` zulip#4240
The upgrade guide lists a few new deprecations; we may get warnings
after the upgrade if they apply to us, but I suspect they may be
given in the "Deprecations" section mentioned above, which we don't
have, for whatever reason. It also lists several potential breaking
changes, and I haven't understood them well enough to find if they
apply to us. We hope to catch any that do
in `tools/test android --full`.
Unfortunately, we did run into a known issue with 5.6
(gradle/gradle#10347) that halted progress verifying the upgrade.
React Native saw it too; facebook/react-native#26227 was filed to
upgrade to 5.6.1 in response. That was closed and superseded by
facebook/react-native#26349 (landed in
facebook/react-native@b1c954b1f), done here and discussed below.
----- v5.6.2 (facebook/react-native@b1c954b1f) -----
Release notes from Gradle upstream:
https://docs.gradle.org/5.6.1/release-notes.html
https://docs.gradle.org/5.6.2/release-notes.html
Upgrade guides:
https://docs.gradle.org/5.6.1/userguide/upgrading_version_5.html#changes_5.6.1
https://docs.gradle.org/5.6.2/userguide/upgrading_version_5.html#changes_5.6.2
The release notes and upgrade guides appear close to identical to
those for v5.6. One thing we could and did do here, with
gradle/gradle#10347 fixed, is proceed with verifying the v5.6
upgrade, together with the changes from v5.6 to v5.6.2.
The build scan report at v5.6.2
(https://scans.gradle.com/s/peks3ratsf7ee) was very similar to the
one we ran before the v5.6 upgrade; those three deprecation warnings
didn't turn into errors. `tools/test --full android` succeeded right
away.
----- v5.6.3 (facebook/react-native@ff6b2ff32) -----
Release notes from Gradle upstream:
https://docs.gradle.org/5.6.3/release-notes.html
Upgrade guides:
https://docs.gradle.org/5.6.3/userguide/upgrading_version_5.html#changes_5.6.3
All near-identical to the previous docs.
The build scan report at v5.6.3 (https://gradle.com/s/3holiaylf6jku)
also looks very similar to those at past versions.
At first, I got a build failure that I didn't get with the
previous upgrades:
```
java.nio.file.NoSuchFileException:
/Users/chrisbobbe/dev/zulip-mobile/android/app/build/intermediates/external_file_lib_dex_archives/debug/out
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:86)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
[...]
```
It went away after deleting `android/.gradle` and running
`./gradlew clean` (from SO: https://stackoverflow.com/a/62025502).
----- v5.6.4 (facebook/react-native@928f4434b) -----
Release notes from Gradle upstream:
https://docs.gradle.org/5.6.4/release-notes.html
Upgrade guides:
https://docs.gradle.org/5.6.4/userguide/upgrading_version_5.html#changes_5.6.4
The build scan report at v5.6.4 (https://gradle.com/s/2szkm2hvdrejy)
also looks very similar to those at past versions.
----- v6.0.1 (facebook/react-native@701e66bde) -----
Release notes from Gradle upstream:
https://docs.gradle.org/6.0.1/release-notes.html
Upgrade guides:
https://docs.gradle.org/6.0.1/userguide/upgrading_version_5.html#changes_6.0.1
The upgrade guide lists many new deprecations, and we are newly
seeing some deprecation warnings in the build scan (see below). It
also lists several potential breaking changes, and I haven't
understood them well enough to find if they apply to us. We hope to
catch any that do in `tools/test android --full`.
This time, the build scan report for v6.0.1
(https://scans.gradle.com/s/l7q26kntclub6) does have a
"Deprecations" section. Its contents:
"""
BuildListener#buildStarted(Gradle) has been deprecated.
This is scheduled to be removed in Gradle 7.0.
32 usages
The maven plugin has been deprecated.
This is scheduled to be removed in Gradle 7.0.
Please use the maven-publish plugin instead.
19 usages
"""
Expanding the 32 usages in the first of these, all but one are in
the `com.android.library` plugin; one is in the `android` plugin.
Expanding the 19 usages in the second of these, they're all in the
`org.gradle.maven` plugin.
I encountered a build failure ("No file known for: classes.dex") but
was able to fix it by clearing `android.gradle` and running
`./gradlew clean`.
[1] https://react-native-community.github.io/upgrade-helper/?from=0.61.5&to=0.62.2
[2] The build scan at this link will be "available indefinitely",
according to https://scans.gradle.com/.1 parent aeec166 commit 328ca73
5 files changed
Lines changed: 37 additions & 6 deletions
File tree
- android
- gradle/wrapper
- docs/howto
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
21 | 23 | | |
| 24 | + | |
| 25 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
211 | 211 | | |
212 | 212 | | |
213 | 213 | | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
214 | 241 | | |
215 | 242 | | |
216 | 243 | | |
| |||
0 commit comments