sentry-cocoa icon indicating copy to clipboard operation
sentry-cocoa copied to clipboard

feat: Sentry Swift framework

Open brustolin opened this issue 2 years ago • 3 comments

:scroll: Description

Create a Swift framework and expose the current one through it.

:bulb: Motivation and Context

see https://github.com/getsentry/sentry-cocoa/discussions/2160

:green_heart: How did you test it?

:pencil: Checklist

  • [x] I reviewed the submitted code
  • [ ] I added tests to verify the changes
  • [ ] I updated the docs if needed
  • [ ] Review from the native team if needed
  • [ ] No breaking changes

:crystal_ball: Next steps

brustolin avatar Sep 14 '22 15:09 brustolin

Messages
:book: Do not forget to update Sentry-docs with your feature once the pull request gets approved.

Generated by :no_entry_sign: dangerJS against 1fa7dda810e02fcdd4994b0a6ed9855b8563b4a8

github-actions[bot] avatar Sep 14 '22 15:09 github-actions[bot]

Performance metrics :rocket:

  Plain With Sentry Diff
Startup time 1211.33 ms 1248.42 ms 37.09 ms
Size 20.75 KiB 379.12 KiB 358.36 KiB

Previous results on branch: feat/swift

Startup times

Revision Plain With Sentry Diff
0a45bd3f663ea14ed225558da776d801c843d9c3 1200.60 ms 1231.56 ms 30.96 ms
fd49873aab91dcaf6f814716215b12cb84606f37 1235.04 ms 1238.88 ms 3.84 ms
41b3651384d709183f96221f1baaf1cb77291652 1240.08 ms 1252.82 ms 12.74 ms
40e71b80319ffc69396e58bd8ad28e4392c7d143 1231.78 ms 1252.52 ms 20.74 ms
e71f14d5aee4d85a88c6f77b6cead199b76d0e06 1239.29 ms 1263.86 ms 24.57 ms
3eaa8abf04fd330c06540a2cb7c8b2e9ed37269a 1222.88 ms 1256.54 ms 33.67 ms
d90630757305a3a6af70a13de7d3f7e1b284d635 1203.05 ms 1235.82 ms 32.77 ms
6ae784dbdcba47f2e07334c2f79aeef323589df7 1223.80 ms 1252.58 ms 28.78 ms
762bacb388b5d2d40313749dab6d99447a357dbe 1235.85 ms 1245.48 ms 9.63 ms
0fd99e1be8ac72d54984e5da66842edbecc851ca 1238.14 ms 1239.24 ms 1.10 ms

App size

Revision Plain With Sentry Diff
0a45bd3f663ea14ed225558da776d801c843d9c3 20.75 KiB 371.95 KiB 351.19 KiB
fd49873aab91dcaf6f814716215b12cb84606f37 20.75 KiB 379.11 KiB 358.36 KiB
41b3651384d709183f96221f1baaf1cb77291652 20.75 KiB 378.65 KiB 357.90 KiB
40e71b80319ffc69396e58bd8ad28e4392c7d143 20.50 KiB 340.09 KiB 319.58 KiB
e71f14d5aee4d85a88c6f77b6cead199b76d0e06 20.50 KiB 340.09 KiB 319.58 KiB
3eaa8abf04fd330c06540a2cb7c8b2e9ed37269a 20.50 KiB 341.52 KiB 321.02 KiB
d90630757305a3a6af70a13de7d3f7e1b284d635 20.75 KiB 371.95 KiB 351.20 KiB
6ae784dbdcba47f2e07334c2f79aeef323589df7 20.50 KiB 341.56 KiB 321.06 KiB
762bacb388b5d2d40313749dab6d99447a357dbe 20.75 KiB 371.95 KiB 351.19 KiB
0fd99e1be8ac72d54984e5da66842edbecc851ca 20.50 KiB 341.53 KiB 321.03 KiB

github-actions[bot] avatar Sep 22 '22 13:09 github-actions[bot]

Projects using Carthage will be required to add both Sentry and SentryObjc frameworks as dependencies.

brustolin avatar Sep 23 '22 08:09 brustolin

@philipphofmann @andrewlvovsky @kahest This PR is ready for review. The changes here are most related to the Workspace configuration to support swift in the project

brustolin avatar Oct 20 '22 14:10 brustolin

We decide that we're fine having swift class public in a different module, called SentryPrivate. For this to happen we need an extra cocoapod library. SPM and Carthage will work like this out of the box.

With this approach, classes from SentryPrivate will not be available when users import Sentry. We don't mind breaking changes in SentryPrivate, because this is not meant to be use by the user, we going to point this out in the docs.

Participants: @philipphofmann @kahest @brustolin

brustolin avatar Nov 09 '22 11:11 brustolin

We have two options.

  • Coordinate some tests across SDKs
  • Create an integration CI test in our repo that downloads hybrids SDK sample and try to run it.

The second one will be kind heavy thing to add into our daily process.

brustolin avatar Nov 16 '22 08:11 brustolin

Let's merge this to the 8.0.0 branch once we create it. I still would like to release a hotfix with https://github.com/getsentry/sentry-cocoa/pull/2398 before that.

philipphofmann avatar Nov 17 '22 13:11 philipphofmann