Skip to content

Commit 9a0b519

Browse files
ax3lvicentebolea
andauthored
Wheels: ADIOS2 v2.10.1 (#1554)
* Wheels: ADIOS2 v2.9.2 Build wheels with ADIOS2 v2.9.2, which fixes c-blosc2 issues with null-blocks. * C-Blosc2 v2.11.1 * ADIOS2: Remove installed FindBlosc2.cmake Again * [Patch] C-Blosc2 Static * No Patch: Static C-Blosc2 * Windows: More Blosc2 Updates * Windows: keep FindBlosc2.cmake * Win: Try ADIOS2 v2.10.0-rc1 * ADIOS2 Windows: Disable libFFI * Print CMake Version * ADIOS2: `release_210` Branch * Use Vincente's patch Co-authored-by: Vicente Bolea <vicente.bolea@gmail.com> * ADIOS2: v2.10.1 * Windows: Update ADIOS2 v2.10.1 URL * Update GH Actions * Python 3.8 -> 3.13 * cibuildwheel: 2.16.2 -> 2.21.2 * `-DADIOS2_USE_Campaign=OFF` Issues: - ornladios/ADIOS2#4360 - ornladios/ADIOS2#4148 * Win: Compile Release Install was already Release * Window: Fix unzipped ADIOS2 path * `actions/upload-artifact@v4` Names * `macos-11` -> `macos-12` --------- Co-authored-by: Vicente Bolea <vicente.bolea@gmail.com>
1 parent 85486ec commit 9a0b519

4 files changed

Lines changed: 58 additions & 52 deletions

File tree

.github/workflows/build.yml

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@ jobs:
4040
CMAKE_GENERATOR: "Visual Studio 16 2019"
4141
CMAKE_GENERATOR_PLATFORM: "Win32"
4242

43-
- os: macos-11
43+
- os: macos-12
4444
arch: "x86_64"
4545
env:
4646
MACOSX_DEPLOYMENT_TARGET: 11.0
4747

4848
# Apple Silicon M1/arm64/aarch64 builds:
4949
# https://cibuildwheel.readthedocs.io/en/stable/faq/#apple-silicon
5050
# https://github.com/pypa/cibuildwheel/pull/704
51-
- os: macos-11
51+
- os: macos-12
5252
arch: "arm64"
5353
env:
5454
CMAKE_OSX_ARCHITECTURES: "arm64"
@@ -60,31 +60,31 @@ jobs:
6060
# https://developer.apple.com/documentation/apple-silicon/building-a-universal-macos-binary
6161
# ADIOS1 tricky to build and HDF5 even with CMake as well (as of 1.12)
6262
# We could build them twice and use `lipo` to combine the lib artifacts.
63-
#- os: macos-11
63+
#- os: macos-12
6464
# arch: "universal2"
6565
# env:
6666
# CMAKE_OSX_ARCHITECTURES: "arm64;x86_64"
6767
# MACOSX_DEPLOYMENT_TARGET: 11.0
6868

6969
steps:
70-
- uses: actions/checkout@v2
70+
- uses: actions/checkout@v4
7171
with:
7272
path: 'src'
7373
ref: '0.15.2'
7474

75-
- uses: actions/checkout@v2
75+
- uses: actions/checkout@v4
7676
with:
7777
path: 'src/.github/'
7878

79-
- uses: actions/setup-python@v1
79+
- uses: actions/setup-python@v5
8080
name: Install Python
8181
with:
82-
python-version: '3.8'
82+
python-version: '3.9'
8383

8484
- name: Install cibuildwheel
8585
run: |
8686
python -m pip install --upgrade pip setuptools wheel
87-
python -m pip install cibuildwheel==2.16.2
87+
python -m pip install cibuildwheel==2.21.2
8888
8989
# Hack: cmake --trace-expand
9090
#- name: Download Patch 2/2
@@ -106,15 +106,15 @@ jobs:
106106
# https://github.com/pypa/manylinux/issues/899
107107
CIBW_SKIP: "pp*-manylinux*"
108108
CIBW_ARCHS: "${{ matrix.arch }}"
109-
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.8"
109+
CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9"
110110
# Install dependencies
111111
CIBW_BEFORE_BUILD_LINUX: bash -x .github/library_builders.sh
112112
CIBW_BEFORE_BUILD_MACOS: bash -x .github/library_builders.sh
113113
CIBW_BEFORE_BUILD_WINDOWS: 'cmd /E:ON /V:ON /C .github\library_builders.bat'
114114
# for the openPMD-api build, CMake shall search for
115115
# static dependencies of HDF5 and ADIOS1 (see setup.py)
116116
CIBW_ENVIRONMENT: HDF5_USE_STATIC_LIBRARIES='ON' ZLIB_USE_STATIC_LIBS='ON' ADIOS_USE_STATIC_LIBS='ON' openPMD_CMAKE_openPMD_USE_HDF5='ON' openPMD_CMAKE_openPMD_USE_ADIOS2='ON'
117-
CIBW_ENVIRONMENT_WINDOWS: HDF5_USE_STATIC_LIBRARIES='ON' ZLIB_USE_STATIC_LIBS='ON' openPMD_CMAKE_openPMD_USE_HDF5='ON' openPMD_CMAKE_openPMD_USE_ADIOS2='ON' CMAKE_PREFIX_PATH='C:/Program Files (x86)/ADIOS2;C:/Program Files (x86)/blosc;C:/Program Files (x86)/blosc2;C:/Program Files (x86)/HDF5;C:/Program Files (x86)/ZFP;C:/Program Files (x86)/zlib'
117+
CIBW_ENVIRONMENT_WINDOWS: HDF5_USE_STATIC_LIBRARIES='ON' ZLIB_USE_STATIC_LIBS='ON' openPMD_CMAKE_openPMD_USE_HDF5='ON' openPMD_CMAKE_openPMD_USE_ADIOS2='ON' CMAKE_PREFIX_PATH='C:/Program Files (x86)/ADIOS2;C:/Program Files (x86)/blosc2;C:/Program Files (x86)/HDF5;C:/Program Files (x86)/ZFP;C:/Program Files (x86)/zlib'
118118
# C++17 support in macOS 10.13+ (partial) and 10.14+ (std::visit) and 10.15+ (std::filesystem::path)
119119
# https://cibuildwheel.readthedocs.io/en/stable/cpp_standards/#macos-and-deployment-target-versions
120120
# arm64/aarch64 (M1/M2) requires 11.0+
@@ -132,11 +132,12 @@ jobs:
132132
python setup.py sdist --dist-dir ../wheelhouse
133133
python -m cibuildwheel --output-dir ../wheelhouse
134134
135-
- uses: actions/upload-artifact@v1
135+
- uses: actions/upload-artifact@v4
136136
name: Publish as GitHub artifact
137137
with:
138-
name: wheels
138+
name: wheels-${{ matrix.os }}-${{ matrix.arch }}
139139
path: ./wheelhouse
140+
overwrite: true
140141

141142
- name: Publish on pypi.org
142143
if: github.event_name == 'push' && github.repository == 'openPMD/openPMD-api' && github.ref == 'refs/heads/wheels'

.travis.yml

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ env:
1010
global:
1111
- OPENPMD_GIT_REF="0.15.2"
1212

13-
- CIBW_PROJECT_REQUIRES_PYTHON=">=3.8"
13+
- CIBW_PROJECT_REQUIRES_PYTHON=">=3.9"
1414
# Install dependencies on Linux and OSX
1515
- CIBW_BEFORE_BUILD="bash -x .github/library_builders.sh"
1616
# for the openPMD-api build, CMake shall search for
@@ -28,7 +28,7 @@ jobs:
2828
arch: arm64
2929
dist: focal
3030
env:
31-
- CIBW_BUILD="cp38-manylinux_aarch64 cp39-manylinux_aarch64"
31+
- CIBW_BUILD="cp39-manylinux_aarch64"
3232
- services: docker
3333
arch: arm64
3434
dist: focal
@@ -38,7 +38,7 @@ jobs:
3838
arch: arm64
3939
dist: focal
4040
env:
41-
- CIBW_BUILD="cp312-manylinux_aarch64"
41+
- CIBW_BUILD="cp312-manylinux_aarch64 cp313-manylinux_aarch64"
4242
- services: docker
4343
arch: arm64
4444
dist: focal
@@ -48,13 +48,13 @@ jobs:
4848
arch: arm64
4949
dist: focal
5050
env:
51-
- CIBW_BUILD="pp38-manylinux_aarch64 pp39-manylinux_aarch64"
51+
- CIBW_BUILD="pp39-manylinux_aarch64"
5252
# +musllinux
5353
- services: docker
5454
arch: arm64
5555
dist: focal
5656
env:
57-
- CIBW_BUILD="cp38-musllinux_aarch64 cp39-musllinux_aarch64"
57+
- CIBW_BUILD="cp39-musllinux_aarch64"
5858
- services: docker
5959
arch: arm64
6060
dist: focal
@@ -64,14 +64,9 @@ jobs:
6464
arch: arm64
6565
dist: focal
6666
env:
67-
- CIBW_BUILD="cp312-musllinux_aarch64"
67+
- CIBW_BUILD="cp312-musllinux_aarch64 cp313-musllinux_aarch64"
6868

6969
# perform a linux PPC64LE build
70-
- services: docker
71-
arch: ppc64le
72-
dist: focal
73-
env:
74-
- CIBW_BUILD="cp38-manylinux_ppc64le"
7570
- services: docker
7671
arch: ppc64le
7772
dist: focal
@@ -96,7 +91,7 @@ jobs:
9691
arch: ppc64le
9792
dist: focal
9893
env:
99-
- CIBW_BUILD="cp38-musllinux_ppc64le"
94+
- CIBW_BUILD="cp313-manylinux_ppc64le"
10095
- services: docker
10196
arch: ppc64le
10297
dist: focal
@@ -117,6 +112,11 @@ jobs:
117112
dist: focal
118113
env:
119114
- CIBW_BUILD="cp312-musllinux_ppc64le"
115+
- services: docker
116+
arch: ppc64le
117+
dist: focal
118+
env:
119+
- CIBW_BUILD="cp313-musllinux_ppc64le"
120120

121121
# perform a linux S390X build
122122
# blocked by https://github.com/GTkorvo/dill/issues/15
@@ -136,7 +136,7 @@ install:
136136
- git clone --branch ${OPENPMD_GIT_REF} --depth 1 https://github.com/openPMD/openPMD-api.git src
137137
- cp library_builders.sh src/.github/
138138
- python -m pip install --upgrade pip setuptools wheel
139-
- python -m pip install cibuildwheel==2.16.2
139+
- python -m pip install cibuildwheel==2.21.2
140140
# twine & cryptography: see
141141
# https://github.com/scikit-build/cmake-python-distributions/blob/4730aeee240917303f293dffc89a8d8d5a4787c4/requirements-deploy.txt
142142
# https://github.com/pyca/cryptography/issues/6086

library_builders.bat

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,23 @@ exit /b 0
1717

1818
:build_adios2
1919
if exist adios2-stamp exit /b 0
20-
::curl -sLo adios2-2.9.1.zip ^
21-
:: https://github.com/ornladios/ADIOS2/archive/v2.9.1.zip
22-
curl -sLo adios2-2.9.1.zip ^
23-
https://github.com/ax3l/ADIOS2/archive/refs/heads/release-2.9.1-bp-wheels.zip
24-
powershell Expand-Archive adios2-2.9.1.zip -DestinationPath dep-adios2
20+
curl -sLo adios2-2.10.1.zip ^
21+
https://github.com/ornladios/ADIOS2/archive/v2.10.1.zip
22+
powershell Expand-Archive adios2-2.10.1.zip -DestinationPath dep-adios2
2523

26-
cmake -S dep-adios2/ADIOS2-release-2.9.1-bp-wheels -B build-adios2 ^
24+
cmake --version
25+
26+
cmake -S dep-adios2/ADIOS2-2.10.1 -B build-adios2 ^
2727
-DCMAKE_BUILD_TYPE=Release ^
28+
-DCMAKE_DISABLE_FIND_PACKAGE_LibFFI=TRUE ^
2829
-DBUILD_SHARED_LIBS=OFF ^
2930
-DBUILD_TESTING=OFF ^
3031
-DADIOS2_USE_MPI=OFF ^
3132
-DADIOS2_BUILD_EXAMPLES=OFF ^
3233
-DADIOS2_Blosc2_PREFER_SHARED=OFF ^
3334
-DADIOS2_USE_Blosc2=ON ^
3435
-DADIOS2_USE_BZip2=OFF ^
36+
-DADIOS2_USE_Campaign=OFF ^
3537
-DADIOS2_USE_Fortran=OFF ^
3638
-DADIOS2_USE_HDF5=OFF ^
3739
-DADIOS2_USE_MHS=OFF ^
@@ -45,12 +47,17 @@ exit /b 0
4547
:: TODO: Could NOT find HDF5 (missing: HDF5_LIBRARIES C)
4648
:: -DADIOS2_USE_HDF5=ON
4749

48-
cmake --build build-adios2 --parallel %CPU_COUNT%
50+
cmake --build build-adios2 --config Release --parallel %CPU_COUNT%
4951
if errorlevel 1 exit 1
5052

5153
cmake --build build-adios2 --target install --config Release
5254
if errorlevel 1 exit 1
5355

56+
:: CMake Config package of C-Blosc 2.10.1+ only
57+
:: https://github.com/ornladios/ADIOS2/issues/3903
58+
:: rmdir /s /q "%BUILD_PREFIX%/ADIOS2/lib/cmake/adios2/FindBlosc2.cmake"
59+
:: if errorlevel 1 exit 1
60+
5461
rmdir /s /q build-adios2
5562
if errorlevel 1 exit 1
5663

@@ -61,19 +68,16 @@ exit /b 0
6168
:build_blosc2
6269
if exist blosc2-stamp exit /b 0
6370

64-
curl -sLo blosc2-2.10.2.zip ^
65-
https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.10.2.zip
66-
powershell Expand-Archive blosc2-2.10.2.zip -DestinationPath dep-blosc2
71+
curl -sLo blosc2-2.11.1.zip ^
72+
https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.11.1.zip
73+
powershell Expand-Archive blosc2-2.11.1.zip -DestinationPath dep-blosc2
6774

68-
:: Fix Threads search in Blosc2Config.cmake
69-
:: https://github.com/Blosc/c-blosc2/pull/549
70-
curl -sLo blosc2-threads.patch ^
71-
https://github.com/Blosc/c-blosc2/pull/549.patch
72-
python -m patch -p 1 -d dep-blosc2/c-blosc2-2.10.2 blosc2-threads.patch
73-
if errorlevel 1 exit 1
75+
cmake --version
7476

75-
cmake -S dep-blosc2/c-blosc2-2.10.2 -B build-blosc2 ^
77+
cmake -S dep-blosc2/c-blosc2-2.11.1 -B build-blosc2 ^
7678
-DCMAKE_BUILD_TYPE=Release ^
79+
-DCMAKE_INSTALL_PREFIX=%BUILD_PREFIX%/blosc2 ^
80+
-DCMAKE_POSITION_INDEPENDENT_CODE=ON ^
7781
-DBUILD_SHARED=OFF ^
7882
-DBUILD_STATIC=ON ^
7983
-DBUILD_BENCHMARKS=OFF ^
@@ -88,7 +92,7 @@ exit /b 0
8892
:: -DZLIB_USE_STATIC_LIBS=ON
8993
if errorlevel 1 exit 1
9094

91-
cmake --build build-blosc2 --parallel %CPU_COUNT%
95+
cmake --build build-blosc2 --config Release --parallel %CPU_COUNT%
9296
if errorlevel 1 exit 1
9397

9498
cmake --build build-blosc2 --target install --config Release
@@ -126,7 +130,7 @@ exit /b 0
126130
-DCMAKE_INSTALL_PREFIX=%BUILD_PREFIX%/HDF5
127131
if errorlevel 1 exit 1
128132

129-
cmake --build build-hdf5 --parallel %CPU_COUNT%
133+
cmake --build build-hdf5 --config Release --parallel %CPU_COUNT%
130134
if errorlevel 1 exit 1
131135

132136
cmake --build build-hdf5 --target install --config Release
@@ -156,7 +160,7 @@ exit /b 0
156160

157161
if errorlevel 1 exit 1
158162

159-
cmake --build build-zfp --parallel %CPU_COUNT%
163+
cmake --build build-zfp --config Release --parallel %CPU_COUNT%
160164
if errorlevel 1 exit 1
161165

162166
cmake --build build-zfp --target install --config Release
@@ -183,7 +187,7 @@ exit /b 0
183187
:: Manually-specified variables were not used by the project:
184188
:: CMAKE_BUILD_TYPE
185189

186-
cmake --build build-zlib --parallel %CPU_COUNT%
190+
cmake --build build-zlib --config Release --parallel %CPU_COUNT%
187191
if errorlevel 1 exit 1
188192

189193
cmake --build build-zlib --target install --config Release

library_builders.sh

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,10 +103,8 @@ function build_adios1 {
103103
function build_adios2 {
104104
if [ -e adios2-stamp ]; then return; fi
105105

106-
#curl -sLo adios2-2.9.1.tar.gz \
107-
# https://github.com/ornladios/ADIOS2/archive/v2.9.1.tar.gz
108-
curl -sLo adios2-2.9.1.tar.gz \
109-
https://github.com/ax3l/ADIOS2/archive/refs/heads/release-2.9.1-bp-wheels.tar.gz
106+
curl -sLo adios2-2.10.1.tar.gz \
107+
https://github.com/ornladios/ADIOS2/archive/v2.10.1.tar.gz
110108
file adios2*.tar.gz
111109
tar -xzf adios2*.tar.gz
112110
rm adios2*.tar.gz
@@ -124,11 +122,13 @@ function build_adios2 {
124122
-DADIOS2_Blosc2_PREFER_SHARED=OFF \
125123
-DADIOS2_USE_BZip2=OFF \
126124
-DADIOS2_USE_Blosc2=ON \
125+
-DADIOS2_USE_Campaign=OFF \
127126
-DADIOS2_USE_Fortran=OFF \
128127
-DADIOS2_USE_HDF5=OFF \
129128
-DADIOS2_USE_MHS=OFF \
130129
-DADIOS2_USE_MPI=OFF \
131130
-DADIOS2_USE_PNG=OFF \
131+
-DADIOS2_USE_Sodium=OFF \
132132
-DADIOS2_USE_SST=ON \
133133
-DADIOS2_USE_ZFP=ON \
134134
-DADIOS2_RUN_INSTALL_TEST=OFF \
@@ -143,6 +143,7 @@ function build_adios2 {
143143
make install
144144

145145
# CMake Config package of C-Blosc 2.10.1+ only
146+
# https://github.com/ornladios/ADIOS2/issues/3903
146147
rm -rf ${BUILD_PREFIX}/lib*/cmake/adios2/FindBlosc2.cmake
147148

148149
cd -
@@ -200,8 +201,8 @@ function build_blosc {
200201
function build_blosc2 {
201202
if [ -e blosc-stamp2 ]; then return; fi
202203

203-
curl -sLo blosc2-v2.10.2.tar.gz \
204-
https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.10.2.tar.gz
204+
curl -sLo blosc2-v2.11.1.tar.gz \
205+
https://github.com/Blosc/c-blosc2/archive/refs/tags/v2.11.1.tar.gz
205206
file blosc2*.tar.gz
206207
tar -xzf blosc2*.tar.gz
207208
rm blosc2*.tar.gz

0 commit comments

Comments
 (0)