AVSLab / basilisk

Astrodynamics simulation framework
https://hanspeterschaub.info/basilisk
ISC License
148 stars 61 forks source link

Error during Basilisk installation. ERROR: Invalid setting '16' is not a valid 'settings.compiler.version' value. #852

Open luca1396 opened 1 week ago

luca1396 commented 1 week ago

After having followed all the installation steps for Mac OS I get the following error after running "python3 conanfile.py" inside the venv: Checking conan configuration: Done Auto-Generating Draft Modules... Done Running this conan command: /Users/luca/Documents/basilisk/.venv/bin/python -m conans.conan install . --build=missing -s build_type=Release -if dist3/conan -o generator="Unix Makefiles" -o opNav=False -o vizInterface=True -o buildProject=True -o managePipEnvironment=True

WARN: ** WARN: * Conan 1 is legacy and on a deprecation path ** WARN: ***** Please upgrade to Conan 2 **** WARN: ** ERROR: Invalid setting '16' is not a valid 'settings.compiler.version' value. Possible values are ['5.0', '5.1', '6.0', '6.1', '7.0', '7.3', '8.0', '8.1', '9.0', '9.1', '10.0', '11.0', '12.0', '13', '13.0', '13.1', '14', '14.0', '15', '15.0'] Read "http://docs.conan.io/en/latest/faq/troubleshooting.html#error-invalid-setting" Traceback (most recent call last): File "/Users/luca/Documents/basilisk/conanfile.py", line 405, in completedProcess = subprocess.run(conanCmdString, shell=True, check=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/subprocess.py", line 569, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '/Users/luca/Documents/basilisk/.venv/bin/python -m conans.conan install . --build=missing -s build_type=Release -if dist3/conan -o generator="Unix Makefiles" -o opNav=False -o vizInterface=True -o buildProject=True -o managePipEnvironment=True' returned non-zero exit status 1.

I am using the following configuration:

Does anyone know how to solve this problem? Thanks a lot, Luca

sassy-asjp commented 4 days ago

Try adding "16" as a supported version in ~/.conan/settings.yml

CC: @schaubh I think this is another thing that will become an issue as more people are using macOS 15+ since conan 1.x is unsupported now. We should really explore upgrading to conan 2 similar to what was proposed in #614 or switch from conan to some other C++ build backend like meson.

schaubh commented 3 days ago

I agree with the suggestion by @sassy-asjp. The other option is try upgrading conan to the latest version before 2.x using pip install --upgrade "conan<2.0". I am running conan 1.65.0 and it supports Xcode 16 and 16.1.

schaubh commented 3 days ago

@sassy-asjp , I completely agree about the urgency to update BSK to support conan 2.0. I was looking into this some this weekend. A CS student helped write the original version, and some other CS supports then helped update it from time to time. Right now I don't have any CS helpers. All the persons I interview don't seem familiar, or interested, in the build system of software.

I looked again at #614. However, this was written with the goal of just using pip install to compile BSK. This prevents incremental builds which is critical for developers. The current build system has deviated a lot since #614. I did spend several hours reading up on conan 2 and suggested migration paths, as well as reviewing our own build system. My goal is to spend Thanksgiving days working on this some on a branch. Any support, help or suggestions are welcome. I do need to retain the current build functionality, but I'm also excited about continuing to expand the build system to support wheels. In a separate branch I am able to reduce our wheel size to 60-70Mb depending on what all is included. This branch is now ready for a PR review.

Regarding meson, I have no experience with this. Do you see this as a better solution than conan? My hope was that I can figure out how to make BSK compatible with conan 2.x first. Then, looking at the long-term progress have a more in depth discussion on where we want the code to go which could including using another dependency manager.