status-im / status-mobile

a free (libre) open source, mobile OS for Ethereum
https://status.app
Mozilla Public License 2.0
3.92k stars 984 forks source link

chore(deps)_: use gradle plugin to get deps #21502

Closed siddarthkay closed 4 weeks ago

siddarthkay commented 1 month ago

related issue : https://github.com/status-im/status-mobile/issues/15447

Summary

This PR makes use of https://github.com/gradle/github-dependency-graph-gradle-plugin to generate deps so that we may get rid of the AWK script that parses gradle output to figure out gradle dependencies.

credits to @mendelskiv93 for doing initial research on this dependency generator plugin.

We still miss a few dependencies and are not completely able to get rid of the hack list step just yet.

I also moved react-native-share out of pluginManagement block in android/settings.gradle because it does not belong there.

Testing notes

not needed since we only change fetching build dependencies in this PR

Platforms

status: ready

status-im-auto commented 1 month ago

Jenkins Builds

Click to see older builds (12) | :grey_question: | Commit | :hash: | Finished (UTC) | Duration | Platform | Result | |-|-|-|-|-|-|-| | :x: | 86eaaac7 | [#3](https://ci.status.im/job/status-mobile/job/prs/job/android/job/PR-21502/3/) | 2024-10-25 12:37:12 | ~3 min | `android` | [:page_facing_up:`log`](https://ci.status.im/job/status-mobile/job/prs/job/android/job/PR-21502/3/consoleText) | | :x: | 86eaaac7 | [#3](https://ci.status.im/job/status-mobile/job/prs/job/android-e2e/job/PR-21502/3/) | 2024-10-25 12:38:11 | ~4 min | `android-e2e` | [:page_facing_up:`log`](https://ci.status.im/job/status-mobile/job/prs/job/android-e2e/job/PR-21502/3/consoleText) | | :heavy_check_mark: | 86eaaac7 | [#3](https://ci.status.im/job/status-mobile/job/prs/job/tests/job/PR-21502/3/) | 2024-10-25 12:38:12 | ~4 min | `tests` | [:page_facing_up:`log`](https://status-im-mobile-prs.ams3.cdn.digitaloceanspaces.com/StatusIm-Mobile-241025-123344-86eaaa-pr21502-tests.log) | | :heavy_check_mark: | 86eaaac7 | [#3](https://ci.status.im/job/status-mobile/job/prs/job/ios/job/PR-21502/3/) | 2024-10-25 12:43:32 | ~9 min | `ios` | [:iphone:`ipa`](https://i.diawi.com/wxeeux) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fi.diawi.com%2Fwxeeux)| | | | | | | | | | :heavy_check_mark: | c64599f4 | [#4](https://ci.status.im/job/status-mobile/job/prs/job/tests/job/PR-21502/4/) | 2024-10-25 13:21:25 | ~4 min | `tests` | [:page_facing_up:`log`](https://status-im-mobile-prs.ams3.cdn.digitaloceanspaces.com/StatusIm-Mobile-241025-131645-c64599-pr21502-tests.log) | | :heavy_check_mark: | c64599f4 | [#4](https://ci.status.im/job/status-mobile/job/prs/job/android-e2e/job/PR-21502/4/) | 2024-10-25 13:23:24 | ~6 min | `android-e2e` | [:robot:`apk`](https://status-im-mobile-prs.ams3.cdn.digitaloceanspaces.com/StatusIm-Mobile-241025-131645-c64599-pr21502-x86_64.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fstatus-im-mobile-prs.ams3.cdn.digitaloceanspaces.com%2FStatusIm-Mobile-241025-131645-c64599-pr21502-x86_64.apk)| | :heavy_check_mark: | c64599f4 | [#4](https://ci.status.im/job/status-mobile/job/prs/job/android/job/PR-21502/4/) | 2024-10-25 13:25:09 | ~8 min | `android` | [:robot:`apk`](https://status-im-mobile-prs.ams3.cdn.digitaloceanspaces.com/StatusIm-Mobile-241025-131645-c64599-pr21502-arm64-v8a.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fstatus-im-mobile-prs.ams3.cdn.digitaloceanspaces.com%2FStatusIm-Mobile-241025-131645-c64599-pr21502-arm64-v8a.apk)| | :heavy_check_mark: | c64599f4 | [#4](https://ci.status.im/job/status-mobile/job/prs/job/ios/job/PR-21502/4/) | 2024-10-25 13:26:36 | ~9 min | `ios` | [:iphone:`ipa`](https://i.diawi.com/3Tqj9x) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fi.diawi.com%2F3Tqj9x)| | | | | | | | | | :heavy_check_mark: | af9a031c | [#5](https://ci.status.im/job/status-mobile/job/prs/job/tests/job/PR-21502/5/) | 2024-10-26 07:47:39 | ~4 min | `tests` | [:page_facing_up:`log`](https://status-im-mobile-prs.ams3.cdn.digitaloceanspaces.com/StatusIm-Mobile-241026-074306-af9a03-pr21502-tests.log) | | :heavy_check_mark: | af9a031c | [#5](https://ci.status.im/job/status-mobile/job/prs/job/android/job/PR-21502/5/) | 2024-10-26 07:50:06 | ~6 min | `android` | [:robot:`apk`](https://status-im-mobile-prs.ams3.cdn.digitaloceanspaces.com/StatusIm-Mobile-241026-074306-af9a03-pr21502-arm64-v8a.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fstatus-im-mobile-prs.ams3.cdn.digitaloceanspaces.com%2FStatusIm-Mobile-241026-074306-af9a03-pr21502-arm64-v8a.apk)| | :heavy_check_mark: | af9a031c | [#5](https://ci.status.im/job/status-mobile/job/prs/job/android-e2e/job/PR-21502/5/) | 2024-10-26 07:50:12 | ~7 min | `android-e2e` | [:robot:`apk`](https://status-im-mobile-prs.ams3.cdn.digitaloceanspaces.com/StatusIm-Mobile-241026-074306-af9a03-pr21502-x86_64.apk) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fstatus-im-mobile-prs.ams3.cdn.digitaloceanspaces.com%2FStatusIm-Mobile-241026-074306-af9a03-pr21502-x86_64.apk)| | :heavy_check_mark: | af9a031c | [#5](https://ci.status.im/job/status-mobile/job/prs/job/ios/job/PR-21502/5/) | 2024-10-26 07:53:11 | ~10 min | `ios` | [:iphone:`ipa`](https://i.diawi.com/3fS6c5) [:calling:](https://chart.apis.google.com/chart?cht=qr&chs=400x400&chld=L%7C%0A1&chl=https%3A%2F%2Fi.diawi.com%2F3fS6c5)|
:grey_question: Commit :hash: Finished (UTC) Duration Platform Result
:heavy_check_mark: 780dc35c #6 2024-10-28 13:04:42 ~4 min tests :page_facing_up:log
:heavy_check_mark: 780dc35c #6 2024-10-28 13:07:52 ~7 min android :robot:apk :calling:
:heavy_check_mark: 780dc35c #6 2024-10-28 13:09:01 ~9 min android-e2e :robot:apk :calling:
:heavy_check_mark: 780dc35c #6 2024-10-28 13:10:39 ~10 min ios :iphone:ipa :calling:
:heavy_check_mark: 2a8edd78 #7 2024-10-29 06:01:56 ~4 min tests :page_facing_up:log
:heavy_check_mark: 2a8edd78 #7 2024-10-29 06:05:25 ~7 min android-e2e :robot:apk :calling:
:heavy_check_mark: 2a8edd78 #7 2024-10-29 06:06:02 ~8 min android :robot:apk :calling:
:heavy_check_mark: 2a8edd78 #7 2024-10-29 06:07:44 ~9 min ios :iphone:ipa :calling:
status-im-auto commented 1 month ago

0% of end-end tests have passed

Total executed tests: 8
Failed tests: 8
Expected to fail tests: 0
Passed tests: 0
IDs of failed tests: 727230,703133,727231,702745,702742,740490,727229,702843 

Failed tests (8)

Click to expand
  • Rerun failed tests

  • Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    ``` Test setup failed: critical/test_wallet.py:22: in prepare_devices self.drivers, self.loop = create_shared_drivers(2) base_test_case.py:330: in create_shared_drivers raise e base_test_case.py:320: in create_shared_drivers test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1 '_asyncio.Future' object has no attribute 'session_id' ```

    2. test_wallet_send_eth, id: 727229
    ``` Test setup failed: critical/test_wallet.py:22: in prepare_devices self.drivers, self.loop = create_shared_drivers(2) base_test_case.py:330: in create_shared_drivers raise e base_test_case.py:320: in create_shared_drivers test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1 '_asyncio.Future' object has no attribute 'session_id' ```

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    ``` Test setup failed: critical/test_wallet.py:200: in prepare_devices self.drivers, self.loop = create_shared_drivers(1) base_test_case.py:330: in create_shared_drivers raise e base_test_case.py:320: in create_shared_drivers test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1 '_asyncio.Future' object has no attribute 'session_id' ```

    2. test_wallet_balance_mainnet, id: 740490
    ``` Test setup failed: critical/test_wallet.py:200: in prepare_devices self.drivers, self.loop = create_shared_drivers(1) base_test_case.py:330: in create_shared_drivers raise e base_test_case.py:320: in create_shared_drivers test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1 '_asyncio.Future' object has no attribute 'session_id' ```

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843
    ``` Test setup failed: critical/chats/test_public_chat_browsing.py:311: in prepare_devices self.drivers, self.loop = create_shared_drivers(2) base_test_case.py:330: in create_shared_drivers raise e base_test_case.py:320: in create_shared_drivers test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1 '_asyncio.Future' object has no attribute 'session_id' ```

    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    ``` Test setup failed: critical/chats/test_public_chat_browsing.py:22: in prepare_devices self.drivers, self.loop = create_shared_drivers(1) base_test_case.py:330: in create_shared_drivers raise e base_test_case.py:320: in create_shared_drivers test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1 '_asyncio.Future' object has no attribute 'session_id' ```

    2. test_community_copy_and_paste_message_in_chat_input, id: 702742
    ``` Test setup failed: critical/chats/test_public_chat_browsing.py:22: in prepare_devices self.drivers, self.loop = create_shared_drivers(1) base_test_case.py:330: in create_shared_drivers raise e base_test_case.py:320: in create_shared_drivers test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1 '_asyncio.Future' object has no attribute 'session_id' ```

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    ``` Test setup failed: critical/chats/test_1_1_public_chats.py:20: in prepare_devices self.drivers, self.loop = create_shared_drivers(2) base_test_case.py:330: in create_shared_drivers raise e base_test_case.py:320: in create_shared_drivers test_suite_data.current_test.testruns[-1].jobs[drivers[i].session_id] = i + 1 '_asyncio.Future' object has no attribute 'session_id' ```

    status-im-auto commented 1 month ago

    75% of end-end tests have passed

    Total executed tests: 8
    Failed tests: 2
    Expected to fail tests: 0
    Passed tests: 6
    IDs of failed tests: 703133,702843 

    Failed tests (2)

    Click to expand
  • Rerun failed tests

  • Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133

    # STEP: Check that removed user is not shown in the list anymore
    Device 1: Wait for element `Button` for max 30s and click when it is available

    ``` critical/chats/test_public_chat_browsing.py:240: in test_restore_multiaccount_with_waku_backup_remove_switch self.sign_in.show_profiles_button.wait_and_click() ../views/base_element.py:100: in wait_and_click self.wait_for_visibility_of_element(sec) ../views/base_element.py:147: in wait_for_visibility_of_element raise TimeoutException( Device 1: Button by accessibility id:`show-profiles` is not found on the screen after wait_for_visibility_of_element ```

    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843

    Device 2: Find `Text` by `xpath`: `//android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]`
    Device 2: Wait for element `Button` for max 120s and click when it is available

    ``` Test setup failed: critical/chats/test_public_chat_browsing.py:350: in prepare_devices self.community_2.join_community() ../views/chat_view.py:420: in join_community self.join_button.wait_and_click(120) ../views/base_element.py:100: in wait_and_click self.wait_for_visibility_of_element(sec) ../views/base_element.py:147: in wait_for_visibility_of_element raise TimeoutException( Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element ```

    Device sessions

    Passed tests (6)

    Click to expand

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    2. test_wallet_balance_mainnet, id: 740490

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    status-im-auto commented 4 weeks ago

    75% of end-end tests have passed

    Total executed tests: 8
    Failed tests: 2
    Expected to fail tests: 0
    Passed tests: 6
    IDs of failed tests: 703133,702843 

    Failed tests (2)

    Click to expand
  • Rerun failed tests

  • Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133

    # STEP: Check that removed user is not shown in the list anymore
    Device 1: Wait for element `Button` for max 30s and click when it is available

    ``` critical/chats/test_public_chat_browsing.py:240: in test_restore_multiaccount_with_waku_backup_remove_switch self.sign_in.show_profiles_button.wait_and_click() ../views/base_element.py:100: in wait_and_click self.wait_for_visibility_of_element(sec) ../views/base_element.py:147: in wait_for_visibility_of_element raise TimeoutException( Device 1: Button by accessibility id:`show-profiles` is not found on the screen after wait_for_visibility_of_element ```

    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843

    Device 2: Find `Text` by `xpath`: `//android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'https://status.app/c/')]`
    Device 2: Wait for element `Button` for max 120s and click when it is available

    ``` Test setup failed: critical/chats/test_public_chat_browsing.py:350: in prepare_devices self.community_2.join_community() ../views/chat_view.py:420: in join_community self.join_button.wait_and_click(120) ../views/base_element.py:100: in wait_and_click self.wait_for_visibility_of_element(sec) ../views/base_element.py:147: in wait_for_visibility_of_element raise TimeoutException( Device 2: Button by accessibility id:`show-request-to-join-screen-button` is not found on the screen after wait_for_visibility_of_element ```

    Device sessions

    Passed tests (6)

    Click to expand

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    Class TestWalletMultipleDevice:

    1. test_wallet_send_asset_from_drawer, id: 727230
    2. test_wallet_send_eth, id: 727229

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    2. test_wallet_balance_mainnet, id: 740490

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    seanstrom commented 4 weeks ago

    Nice stuff 🙌

    I've tried building the android app with a simulator using make run-android, and it all seems to build fine on my side. Is there anything else I should try to run for these changes?

    siddarthkay commented 4 weeks ago

    Thanks for testing locally.

    Is there anything else I should try to run for these changes?

    No that should be enough!