Skip to content

Library upgrades and SDK 36 adaptation - #4710

Draft
TranceLove wants to merge 9 commits into
TeamAmaze:hotfix/3.11.3from
TranceLove:feature/lib-minor-upgrades
Draft

Library upgrades and SDK 36 adaptation#4710
TranceLove wants to merge 9 commits into
TeamAmaze:hotfix/3.11.3from
TranceLove:feature/lib-minor-upgrades

Conversation

@TranceLove

Copy link
Copy Markdown
Collaborator

Description

Library upgrades and SDK 36 adaptation, to stay with Google Play compliance.

Important: with this PR onward Amaze File Manager will require Android M (6.0) or above.

Changes:

  • Require JDK 21 to build
  • Added Jetifier ignore list. In addition to speed up build time by reducing jars to process, also helped Robolectric tests to pass after library upgrades
  • Upgraded libraries to latest possible version with least changes to codebase as possible
    • Gradle: 8.14.5
    • Kotlin: 2.2.20
    • Android Gradle Plugin: 8.13.2
    • Spotless: 8.9.0
    • AndroidX core: 1.16.0
    • AndroidX fragment: 1.8.9
    • AndroidX appcompat: 1.7.1
    • AndroidX annotation: 1.10.0
    • AndroidX constraint layout: 2.2.2
    • sshj: 0.40.0
    • Bouncy castle: 1.85
    • slf4j: 2.0.18
    • junrar: 8.1.0
    • xz: 1.12
    • zip4j: 2.11.6
    • logback-classic: 1.6.1
    • jsoup: 1.23.1
    • gson: 2.14.0
    • rxjava: 2.2.21
    • acra-core: 5.13.1
    • leak-canary-android: 2.14
    • okHttp: 5.1.0
    • commons-net: 3.13.0
    • kotlin-stdlib-jdk8: 2.2.10
    • espresso: 3.7.0
    • AndroidX Test: 1.7.0
    • AndroidX Test extension: 1.3.0
    • kotlin-coroutine-test: 1.11.0
    • UI automator: 2.4.0
    • mockito: 5.23.0
    • mockk: 1.14.11
    • systembartint: 1.0.4
    • awaitility: 4.3.0
    • glide: 5.0.5
    • apache-mina: 2.2.9
    • apache-sshd: 2.19.0
    • apache-ftpserver: 1.2.1
    • robolectric: 4.16.1
    • glide: 5.0.7
    • Google Play Billing: 9.1.0
  • With junrar upgrade, enabled support of newer RAR archives, up to v7
  • Fixed test cases with library upgrades

Automatic tests

  • Added unit tests for specific individual functions
  • Added headless tests for new app functionality
  • Added emulator tests for new UI elements

Manual tests

  • Done

  • Device:

  • OS:

Build tasks success

Successfully running following tasks on local:

  • ./gradlew assembledebug
  • ./gradlew spotlessCheck

Generative code

  • This PR used generative code tools (GenAI, LLMs, etc.)

AI was stepped in on solving issues with Robolectric unit tests.

  • Model: GPT Codex
  • Version: 5.3
  • Provider: Github Copilot

For easing the effort on migrating to SDK 36.

Upgraded:
- Gradle: 8.14.5
- Kotlin: 2.2.20
- JDK: 21
- Android Gradle Plugin: 8.13.2
- Spotless: 8.9.0
- AndroidX core: 1.16.0
- AndroidX fragment: 1.8.9
- AndroidX appcompat: 1.7.1
- AndroidX annotation: 1.10.0
- AndroidX constraint layout: 2.2.2
- sshj: 0.40.0
- Bouncy castle: 1.85
- slf4j: 2.0.18
- junrar: 8.1.0, also enables support of RARv5
- xz: 1.12
- zip4j: 2.11.6
- logback-classic: 1.6.1
- jsoup: 1.23.1
- gson: 2.14.0
- rxjava: 2.2.21
- acra-core: 5.13.1
- leak-canary-android: 2.14
- okHttp: 5.1.0
- commons-net: 3.13.0
- kotlin-stdlib-jdk8: 2.2.10
- espresso: 3.7.0
- AndroidX Test: 1.7.0
- AndroidX Test extension: 1.3.0
- kotlin-coroutine-test: 1.11.0
- UI automator: 2.4.0
- mockito: 5.23.0
- mockk: 1.14.11
- systembartint: 1.0.4
- awaitility: 4.3.0
- glide: 5.0.5
- apache-mina: 2.2.9
- apache-sshd: 2.19.0
- apache-ftpserver: 1.2.1
- robolectric: 4.15
Also add bytebuddy to jetifier ignore list
For preparation to Robolectric 4.16
Also upgraded libraries:

- Robolectric: 4.16.1
- Glide: 5.0.7
- Bouncy Castle 1.85.2
- Google Play Android Billing: 9.1.0
Per recommendation for proper source management
- Bump JDK to 21
- Align action versions

Also removed gradle-daemon-jvm.properties which shall not be commited to source tree.
@TranceLove

Copy link
Copy Markdown
Collaborator Author

Pending: smoke test

Build passed and test passed, but app itself is not tested yet :(

gradle/actions/setup-gradle@v6 needs run command in separate step
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant