Skip to content

Conversation

pgarrison
Copy link
Contributor

@pgarrison pgarrison commented Jun 11, 2025

Fixes #57
Fixes #82
Fixes bioio-devs/bioio-czi#51

Context

pylibrczirw does not provide wheels for MacOS or ARM Linux. In some installation contexts, build dependencies like cmake are unavailable, which makes pylibczirw unusable. Specifically, this is an issue downstream for bioio-czi.

Changes

Added 3 new build artifacts: x86-64 MacOS, ARM64 MacOS, and ARM64 Linux, with MacOS-specific build logic in setup.py.

Testing

I only tested the ARM64 MacOS wheel, since that's the hardware I have. I was able to install the wheel and import pylibCZIrw.

Review notes

I strongly recommend also merging my PR #84 so that CI continues to work past the end of the month.

@pgarrison pgarrison requested a review from a team as a code owner June 11, 2025 19:02
@sebi06
Copy link

sebi06 commented Jun 23, 2025

Hi @pgarrison - I will check why I cannot approve this with my account ... (sorry for the delay)

Copy link
Collaborator

@DaveyJonesBitPail DaveyJonesBitPail left a comment

Choose a reason for hiding this comment

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

Approved from sec eng considerations w/ recommendation to make openssl lib and version more transparent to ensure consistency and try to dial down versions used in shipped packages to properly audit

@pgarrison
Copy link
Contributor Author

pgarrison commented Jul 7, 2025

All lint errors should now be resolved.

My contributions are covered under the corporate CLA signed by the Allen Institute.

@DaveyJonesBitPail DaveyJonesBitPail added the cla Contributor License Agreement sent to Admin label Jul 8, 2025
@sebi06
Copy link

sebi06 commented Aug 18, 2025

@pgarrison and @DaveyJonesBitPail what is still missing to merge this and make a new release for pylibCZIrw?

@DaveyJonesBitPail
Copy link
Collaborator

@pgarrison and @DaveyJonesBitPail what is still missing to merge this and make a new release for pylibCZIrw?

from the security standpoint there are no further requirements.

Looking at the failing linux build it looks like a vcpkg-related CI issue. VCPKG_INSTALLATION_ROOT ought to be set appropriately OOB however....

@pgarrison
Copy link
Contributor Author

(I think I fixed the install and tested on my fork; waiting on CI to re-run)

@pgarrison
Copy link
Contributor Author

pgarrison commented Sep 5, 2025

None of the CI jobs failed, but many were cancelled? They don't appear to be cancelled due to a timeout. Perhaps they were cancelled manually?

Can one of the maintainers try re-triggering CI? If that doesn't resolve it, debugging this may require more direct support from one of the maintainers.

Edit: It appears the canceled jobs are due to the windows-2019 runner being removed. Getting CI to run now depends on my PR #84.

Copy link

codecov bot commented Sep 26, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.56%. Comparing base (cc17eb3) to head (5426686).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #85   +/-   ##
=======================================
  Coverage   96.56%   96.56%           
=======================================
  Files           1        1           
  Lines         379      379           
  Branches       51       51           
=======================================
  Hits          366      366           
  Misses          7        7           
  Partials        6        6           
Components Coverage Δ
pylibczirw_python 96.56% <ø> (ø)
pylibczirw_c ∅ <ø> (∅)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@pgarrison
Copy link
Contributor Author

pgarrison commented Sep 29, 2025

Notes on current build errors:

  • The main error appears to be a missing std::atomic.
CMake Error at libs/libCZIrw/cmake/CheckForAdditionalLibsRequiredForAtomic.cmake:59 (message):
    Unable to compile code which uses 'atomic'.
  • The code with this test lives here
  • Github actions log shows The CXX compiler identification is AppleClang 15.0.0.15000100 for macOS-x86_64 and The CXX compiler identification is AppleClang 15.0.0.15000309 for macOS-arm64
  • I was able to compile and run the test function (linked above) on my macOS-arm64 machine with clang -std=c++11 test.cxx. The test was successful (returns 0). I tested against Apple clang version 16.0.0 (clang-1600.0.26.6).
  • cmake uses CXX_STANDARD to control which C++ standard the compiler uses. Although this variable is set in many places (e.g., libCZIrw/Src/libCZI/CMakeLists.txt), I don't see any setting that would affect libs/libCZIrw/cmake/CheckForAdditionalLibsRequiredForAtomic.cmake.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla Contributor License Agreement sent to Admin

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Build pylibCZIrw wheel for ARM Linux Support MacOS installation of bioio-czi Build pylibCZIrw wheels for MacOS

4 participants