SoarGroup / Soar

Soar, a general cognitive architecture for systems that exhibit intelligent behavior.
http://soar.eecs.umich.edu
Other
322 stars 70 forks source link

Add support for Python's "Limited API"; Test cibuildwheel and py >=3.5 using `TestPythonSML.py` #461

Closed ShadowJonathan closed 1 month ago

ShadowJonathan commented 1 month ago

Resolves #458 Resolves #460

This pivots scons to build for a single "limited API" that stays future-proof for all python 3 versions, following a single one it is built for.

This also tests all those versions that it is then supporting. This is done in parallel, so that it impacts CI times minimally. (and adds 30 seconds max)

This'll only build the abi3 wheels if SOAR_PYTHON_ABI3 is defined at the time of building. The output wheels are appropriately tagged, so that version mixing does not happen.

(This environment variable makes the building of abi3 wheels completely optional, python-version-specific wheels will be created without it (like before), which should be alright for development installs and the likes)


This PR also has cibuildwheel call and run TestPytonSML.py to more thoroughly test its wheels.

This change is also added to the above OS+PyVersion testing matrix.

ShadowJonathan commented 1 month ago

Reduced from 24 files to 5 :)

soar_sml-9.6.3.202405161333.dev117-cp35-abi3-macosx_10_9_x86_64.whl
soar_sml-9.6.3.202405161333.dev117-cp35-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
soar_sml-9.6.3.202405161333.dev117-cp35-abi3-win_amd64.whl
soar_sml-9.6.3.202405161333.dev117-cp35-abi3-macosx_11_0_arm64.whl
soar_sml-9.6.3.202405161333.dev117-cp35-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
garfieldnate commented 1 month ago

Note to self for later: there appears to be non-determinism in this test that randomly failed on Windows:

testSpreadingActivation_AlphabetAgentAllOn: ✅ 😈 Ha! Assert: testSpreadingActivation_AlphabetAgentAllOn halted too early. Letters were likely skipped. DC = 1583

ShadowJonathan commented 1 month ago

I've added extra changes which now addresses https://github.com/SoarGroup/Soar/issues/460, per the review comment.

garfieldnate commented 1 month ago

Just had one last tiny comment. Very excited to merge this! Thank you for all your work!

garfieldnate commented 1 month ago

Actually I can take care of that comment. I'll go ahead and merge it!