Skip to content
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

Installation of SCT 6.2 failed on macos 10.15 #4447

Closed
giorgiaquerin opened this issue Apr 19, 2024 · 5 comments
Closed

Installation of SCT 6.2 failed on macos 10.15 #4447

giorgiaquerin opened this issue Apr 19, 2024 · 5 comments

Comments

@giorgiaquerin
Copy link

Hello,
I tried to install SCT 6.2 on a macos using install_sct but installation failed.
Please find attached the install_sct_log.txt to help you understand what's not working.
Thank you very much,
Giorgia
install_sct_log.txt

@mguaypaq
Copy link
Member

Hi Giorgia,

Thanks for reaching out. Looking at the install log, it looks like you're running macos version 10.15.7 (Catalina), which was released in 2019. Unfortunately, it looks like one of the libraries that SCT 6.2 depends on (called onnxruntime) requires macos version at least 11 (Big Sur, released in 2020).

But, it looks like the previous version, SCT 6.1, should still be compatible with macos version 10.15.7.

So, I think your two best options would be:

  • Either upgrade to a more recent version of macos before installing SCT 6.2 (this is probably ideal if you can do it).
  • Or stay on macos 10.15.7, and install SCT 6.1 for now.

@joshuacwnewton
Copy link
Member

joshuacwnewton commented Apr 19, 2024

For posterity's sake, here are further technical details that explain why SCT v6.2 requires a version of onnxruntime incompatible with Catalina:

  • For our stable releases, we freeze the package versions in order to ensure a reproducible environment that does not change over time. We want to guarantee that if researchers use a specific version of SCT now, it will still produce identical results 5 years from now.
  • For v6.2, we freeze the latest version of onnxruntime (onnxruntime==1.17.0). More generally speaking, we tend to use the newest versions of packages so that we can stay up to date with security/performance improvements, and catch any update-related bugs as soon as the new versions are released.
  • onnxruntime==1.17.0 specifies onnxruntime-1.17.3-cp39-cp39-macosx_11_0_universal2.whl in its wheel, meaning it is not compatible with macOS 10.x versions. This change first started with 1.17.0; for previous versions, an onnxruntime-1.16.3-cp311-cp311-macosx_10_15_x86_64.whl wheel was offered as well, which supports macOS 10.15 versions.
  • However, if we disregard the "freezing" and look at the development version of SCT, then the allowed version range of onnxruntime is actually much wider:
    onnxruntime>=1.7.0,!=1.16.0
  • So, technically it is still possible to install an earlier version of onnxruntime alongside SCT v6.2. The question becomes: Will the results be identical if a Catalina-compatible version of onnxruntime is installed? My presumption would be yes. onnxruntime is only used to run frozen .ONNX deep learning segmentaion models, which have fixed weights/opset versions/etc. If onnxruntime version updates caused the results to change in a meaningful way, I would be quite surprised, since the whole purpose of ONNX is to enable model interoperability!

For the above reasons, I think it may be possible to install SCT v6.2 on Catalina with the following steps:

# replace the version of `onnxruntime` with an earlier compatible version (https://stackoverflow.com/a/4247319)
sed -i'' -e 's/onnxruntime==1.17.0/onnxruntime==1.15.0/g' /Users/giorgiaquerin/sct_6.2/requirements-freeze.txt
# rerun the 6.2 installer
./Users/giorgiaquerin/sct_6.2/install_sct

I would only do this, though, if you cannot upgrade your version of macOS and need specific features from SCT 6.2 and above. Otherwise, I would stick with one of @mguaypaq's proposed solutions.


Developer note: We may want to consider pinning onnxruntime<1.16.0 for as long as we can justifiably support Catalina? That said, Catalina reached "End-of-Life" on November 20, 2022, meaning that it no longer receives security updates from Apple. So, I would still urge users to upgrade if their hardware supports it (and perhaps for that reason, it would be unwise to pin onnxruntime<1.16.0).

@mguaypaq
Copy link
Member

Developer note: We may want to consider pinning onnxruntime<1.16.0 for as long as we can justifiably support Catalina? That said, Catalina reached "End-of-Life" on November 20, 2022, meaning that it no longer receives security updates from Apple. So, I would still urge users to upgrade if their hardware supports it (and perhaps for that reason, it would be unwise to pin onnxruntime<1.16.0).

Note that we can't even run our test suite for macos Catalina, because GitHub Actions removed support for it in 2022, see #3852. So I think we already can't justifiably support it.

@giorgiaquerin
Copy link
Author

giorgiaquerin commented Apr 22, 2024 via email

@joshuacwnewton
Copy link
Member

Wonderful news! Thank you for letting us know. ♥️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants