Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat_: support xcode 16 #21345

Open
wants to merge 2 commits into
base: develop
Choose a base branch
from
Open

feat_: support xcode 16 #21345

wants to merge 2 commits into from

Conversation

qfrank
Copy link
Contributor

@qfrank qfrank commented Sep 30, 2024

stackoverflow reference

status: ready.

@qfrank
Copy link
Contributor Author

qfrank commented Sep 30, 2024

after upgrading to Sequoia 15.0, I also faced another nix issue:
error: the user '_nixbld1' in the group 'nixbld' does not exist
solution

@status-im-auto
Copy link
Member

status-im-auto commented Sep 30, 2024

Jenkins Builds

Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ a2489b3 #1 2024-09-30 02:06:07 ~5 min tests 📄log
a2489b3 #1 2024-09-30 02:08:03 ~7 min ios 📄log
✔️ a2489b3 #1 2024-09-30 02:08:20 ~8 min android 🤖apk 📲
✔️ a2489b3 #1 2024-09-30 02:08:43 ~8 min android-e2e 🤖apk 📲
a2489b3 #2 2024-09-30 02:18:33 ~3 min ios 📄log
✔️ 87dbc3d #2 2024-10-30 14:55:47 ~5 min tests 📄log
✔️ 87dbc3d #2 2024-10-30 14:58:10 ~7 min android-e2e 🤖apk 📲
87dbc3d #3 2024-10-30 14:58:49 ~8 min ios 📄log
✔️ 87dbc3d #2 2024-10-30 14:59:55 ~9 min android 🤖apk 📲

@status-im-auto
Copy link
Member

86% of end-end tests have passed

Total executed tests: 51
Failed tests: 7
Expected to fail tests: 0
Passed tests: 44
IDs of failed tests: 702840,702786,702839,702859,702843,739307,703194 

Failed tests (7)

Click to expand
  • Rerun failed tests

  • Class TestDeepLinksOneDevice:

    1. test_deep_links_communities, id: 739307

    Device 1: Waiting 35s for dapp to load
    Device 1: Find `Text` by `accessibility id`: `community-title`

    critical/test_deep_and_universal_links.py:105: in test_deep_links_communities
        if self.community_view.community_title.text != text:
    ../views/base_element.py:432: in text
        text = self.find_element().text
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Text by accessibility id: `community-title` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_emoji_send_copy_paste_reply, id: 702840

    Device 1: Find RepliedMessageText by xpath: //*[starts-with(@text,'test message')]/preceding::android.widget.TextView[@content-desc='quoted-message']
    Device 1: RepliedMessageText is delete for everyone

    critical/chats/test_public_chat_browsing.py:565: in test_community_emoji_send_copy_paste_reply
        self.errors.verify_no_errors()
    base_test_case.py:192: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Reply message is not reply to original message!
    



    Device sessions

    2. test_community_message_delete, id: 702839

    Device 2: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'delete for everyone')]
    Device 2: Long press on Text

    critical/chats/test_public_chat_browsing.py:395: in test_community_message_delete
        self.channel_2.delete_message_in_chat(message_to_delete_everyone)
    ../views/chat_view.py:1033: in delete_message_in_chat
        self.chat_element_by_text(message).message_body.long_press_element()
    ../views/base_element.py:329: in long_press_element
        action.release(element).perform()
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/common/action_chains.py:103: in perform
        self.w3c_actions.perform()
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/common/actions/action_builder.py:96: in perform
        self.driver.execute(Command.W3C_ACTIONS, enc)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     The element 'By.xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'delete for everyone')]' is not linked to the same object in DOM anymore; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#stale-element-reference-exception
    E   Stacktrace:
    E   io.appium.uiautomator2.common.exceptions.StaleElementReferenceException: The element 'By.xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'delete for everyone')]' is not linked to the same object in DOM anymore
    E   	at io.appium.uiautomator2.model.ElementsCache.restore(ElementsCache.java:122)
    E   	at io.appium.uiautomator2.model.ElementsCache.get(ElementsCache.java:153)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.extractElementCoordinates(ActionsTokenizer.java:214)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.extractCoordinates(ActionsTokenizer.java:307)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.extractCoordinates(ActionsTokenizer.java:260)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.applyPointerActionToEventsMapping(ActionsTokenizer.java:471)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.tokenize(ActionsTokenizer.java:574)
    E   	at io.appium.uiautomator2.handler.W3CActions.safeHandle(W3CActions.java:78)
    E   	at io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:59)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:259)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:253)
    E   	at io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:77)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:435)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
    E   	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:250)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
    E   	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:611)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:552)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:466)
    E   	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438)
    E   	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
    E   	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
    E   	at java.lang.Thread.run(Thread.java:1012)
    



    Device sessions

    3. test_community_one_image_send_reply, id: 702859

    Device 1: Tap on found: Button
    Device 1: Find Button by accessibility id: image-0

    critical/chats/test_public_chat_browsing.py:464: in test_community_one_image_send_reply
        self.channel_1.send_images_with_description(image_description)
    ../views/chat_view.py:1217: in send_images_with_description
        [self.get_image_by_index(i).click() for i in indexes]
    ../views/chat_view.py:1217: in <listcomp>
        [self.get_image_by_index(i).click() for i in indexes]
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `image-0` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    4. test_community_message_edit, id: 702843

    Device 1: Find Text by xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'Message BEFORE edit')]
    Device 1: Long press on Text until expected element is shown

    critical/chats/test_public_chat_browsing.py:377: in test_community_message_edit
        self.channel_1.edit_message_in_chat(message_before_edit, message_after_edit)
    ../views/chat_view.py:1020: in edit_message_in_chat
        self.chat_element_by_text(message_to_edit).message_body.long_press_until_element_is_shown(element)
    ../views/base_element.py:338: in long_press_until_element_is_shown
        action.release(element).perform()
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/common/action_chains.py:103: in perform
        self.w3c_actions.perform()
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/common/actions/action_builder.py:96: in perform
        self.driver.execute(Command.W3C_ACTIONS, enc)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/selenium/webdriver/remote/webdriver.py:345: in execute
        self.error_handler.check_response(response)
    ../../../../status-app-prs-rerun@tmp/venv/lib/python3.10/site-packages/appium/webdriver/errorhandler.py:122: in check_response
        raise exception_class(msg=message, stacktrace=format_stacktrace(stacktrace))
     The element 'By.xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'Message BEFORE edit')]' is not linked to the same object in DOM anymore; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#stale-element-reference-exception
    E   Stacktrace:
    E   io.appium.uiautomator2.common.exceptions.StaleElementReferenceException: The element 'By.xpath: //android.view.ViewGroup[@content-desc='chat-item']//android.widget.TextView[contains(@text,'Message BEFORE edit')]' is not linked to the same object in DOM anymore
    E   	at io.appium.uiautomator2.model.ElementsCache.restore(ElementsCache.java:122)
    E   	at io.appium.uiautomator2.model.ElementsCache.get(ElementsCache.java:153)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.extractElementCoordinates(ActionsTokenizer.java:214)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.extractCoordinates(ActionsTokenizer.java:307)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.extractCoordinates(ActionsTokenizer.java:260)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.applyPointerActionToEventsMapping(ActionsTokenizer.java:471)
    E   	at io.appium.uiautomator2.utils.w3c.ActionsTokenizer.tokenize(ActionsTokenizer.java:574)
    E   	at io.appium.uiautomator2.handler.W3CActions.safeHandle(W3CActions.java:78)
    E   	at io.appium.uiautomator2.handler.request.SafeRequestHandler.handle(SafeRequestHandler.java:59)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleRequest(AppiumServlet.java:259)
    E   	at io.appium.uiautomator2.server.AppiumServlet.handleHttpRequest(AppiumServlet.java:253)
    E   	at io.appium.uiautomator2.http.ServerHandler.channelRead(ServerHandler.java:77)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:435)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)
    E   	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)
    E   	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:250)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:266)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:345)
    E   	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:366)
    E   	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:352)
    E   	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)
    E   	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:611)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:552)
    E   	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:466)
    E   	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:438)
    E   	at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:140)
    E   	at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)
    E   	at java.lang.Thread.run(Thread.java:1012)
    



    Device sessions

    5. test_community_several_images_send_reply, id: 703194

    Device 1: Tap on found: Button
    Device 1: Find Button by accessibility id: image-0

    critical/chats/test_public_chat_browsing.py:419: in test_community_several_images_send_reply
        self.channel_1.send_images_with_description(image_description, [0, 1])
    ../views/chat_view.py:1217: in send_images_with_description
        [self.get_image_by_index(i).click() for i in indexes]
    ../views/chat_view.py:1217: in <listcomp>
        [self.get_image_by_index(i).click() for i in indexes]
    ../views/base_element.py:90: in click
        element = self.find_element()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: Button by accessibility id: `image-0` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_mentions_push_notification, id: 702786

    Device 2: Getting PN by 'user_2'
    Device 2: Looking for a message by text: user_2

    critical/chats/test_public_chat_browsing.py:962: in test_community_mentions_push_notification
        self.errors.verify_no_errors()
    base_test_case.py:192: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message reaction is not shown for the sender
    



    Device sessions

    Passed tests (44)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_reactions, id: 703202
    Device sessions

    2. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    3. test_group_chat_offline_pn, id: 702808
    Device sessions

    4. test_group_chat_pin_messages, id: 702732
    Device sessions

    5. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    6. test_group_chat_mute_chat, id: 703495
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links_profile, id: 702775
    Device sessions

    Class TestWalletMultipleDevice:

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

    Class TestActivityMultipleDevicePR:

    1. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    2. test_activity_center_mentions, id: 702957
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_contact_block_unblock_offline, id: 702894
    Device sessions

    2. test_community_mark_all_messages_as_read, id: 703086
    Device sessions

    3. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    4. test_community_unread_messages_badge, id: 702841
    Device sessions

    5. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    6. test_community_edit_delete_message_when_offline, id: 704615
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851
    Device sessions

    2. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    3. test_add_contact_field_validation, id: 702777
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    2. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783
    Device sessions

    3. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_edit_message, id: 702855
    Device sessions

    2. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    3. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    4. test_1_1_chat_pin_messages, id: 702731
    Device sessions

    5. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    6. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    7. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    8. test_1_1_chat_send_image_save_and_share, id: 703391
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_leave, id: 702845
    Device sessions

    2. test_community_markdown_support, id: 702809
    Device sessions

    3. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    4. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    3. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    4. test_community_undo_delete_message, id: 702869
    Device sessions

    5. test_community_mute_community_and_channel, id: 703382
    Device sessions

    6. test_community_discovery, id: 703503
    Device sessions

    @ilmotta
    Copy link
    Contributor

    ilmotta commented Oct 1, 2024

    Sorry @qfrank, I can't review PRs targeting only Apple devices 🤷🏼

    @siddarthkay
    Copy link
    Contributor

    We will have to upgrade Xcode to 16.0 in CI hosts for this change to work.
    I'll try to get that done this week and keep you posted @qfrank

    @ilmotta ilmotta removed their request for review October 1, 2024 02:41
    @jakubgs
    Copy link
    Member

    jakubgs commented Oct 1, 2024

    Would be good to confirm with several developers that Xcode 16 works well for them before we commit to upgrading CI hosts.

    @siddarthkay
    Copy link
    Contributor

    siddarthkay commented Oct 1, 2024

    yes that is indeed something we should verify!
    @status-im/mobile : can some of you please test this PR locally (with Xcode 16 installed) and confirm if required flows like building the app and running on iOS simulator work for you?

    @siddarthkay siddarthkay requested a review from a team October 1, 2024 08:24
    @pavloburykh pavloburykh self-assigned this Oct 1, 2024
    @churik churik assigned churik and unassigned pavloburykh Oct 1, 2024
    @churik
    Copy link
    Member

    churik commented Oct 1, 2024

    Hello!
    at attempt to build it on my Sonoma 14.5 / Xcode 16:
    image

    info Dev server ready
    
    i - run on iOS
    a - run on Android
    d - open Dev Menu
    r - reload app
    
     BUNDLE  ./index.js 
    
    error: Error: Unable to resolve module ./result/index.js from /Users/curikovatm/Status/status-mobile/index.js: 
    
    None of these files exist:
      * result/index.js(.ios.js|.native.js|.js|.ios.jsx|.native.jsx|.jsx|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)
      * result/index.js/index(.ios.js|.native.js|.js|.ios.jsx|.native.jsx|.jsx|.ios.json|.native.json|.json|.ios.ts|.native.ts|.ts|.ios.tsx|.native.tsx|.tsx)
      1 | import 'node-libs-react-native/globals';
    > 2 | import './result/index.js';
        |         ^
      3 | 
        at ModuleResolver.resolveDependency (/Users/curikovatm/Status/status-mobile/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:127:15)
        at DependencyGraph.resolveDependency (/Users/curikovatm/Status/status-mobile/node_modules/metro/src/node-haste/DependencyGraph.js:271:43)
        at /Users/curikovatm/Status/status-mobile/node_modules/metro/src/lib/transformHelpers.js:176:21
        at resolveDependencies (/Users/curikovatm/Status/status-mobile/node_modules/metro/src/DeltaBundler/buildSubgraph.js:56:25)
        at visit (/Users/curikovatm/Status/status-mobile/node_modules/metro/src/DeltaBundler/buildSubgraph.js:107:30)
        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
        at async Promise.all (index 0)
        at async buildSubgraph (/Users/curikovatm/Status/status-mobile/node_modules/metro/src/DeltaBundler/buildSubgraph.js:127:3)
        at async Graph._buildDelta (/Users/curikovatm/Status/status-mobile/node_modules/metro/src/DeltaBundler/Graph.js:249:22)
        at async Graph.initialTraverseDependencies (/Users/curikovatm/Status/status-mobile/node_modules/metro/src/DeltaBundler/Graph.js:227:19)
    
    

    @siddarthkay
    Copy link
    Contributor

    @churik : yes this is known race condition, you can close terminal which is running metro. restart metro with make run-metro and just restart the app by closing it from the iOS simulator and it should work.

    @churik
    Copy link
    Member

    churik commented Oct 2, 2024

    emm..

    1. I closed the terminal where I initailly run 'make run-ios'
    2. I re-run make run-metro - after a while got
    ▸ Touching StatusIm.app (in target 'StatusIm' from project 'StatusIm')
    ▸ Build Succeeded
    
    1. I reopen the app on emulator and got the same problem :

    image

    Am I doing something wrong @siddarthkay ?

    @siddarthkay
    Copy link
    Contributor

    @churik : can you confirm if make run-clojure terminal was still open when you tried?

    @churik
    Copy link
    Member

    churik commented Oct 3, 2024

    Confirmed, could build an app Sonoma 14.5 / Xcode 16.

    Instructions on how to workaround a race condition (thanks @siddarthkay ):

    • one terminal should be open and should execute make run-clojure
    • second terminal should do make run-ios ( which usually works well in 99% cases) but in your case since the app is installed in emulator what you could do is the following :
    • just try make run-ios ( maybe this issue is not reproducible anymore )
      however if you see the same issue then press ctrl + c to stop the process ( same terminal where you executed make run-ios)
    • now in iOS Simulator press home button and swipe up the app to close it from background ( just to ensure the app is exited )
    • now in the second terminal execute make run-metro

    Once you see metro has started, navigate in iOS Simulator and tap on status debug app icon. this should load the app fine.

    @status-im-auto
    Copy link
    Member

    100% of end-end tests have passed

    Total executed tests: 7
    Failed tests: 0
    Expected to fail tests: 0
    Passed tests: 7
    

    Passed tests (7)

    Click to expand

    Class TestWalletMultipleDevice:

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

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_message_edit, id: 702843
    Device sessions

    Class TestWalletOneDevice:

    1. test_wallet_add_remove_regular_account, id: 727231
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133
    Device sessions

    @siddarthkay
    Copy link
    Contributor

    We should still wait till we hear from other mobile devs on Xcode 16 usage and once we upgrade Xcode in CI to 16

    @churik churik added the blocked label Oct 3, 2024
    Copy link
    Contributor

    @mohsen-ghafouri mohsen-ghafouri left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Thanks, it worked fine after make nix-update-pods

    @ajayesivan
    Copy link
    Contributor

    Works on macOS Sonoma(15.0.1) with Xcode 16.0.

    @churik churik added blocked and removed blocked labels Oct 22, 2024
    Copy link
    Member

    @jakubgs jakubgs left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    We need to upgrade sooner or later, thanks.

    @jakubgs
    Copy link
    Member

    jakubgs commented Oct 23, 2024

    Unfortunately MacOS upgrade required for new Xcode will probably also have to go together with a Nix interpreter upgrade, which is more tricky, since other projects use it too.

    @qfrank
    Copy link
    Contributor Author

    qfrank commented Oct 23, 2024

    Unfortunately MacOS upgrade required for new Xcode will probably also have to go together with a Nix interpreter upgrade, which is more tricky, since other projects use it too.

    I'm used to the pain of cherry-picking the commit in this PR after other commits are done and running status-mobile locally. 😅
    Should I merge it now or after solving the tricky problem? @jakubgs

    @siddarthkay
    Copy link
    Contributor

    @qfrank : we can't merge just yet because changes for Xcode 16 are not backward compatible with Xcode 15.
    So all iOS builds in CI will fail until we also upgrade MacOS hosts with Xcode 16.

    @qfrank
    Copy link
    Contributor Author

    qfrank commented Oct 23, 2024

    @qfrank : we can't merge just yet because changes for Xcode 16 are not backward compatible with Xcode 15. So all iOS builds in CI will fail until we also upgrade MacOS hosts with Xcode 16.

    Feel free to merge it when the time is right, thank you! @siddarthkay

    @mohsen-ghafouri
    Copy link
    Contributor

    @qfrank could you please also add support for 16.1 🥲

    @qfrank
    Copy link
    Contributor Author

    qfrank commented Oct 30, 2024

    @qfrank could you please also add support for 16.1 🥲

    Can you try adding "16.1" into here to see if it works for you? I haven't upgraded to 16.1 yet, if it works for you, I can add it for you in this PR or you can push it to this branch directly @mohsen-ghafouri

    @mohsen-ghafouri
    Copy link
    Contributor

    yeah it works for me, sure i will push a commit

    @anastasiyaig
    Copy link

    So i checked out this branch and executed make nix-update-pods and then i was able to build the app on Sequoia + xCode 16.1

    Screenshot 2024-11-11 at 18 16 36

    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Status: MERGE
    Development

    Successfully merging this pull request may close these issues.

    10 participants