CI fixes and modernization#1511
Open
palonso wants to merge 16 commits into
Open
Conversation
Before it was hardcoded to use python3.6, which is no longer installed in our manylinux images.
We don't need to use FFmpeg 2.8 as since MTG#1494 we support FFmpeg 5+
Eigen 5.x (current Homebrew formula) requires C++14 features (std::enable_if_t, std::integer_sequence, etc.), causing build failures with the previous C++11 default.
Update cibuildwheel-tensorflow.toml arm64 override: MACOSX_DEPLOYMENT_TARGET 15.2 → 15.4 (matching the current libtensorflow 2.20.0 bottle's minimum)
Let's use the same pipeline in both workflows so that we don't have to fix deps individually everytime we change something.
This avoids running checkout@v4, which depends on Node 20 on Centos7 as it is not supported. Build doc inside docker to mimic the cibuildwheel behaviour.
7a98a86 to
7d5fa36
Compare
mac-13 --> mac-15-intel. mac-13 is deprecated. https://github.com/actions/runner-images/blob/main/images/macos/macos-15-Readme.md
- 15.0 for the normal wheels as required by libcrypto.3.dylib and libssl.3.dylib - 15.2 for the tensorflow wheels as required by libtensorflow
03b6c8b to
d391ccb
Compare
Let's take the opportunity to bump our tooling: - ubuntu22.04 --> ubuntu24.04 - checkout v4 --> v6 - cibuildwheel v2.23 -> v3.2 - upload-artifact v4 -> v5
- cp38: project does not target Python 3.8.
- *t-*: free-threaded (no-GIL) builds. The Essentia C bindings rely on
legacy PyTypeObject definitions that fail to instantiate under
cp313t/cp314t ("Type does not define the tp_name field"). Re-enable
once the bindings are audited for free-threading compatibility.
- *-musllinux*, *i686: not supported by our manylinux2014 build images.
Since Node.js 20 actions are deprecated
This file contains hidden or 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
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.
This PR brings the build system and CI workflows up to date with current toolchains and runner availability, fixing several breakages along the way.
C++ standard: C++11 → C++14
Homebrew's current eigen formula (5.x) requires C++14 features (std::enable_if_t, std::integer_sequence, std::make_signed_t, etc.), which fail to compile under Essentia's previous C++11 default. Bumped the default in wscript to C++14.
macOS deployment target bumps
The libtensorflow Homebrew bottle has tightened its minimum macOS target. delocate-wheel rejected wheels whose bundled libs required a newer OS than the wheel's own tag advertised. Updated MACOSX_DEPLOYMENT_TARGET for the cibuildwheel-tensorflow.toml arm64 override (15.2 → 15.4) to match the current bottle.
cibuildwheel.toml skip selectors
cibuildwheel 3.x rejected several legacy selectors with warnings:
build-docs.yml: aligned with the wheel build
The docs workflow was building Essentia from scratch on a stock Ubuntu host: apt-get for system deps, manual git clone + build of Gaia, and setup_from_libtensorflow.sh for TensorFlow. This drifted from how the published wheels are produced and meant docs could pass while wheels failed (or vice versa).
Now the docs job runs the build inside the same mtgupf/essentia-builds:manylinux2014_x86_64 image used by cibuildwheel-tensorflow.toml, with the same waf configure flags. Only Sphinx/Doxygen/pandoc are layered on top.
Workflow modernization
Removed macos-13 runner
GitHub retired the Intel macos-13 hosted runner; jobs targeting it sit indefinitely in "Waiting for a runner". Replaced with macos-15-intel / kept macos-15 (arm64).