From f7a5241f4faecedfb6eb6aa29ee6b63f58f211fd Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Wed, 20 Oct 2021 10:47:55 +0200 Subject: [PATCH 01/27] Upgraded to xtensor 0.24.0 --- README.md | 2 +- environment-dev.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 42103ff..3409a6c 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Reading and writing image, sound and npz file formats to and from xtensor data s mamba install xtensor-io -c conda-forge ``` -- `xtensor-io` depends on `xtensor` `^0.23.0`. +- `xtensor-io` depends on `xtensor` `^0.24.0`. - `OpenImageIO`, `libsndfile`, `zlib`, `HighFive`, and `blosc` are optional dependencies to `xtensor-io` diff --git a/environment-dev.yml b/environment-dev.yml index 4ca927a..476e2c3 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -14,6 +14,6 @@ dependencies: - nlohmann_json - google-cloud-cpp=1.21.0 - aws-sdk-cpp - - xtensor=0.23.10 + - xtensor=0.24.0 - cpp-filesystem From ffada938383b0f24c9e0b07cea7d5780057e1d96 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Wed, 20 Oct 2021 11:05:35 +0200 Subject: [PATCH 02/27] Release 0.13.0 --- environment.yml | 2 +- include/xtensor-io/xtensor_io_config.hpp.in | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/environment.yml b/environment.yml index f7e12ea..6a26b2f 100644 --- a/environment.yml +++ b/environment.yml @@ -2,7 +2,7 @@ name: xtensor-io channels: - conda-forge dependencies: - - xtensor-io=0.12.9 + - xtensor-io=0.13.0 - xeus-cling=0.12.1 - xwidgets=0.25.1 - ffmpeg=4.3.1 diff --git a/include/xtensor-io/xtensor_io_config.hpp.in b/include/xtensor-io/xtensor_io_config.hpp.in index fc67481..c095fa8 100644 --- a/include/xtensor-io/xtensor_io_config.hpp.in +++ b/include/xtensor-io/xtensor_io_config.hpp.in @@ -11,8 +11,8 @@ #define XTENSOR_IO_CONFIG_HPP #define XTENSOR_IO_VERSION_MAJOR 0 -#define XTENSOR_IO_VERSION_MINOR 12 -#define XTENSOR_IO_VERSION_PATCH 9 +#define XTENSOR_IO_VERSION_MINOR 13 +#define XTENSOR_IO_VERSION_PATCH 0 #pragma cling add_library_path(@XTENSOR_IO_CLING_LIBRARY_DIR_64@) #pragma cling add_library_path(@XTENSOR_IO_CLING_LIBRARY_DIR_32@) From d0fbaf6f59d5f8375cfaa71391437eeb238b901c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C5=BEenan=20Zuki=C4=87?= Date: Tue, 30 Nov 2021 11:50:11 -0500 Subject: [PATCH 03/27] Allow the library to be used from build directory. Closes #169. --- xtensor-ioConfig.cmake.in | 5 ----- 1 file changed, 5 deletions(-) diff --git a/xtensor-ioConfig.cmake.in b/xtensor-ioConfig.cmake.in index 41c422c..d24887e 100644 --- a/xtensor-ioConfig.cmake.in +++ b/xtensor-ioConfig.cmake.in @@ -19,11 +19,6 @@ include(CMakeFindDependencyMacro) find_dependency(xtensor @xtensor_REQUIRED_VERSION@) -set(PN xtensor_io) -set_and_check(${PN}_INCLUDE_DIRS "${PACKAGE_PREFIX_DIR}/@CMAKE_INSTALL_INCLUDEDIR@") -set(${PN}_LIBRARY "") -check_required_components(${PN}) - if(NOT TARGET @PROJECT_NAME@) include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@Targets.cmake") endif() From 917bcc497a5455e5d96a34bb89f2461221e54a05 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C5=BEenan=20Zuki=C4=87?= Date: Tue, 30 Nov 2021 15:51:11 -0500 Subject: [PATCH 04/27] Find ghc::filesystem's include directory 2>------ Build started: Project: xtensor-zarr-gdal, Configuration: RelWithDebInfo x64 ------ 2>xtensor-zarr-gdal.cpp 2>C:\Libs\xtensor-io\include\xtensor-io/xchunk_store_manager.hpp(7,10): fatal error C1083: Cannot open include file: 'ghc/filesystem.hpp': No such file or directory 2>Done building project "xtensor-zarr-gdal.vcxproj" -- FAILED. --- CMakeLists.txt | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4f98e7f..d52ba97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -124,6 +124,16 @@ add_library(xtensor-io INTERFACE) include_directories(${GTEST_INCLUDE_DIRS}) +find_path(ghc-filesystem-include REQUIRED + NAMES "ghc/filesystem.hpp" + DOC "Path to include directory of https://github.com/gulrak/filesystem" + ) +target_include_directories(xtensor-io + INTERFACE + $ + $ +) + target_include_directories(xtensor-io INTERFACE $ From 73e78e0eb01452a747d7b0aa98147da4754329a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C5=BEenan=20Zuki=C4=87?= Date: Tue, 30 Nov 2021 16:34:42 -0500 Subject: [PATCH 05/27] Fix compile error on VS2019 error C2440: '': cannot convert from 'ghc::filesystem::path' to 'std::string' --- include/xtensor-io/xio_disk_handler.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xtensor-io/xio_disk_handler.hpp b/include/xtensor-io/xio_disk_handler.hpp index 891eeb7..9115a4b 100644 --- a/include/xtensor-io/xio_disk_handler.hpp +++ b/include/xtensor-io/xio_disk_handler.hpp @@ -62,7 +62,7 @@ namespace xt { if (!fs::is_directory(directory)) { - XTENSOR_THROW(std::runtime_error, "Path is not a directory: " + std::string(directory)); + XTENSOR_THROW(std::runtime_error, "Path is not a directory: " + std::string(directory.string())); } } else From 5bbf26837e64bd3f0d422c0d8bffa2517653ac7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C5=BEenan=20Zuki=C4=87?= Date: Thu, 16 Dec 2021 17:59:07 -0500 Subject: [PATCH 06/27] Update README.md with a link to filesystem library --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3409a6c..1ec659b 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Reading and writing image, sound and npz file formats to and from xtensor data s mamba install xtensor-io -c conda-forge ``` -- `xtensor-io` depends on `xtensor` `^0.24.0`. +- `xtensor-io` depends on `xtensor` `^0.24.0` and [filesystem](https://github.com/gulrak/filesystem). - `OpenImageIO`, `libsndfile`, `zlib`, `HighFive`, and `blosc` are optional dependencies to `xtensor-io` From a0222401f160d1cc3d64b6d5f495b05beb21710f Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Tue, 2 Apr 2024 04:07:48 +0200 Subject: [PATCH 07/27] Switched to GHA --- .github/workflows/linux.yml | 39 +++++++++++++++++++++++++++++++++++++ azure-pipelines.yml | 2 +- 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/linux.yml diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml new file mode 100644 index 0000000..8635064 --- /dev/null +++ b/.github/workflows/linux.yml @@ -0,0 +1,39 @@ +name: Linux +on: + workflow_dispatch: + pull_request: + push: + branches: [master] +concurrency: + group: ${{ github.workflow }}-${{ github.job }}-${{ github.ref }} + cancel-in-progress: true +defaults: + run: + shell: bash -e -l {0} +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + + steps: + + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set conda environment + uses: mamba-org/setup-micromamba@main + with: + environment-name: myenv + environment-file: environment-dev.yml + + - name: Configure using CMake + run: cmake -G Ninja -Bbuild -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DDOWNLOAD_GTEST=ON -DHAVE_ALL_DEPS=ON + + - name: Generate data for zlib test + run: python -c 'import struct, zlib; open("files/test.zl", "wb").write(zlib.compress(struct.pack("4d", 3.0, 2.0, 1.0, 0.0), level=1))' + + - name: Build and run xtensor-io tests + run: | + export GTEST_FILTER="-xio_gdal_handler.read_vsigs" + make -j2 xtest diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 34b4156..be2c115 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,6 +2,6 @@ trigger: - master jobs: - - template: ./.azure-pipelines/azure-pipelines-linux.yml + # - template: ./.azure-pipelines/azure-pipelines-linux.yml - template: ./.azure-pipelines/azure-pipelines-osx.yml From 6b60be9acabeb5bfba8d3a465e501a685bd8bc7e Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Tue, 2 Apr 2024 04:18:54 +0200 Subject: [PATCH 08/27] Fixed GHA --- .github/workflows/{linux.yml => main.yml} | 18 +++++++++++++----- azure-pipelines.yml | 2 +- environment-dev.yml | 1 + 3 files changed, 15 insertions(+), 6 deletions(-) rename .github/workflows/{linux.yml => main.yml} (72%) diff --git a/.github/workflows/linux.yml b/.github/workflows/main.yml similarity index 72% rename from .github/workflows/linux.yml rename to .github/workflows/main.yml index 8635064..27cecbf 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: Linux +name: CI on: workflow_dispatch: pull_request: @@ -11,10 +11,12 @@ defaults: run: shell: bash -e -l {0} jobs: - build: - runs-on: ubuntu-latest + unix: + runs-on: ${{ matrix.os }} strategy: fail-fast: false + matrix: + os: [ubuntu-22.04, macos-12] steps: @@ -31,9 +33,15 @@ jobs: run: cmake -G Ninja -Bbuild -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DDOWNLOAD_GTEST=ON -DHAVE_ALL_DEPS=ON - name: Generate data for zlib test + working-directory: build/test run: python -c 'import struct, zlib; open("files/test.zl", "wb").write(zlib.compress(struct.pack("4d", 3.0, 2.0, 1.0, 0.0), level=1))' - - name: Build and run xtensor-io tests + - name: Build + working-directory: build + run: cmake --build . --target test_xtensor_io_lib --parallel 8 + + - name: Run tests + working-directory: build/test run: | export GTEST_FILTER="-xio_gdal_handler.read_vsigs" - make -j2 xtest + ./test_xtensor_io_lib diff --git a/azure-pipelines.yml b/azure-pipelines.yml index be2c115..c4c3183 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -3,5 +3,5 @@ trigger: jobs: # - template: ./.azure-pipelines/azure-pipelines-linux.yml - - template: ./.azure-pipelines/azure-pipelines-osx.yml + #- template: ./.azure-pipelines/azure-pipelines-osx.yml diff --git a/environment-dev.yml b/environment-dev.yml index 476e2c3..e7e275d 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -4,6 +4,7 @@ channels: dependencies: # Build dependencies - cmake + - ninja # Host dependencies - openimageio=2.2.7 - libsndfile=1.0.30 From 0b67239d72971a282e0640a4ef3c66fd02ec63c3 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Tue, 2 Apr 2024 05:26:13 +0200 Subject: [PATCH 09/27] Removed Azure Pipelines files --- .azure-pipelines/azure-pipelines-linux.yml | 17 -------- .azure-pipelines/azure-pipelines-osx.yml | 26 ------------ .azure-pipelines/unix-build.yml | 46 ---------------------- azure-pipelines.yml | 7 ---- 4 files changed, 96 deletions(-) delete mode 100644 .azure-pipelines/azure-pipelines-linux.yml delete mode 100644 .azure-pipelines/azure-pipelines-osx.yml delete mode 100644 .azure-pipelines/unix-build.yml delete mode 100644 azure-pipelines.yml diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml deleted file mode 100644 index d5fee74..0000000 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ /dev/null @@ -1,17 +0,0 @@ -jobs: - - job: 'Linux' - strategy: - matrix: - gcc_7: - image_name: 'ubuntu-20.04' - pool: - vmImage: $(image_name) - timeoutInMinutes: 360 - steps: - - - bash: echo "##vso[task.prependpath]$CONDA/bin" - displayName: Add conda to PATH - - - template: unix-build.yml - parameters: - platform: 'Linux' diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml deleted file mode 100644 index d3a90a4..0000000 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ /dev/null @@ -1,26 +0,0 @@ -jobs: - - job: 'OSX' - strategy: - matrix: - macOS_10_15: - image_name: 'macOS-10.15' - pool: - vmImage: $(image_name) - variables: - CC: clang - CXX: clang++ - timeoutInMinutes: 360 - steps: - - script: | - echo "Removing homebrew for Azure to avoid conflicts with conda" - /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall.sh)" - displayName: Remove homebrew - - - bash: | - echo "##vso[task.prependpath]$CONDA/bin" - sudo chown -R $USER $CONDA - displayName: Add conda to PATH - - - template: unix-build.yml - parameters: - platform: 'OSX' diff --git a/.azure-pipelines/unix-build.yml b/.azure-pipelines/unix-build.yml deleted file mode 100644 index 62f41e9..0000000 --- a/.azure-pipelines/unix-build.yml +++ /dev/null @@ -1,46 +0,0 @@ -parameters: - - name: 'platform' - type: string - -steps: - - script: | - conda config --set always_yes yes --set changeps1 no - conda update -q conda - conda env create --file environment-dev.yml - displayName: Install dependencies - - - script: | - source activate xtensor-io - conda install gxx_linux-64 libgcc -c conda-forge - condition: eq('${{ parameters.platform }}', 'Linux') - displayName: Install conda-forge compilers - - - script: | - source activate xtensor-io - conda install tbb==2020.2 -c conda-forge - condition: eq('${{ parameters.platform }}', 'OSX') - displayName: Workaround missing TBB - - - script: | - source activate xtensor-io - export LDFLAGS="${LDFLAGS} -Wl,-rpath,$CONDA_PREFIX/lib" - export LINKFLAGS="${LDFLAGS}" - mkdir build - cd build - cmake -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DDOWNLOAD_GTEST=ON -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DHAVE_ALL_DEPS=ON $(Build.SourcesDirectory) - - displayName: Configure xtensor-io - workingDirectory: $(Build.BinariesDirectory) - - - script: | - source activate xtensor-io - python -c 'import struct, zlib; open("files/test.zl", "wb").write(zlib.compress(struct.pack("4d", 3.0, 2.0, 1.0, 0.0), level=1))' - displayName: Generate data for zlib test - workingDirectory: $(Build.BinariesDirectory)/build/test - - - script: | - source activate xtensor-io - export GTEST_FILTER="-xio_gdal_handler.read_vsigs" - make -j2 xtest - displayName: Build and run xtensor-io tests - workingDirectory: $(Build.BinariesDirectory)/build diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index c4c3183..0000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,7 +0,0 @@ -trigger: - - master - -jobs: - # - template: ./.azure-pipelines/azure-pipelines-linux.yml - #- template: ./.azure-pipelines/azure-pipelines-osx.yml - From 800c259a640e4b5a87eae30e8ff2c4dbee2232f8 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Tue, 2 Apr 2024 05:43:00 +0200 Subject: [PATCH 10/27] Upgraded to xtensor 0.25.0 --- CMakeLists.txt | 2 +- README.md | 2 +- environment-dev.yml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d52ba97..24fc36a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,7 @@ message(STATUS "Building xtensor-io v${${PROJECT_NAME}_VERSION}") # Dependencies # ============ -set (xtensor_REQUIRED_VERSION 0.23.0) +set (xtensor_REQUIRED_VERSION 0.25.0) if(TARGET xtensor) set(xtensor_VERSION ${XTENSOR_VERSION_MAJOR}.${XTENSOR_VERSION_MINOR}.${XTENSOR_VERSION_PATCH}) if( NOT ${xtensor_VERSION} VERSION_GREATER_EQUAL ${xtensor_REQUIRED_VERSION}) diff --git a/README.md b/README.md index 3409a6c..5cc4d51 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Reading and writing image, sound and npz file formats to and from xtensor data s mamba install xtensor-io -c conda-forge ``` -- `xtensor-io` depends on `xtensor` `^0.24.0`. +- `xtensor-io` depends on `xtensor` `^0.25.0`. - `OpenImageIO`, `libsndfile`, `zlib`, `HighFive`, and `blosc` are optional dependencies to `xtensor-io` diff --git a/environment-dev.yml b/environment-dev.yml index e7e275d..9a329ef 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -15,6 +15,6 @@ dependencies: - nlohmann_json - google-cloud-cpp=1.21.0 - aws-sdk-cpp - - xtensor=0.24.0 + - xtensor=0.25.0 - cpp-filesystem From fda2cd8a883534e1e89ef1541f8e771e4f525fbf Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Wed, 17 Jun 2026 11:54:30 +0200 Subject: [PATCH 11/27] Upgraded to recent ci images --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 27cecbf..f3910f5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -16,7 +16,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, macos-12] + os: [ubuntu-24.04, macos-15] steps: From 201036302312ebc122d11b7efc82d6dd2a5aaeac Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Thu, 18 Jun 2026 10:05:14 +0200 Subject: [PATCH 12/27] Removed dependencies pinning --- environment-dev.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/environment-dev.yml b/environment-dev.yml index 9a329ef..957fb30 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -6,14 +6,14 @@ dependencies: - cmake - ninja # Host dependencies - - openimageio=2.2.7 - - libsndfile=1.0.30 - - zlib=1.2.11 - - highfive=2.1.1 + - openimageio + - libsndfile + - zlib + - highfive - blosc - gdal - nlohmann_json - - google-cloud-cpp=1.21.0 + - google-cloud-cpp - aws-sdk-cpp - xtensor=0.25.0 - cpp-filesystem From 4e48dafc4f8b1e1b566d651b2654a321391c4b5b Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Thu, 18 Jun 2026 10:07:50 +0200 Subject: [PATCH 13/27] Updated minimal cmake version --- CMakeLists.txt | 2 +- modules/FindBlosc.cmake | 2 +- modules/FindSndFile.cmake | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 24fc36a..ecb43bf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,7 +7,7 @@ # The full license is in the file LICENSE, distributed with this software. # ############################################################################ -cmake_minimum_required(VERSION 3.8) +cmake_minimum_required(VERSION 3.30) project(xtensor-io) set(XTENSOR_IO_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/include) diff --git a/modules/FindBlosc.cmake b/modules/FindBlosc.cmake index 40bfa62..25bd8df 100644 --- a/modules/FindBlosc.cmake +++ b/modules/FindBlosc.cmake @@ -71,7 +71,7 @@ may be provided to tell this module where to look. #]=======================================================================] -cmake_minimum_required(VERSION 3.3) +cmake_minimum_required(VERSION 3.30) include(GNUInstallDirs) # Monitoring _ROOT variables diff --git a/modules/FindSndFile.cmake b/modules/FindSndFile.cmake index 2158f66..6eee02e 100644 --- a/modules/FindSndFile.cmake +++ b/modules/FindSndFile.cmake @@ -36,4 +36,4 @@ endif(LIBSNDFILE_FOUND) mark_as_advanced(LIBSNDFILE_LIBRARY LIBSNDFILE_LIBRARIES LIBSNDFILE_INCLUDE_DIR LIBSNDFILE_INCLUDE_DIRS) -unset(_LIBSNDFILE_HINTS) \ No newline at end of file +unset(_LIBSNDFILE_HINTS) From 0a1a4b16dd8a3134b60bd4fb04f1a432c3ca841e Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Thu, 18 Jun 2026 14:10:16 +0200 Subject: [PATCH 14/27] Upgraded dependencies --- .github/workflows/main.yml | 4 ++-- CMakeLists.txt | 24 +++++------------------- test/downloadGTest.cmake.in | 8 +++++--- 3 files changed, 12 insertions(+), 24 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f3910f5..5a66a84 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set conda environment uses: mamba-org/setup-micromamba@main @@ -30,7 +30,7 @@ jobs: environment-file: environment-dev.yml - name: Configure using CMake - run: cmake -G Ninja -Bbuild -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DDOWNLOAD_GTEST=ON -DHAVE_ALL_DEPS=ON + run: cmake -G Ninja -Bbuild -DCMAKE_PREFIX_PATH=$CONDA_PREFIX -DCMAKE_INSTALL_PREFIX=$CONDA_PREFIX -DDOWNLOAD_GTEST=ON -DHAVE_ALL_DEPS=ON - name: Generate data for zlib test working-directory: build/test diff --git a/CMakeLists.txt b/CMakeLists.txt index ecb43bf..e367049 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -197,18 +197,8 @@ endif() if(HAVE_HighFive) find_package(HighFive REQUIRED) - find_package(HDF5 REQUIRED) - message(STATUS "HighFive ${HighFive_VERSION} and HDF5 ${HDF5_VERSION} found, HDF5 file support enabled") - find_package(HDF5 REQUIRED) - get_target_property(HighFive_INCLUDE_DIRECTORIES_EXTRACTED HighFive INTERFACE_INCLUDE_DIRECTORIES) - target_include_directories(xtensor-io - INTERFACE - ${HighFive_INCLUDE_DIRECTORIES_EXTRACTED} - ) - target_link_libraries(xtensor-io - INTERFACE - ${HDF5_LIBRARIES} - ) + message(STATUS "HighFive ${HighFive_VERSION} found, HDF5 file support enabled") + target_link_libraries(xtensor-io INTERFACE HighFive::HighFive) else() message(STATUS "HighFive not enabled: use -DHAVE_HighFive=ON for HDF5 file support") endif() @@ -245,15 +235,11 @@ else() endif() if(HAVE_storage_client) - find_package(storage_client REQUIRED) - message(STATUS "storage_client ${storage_client_VERSION} found, Google Cloud Storage IO handler support enabled") - target_include_directories(xtensor-io - INTERFACE - ${storage_client_INCLUDE_DIRS} - ) + find_package(google_cloud_cpp_storage REQUIRED) + message(STATUS "google_cloud_cpp_storage ${google_cloud_cpp_storage_VERSION} found, Google Cloud Storage IO handler support enabled") target_link_libraries(xtensor-io INTERFACE - storage_client + google-cloud-cpp::storage ) else() message(STATUS "storage_client not enabled: use -DHAVE_storage_client=ON for Google Cloud Storage IO handler support") diff --git a/test/downloadGTest.cmake.in b/test/downloadGTest.cmake.in index bbfc16c..d73d516 100644 --- a/test/downloadGTest.cmake.in +++ b/test/downloadGTest.cmake.in @@ -7,14 +7,16 @@ # The full license is in the file LICENSE, distributed with this software. # ############################################################################ -cmake_minimum_required(VERSION 2.8.2) +cmake_minimum_required(VERSION 3.30) project(googletest-download NONE) include(ExternalProject) ExternalProject_Add(googletest - GIT_REPOSITORY https://github.com/JohanMabille/googletest.git - GIT_TAG warnings + #GIT_REPOSITORY https://github.com/JohanMabille/googletest.git + GIT_REPOSITORY https://github.com/google/googletest.git + #GIT_TAG warnings + GIT_TAG v1.15.2 SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-src" BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/googletest-build" CONFIGURE_COMMAND "" From 13825018d6948b9c479208e9fb89e8cd986fdbbd Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Thu, 18 Jun 2026 14:30:27 +0200 Subject: [PATCH 15/27] Switched to c++ 17 --- CMakeLists.txt | 1 + test/CMakeLists.txt | 10 +++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e367049..2e7f277 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -121,6 +121,7 @@ endforeach() set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${CMAKE_SOURCE_DIR}/modules") add_library(xtensor-io INTERFACE) +target_compile_features(xtensor-io INTERFACE cxx_std_17) include_directories(${GTEST_INCLUDE_DIRS}) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 45f3769..d86ef0a 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -7,7 +7,7 @@ # The full license is in the file LICENSE, distributed with this software. # ############################################################################ -cmake_minimum_required(VERSION 3.8) +cmake_minimum_required(VERSION 3.30) if (CMAKE_CURRENT_SOURCE_DIR STREQUAL CMAKE_SOURCE_DIR) project(xtensor-io-test) @@ -25,12 +25,12 @@ string(TOUPPER "${CMAKE_BUILD_TYPE}" U_CMAKE_BUILD_TYPE) if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR CMAKE_CXX_COMPILER_ID MATCHES "Intel") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wunused-parameter -Wextra -Wreorder -Wconversion -Wsign-conversion") - CHECK_CXX_COMPILER_FLAG("-std=c++14" HAS_CPP14_FLAG) + CHECK_CXX_COMPILER_FLAG("-std=c++17" HAS_CPP17_FLAG) - if (HAS_CPP14_FLAG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14") + if (HAS_CPP17_FLAG) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17") else() - message(FATAL_ERROR "Unsupported compiler -- xtensor requires C++14 support!") + message(FATAL_ERROR "Unsupported compiler -- xtensor requires C++17 support!") endif() endif() From a62278103d39a77a8af611e173b5bc4d6e0de3a1 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Thu, 18 Jun 2026 16:46:24 +0200 Subject: [PATCH 16/27] Added fmt as dependency --- environment-dev.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/environment-dev.yml b/environment-dev.yml index 957fb30..b3bd50f 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -7,6 +7,7 @@ dependencies: - ninja # Host dependencies - openimageio + - fmt - libsndfile - zlib - highfive From e78385777424775a423a67755ee87603cf3fc7c3 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Fri, 19 Jun 2026 10:56:31 +0200 Subject: [PATCH 17/27] Added bounds on OIIO dependency and fixed calls --- environment-dev.yml | 2 +- include/xtensor-io/ximage.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/environment-dev.yml b/environment-dev.yml index b3bd50f..cd5bc38 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -6,7 +6,7 @@ dependencies: - cmake - ninja # Host dependencies - - openimageio + - openimageio >=3.0,<4 - fmt - libsndfile - zlib diff --git a/include/xtensor-io/ximage.hpp b/include/xtensor-io/ximage.hpp index 6701471..89264db 100644 --- a/include/xtensor-io/ximage.hpp +++ b/include/xtensor-io/ximage.hpp @@ -62,7 +62,7 @@ namespace xt static_cast(spec.width), static_cast(spec.nchannels)}); - in->read_image(OIIO::BaseTypeFromC::value, image.data()); + in->read_image(0, 0, 0, spec.nchannels, OIIO::BaseTypeFromC::value, image.data()); in->close(); From 02810b1dc4e3cdff21c1bfed8bc6d4aef8bd3113 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Fri, 19 Jun 2026 11:22:56 +0200 Subject: [PATCH 18/27] Fixed GCS breaks due to APIs changes --- environment-dev.yml | 2 +- include/xtensor-io/xio_gcs_handler.hpp | 3 ++- test/test_xio_gcs_handler.cpp | 6 +++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/environment-dev.yml b/environment-dev.yml index cd5bc38..ae1578e 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -14,7 +14,7 @@ dependencies: - blosc - gdal - nlohmann_json - - google-cloud-cpp + - google-cloud-cpp >=3.0,<4 - aws-sdk-cpp - xtensor=0.25.0 - cpp-filesystem diff --git a/include/xtensor-io/xio_gcs_handler.hpp b/include/xtensor-io/xio_gcs_handler.hpp index d31e3e6..63a6ace 100644 --- a/include/xtensor-io/xio_gcs_handler.hpp +++ b/include/xtensor-io/xio_gcs_handler.hpp @@ -4,6 +4,7 @@ #include #include #include +#include #include "xfile_array.hpp" #include "xio_stream_wrapper.hpp" @@ -43,7 +44,7 @@ namespace xt template xio_gcs_handler::xio_gcs_handler() - : m_client(gcs::ClientOptions((gcs::oauth2::CreateAnonymousCredentials()))) + : m_client(google::cloud::Options{}.set(google::cloud::MakeInsecureCredentials())) { } diff --git a/test/test_xio_gcs_handler.cpp b/test/test_xio_gcs_handler.cpp index f3565e1..b5b54e7 100644 --- a/test/test_xio_gcs_handler.cpp +++ b/test/test_xio_gcs_handler.cpp @@ -12,6 +12,7 @@ #include #include "gtest/gtest.h" +#include #include "xtensor-io/xio_gzip.hpp" #include "xtensor-io/xio_gcs_handler.hpp" @@ -20,7 +21,10 @@ namespace xt TEST(xio_gcs_handler, read) { xio_gcs_handler h; - xio_gcs_config c = {gcs::Client((gcs::ClientOptions(gcs::oauth2::CreateAnonymousCredentials()))), "zarr-demo"}; + xio_gcs_config c = {gcs::Client(google::cloud::Options{}.set( + google::cloud::MakeInsecureCredentials())), + "zarr-demo"}; + h.configure_io(c); xarray a0; h.read(a0, "v3/test.zr3/data/root/arthur/dent/c0/0"); From 936abb3afc6962d7f153ccbcbc616d6ada794c20 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Fri, 19 Jun 2026 11:42:35 +0200 Subject: [PATCH 19/27] Upgraded to xtensor 0.26.0 --- environment-dev.yml | 2 +- include/xtensor-io/xaudio.hpp | 6 +++--- include/xtensor-io/xchunk_store_manager.hpp | 4 ++-- include/xtensor-io/xfile_array.hpp | 4 ++-- include/xtensor-io/xgdal.hpp | 2 +- include/xtensor-io/xhighfive.hpp | 4 ++-- include/xtensor-io/ximage.hpp | 6 +++--- include/xtensor-io/xio_aws_handler.hpp | 4 ++-- include/xtensor-io/xio_binary.hpp | 2 +- include/xtensor-io/xio_blosc.hpp | 2 +- include/xtensor-io/xio_disk_handler.hpp | 4 ++-- include/xtensor-io/xio_gcs_handler.hpp | 4 ++-- include/xtensor-io/xio_gdal_handler.hpp | 4 ++-- include/xtensor-io/xio_gzip.hpp | 2 +- include/xtensor-io/xio_zlib.hpp | 2 +- include/xtensor-io/xnpz.hpp | 2 +- test/test_xaudio.cpp | 2 +- test/test_xchunk_store_manager.cpp | 2 +- test/test_xfile_array.cpp | 4 ++-- test/test_xgdal.cpp | 4 ++-- test/test_xhighfive.cpp | 2 +- test/test_ximage.cpp | 6 +++--- 22 files changed, 37 insertions(+), 37 deletions(-) diff --git a/environment-dev.yml b/environment-dev.yml index ae1578e..6f81ffc 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -16,6 +16,6 @@ dependencies: - nlohmann_json - google-cloud-cpp >=3.0,<4 - aws-sdk-cpp - - xtensor=0.25.0 + - xtensor=0.26.0 - cpp-filesystem diff --git a/include/xtensor-io/xaudio.hpp b/include/xtensor-io/xaudio.hpp index 29b8b20..4ee7fd0 100644 --- a/include/xtensor-io/xaudio.hpp +++ b/include/xtensor-io/xaudio.hpp @@ -15,9 +15,9 @@ #include -#include -#include -#include +#include +#include +#include #include "xtensor_io_config.hpp" diff --git a/include/xtensor-io/xchunk_store_manager.hpp b/include/xtensor-io/xchunk_store_manager.hpp index f4d04d1..2b46873 100644 --- a/include/xtensor-io/xchunk_store_manager.hpp +++ b/include/xtensor-io/xchunk_store_manager.hpp @@ -8,8 +8,8 @@ #include -#include "xtensor/xarray.hpp" -#include "xtensor/xchunked_array.hpp" +#include "xtensor/containers/xarray.hpp" +#include "xtensor/chunk/xchunked_array.hpp" #include "xfile_array.hpp" namespace xt diff --git a/include/xtensor-io/xfile_array.hpp b/include/xtensor-io/xfile_array.hpp index 1860f8b..2b7e749 100644 --- a/include/xtensor-io/xfile_array.hpp +++ b/include/xtensor-io/xfile_array.hpp @@ -7,8 +7,8 @@ #include -#include -#include +#include +#include namespace xt { diff --git a/include/xtensor-io/xgdal.hpp b/include/xtensor-io/xgdal.hpp index 26cecb6..dfc8e8a 100644 --- a/include/xtensor-io/xgdal.hpp +++ b/include/xtensor-io/xgdal.hpp @@ -14,7 +14,7 @@ #include #include -#include +#include #include "xtensor-io.hpp" // We rely exclusively on the stable C interface to GDAL. diff --git a/include/xtensor-io/xhighfive.hpp b/include/xtensor-io/xhighfive.hpp index b5c06c6..32b71b7 100644 --- a/include/xtensor-io/xhighfive.hpp +++ b/include/xtensor-io/xhighfive.hpp @@ -18,8 +18,8 @@ #include #include -#include -#include +#include +#include #include "xtensor-io.hpp" diff --git a/include/xtensor-io/ximage.hpp b/include/xtensor-io/ximage.hpp index 89264db..ca753a9 100644 --- a/include/xtensor-io/ximage.hpp +++ b/include/xtensor-io/ximage.hpp @@ -15,9 +15,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include "xtensor_io_config.hpp" diff --git a/include/xtensor-io/xio_aws_handler.hpp b/include/xtensor-io/xio_aws_handler.hpp index 576e79b..7351a28 100644 --- a/include/xtensor-io/xio_aws_handler.hpp +++ b/include/xtensor-io/xio_aws_handler.hpp @@ -1,8 +1,8 @@ #ifndef XTENSOR_IO_AWS_HANDLER_HPP #define XTENSOR_IO_AWS_HANDLER_HPP -#include -#include +#include +#include #include #include #include diff --git a/include/xtensor-io/xio_binary.hpp b/include/xtensor-io/xio_binary.hpp index 7a6f953..89a7b95 100644 --- a/include/xtensor-io/xio_binary.hpp +++ b/include/xtensor-io/xio_binary.hpp @@ -12,7 +12,7 @@ #include -#include "xtensor/xadapt.hpp" +#include "xtensor/containers/xadapt.hpp" #include "xtensor-io.hpp" #include "xfile_array.hpp" #include "xio_stream_wrapper.hpp" diff --git a/include/xtensor-io/xio_blosc.hpp b/include/xtensor-io/xio_blosc.hpp index 2b4ff0a..5da893b 100644 --- a/include/xtensor-io/xio_blosc.hpp +++ b/include/xtensor-io/xio_blosc.hpp @@ -12,7 +12,7 @@ #include -#include "xtensor/xadapt.hpp" +#include "xtensor/containers/xadapt.hpp" #include "xtensor-io.hpp" #include "xfile_array.hpp" #include "blosc.h" diff --git a/include/xtensor-io/xio_disk_handler.hpp b/include/xtensor-io/xio_disk_handler.hpp index 9115a4b..9f3b5bd 100644 --- a/include/xtensor-io/xio_disk_handler.hpp +++ b/include/xtensor-io/xio_disk_handler.hpp @@ -2,8 +2,8 @@ #define XTENSOR_IO_DISK_HANDLER_HPP #include -#include -#include +#include +#include #include "xio_stream_wrapper.hpp" #include "xfile_array.hpp" diff --git a/include/xtensor-io/xio_gcs_handler.hpp b/include/xtensor-io/xio_gcs_handler.hpp index 63a6ace..96463b8 100644 --- a/include/xtensor-io/xio_gcs_handler.hpp +++ b/include/xtensor-io/xio_gcs_handler.hpp @@ -1,8 +1,8 @@ #ifndef XTENSOR_IO_GCS_HANDLER_HPP #define XTENSOR_IO_GCS_HANDLER_HPP -#include -#include +#include +#include #include #include #include "xfile_array.hpp" diff --git a/include/xtensor-io/xio_gdal_handler.hpp b/include/xtensor-io/xio_gdal_handler.hpp index 3af17b1..76cf2f9 100644 --- a/include/xtensor-io/xio_gdal_handler.hpp +++ b/include/xtensor-io/xio_gdal_handler.hpp @@ -1,8 +1,8 @@ #ifndef XTENSOR_IO_GDAL_HANDLER_HPP #define XTENSOR_IO_GDAL_HANDLER_HPP -#include -#include +#include +#include #include "xfile_array.hpp" #include "xio_vsilfile_wrapper.hpp" diff --git a/include/xtensor-io/xio_gzip.hpp b/include/xtensor-io/xio_gzip.hpp index 9d17dbd..6e8cbc0 100644 --- a/include/xtensor-io/xio_gzip.hpp +++ b/include/xtensor-io/xio_gzip.hpp @@ -14,7 +14,7 @@ #include "zlib.h" -#include "xtensor/xadapt.hpp" +#include "xtensor/containers/xadapt.hpp" #include "xtensor-io.hpp" #include "xfile_array.hpp" #include "xio_stream_wrapper.hpp" diff --git a/include/xtensor-io/xio_zlib.hpp b/include/xtensor-io/xio_zlib.hpp index 217618f..533a9b9 100644 --- a/include/xtensor-io/xio_zlib.hpp +++ b/include/xtensor-io/xio_zlib.hpp @@ -14,7 +14,7 @@ #include "zlib.h" -#include "xtensor/xadapt.hpp" +#include "xtensor/containers/xadapt.hpp" #include "xtensor-io.hpp" #include "xfile_array.hpp" #include "xio_stream_wrapper.hpp" diff --git a/include/xtensor-io/xnpz.hpp b/include/xtensor-io/xnpz.hpp index 2cfd866..0f92c3d 100644 --- a/include/xtensor-io/xnpz.hpp +++ b/include/xtensor-io/xnpz.hpp @@ -27,7 +27,7 @@ #include "thirdparty/zstr/zstr.hpp" -#include +#include #include "xtensor_io_config.hpp" diff --git a/test/test_xaudio.cpp b/test/test_xaudio.cpp index 94c56d3..5fd1d5c 100644 --- a/test/test_xaudio.cpp +++ b/test/test_xaudio.cpp @@ -9,7 +9,7 @@ #include "gtest/gtest.h" #include "xtensor-io/xaudio.hpp" -#include "xtensor/xio.hpp" +#include "xtensor/io/xio.hpp" namespace xt { diff --git a/test/test_xchunk_store_manager.cpp b/test/test_xchunk_store_manager.cpp index 50cccb2..6a52bd9 100644 --- a/test/test_xchunk_store_manager.cpp +++ b/test/test_xchunk_store_manager.cpp @@ -9,7 +9,7 @@ #include "gtest/gtest.h" -#include +#include #include "xtensor-io/xchunk_store_manager.hpp" #include "xtensor-io/xfile_array.hpp" #include diff --git a/test/test_xfile_array.cpp b/test/test_xfile_array.cpp index 23268bc..edab327 100644 --- a/test/test_xfile_array.cpp +++ b/test/test_xfile_array.cpp @@ -9,9 +9,9 @@ #include "gtest/gtest.h" -#include +#include #include "xtensor-io/xfile_array.hpp" -#include +#include "xtensor-io/xio_binary.hpp" #include "xtensor-io/xio_disk_handler.hpp" namespace xt diff --git a/test/test_xgdal.cpp b/test/test_xgdal.cpp index da4d5e7..e677899 100644 --- a/test/test_xgdal.cpp +++ b/test/test_xgdal.cpp @@ -1,7 +1,7 @@ #include "gtest/gtest.h" #include "xtensor-io/xgdal.hpp" -#include "xtensor/xadapt.hpp" -#include "xtensor/xoperation.hpp" +#include "xtensor/containers/xadapt.hpp" +#include "xtensor/core/xoperation.hpp" #include diff --git a/test/test_xhighfive.cpp b/test/test_xhighfive.cpp index 2680866..057eefe 100644 --- a/test/test_xhighfive.cpp +++ b/test/test_xhighfive.cpp @@ -12,7 +12,7 @@ #include #include "gtest/gtest.h" -#include "xtensor/xrandom.hpp" +#include "xtensor/generators/xrandom.hpp" #include "xtensor-io/xhighfive.hpp" namespace xt diff --git a/test/test_ximage.cpp b/test/test_ximage.cpp index 5974647..29137b4 100644 --- a/test/test_ximage.cpp +++ b/test/test_ximage.cpp @@ -8,9 +8,9 @@ ****************************************************************************/ #include "gtest/gtest.h" -#include "xtensor/xoperation.hpp" -#include "xtensor/xview.hpp" -#include "xtensor/xio.hpp" +#include "xtensor/core/xoperation.hpp" +#include "xtensor/views/xview.hpp" +#include "xtensor/io/xio.hpp" #include "xtensor-io/ximage.hpp" From 569baad9ead310130b09fb822d2395dadeedeb3f Mon Sep 17 00:00:00 2001 From: wang zhichao Date: Wed, 17 Jun 2026 12:46:33 +0800 Subject: [PATCH 20/27] Fix load_npz single-variable skip over extra fields --- include/xtensor-io/xnpz.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/include/xtensor-io/xnpz.hpp b/include/xtensor-io/xnpz.hpp index 0f92c3d..34f1cf6 100644 --- a/include/xtensor-io/xnpz.hpp +++ b/include/xtensor-io/xnpz.hpp @@ -303,8 +303,11 @@ namespace xt } else { - stream.seekg(static_cast(entry.compressed_size), - std::ios_base::cur); + auto compressed_size = extract_zip64_compressed_size(stream, entry); + if (!stream.seekg(std::streamoff(compressed_size), std::ios_base::cur)) + { + throw std::runtime_error("load_npz: unable to skip the next variable."); + } } } throw std::runtime_error("Array "s + search_varname + " not found in file: "s + filename); From f09c1b0f2280ae0ea6bcf0d05e3477362d36a48b Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Fri, 19 Jun 2026 12:13:01 +0200 Subject: [PATCH 21/27] Added boundaries to dependencies --- environment-dev.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/environment-dev.yml b/environment-dev.yml index 6f81ffc..bb09d65 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -6,16 +6,16 @@ dependencies: - cmake - ninja # Host dependencies - - openimageio >=3.0,<4 - - fmt - - libsndfile - - zlib - - highfive - - blosc - - gdal + - openimageio >=3.1,<4 + - fmt >=12.2,<13 + - libsndfile >=1.2,<2 + - zlib >=1.3,<2 + - highfive >=3.3,<4 + - blosc >=1.21,<2 + - gdal >=3.13,<4 - nlohmann_json - google-cloud-cpp >=3.0,<4 - - aws-sdk-cpp + - aws-sdk-cpp >=1.11,<2 - xtensor=0.26.0 - - cpp-filesystem + - cpp-filesystem >=1.5,<2 From 2d1b72a7e958d21416ccdb370f56f96a00e13d44 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Fri, 19 Jun 2026 16:57:31 +0200 Subject: [PATCH 22/27] Switched from gulrak filesystem to std filesystem --- CMakeLists.txt | 10 ---------- README.md | 2 +- environment-dev.yml | 2 -- include/xtensor-io/xchunk_store_manager.hpp | 6 +++--- include/xtensor-io/xio_disk_handler.hpp | 4 ++-- test/test_xchunk_store_manager.cpp | 2 +- 6 files changed, 7 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2e7f277..51f610e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -125,16 +125,6 @@ target_compile_features(xtensor-io INTERFACE cxx_std_17) include_directories(${GTEST_INCLUDE_DIRS}) -find_path(ghc-filesystem-include REQUIRED - NAMES "ghc/filesystem.hpp" - DOC "Path to include directory of https://github.com/gulrak/filesystem" - ) -target_include_directories(xtensor-io - INTERFACE - $ - $ -) - target_include_directories(xtensor-io INTERFACE $ diff --git a/README.md b/README.md index 2aa86f7..8f0862e 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ Reading and writing image, sound and npz file formats to and from xtensor data s ```bash mamba install xtensor-io -c conda-forge ``` -- `xtensor-io` depends on `xtensor` `^0.26.0` and [filesystem](https://github.com/gulrak/filesystem). +- `xtensor-io` depends on `xtensor` `^0.26.0 - `OpenImageIO`, `libsndfile`, `zlib`, `HighFive`, and `blosc` are optional dependencies to `xtensor-io` diff --git a/environment-dev.yml b/environment-dev.yml index bb09d65..a269c83 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -17,5 +17,3 @@ dependencies: - google-cloud-cpp >=3.0,<4 - aws-sdk-cpp >=1.11,<2 - xtensor=0.26.0 - - cpp-filesystem >=1.5,<2 - diff --git a/include/xtensor-io/xchunk_store_manager.hpp b/include/xtensor-io/xchunk_store_manager.hpp index 2b46873..eb47e5f 100644 --- a/include/xtensor-io/xchunk_store_manager.hpp +++ b/include/xtensor-io/xchunk_store_manager.hpp @@ -4,7 +4,7 @@ #include #include -#include "ghc/filesystem.hpp" +#include #include @@ -671,7 +671,7 @@ namespace xt template inline std::string xchunk_store_manager::get_temporary_directory() const { - namespace fs = ghc::filesystem; + namespace fs = std::filesystem; fs::path tmp_dir = fs::temp_directory_path(); std::size_t count = 0; while(fs::exists(tmp_dir / std::to_string(count))) @@ -684,7 +684,7 @@ namespace xt template inline void xchunk_store_manager::reset_to_directory(const std::string& directory) { - namespace fs = ghc::filesystem; + namespace fs = std::filesystem; fs::remove_all(get_directory()); fs::rename(directory, get_directory()); m_unload_index = 0u; diff --git a/include/xtensor-io/xio_disk_handler.hpp b/include/xtensor-io/xio_disk_handler.hpp index 9f3b5bd..c3f43c4 100644 --- a/include/xtensor-io/xio_disk_handler.hpp +++ b/include/xtensor-io/xio_disk_handler.hpp @@ -1,13 +1,13 @@ #ifndef XTENSOR_IO_DISK_HANDLER_HPP #define XTENSOR_IO_DISK_HANDLER_HPP -#include +#include #include #include #include "xio_stream_wrapper.hpp" #include "xfile_array.hpp" -namespace fs = ghc::filesystem; +namespace fs = std::filesystem; namespace xt { diff --git a/test/test_xchunk_store_manager.cpp b/test/test_xchunk_store_manager.cpp index 6a52bd9..a2cdbf8 100644 --- a/test/test_xchunk_store_manager.cpp +++ b/test/test_xchunk_store_manager.cpp @@ -17,7 +17,7 @@ namespace xt { - namespace fs = ghc::filesystem; + namespace fs = std::filesystem; template inline auto make_test_chunked_array(const S& shape, From 7632f85c86a03224a07716ee7d8b03c24c195f44 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Fri, 19 Jun 2026 17:04:19 +0200 Subject: [PATCH 23/27] Fixed documentation build --- .readthedocs.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.readthedocs.yml b/.readthedocs.yml index 02f0e7b..ca00ac1 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -1,2 +1,13 @@ +version: 2 + +build: + os: ubuntu-24.04 + tools: + python: mambaforge-22.0 + +sphinx: + # Path to Sphinx configuration file + configuration: docs/source/conf.py + conda: file: docs/environment.yml From 8ef0e3e41d13cce1a043c071d53a9a00e20d5d09 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Fri, 19 Jun 2026 17:10:21 +0200 Subject: [PATCH 24/27] Release 0.14.0 --- .readthedocs.yml | 2 +- include/xtensor-io/xtensor_io_config.hpp.in | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index ca00ac1..f610750 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -3,7 +3,7 @@ version: 2 build: os: ubuntu-24.04 tools: - python: mambaforge-22.0 + python: mambaforge-22.9 sphinx: # Path to Sphinx configuration file diff --git a/include/xtensor-io/xtensor_io_config.hpp.in b/include/xtensor-io/xtensor_io_config.hpp.in index c095fa8..89c384c 100644 --- a/include/xtensor-io/xtensor_io_config.hpp.in +++ b/include/xtensor-io/xtensor_io_config.hpp.in @@ -11,7 +11,7 @@ #define XTENSOR_IO_CONFIG_HPP #define XTENSOR_IO_VERSION_MAJOR 0 -#define XTENSOR_IO_VERSION_MINOR 13 +#define XTENSOR_IO_VERSION_MINOR 14 #define XTENSOR_IO_VERSION_PATCH 0 #pragma cling add_library_path(@XTENSOR_IO_CLING_LIBRARY_DIR_64@) From e8b35370fbbe56f0befc7c661e1cad8b2864f3d6 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Sat, 20 Jun 2026 16:53:56 +0200 Subject: [PATCH 25/27] Upgraded to xtensor 0.27.1 --- environment-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment-dev.yml b/environment-dev.yml index a269c83..174db06 100644 --- a/environment-dev.yml +++ b/environment-dev.yml @@ -16,4 +16,4 @@ dependencies: - nlohmann_json - google-cloud-cpp >=3.0,<4 - aws-sdk-cpp >=1.11,<2 - - xtensor=0.26.0 + - xtensor=0.27.1 From a8e25d476329d5cebaff9446f4686c1d7962d578 Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Sat, 20 Jun 2026 17:00:20 +0200 Subject: [PATCH 26/27] Release 0.15.0 --- include/xtensor-io/xtensor_io_config.hpp.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/xtensor-io/xtensor_io_config.hpp.in b/include/xtensor-io/xtensor_io_config.hpp.in index 89c384c..1a337c7 100644 --- a/include/xtensor-io/xtensor_io_config.hpp.in +++ b/include/xtensor-io/xtensor_io_config.hpp.in @@ -11,7 +11,7 @@ #define XTENSOR_IO_CONFIG_HPP #define XTENSOR_IO_VERSION_MAJOR 0 -#define XTENSOR_IO_VERSION_MINOR 14 +#define XTENSOR_IO_VERSION_MINOR 15 #define XTENSOR_IO_VERSION_PATCH 0 #pragma cling add_library_path(@XTENSOR_IO_CLING_LIBRARY_DIR_64@) From 52e57a25ae7466c381dd4834be3000f88c8cee8a Mon Sep 17 00:00:00 2001 From: Johan Mabille Date: Sat, 20 Jun 2026 17:13:14 +0200 Subject: [PATCH 27/27] Fixed RTD build --- .readthedocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index f610750..34b504b 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -10,4 +10,4 @@ sphinx: configuration: docs/source/conf.py conda: - file: docs/environment.yml + environment: docs/environment.yml