-
Notifications
You must be signed in to change notification settings - Fork 6
Feature/ssast 10888 #96
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
Merged
Merged
Changes from all commits
Commits
Show all changes
6 commits
Select commit
Hold shift + click to select a range
fef5b57
release/0.5.4 changes merged into main but not on develop
davdres 3164593
SSAST-10888 reference dynamic dependency instead of adding its contents
davdres 4a034da
SSAST-10888 don't copy dependent modules but save them for pp to reco…
davdres 33fd391
SSAST-10888 Add test for filtering the dependency chase.
davdres 1fa365f
SSAST-10888 Code clean up.
davdres d37ecb0
SSAST-10888 Code clean up: rename dependency file passed to preproces…
davdres File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,53 @@ | ||
| Test project in TestApp77.xcworkspace (built originally with Xcode 16.1). | ||
|
|
||
|
|
||
| TestApp77 (app target) depends on TestLibraryA (framework target) and TestLibraryC (framework target) | ||
|
|
||
| TestLibraryA (framework target) depends on TestLibraryB (framework target) | ||
|
|
||
| TestLibraryB (framework target) depends on the opentelemetry-swift package. | ||
|
|
||
| TestLibraryC (framework target) has no dependencies. | ||
|
|
||
|
|
||
|
|
||
| Generated archive is in build/test.xcarchive. | ||
|
|
||
|
|
||
| --- | ||
| See that the IR files from the opentelemetry-swift package (e.g., ZipkinBaggagePropagator.bc) appear in all targets, | ||
| except for TestLibraryC (which doesn't have a transitive dependency on opentelemetry-swift). | ||
|
|
||
| However, the files should only appear in IR/TestLibraryB, which is the target that references the package. You can | ||
| check that only Products/Applications/TestApp77.app/Frameworks/TestLibraryB.framework/TestLibraryB contains symbols | ||
| from opentelemetry-swift (e.g., using the `nm` utility). | ||
|
|
||
| Why is this a problem? The size of the IR folder is bloating the app: | ||
|
|
||
| $ du -chd 1 build/test.xcarchive/IR | ||
| 26M build/test.xcarchive/IR/TestApp77.app | ||
| 26M build/test.xcarchive/IR/TestLibraryB.framework | ||
| 4.0K build/test.xcarchive/IR/TestLibraryC.framework | ||
| 26M build/test.xcarchive/IR/TestLibraryA.framework | ||
| 78M build/test.xcarchive/IR | ||
| 78M total | ||
|
|
||
|
|
||
| This app has no actual contents: only TestLibraryB should have anything of | ||
| significance from the opentelemetry-swift package (26M), and everything else | ||
| should be ~4K. However, we're getting the 26M from opentelemetry-swift multiplied | ||
| across all transitive dependencies, which for a big app with ~200 frameworks, can | ||
| be multiple gigabytes of extra space. | ||
|
|
||
| In particular, we're seeing our zipped app archive go above the 2GiB upload limit! | ||
|
|
||
|
|
||
| --- | ||
| Build command: | ||
|
|
||
| rm -rf ./build && xcodebuild clean -workspace TestApp77.xcworkspace -scheme TestApp77 -derivedDataPath ./build && xcodebuild archive -derivedDataPath ./build -workspace TestApp77.xcworkspace -scheme TestApp77 -configuration Debug -destination generic/platform=iOS -archivePath build/test.xcarchive > build_log.txt | ||
|
|
||
|
|
||
| Gen-IR command: | ||
|
|
||
| gen-ir build_log.txt build/test.xcarchive --debug > gen_ir_log.txt |
20 changes: 20 additions & 0 deletions
20
TestAssets/DependencyChaseFilter/TestApp77.xcworkspace/contents.xcworkspacedata
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
5 changes: 5 additions & 0 deletions
5
...ets/DependencyChaseFilter/TestApp77.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| <?xml version="1.0" encoding="UTF-8"?> | ||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
| <plist version="1.0"> | ||
| <dict/> | ||
| </plist> |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.