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: iOS interop [WPB-15034] #850

Merged
merged 5 commits into from
Jan 20, 2025
Merged

feat: iOS interop [WPB-15034] #850

merged 5 commits into from
Jan 20, 2025

Conversation

typfel
Copy link
Member

@typfel typfel commented Jan 14, 2025

What's new in this PR

Adds an iOS client to the e2e interop tests


PR Submission Checklist for internal contributors
  • The PR Title
    • conforms to the style of semantic commits messages¹ supported in Wire's Github Workflow²
    • contains a reference JIRA issue number like SQPIT-764
    • answers the question: If merged, this PR will: ... ³
  1. https://sparkbox.com/foundry/semantic_commit_messages
  2. https://github.com/wireapp/.github#usage
  3. E.g. feat(conversation-list): Sort conversations by most emojis in the title #SQPIT-764.

@typfel typfel requested a review from a team as a code owner January 14, 2025 00:35
Copy link

github-actions bot commented Jan 14, 2025

🐰 Bencher Report

Branchfeat/ios-interop
Testbedubuntu-latest
Click to view all benchmark results
BenchmarkLatencymilliseconds (ms)
Commit add f(group size)/cs1/mem/1002📈 view plot
🚷 view threshold
18.84
Commit add f(group size)/cs1/mem/2📈 view plot
🚷 view threshold
6.94
Commit add f(group size)/cs1/mem/202📈 view plot
🚷 view threshold
9.60
Commit add f(group size)/cs1/mem/402📈 view plot
🚷 view threshold
12.18
Commit add f(group size)/cs1/mem/602📈 view plot
🚷 view threshold
14.90
Commit add f(group size)/cs1/mem/802📈 view plot
🚷 view threshold
16.82
Commit add f(number clients)/cs1/mem/1002📈 view plot
🚷 view threshold
991.51
Commit add f(number clients)/cs1/mem/2📈 view plot
🚷 view threshold
7.04
Commit add f(number clients)/cs1/mem/202📈 view plot
🚷 view threshold
85.46
Commit add f(number clients)/cs1/mem/402📈 view plot
🚷 view threshold
222.14
Commit add f(number clients)/cs1/mem/602📈 view plot
🚷 view threshold
430.93
Commit add f(number clients)/cs1/mem/802📈 view plot
🚷 view threshold
678.37
Commit pending proposals f(group size)/cs1/mem/1002📈 view plot
🚷 view threshold
117.18
Commit pending proposals f(group size)/cs1/mem/2📈 view plot
🚷 view threshold
28.68
Commit pending proposals f(group size)/cs1/mem/202📈 view plot
🚷 view threshold
46.38
Commit pending proposals f(group size)/cs1/mem/402📈 view plot
🚷 view threshold
61.52
Commit pending proposals f(group size)/cs1/mem/602📈 view plot
🚷 view threshold
80.03
Commit pending proposals f(group size)/cs1/mem/802📈 view plot
🚷 view threshold
95.78
Commit pending proposals f(pending size)/cs1/mem/1📈 view plot
🚷 view threshold
18.95
Commit pending proposals f(pending size)/cs1/mem/101📈 view plot
🚷 view threshold
115.45
Commit pending proposals f(pending size)/cs1/mem/21📈 view plot
🚷 view threshold
35.95
Commit pending proposals f(pending size)/cs1/mem/41📈 view plot
🚷 view threshold
56.88
Commit pending proposals f(pending size)/cs1/mem/61📈 view plot
🚷 view threshold
75.79
Commit pending proposals f(pending size)/cs1/mem/81📈 view plot
🚷 view threshold
96.00
Commit remove f(group size)/cs1/mem/1002📈 view plot
🚷 view threshold
27.72
Commit remove f(group size)/cs1/mem/2📈 view plot
🚷 view threshold
6.85
Commit remove f(group size)/cs1/mem/202📈 view plot
🚷 view threshold
9.24
Commit remove f(group size)/cs1/mem/402📈 view plot
🚷 view threshold
12.30
Commit remove f(group size)/cs1/mem/602📈 view plot
🚷 view threshold
16.92
Commit remove f(group size)/cs1/mem/802📈 view plot
🚷 view threshold
22.36
Commit remove f(number clients)/cs1/mem/1002📈 view plot
🚷 view threshold
30.03
Commit remove f(number clients)/cs1/mem/2📈 view plot
🚷 view threshold
138.59
Commit remove f(number clients)/cs1/mem/202📈 view plot
🚷 view threshold
116.20
Commit remove f(number clients)/cs1/mem/402📈 view plot
🚷 view threshold
93.71
Commit remove f(number clients)/cs1/mem/602📈 view plot
🚷 view threshold
72.11
Commit remove f(number clients)/cs1/mem/802📈 view plot
🚷 view threshold
51.17
Commit update f(group size)/cs1/mem/1002📈 view plot
🚷 view threshold
138.08
Commit update f(group size)/cs1/mem/2📈 view plot
🚷 view threshold
7.07
Commit update f(group size)/cs1/mem/202📈 view plot
🚷 view threshold
33.77
Commit update f(group size)/cs1/mem/402📈 view plot
🚷 view threshold
84.95
Commit update f(group size)/cs1/mem/602📈 view plot
🚷 view threshold
86.98
Commit update f(group size)/cs1/mem/802📈 view plot
🚷 view threshold
112.23
🐰 View full continuous benchmarking report in Bencher

@codecov-commenter
Copy link

codecov-commenter commented Jan 14, 2025

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 76.20%. Comparing base (d5b496e) to head (54f9a86).
Report is 6 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #850   +/-   ##
=======================================
  Coverage   76.20%   76.20%           
=======================================
  Files         113      113           
  Lines       20688    20688           
=======================================
  Hits        15766    15766           
  Misses       4922     4922           

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d5b496e...54f9a86. Read the comment docs.

@typfel typfel force-pushed the feat/ios-interop branch 17 times, most recently from 5c5faef to eb2eb85 Compare January 16, 2025 22:19
@typfel typfel changed the title Feat/ios interop feat: iOS interop [WPB-15034] Jan 16, 2025
@typfel typfel force-pushed the feat/ios-interop branch 3 times, most recently from 3163b52 to f4c5666 Compare January 17, 2025 00:19
Copy link
Contributor

@SimonThormeyer SimonThormeyer left a comment

Choose a reason for hiding this comment

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

Approved with a single comment

@istankovic
Copy link
Member

Could you please fold the fixup commit into the commit introducing the change the fixup commit is touching?

@typfel
Copy link
Member Author

typfel commented Jan 17, 2025

Could you please fold the fixup commit into the commit introducing the change the fixup commit is touching?

Of course, I thought it's nicer to leave them as fixups while reviewing so you can see the only the relevant changes I make.

@istankovic
Copy link
Member

Regarding commit sequencing, I think it would be better if we modify b7197602d2da263b038dbe9987e7ee26d2f07a4e (ci: build and install ios interop client in interop workflow) so that the changes touching .github/workflows/rust.yml are moved to the next commit, 04b3f1a88b62261d38043f344551127f93025876 (ci: re-use job for building ios artifacts).

That way, the first one would just add the grant_permissions.sh and install_app.sh scripts, and the second one would actually make use of those scripts in the CI.

if: startsWith(matrix.task, 'ios-simulator-arm')
uses: actions/upload-artifact@v4
with:
name: ${{github.event.number}}-swift-ffi
Copy link
Member

Choose a reason for hiding this comment

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

Here we're using github.event.number, elsewhere we're using github.run_id to uniquely name artifacts. I think we should be consistent, and use github.run_id everywhere, unless there is a good reason to prefer github.event.number here.

Copy link
Member Author

Choose a reason for hiding this comment

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

I just moved the job into separate file maybe @coriolinus can give a reason.

Copy link
Contributor

Choose a reason for hiding this comment

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

I didn't touch that actually; it appears to come from 1ce7d95, which is @SimonThormeyer.

I don't think there's a strong reason here to prefer either one here. TBH we'd probably be fine without a distinguishing number in either case; looking deeper into the download artifact action, it automatically partitions by run id anyway. Adding an event number or run id just helps us keep track of things if we happen to download some artifacts for manual inspection.

Copy link
Member

Choose a reason for hiding this comment

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

looking deeper into the download artifact action, it automatically partitions by run id anyway

Ah, didn't know that, thanks!

@istankovic
Copy link
Member

@typfel what went wrong here? Was that some sort of github CI timeout?

@typfel
Copy link
Member Author

typfel commented Jan 17, 2025

@typfel what went wrong here? Was that some sort of github CI timeout?

I was testing another chrome version. I guess it was unsuccessful

@istankovic
Copy link
Member

@typfel what went wrong here? Was that some sort of github CI timeout?

I was testing another chrome version. I guess it was unsuccessful

Was there a successful run of build bindings / e2e-interop-test (pull_request) ?
In the above run I can see the test took too long, as if it was stuck during migration.
I assume that doesn't happen locally on your machine, does it?

@typfel
Copy link
Member Author

typfel commented Jan 20, 2025

@typfel what went wrong here? Was that some sort of github CI timeout?

I was testing another chrome version. I guess it was unsuccessful

Was there a successful run of build bindings / e2e-interop-test (pull_request) ? In the above run I can see the test took too long, as if it was stuck during migration. I assume that doesn't happen locally on your machine, does it?

I think the migration logs are unrelated that's coming from the the ffi client but afterwards the web client is initialised and that got stuck apparently.

Copy link
Member

@istankovic istankovic left a comment

Choose a reason for hiding this comment

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

Looks good to me. 👍

I'm curious about the total CI time now, as github sometimes really takes a long time to give a macos runner.

@typfel
Copy link
Member Author

typfel commented Jan 20, 2025

Looks good to me. 👍

I'm curious about the total CI time now, as github sometimes really takes a long time to give a macos runner.

It can a really long time

- install_app.sh installs the locally build app into a simulator device.
- grant_permission.sh grants permission for opening the app from an URL.
The chrome webdriver is crashing with:
 V8 process OOM (Failed to reserve virtual memory for CodeRange)

Upgrading the the latest Chrome (currently 134.0.6962.0) resolves
the crash.
@typfel typfel merged commit 54f9a86 into main Jan 20, 2025
33 checks passed
@typfel typfel deleted the feat/ios-interop branch January 20, 2025 13:46
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.

5 participants