Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
95cdb65
Add contributing guidelines
olivhoenen Nov 19, 2025
dcdfb6c
better discovery for IDSDef.xml/data-dictionary.xml based on IMAS_PRE…
prasad-sawantdesai Nov 27, 2025
8bee91b
filter pattern based on the platform
prasad-sawantdesai Nov 27, 2025
0d68b8c
do not link stdc++fs on windows
prasad-sawantdesai Nov 27, 2025
174c4a3
Add APPLE to not to link stdc++fs
prasad-sawantdesai Nov 27, 2025
43613fd
use idsinfo command from data-dictionary module
prasad-sawantdesai Nov 27, 2025
a8ef127
Merge branch 'fix/windows_build_failing_for_uda' into Building-MDSplu…
prasad-sawantdesai Nov 27, 2025
092eaf3
corrected logic to find identifiers across different dd versions
prasad-sawantdesai Nov 27, 2025
955cf0f
fix mdsplus models building by setting al-core_SOURCE_DIR to point to…
prasad-sawantdesai Dec 3, 2025
0e7aa16
Merge pull request #7 from prasad-sawantdesai/fix/windows_build_faili…
olivhoenen Dec 3, 2025
76e9561
Imas core docs (#5)
prasad-sawantdesai Dec 5, 2025
63bb041
fix badges, links and readthedocs (#9)
prasad-sawantdesai Dec 8, 2025
8ab3dfe
Fix CMake lookup by using find_package(PThreads4W CONFIG REQUIRED)
prasad-sawantdesai Dec 8, 2025
9ffcb95
fix the badge and version issue (#11)
prasad-sawantdesai Dec 9, 2025
0934f33
Replace badge in doc
olivhoenen Dec 9, 2025
5e06e59
Adding config for macos, still untested.
paulotex Jan 8, 2026
a1e0d32
Fixing RPATH issues
Jan 12, 2026
c96598b
Cleaning main CMakeLists. Seems to work on macOS now.
paulotex Jan 12, 2026
5d51fa9
ensuring arm64 when building the wheel on macos
paulotex Jan 12, 2026
38d42e1
Removing github actions for macOS x86 for now, will be added later on…
paulotex Jan 12, 2026
c63d4f4
Fixing macOS version from 11 to 14 to ensure arm only, no x86
paulotex Jan 12, 2026
254ac9e
Merge branch 'main' into develop
olivhoenen Jan 12, 2026
1ece600
Improving legibility in macOS section in cmake
paulotex Jan 12, 2026
b44579c
Fixing missing override warnings
paulotex Jan 12, 2026
01a06a0
Feature/macos arm (#20)
paulotex Jan 13, 2026
415d503
Merge branch 'develop' into feature/macos-arm
paulotex Jan 15, 2026
a34ef25
Adding support for python versions 3.10 to 3.13, like the other archi…
paulotex Jan 15, 2026
c6ce7a5
Adding missing override modifiers to avoid compilation warnings
paulotex Jan 16, 2026
72dffdd
macOS ARM: all python versions available and UDA enabled.
paulotex Jan 16, 2026
c9e92a1
Adding missing override to virtual functions implementations.
paulotex Jan 16, 2026
0817e7b
Adding minimal MACOSX_DEPLOYMENT_TARGET
paulotex Jan 16, 2026
5c15c59
Add `--no-index` to installation command for imas_core
maarten-ic Jan 13, 2026
2014870
IMAS-5428: fix
fleuryl-ai Jan 21, 2026
6aa1212
Fixing corrupted reads when reading two IDSs back to back.
Nush395 Jan 21, 2026
0d58d3e
Removing useless comments
fleuryl-ai Jan 22, 2026
5355ef1
Install and doc update in common to prepare for high level interfaces…
prasad-sawantdesai Jan 22, 2026
f5ac71e
added Python 314 wheels (#30)
prasad-sawantdesai Jan 23, 2026
18a6a36
Update MDSplus backend configuration configuration (#31)
olivhoenen Jan 26, 2026
d2d7ec9
Removing UDA again, to create a commit with just several python versi…
paulotex Jan 27, 2026
9f08849
Merge branch 'iterorganization:develop' into feature/macos-arm
paulotex Jan 27, 2026
801250e
IMAS-5428: enable warning message
fleuryl-ai Jan 28, 2026
a4108b3
Proposed fix for IMAS-5428: Issue with imas.create() for HDF5 files w…
fleuryl-ai Jan 28, 2026
1d453db
add doc for IMAS_LOCAL_HOSTS configuration
olivhoenen Jan 28, 2026
701c930
Set default UDA local_cache path to /tmp/$USER (#33)
deepakmaroo Jan 28, 2026
df82138
adding python 3.14 to macos-arm
paulotex Feb 6, 2026
ec0f78e
Merge branch 'iterorganization:develop' into feature/macos-arm
paulotex Feb 6, 2026
c741b42
macos target is now 14 everywhere to ensure ARM processors only.
paulotex Feb 6, 2026
0e51105
Catching exception for empty static AOS shapes
fleuryl-ai Feb 6, 2026
bbf6eab
Merge branch 'fix/IMAS-34-github' into develop
fleuryl-ai Feb 9, 2026
f977afa
add CODEOWNERS
olivhoenen Feb 9, 2026
805041f
search logic for hdf libraries
prasad-sawantdesai Feb 9, 2026
2826a07
Merge pull request #23 from paulotex/feature/macos-arm
olivhoenen Feb 9, 2026
1c0c57c
Merge pull request #36 from fleuryl-ai/fix/IMAS-34-github
olivhoenen Feb 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# This file allows setting automatically reviewers for pull requests.
# Each line is a file pattern followed by one or more owners.
# The last match takes precedence over previous ones.
# Do not edit unless specifically mandated to do so.

# Experts on specific backends
src/hdf5 @fleuryl-ai
src/mdsplus @GabrieleManduchi
src/uda @deepakmaroo

# Global/fallback and technical modifications.
* @prasad-sawantdesai @olivhoenen

# Modifications to CODEOWNERS and action workflows
.github/ @SimonPinches @olivhoenen
128 changes: 123 additions & 5 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,10 +65,74 @@ jobs:
UDA_REF: "2.9.3"
FMT_REF: "11.1.4"

# # - os: macos-13
# # python: 311
# # platform_id: macosx_x86_64
- os: ubuntu-24.04
triplet: x64-linux
python: 314
cibw_platform: linux
cibw_archs: x86_64
platform_id: manylinux_x86_64
manylinux_image: quay.io/pypa/manylinux_2_28_x86_64
AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON
AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF
AL_BACKEND_UDA: AL_BACKEND_UDA=ON
UDA_REF: "2.9.3"
FMT_REF: "11.1.4"

- os: macos-14
triplet: arm64-osx
python: 310
platform_id: macosx_arm64
cibw_platform: macos
cibw_archs: arm64
AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON
AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF
AL_BACKEND_UDA: AL_BACKEND_UDA=OFF
UDA_REF: "2.9.3"

- os: macos-14
triplet: arm64-osx
python: 311
platform_id: macosx_arm64
cibw_platform: macos
cibw_archs: arm64
AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON
AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF
AL_BACKEND_UDA: AL_BACKEND_UDA=OFF
UDA_REF: "2.9.3"

- os: macos-14
triplet: arm64-osx
python: 312
platform_id: macosx_arm64
cibw_platform: macos
cibw_archs: arm64
AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON
AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF
AL_BACKEND_UDA: AL_BACKEND_UDA=OFF
UDA_REF: "2.9.3"

- os: macos-14
triplet: arm64-osx
python: 313
platform_id: macosx_arm64
cibw_platform: macos
cibw_archs: arm64
AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON
AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF
AL_BACKEND_UDA: AL_BACKEND_UDA=OFF
UDA_REF: "2.9.3"

- os: macos-14
triplet: arm64-osx
python: 314
platform_id: macosx_arm64
cibw_platform: macos
cibw_archs: arm64
AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON
AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF
AL_BACKEND_UDA: AL_BACKEND_UDA=OFF
UDA_REF: "2.9.3"

- os: windows-2022
triplet: x64-windows
python: 310
Expand Down Expand Up @@ -121,6 +185,19 @@ jobs:
UDA_REF: "2.9.3"
FMT_REF: "11.1.4"

- os: windows-2022
triplet: x64-windows
python: 314
platform_id: win_amd64
cibw_platform: windows
cibw_archs: AMD64
manylinux_image: windows
AL_BACKEND_HDF5: AL_BACKEND_HDF5=ON
AL_BACKEND_MDSPLUS: AL_BACKEND_MDSPLUS=OFF
AL_BACKEND_UDA: AL_BACKEND_UDA=OFF
UDA_REF: "2.9.3"
FMT_REF: "11.1.4"

steps:
- uses: actions/checkout@v4
with:
Expand All @@ -145,7 +222,7 @@ jobs:
- name: Install cibuildwheel for windows
if: startsWith(matrix.os, 'windows')
run: |
python -m pip install cibuildwheel==3.0.0
python -m pip install cibuildwheel==3.1.0

- name: Restore cibuildwheel cache
id: cache
Expand Down Expand Up @@ -181,6 +258,7 @@ jobs:
CIBW_PLATFORM: ${{ matrix.cibw_platform }}
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_BUILD_VERBOSITY: 1
CIBW_SKIP: "cp31?t-*" # Skip free-threading builds (not supported yet)
CIBW_CONFIG_SETTINGS: >
cmake.define.${{ matrix.AL_BACKEND_HDF5 }}
cmake.define.${{ matrix.AL_BACKEND_MDSPLUS }}
Expand All @@ -203,13 +281,14 @@ jobs:
path: C:\vcpkg\installed
key: ${{ matrix.os }}-${{ env.cache-name }}-a

- uses: pypa/cibuildwheel@v3.0.0
- uses: pypa/cibuildwheel@v3.1.0
if: startsWith(matrix.os, 'ubuntu-')
env:
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }}
CIBW_PLATFORM: ${{ matrix.cibw_platform }}
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.manylinux_image }}
CIBW_SKIP: "cp31?t-*" # Skip free-threading builds (not supported yet)

# Install system libraries
# NOTE: manylinux_2_28 is AlmaLinux 8 based, e.g. use yum/dnf
Expand Down Expand Up @@ -255,6 +334,45 @@ jobs:
output-dir: wheelhouse
config-file: "{package}/pyproject.toml"

- uses: pypa/cibuildwheel@v3.1.0
if: startsWith(matrix.os, 'macos-')
env:
CIBW_BUILD: cp${{ matrix.python }}-${{ matrix.platform_id }}
CIBW_PLATFORM: macos
CIBW_ARCHS: ${{ matrix.cibw_archs }}
CIBW_SKIP: "cp31?t-*" # Skip free-threading builds (not supported yet)

CIBW_CONFIG_SETTINGS: >
cmake.define.${{ matrix.AL_BACKEND_HDF5 }}
cmake.define.${{ matrix.AL_BACKEND_MDSPLUS }}
cmake.define.${{ matrix.AL_BACKEND_UDA }}

# Dependency installationinto /tmp
CIBW_BEFORE_ALL_MACOS: >
brew update >&2;
brew install cmake pkg-config boost hdf5 libomp ninja fmt spdlog libxml2 openssl capnp libmemcached >&2;
git clone --depth 1 --branch ${{ matrix.UDA_REF }} https://github.com/ukaea/UDA.git >&2 &&
cd UDA >&2;
cmake -G Ninja -B build . \
-DBUILD_SHARED_LIBS=ON \
-DSSLAUTHENTICATION=ON \
-DCLIENT_ONLY=ON \
-DENABLE_CAPNP=ON \
-DMACOSX_DEPLOYMENT_TARGET=14.0 \
-DCMAKE_INSTALL_PREFIX=/tmp/uda-install >&2 &&
cmake --build build --target install -j >&2;

# Where to find the dependencies
CIBW_ENVIRONMENT_MACOS: >
MACOSX_DEPLOYMENT_TARGET=14.0
CMAKE_PREFIX_PATH="/tmp/uda-install:/opt/homebrew:/usr/local"
PKG_CONFIG_PATH="/tmp/uda-install/lib/pkgconfig:/opt/homebrew/lib/pkgconfig:/usr/local/lib/pkgconfig"

with:
package-dir: .
output-dir: wheelhouse
config-file: "{package}/pyproject.toml"

- uses: actions/upload-artifact@v4
with:
name: cibw-wheels-cp${{ matrix.python }}-${{ matrix.platform_id }}
Expand Down
51 changes: 50 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
# CMake build configuration for Access Layer core
cmake_minimum_required(VERSION 3.21)

if(POLICY CMP0144)
cmake_policy(SET CMP0144 NEW)
endif()

if(${CMAKE_VERSION} VERSION_GREATER_EQUAL 3.30)
cmake_policy(SET CMP0167 NEW) # Use system BoostConfig instead of cmake FindBoost
endif()
Expand Down Expand Up @@ -69,12 +73,56 @@ if(NOT PROJECT_VERSION_TWEAK EQUAL 0)
message("Building a development version of the Access Layer core")
endif()

if(APPLE)
# Disable MDSPlus:
message(STATUS "Disabling MDSPlus backend on macOS")
set(AL_BACKEND_MDSPLUS OFF CACHE BOOL "MDSPlus backend" FORCE)
# Disable UDA:
message(STATUS "Disabling UDA backend on macOS")
set(AL_BACKEND_UDA OFF CACHE BOOL "UDA backend" FORCE)
endif()


# Dependencies
# ##############################################################################

if(WIN32)
find_package(PThreads4W CONFIG REQUIRED)
# Ensure vcpkg paths are in CMAKE_PREFIX_PATH for finding packages
if(DEFINED VCPKG_INSTALLED_DIR AND DEFINED VCPKG_TARGET_TRIPLET)
list(APPEND CMAKE_PREFIX_PATH "${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")
message(STATUS "al-core: Added CMAKE_PREFIX_PATH: ${VCPKG_INSTALLED_DIR}/${VCPKG_TARGET_TRIPLET}")
else()
# Try to auto-detect vcpkg installed directory from build path
if(CMAKE_CURRENT_BINARY_DIR MATCHES "(.*/build)/")
set(_BUILD_DIR "${CMAKE_MATCH_1}")
set(_VCPKG_PATH "${_BUILD_DIR}/vcpkg_installed/x64-windows")
if(EXISTS "${_VCPKG_PATH}")
list(APPEND CMAKE_PREFIX_PATH "${_VCPKG_PATH}")
message(STATUS "al-core: Auto-detected vcpkg path: ${_VCPKG_PATH}")

# Set PKG_CONFIG_EXECUTABLE for vcpkg's pkgconf
if(EXISTS "${_VCPKG_PATH}/tools/pkgconf/pkgconf.exe")
set(PKG_CONFIG_EXECUTABLE "${_VCPKG_PATH}/tools/pkgconf/pkgconf.exe" CACHE FILEPATH "pkg-config executable")
message(STATUS "al-core: Set PKG_CONFIG_EXECUTABLE to ${PKG_CONFIG_EXECUTABLE}")
endif()
endif()
endif()
endif()

message(STATUS "al-core: CMAKE_PREFIX_PATH = ${CMAKE_PREFIX_PATH}")

# Add cmake module path for FindPThreads4W.cmake fallback
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/common/cmake")

# Try CONFIG mode first, fall back to MODULE mode
find_package(PThreads4W CONFIG QUIET)
if(NOT PThreads4W_FOUND)
message(STATUS "PThreads4W CONFIG not found, trying MODULE mode")
find_package(PThreads4W MODULE REQUIRED)
else()
message(STATUS "Found PThreads4W via CONFIG mode")
endif()

find_package(dlfcn-win32 CONFIG REQUIRED)
endif()

Expand Down Expand Up @@ -108,6 +156,7 @@ set(PUBLIC_HEADER_FILES
include/readback_plugin_feature.h
include/uri_parser.h
include/data_interpolation.h
include/fix_include_windows.h
# al_defs.h is generated in the binary folder with configure_file:
${CMAKE_CURRENT_BINARY_DIR}/include/al_defs.h)

Expand Down
2 changes: 1 addition & 1 deletion common/al_env.sh.in
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ if [ -d "${CMAKE_INSTALL_PREFIX}/lib/python${PYVER}/site-packages" ]; then
export PYTHONPATH="${CMAKE_INSTALL_PREFIX}/lib/python${PYVER}/site-packages:$PYTHONPATH"
fi
if [ -d "${CMAKE_INSTALL_PREFIX}/models/mdsplus" ]; then
export ids_path="${CMAKE_INSTALL_PREFIX}/models/mdsplus"
export MDSPLUS_MODELS_PATH="${CMAKE_INSTALL_PREFIX}/models/mdsplus"
fi
if [ -f "${CMAKE_INSTALL_PREFIX}/include/IDSDef.xml" ]; then
export IDSDEF_PATH="${CMAKE_INSTALL_PREFIX}/include/IDSDef.xml"
Expand Down
Loading
Loading