Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
3914c58
adding 0-padding for microseconds of timestamp in logging.h
stephen-dixon Sep 11, 2024
f5b818b
fixing initial fatclient errors trying to get help::help working thro…
stephen-dixon Oct 30, 2024
5730aef
Update github actions workflow versions and pypa/cibuildwheel
adam-parker1 Nov 20, 2024
12afedb
Add macos-15 to the build-platforms
adam-parker1 Nov 20, 2024
66220ce
Adding chunk downloading to BYTES plugin.
jholloc Dec 9, 2024
b5b35db
Not closing file in readBytesNonOptimally.cpp
jholloc Dec 9, 2024
ecf2f20
Bumping protocol version to 10 - CAPNP data is now transferred as raw…
jholloc Dec 10, 2024
f5399bd
Undoing change to client protocol version for now.
jholloc Dec 10, 2024
ace4f64
Fixing bug and reverting back to protocol 10 in client.
jholloc Dec 10, 2024
3939176
fixing issues with using UDA_TYPE_OPAQUE for returning binary data
stephen-dixon Dec 11, 2024
4a18275
Update client_installation.md: add libtirpc-dev dependency for ubuntu…
maarten-ic Dec 13, 2024
0acbd55
removing macos15 runner from pyuda wheels CI script
stephen-dixon Dec 16, 2024
84bad21
Merge branch '35-missing-leading-0-in-fractions-of-seconds' into develop
stephen-dixon Dec 16, 2024
5620fc1
Merge branch 'feature/fat-client' into develop
stephen-dixon Dec 16, 2024
5a8a783
trying to fix windows and mac wheel builds
stephen-dixon Dec 16, 2024
b5408f5
trying to fix windows and mac wheel builds
stephen-dixon Dec 16, 2024
f497848
trying to fix windows and mac wheel builds
stephen-dixon Dec 16, 2024
ccedce6
trying to fix the macos pyuda wheel CI build
stephen-dixon Dec 16, 2024
5e899cc
trying to fix the macos pyuda wheel CI build
stephen-dixon Dec 16, 2024
b1485a9
trying to fix the macos pyuda wheel CI build
stephen-dixon Dec 16, 2024
336a6c2
trying to fix the macos pyuda wheel CI build
stephen-dixon Dec 16, 2024
9722f45
trying to fix the macos pyuda wheel CI build
stephen-dixon Dec 17, 2024
22b254e
removing python3.13 from macos wheels build due to numpy errors
stephen-dixon Dec 17, 2024
a205aa6
Merge branch 'feature/bytes_plugin' into develop
stephen-dixon Dec 17, 2024
310a5ae
Merge branch 'feature/update-wheel-actions-versions' into develop
stephen-dixon Dec 17, 2024
8c4df03
Merge branch 'main' into develop
stephen-dixon Jan 23, 2025
befca0b
testing fix to boost download link for manylinux2014 pyuda wheels
stephen-dixon Jan 23, 2025
5fac50f
testing fix to boost download link for manylinux2014 pyuda wheels
stephen-dixon Jan 23, 2025
9cbb54e
Removing UDA_PLUGIN_DEBUG_SINGLEFILE option - single file plugin outp…
jholloc May 15, 2025
e01481c
UKAEA issue #196: Allowing good data to be returned when the get_bad …
stephen-dixon May 19, 2025
6019f49
Removing UDA_DIR env dir from pyuda setup.py.
jholloc May 22, 2025
e146e21
actually copying datablock size information to its slot on the datablock
stephen-dixon May 23, 2025
bc74301
free memory of request block
g2knizn Jun 12, 2025
df809c3
Adding UDA complex types to capnp serialisation (#67)
stephen-dixon Jun 17, 2025
998246c
fixing ubuntu build
stephen-dixon Jun 18, 2025
5b4d71f
fixing ubuntu build
stephen-dixon Jun 18, 2025
4f3f214
fixing ubuntu build
stephen-dixon Jun 18, 2025
127be8a
Merge branch 'develop' of github.com:ukaea/UDA into develop
jholloc Jun 18, 2025
95f837b
Deleting temp plugin redirect file unless UDA_PLUGIN_REDIRECT is set.
jholloc Jun 18, 2025
8d786fa
Changing env name back to old one for backwards compatibility.
jholloc Jun 18, 2025
c7cb630
Adding cleanup option to udaServerRedirectStdStreams to allow for ser…
jholloc Jun 18, 2025
2a00c06
Changing system service type to exec.
jholloc Jun 18, 2025
ccc208e
Merge pull request #65 from g2knizn/bugfix/client-memory-leak
jholloc Jun 18, 2025
bbe3e8a
Resetting server timeout so that it'll only timeout on inactivity.
jholloc Jun 18, 2025
cc70bf5
Fixing bug in plugin redirect code.
jholloc Jun 18, 2025
a4d3511
Fixing tests on Linux.
jholloc Jun 18, 2025
b5b8705
Fixing development docs.
jholloc Jun 18, 2025
fd32a66
Merge pull request #70 from ukaea/feature/datablock_size
jholloc Jun 19, 2025
77d27d3
Turning off function type mismatch warning on macOS
jholloc Jun 19, 2025
0650472
Adding log parsing script.
jholloc Jun 19, 2025
3d559c3
Adding log parsing script.
jholloc Jun 19, 2025
4545d0c
Fixing CI errors.
jholloc Jun 19, 2025
9c33935
Fixing build error for older macOS builds.
jholloc Jun 19, 2025
0fc177c
Freeing all datablocks in udaFree - was missing the last block before.
jholloc Jun 19, 2025
064c3eb
Pinning cython version for python 3.8 to avoid build failures in CI
stephen-dixon Jun 19, 2025
4d5b34f
updating regex in log_parser.py to match extra mastu examples
stephen-dixon Jun 20, 2025
3984d4f
reducing the default maximum value for total number of cached filehan…
stephen-dixon Jun 26, 2025
41bbe5e
breaking infinite loop in server_write where the write function retur…
stephen-dixon Jul 31, 2025
bd8a337
Updating CI script to run on PRs onto develop and removing cmake from…
jholloc Sep 11, 2025
147e287
Feature/filesystem utils - Deafult behaviour for UDA_ALLOWED_PATHS no…
jmeasure Sep 18, 2025
2db0b04
Merge branch 'bugfix/79-high-cpu-use-in-server-write' into develop
stephen-dixon Oct 1, 2025
209dff0
Bugfix/84 uda server ssl authenticate (#87)
stephen-dixon Oct 6, 2025
88218e5
Added the usage and configuration of UDA_ALLOWED_PATHS (#89)
deepakmaroo Oct 13, 2025
372471c
Update CI with ubuntu latest and windows (#86)
stephen-dixon Oct 13, 2025
6646f48
free server-side request block (#64) (#74)
g2knizn Oct 15, 2025
0f3e7fd
Feature/picklable pyuda signals (#61)
stephen-dixon Oct 27, 2025
ab1b3a7
76 server block idamerrorstackidamerror and all related methods are n…
stephen-dixon Oct 27, 2025
b846b62
Bugfix/20 uda timeout not working properly (#91)
stephen-dixon Oct 27, 2025
cff8431
reactivating build wheels in CI
stephen-dixon Oct 27, 2025
11b0cbc
handle newline characters in log-parser (#94)
stephen-dixon Oct 28, 2025
451e0ca
reinstating build wheels CI job
stephen-dixon Oct 28, 2025
af3b2aa
Feature/72 pyuda wheels ci update (#96)
stephen-dixon Oct 29, 2025
e04de49
Delete unused file in pyuda
stephen-dixon Nov 3, 2025
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
7 changes: 7 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
target-branch: "develop"
104 changes: 88 additions & 16 deletions .github/workflows/build_wheels.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,14 @@ on:
- '*'
branches:
- release/*
- feature/*
- main
- develop
- feature/*

# prevent duplicate CI runs from separate triggers
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true

jobs:
build_wheels:
Expand All @@ -36,12 +41,12 @@ jobs:
- [windows-latest, AMD64, win_amd64, 0.0]

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
# need git tags available for setuptools_scm to grab tags
with:
fetch-depth: 0

- uses: actions/github-script@v7
- uses: actions/github-script@v8
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
Expand Down Expand Up @@ -107,25 +112,27 @@ jobs:

- name: build windows wheels
if: runner.OS == 'Windows'
uses: pypa/cibuildwheel@v2.22.0
uses: pypa/cibuildwheel@v3.2.1
with:
package-dir: ${{github.workspace}}/install/python_installer
config-file: ${{github.workspace}}/install/python_installer/pyproject.toml
env:
CIBW_ARCHS: ${{matrix.build-platform[1]}}
CIBW_PLATFORM: windows
CIBW_BUILD: cp3*-${{matrix.build-platform[2]}}
CIBW_SKIP: cp36* cp37* cp313*
# CIBW_SKIP: cp36* cp37* cp313*
CIBW_SKIP: cp36* cp37*
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -w {dest_dir} {wheel} --add-path ${{github.workspace}}/install/lib"
CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel"

- name: Build manylinux2014 wheels
# this is a slow-running build. Only execute on tag
# &&
# github.event_name == 'push' &&
# startsWith(github.ref, 'refs/tags/')
if: >
startswith(matrix.build-platform[2], 'manylinux2014') &&
github.event_name == 'push' &&
startsWith(github.ref, 'refs/tags/')
uses: pypa/[email protected]
startswith(matrix.build-platform[2], 'manylinux2014')
uses: pypa/[email protected]
with:
package-dir: ./source/wrappers/python
config-file: ./source/wrappers/python/pyproject.toml
Expand Down Expand Up @@ -156,11 +163,11 @@ jobs:
wget https://github.com/capnproto/capnproto/archive/refs/tags/v0.10.4.tar.gz &&
tar xzf v0.10.4.tar.gz &&
cd capnproto-0.10.4 &&
cmake -Bbuild -H. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON &&
cmake -Bbuild -H. -DCMAKE_BUILD_TYPE=Release -DCMAKE_POLICY_VERSION_MINIMUM=3.5 -DCMAKE_INSTALL_PREFIX=/usr/local -DBUILD_SHARED_LIBS=ON &&
cmake --build build &&
cmake --install build &&
cd /tmp &&
wget https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.gz &&
wget https://sourceforge.net/projects/boost/files/boost/1.80.0/boost_1_80_0.tar.gz &&
tar xzf boost_1_80_0.tar.gz &&
cd boost_1_80_0 &&
./bootstrap.sh --prefix=/usr/local &&
Expand All @@ -176,7 +183,7 @@ jobs:
startswith(matrix.build-platform[2], 'manylinux_2_28') &&
! ( startswith(matrix.build-platform[1], 'aarch64') &&
!startsWith(github.ref, 'refs/tags/') )
uses: pypa/cibuildwheel@v2.22.0
uses: pypa/cibuildwheel@v3.2.1
with:
package-dir: ./source/wrappers/python
config-file: ./source/wrappers/python/pyproject.toml
Expand Down Expand Up @@ -230,29 +237,50 @@ jobs:

- name: Build macos wheels
if: runner.os == 'macOS'
uses: pypa/cibuildwheel@v2.22.0
uses: pypa/cibuildwheel@v3.2.1
with:
package-dir: ./source/wrappers/python
config-file: ./source/wrappers/python/pyproject.toml
env:
CIBW_ARCHS: ${{matrix.build-platform[1]}}
CIBW_PLATFORM: macos
# CIBW_SKIP: cp313*
CIBW_BUILD: cp*-${{matrix.build-platform[2]}}
MACOSX_DEPLOYMENT_TARGET: ${{matrix.build-platform[3]}}

- uses: actions/upload-artifact@v4
- name: upload pyuda cibw build artifacts
uses: actions/upload-artifact@v5
with:
name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl

# only build dummy uda package on a single runner (pure python)
- name: build uda (dummy package) wheels
if: runner.os == 'macOS' && startswith(matrix.build-platform[1], 'arm64')
run: |
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install --upgrade build setuptools
cd ${{github.workspace}}/source/wrappers/python/uda && python -m build --wheel --sdist

- name: Upload uda build artifacts
# only build and upload pure python wheels on a single runner
if: runner.os == 'macOS' && startswith(matrix.build-platform[1], 'arm64')
uses: actions/upload-artifact@v5
with:
name: uda-wheels
path: ${{github.workspace}}/source/wrappers/python/uda/dist/*


upload_pypi:
# only upload to pypi for tagged releases
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
needs: build_wheels
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/uda
url: https://pypi.org/p/pyuda
permissions:
id-token: write
steps:
Expand All @@ -277,7 +305,7 @@ jobs:
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v4
- uses: actions/download-artifact@v6
with:
# unpacks all CIBW artifacts into dist/
pattern: cibw-*
Expand All @@ -287,3 +315,47 @@ jobs:
- uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
verbose: true

upload_dummy_repo_to_pypi:
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
# only upload dummy repo if normal one exists
needs: upload_pypi
runs-on: ubuntu-latest
environment:
name: pypi
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v6
with:
# unpacks all build artifacts into dist/
name: uda-wheels
path: dist

- uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://upload.pypi.org/legacy/
verbose: true

upload_dummy_repo_to_testpypi:
if: >
github.event_name == 'push' && !startsWith(github.ref, 'refs/heads/feature/')
# only upload dummy repo if normal one exists
needs: upload_test_pypi
runs-on: ubuntu-latest
environment:
name: testpypi
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v6
with:
# unpacks all build artifacts into dist/
name: uda-wheels
path: dist

- uses: pypa/gh-action-pypi-publish@release/v1
with:
repository-url: https://test.pypi.org/legacy/
verbose: true
85 changes: 53 additions & 32 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,26 +7,30 @@ on:
- develop
- 'feature/**'
- 'release/**'
- 'bugfix/**'
pull_request:
branches:
- main
- develop

#env:
# BUILD_TYPE: Release
# prevent duplicate CI runs from separate triggers
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref_name }}
cancel-in-progress: true

jobs:
build:
strategy:
matrix:
os: [ubuntu-22.04, windows-latest, macos-latest]
os: [ubuntu-latest, windows-latest, macos-latest]
release: [Release]
ssl: [ON, OFF]
client-only: [ON, OFF]
capnp: [ON, OFF]
exclude:
- os: windows-latest
client-only: OFF
- os: ubuntu-22.04
- os: ubuntu-latest
client-only: ON
- os: macos-latest
client-only: ON
Expand All @@ -38,16 +42,16 @@ jobs:
shell: bash

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- uses: actions/github-script@v7
- uses: actions/github-script@v8
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');

- name: Install linux dependencies
if: matrix.os == 'ubuntu-22.04'
if: matrix.os == 'ubuntu-latest'
run: >
sudo apt update && sudo apt install -y
git
Expand All @@ -56,6 +60,7 @@ jobs:
libssl-dev
cmake
build-essential
libtirpc-dev
pkg-config
libxml2-dev
libspdlog-dev
Expand All @@ -66,8 +71,15 @@ jobs:
python3-pip
python3-venv

# Capnproto package on Ubuntu 24.04 has broken CMake file
- name: Fix Capnproto on Ubuntu
if: matrix.os == 'ubuntu-latest'
run: >
sudo sed -i 's/if (yes) # WITH_LIBATOMIC/if (no) # WITH_LIBATOMIC/' \
/usr/lib/x86_64-linux-gnu/cmake/CapnProto/CapnProtoConfig.cmake

- name: Install Intel compiler
if: matrix.os == 'ubuntu-22.04'
if: matrix.os == 'ubuntu-latest'
run: >
sudo apt install -y wget &&
wget https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB &&
Expand Down Expand Up @@ -113,9 +125,10 @@ jobs:
openssl
dlfcn-win32
spdlog
liblzma

- name: Configure CMake (linux)
if: matrix.os == 'ubuntu-22.04'
if: matrix.os == 'ubuntu-latest'
run: >
cmake -G Ninja -B build
-DBUILD_SHARED_LIBS=ON
Expand All @@ -125,7 +138,7 @@ jobs:
-DENABLE_CAPNP=${{ matrix.capnp }}

- name: Configure CMake (linux Intel)
if: matrix.os == 'ubuntu-22.04'
if: matrix.os == 'ubuntu-latest'
run: >
source /opt/intel/oneapi/setvars.sh &&
CXX=icpx CC=icx cmake -G Ninja -B build-intel
Expand Down Expand Up @@ -176,7 +189,7 @@ jobs:
run: cmake --build build --config ${{ matrix.release }}

- name: Build Intel
if: matrix.os == 'ubuntu-22.04'
if: matrix.os == 'ubuntu-latest'
run: cmake --build build-intel --config ${{ matrix.release }}

- name: Install
Expand All @@ -188,7 +201,7 @@ jobs:
run: cmake --install build --config ${{ matrix.release }}

- name: Install pyuda
if: matrix.os == 'ubuntu-22.04'
if: matrix.os == 'ubuntu-latest'
run: >
cp -r /usr/local/python_installer ${{github.workspace}}/python_installer &&
python3 -m venv ${{github.workspace}}/venv &&
Expand All @@ -198,41 +211,49 @@ jobs:
pip3 install ${{github.workspace}}/python_installer

- name: Test pyuda import
if: matrix.os == 'ubuntu-22.04'
if: matrix.os == 'ubuntu-latest'
run: >
source ${{github.workspace}}/venv/bin/activate &&
python3 -c 'import pyuda; client=pyuda.Client()'

- name: Run non-SSL system tests
if: matrix.os == 'ubuntu-22.04' && matrix.ssl == 'OFF'
if: matrix.os == 'ubuntu-latest' && matrix.ssl == 'OFF'
run: >
sudo cp /usr/local/etc/uda.socket /usr/local/etc/[email protected] /etc/systemd/system &&
sudo chown -R $USER:$USER /usr/local/etc &&
echo "export UDA_SERVER_SSL_AUTHENTICATE=OFF" >> /usr/local/etc/udaserver.cfg &&
sudo systemctl start uda.socket &&
sudo systemctl enable uda.socket &&
sudo chown -R $USER:$USER /usr/local/etc &&
nc -4zv localhost 56565 &&
export UDA_HOST=localhost &&
export UDA_PORT=56565 &&
./build/test/plugins/plugin_test_testplugin
./build/test/plugins/plugin_test_testplugin &&
ctest -V --test-dir build/test/unit_tests --output-on-failure &&
uda_cli --help && uda_cli --request "help::help()"

- name: Run SSL system tests
if: matrix.os == 'ubuntu-22.04' && matrix.ssl == 'ON'
run: >
sudo cp /usr/local/etc/uda.socket /usr/local/etc/[email protected] /etc/systemd/system &&
sudo chown -R $USER:$USER /usr/local/etc &&
echo "export UDAHOSTNAME=github-ci-ssl" >> /usr/local/etc/udaserver.cfg &&
./scripts/create_certs.sh &&
mkdir /usr/local/etc/certs &&
cp rootCA.crt server.crt server.key /usr/local/etc/certs &&
sudo systemctl start uda.socket &&
sudo systemctl enable uda.socket &&
nc -4zv localhost 56565 &&
export UDA_HOST=localhost &&
export UDA_PORT=56565 &&
export UDA_CLIENT_SSL_AUTHENTICATE=1 &&
export UDA_CLIENT_CA_SSL_CERT=$PWD/rootCA.crt &&
export UDA_CLIENT_SSL_CERT=$PWD/client.crt &&
export UDA_CLIENT_SSL_KEY=$PWD/client.key &&
run: |
sudo cp /usr/local/etc/uda.socket /usr/local/etc/[email protected] /etc/systemd/system
sudo chown -R $USER:$USER /usr/local/etc
# pulls in extra config options from machine.d
echo "export UDAHOSTNAME=github-ci-ssl" >> /usr/local/etc/udaserver.cfg
./scripts/create_certs.sh
mkdir /usr/local/etc/certs
cp rootCA.crt server.crt server.key /usr/local/etc/certs
sudo systemctl start uda.socket
sudo systemctl enable uda.socket
nc -4zv localhost 56565
export UDA_HOST=localhost
export UDA_PORT=56565
export UDA_CLIENT_SSL_AUTHENTICATE=OFF
export UDA_CLIENT_CA_SSL_CERT=$PWD/rootCA.crt
export UDA_CLIENT_SSL_CERT=$PWD/client.crt
export UDA_CLIENT_SSL_KEY=$PWD/client.key
set +e
/usr/local/bin/uda_cli --request "help::help()" && exit 1 || echo "process failed successfully"
set -e
export UDA_CLIENT_SSL_AUTHENTICATE=ON
./build/test/plugins/plugin_test_testplugin

# - name: Test
Expand Down
Loading
Loading