-
Notifications
You must be signed in to change notification settings - Fork 60
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
Refactor dependency discovery to handle multiple architectures #230
Conversation
Deprecate get_install_id Update lower bound for typing_extensions
Refactor unique_everseen-like function
Differing install names are handled, bad install ids are detected
Remove older deprecated runners and add newer ones
Now tracks install names and rpaths per-architecture. Deprecated several older functions. Refactored related functions to support pathlib.
Library paths can be sensitive and pathlib will mess with the trailing slash
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #230 +/- ##
==========================================
+ Coverage 97.05% 97.18% +0.12%
==========================================
Files 16 16
Lines 1326 1350 +24
==========================================
+ Hits 1287 1312 +25
+ Misses 39 38 -1 ☔ View full report in Codecov by Sentry. |
I might change some of the internal functions. I'd like to tell the difference between a library not having data verses the file not actually being a library. I don't like these errors being silently suppressed by the current functions. |
The PR would've been ready immediately if I didn't theorize on updating the error handling. This PR is ready for squash and merge. |
Support has ended for the |
get_dependencies
and what it calls has been refactored to handle dependencies organized by architecture. Delocate is now aware of multiple architectures and should handle the most common cases where libraries depend on different things depending on their architecture. Fixes #153 Fixes #154_check_ignore_archs
is being phased out. Most of the work was inget_dependencies
,get_install_names
, andget_rpaths
. I made new private versions of some of these so that they could have an updated return value needed to track the architecture.Adding
-arch all
to allotool
calls makesotool
act like it does in later MacOS versions. The tests added in #140 no longer expectNotImplementedError
. Fixing this also allows testing on newer MacOS runners which I've added. Closes #137I tried to switch functions which return library data to return
PurePosixPath
but this causes it to remove trailing slashes on folders and the functions which edit library data need the strings be match exactly, so there's no point in switching those functions over to return Path types. I did update much of what I touched to use pathlib inputs though.This PR is a mess so far. I'll likely squash this before merging.
Pull Request Checklist