-
Notifications
You must be signed in to change notification settings - Fork 25
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
[python] Fix and test setup.py
flags to external shared objects
#2221
Merged
johnkerl
merged 1 commit into
single-cell-data:main
from
jdblischak:fix-setuptools-flags-pr
Mar 6, 2024
Merged
[python] Fix and test setup.py
flags to external shared objects
#2221
johnkerl
merged 1 commit into
single-cell-data:main
from
jdblischak:fix-setuptools-flags-pr
Mar 6, 2024
Conversation
This file contains 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
johnkerl
changed the title
[python] Fix and test setup.py flags to external shared objects
[python] Fix and test Mar 6, 2024
setup.py
flags to external shared objects
See also #2210 for troubleshooting context. |
johnkerl
approved these changes
Mar 6, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🚢
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #2221 +/- ##
==========================================
- Coverage 78.49% 72.02% -6.47%
==========================================
Files 137 103 -34
Lines 10683 6875 -3808
Branches 215 215
==========================================
- Hits 8386 4952 -3434
+ Misses 2198 1824 -374
Partials 99 99
Flags with carried forward coverage won't be shown. Click here to find out more.
|
johnkerl
added a commit
that referenced
this pull request
Mar 6, 2024
johnkerl
added a commit
that referenced
this pull request
Mar 6, 2024
johnkerl
added a commit
that referenced
this pull request
Mar 6, 2024
johnkerl
added a commit
that referenced
this pull request
Mar 6, 2024
This was referenced May 1, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Issue and/or context:
Changes:
--tiledb
and--libtiledbsoma
that are passed tosetup.py
Notes for Reviewer:
Here's what happened. PR #1937 fixed the shared object copying when an external libtiledb or libtiledbsoma is provided via the env vars
TILEDB_PATH
orTILEDBSOMA_PATH
. Unfortunately, it broke the command-line flags--tiledb
and--libtiledbsoma
. It overwrites them withNone
. This is why the tiledbsoma-feedstock nightlies immediately started failing after it was merged, which is the only place where we still build tiledbsoma-py withsetup.py
.We assumed there was a macOS-specific problem because 1) the linux-64 feedstock build continued to pass, and 2) #1937 only tested on linux and not macOS. However, after I added a macOS job in #2220, we knew it was not specific to macOS since macOS also properly copies the objects when using the env vars.
I figured it out by investigating the differences between linux and macOS in
setup.py
. It turns out that linux has a fall-back method to search for a system installation of libtiledbsoma. This is the only reason that the linux-64 feedstock build passed.TileDB-SOMA/apis/python/setup.py
Lines 146 to 147 in 793818d
In order to catch this type of regression in this repository, I added an extra job to my python-so-copying workflow that confirms the flags
--tiledb
and--libtiledbsoma
are functional. To emulate the feedstock build, I deletecmake
from the runner. Thus if tiledbsoma-py is unable to use the command-line flags and tries to fall back to building libtiledbsoma from source withcmake
, it will fail (which I confirmed on a branch in my fork by temporarily reverting my fixes tosetup.py
).See also #2219 for tracking