Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
c94f305
Implement (Non-MITM) YMQ Tests for Windows (#395)
magniloquency Nov 13, 2025
4e633b9
Implement MITM Tests for Windows
magniloquency Nov 11, 2025
dfafc73
Keep source files in pure ascii (#436)
gxuu Nov 17, 2025
a464ec9
Fix .so Files in Wheel (#433)
magniloquency Nov 17, 2025
bd916aa
Have GitHub actions run Python tests against wheel instead of source …
e117649 Nov 17, 2025
94e8ee9
support nicegui 3.0 changes (#410)
cloakedclock Nov 18, 2025
a03e7a2
Add bermudan option notebook example (#439)
1597463007 Nov 19, 2025
13e8b6f
Set object storage port to scheduler port + 1 (#440)
e117649 Nov 20, 2025
e26d024
Merge branch 'main' into windows-mitm-2
magniloquency Nov 20, 2025
1fe0cd8
fix gh actions
magniloquency Nov 20, 2025
e44e7db
Make code in YMQ Internal directory meet coding guidelines (#441)
gxuu Nov 22, 2025
5a90d94
Merge branch 'main' into windows-mitm-2
sharpener6 Nov 22, 2025
ded5a23
revert worker.py
magniloquency Nov 22, 2025
1c259e1
Merge branch 'windows-mitm-2' of https://github.com/magniloquency/sca…
magniloquency Nov 22, 2025
29267b2
Apply suggestion from @magniloquency
magniloquency Nov 23, 2025
e140ded
restore remove-item line in library tool
magniloquency Nov 24, 2025
75585bb
Rename files and symbols (#447)
gxuu Nov 24, 2025
cc52a59
Merge branch 'main' into windows-mitm-2
sharpener6 Nov 24, 2025
1ff4749
reduce scope of changes in sync object storage connector
magniloquency Nov 25, 2025
4b68639
Merge branch 'windows-mitm-2' of https://github.com/magniloquency/sca…
magniloquency Nov 25, 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
4 changes: 1 addition & 3 deletions .github/actions/compile-libraries/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,4 @@ runs:
if: inputs.os == 'Windows'
shell: pwsh
run: |
cmake --preset windows-x64
cmake --build --preset windows-x64 --config Debug
cmake --install build_windows_x64 --config Debug
./scripts/build.ps1
37 changes: 31 additions & 6 deletions .github/actions/run-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,54 @@ inputs:
runs:
using: "composite"
steps:
- name: Install dependencies for MITM tests
if: inputs.os == 'Linux'
- name: Install scapy for MITM tests
shell: bash
run: uv pip install --system scapy==2.*

- name: Install pydivert and pywin32 for MITM tests (Windows)
if: inputs.os == 'Windows'
shell: pwsh
run: uv pip install --system pydivert pywin32

- name: Run C++ Tests (Linux)
if: inputs.os == 'Linux'
shell: bash
run: sudo ./scripts/test.sh

# TODO: build wheel first, then run the test
- name: Run C++ Tests (Windows)
if: inputs.os == 'Windows'
shell: pwsh
run: ./scripts/test.ps1 -C Debug

- name: Build Wheel
if: inputs.os != 'Windows'
shell: bash
run: |
uv pip install --system build
python -m build --wheel

- name: Install Wheel
if: inputs.os != 'Windows'
shell: bash
run: |
wheel_file=$(ls dist/*.whl | head -n 1)
echo "Installing wheel: $wheel_file"
uv pip install --system "$wheel_file"

- name: Run Unittests
if: inputs.os != 'Windows'
shell: bash
run: |
PYTHONPATH=src python -m unittest discover -v tests
python -m unittest discover -v tests

- name: Run Examples
if: inputs.os != 'Windows'
shell: bash
run: |
uv pip install --system -r examples/applications/requirements_applications.txt
for example in "./examples"/*.py; do
echo "Running $example"
PYTHONPATH=src python $example
python $example
done
for example in "./examples/applications"/*.py; do
if python -c 'import sys; sys.exit(not sys.version_info <= (3, 10))'; then
Expand All @@ -42,5 +67,5 @@ runs:
fi

echo "Running $example"
PYTHONPATH=src python $example
python $example
done
8 changes: 4 additions & 4 deletions CMakePresets.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"displayName": "Linux 64 bit Intel build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_INSTALL_PREFIX": "${sourceDir}"
"CMAKE_INSTALL_PREFIX": "${sourceDir}/src"
},
"binaryDir": "${sourceDir}/build_linux_x86_64"
},
Expand All @@ -15,7 +15,7 @@
"displayName": "Linux 64 bit ARM build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_INSTALL_PREFIX": "${sourceDir}"
"CMAKE_INSTALL_PREFIX": "${sourceDir}/src"
},
"binaryDir": "${sourceDir}/build_linux_aarch64"
},
Expand All @@ -24,7 +24,7 @@
"displayName": "Apple ARM 64 bit build",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_INSTALL_PREFIX": "${sourceDir}"
"CMAKE_INSTALL_PREFIX": "${sourceDir}/src"
},
"binaryDir": "${sourceDir}/build_darwin_arm64"
},
Expand All @@ -34,7 +34,7 @@
"generator": "Visual Studio 17 2022",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_INSTALL_PREFIX": "${sourceDir}"
"CMAKE_INSTALL_PREFIX": "${sourceDir}/src"
},
"architecture": {
"value": "x64",
Expand Down
4 changes: 2 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ uvloop = [
]
gui = [
"nicegui[plotly]==2.24.2; python_version == '3.8'",
"nicegui[plotly]==3.2.0; python_version >= '3.9'",
"nicegui[plotly]==3.3.1; python_version >= '3.9'",
]
graphblas = [
"python-graphblas",
Expand All @@ -50,7 +50,7 @@ aws = [
]
all = [
"nicegui[plotly]==2.24.2; python_version == '3.8'",
"nicegui[plotly]==3.2.0; python_version >= '3.9'",
"nicegui[plotly]==3.3.1; python_version >= '3.9'",
"python-graphblas",
"numpy==1.24.4; python_version == '3.8'",
"numpy==2.0.2; python_version == '3.9'",
Expand Down
28 changes: 28 additions & 0 deletions scripts/build.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# This script builds and installs in-place the C++ components.
#
# Usage:
# ./scripts/build.ps1

$ErrorActionPreference = "Stop"
$OS = "windows"
$ARCH = "x64"
$BUILD_DIR = "build_${OS}_${ARCH}"
$BUILD_PRESET = "${OS}-${ARCH}"

# Clean up previous build artifacts
if (Test-Path $BUILD_DIR) {
Remove-Item -Recurse -Force $BUILD_DIR
}
Get-ChildItem "scaler/protocol/capnp" -Include *.c++, *.h -ErrorAction SilentlyContinue | Remove-Item -Force

Write-Host "Build directory: $BUILD_DIR"
Write-Host "Build preset: $BUILD_PRESET"

# Configure
cmake --preset $BUILD_PRESET @args

# Build
cmake --build --preset $BUILD_PRESET

# Install
cmake --install $BUILD_DIR
9 changes: 7 additions & 2 deletions scripts/library_tool.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -80,20 +80,25 @@ elseif ($dependency -eq "capnp")
}
elseif ($action -eq "compile")
{
Remove-Item -Path "$THIRD_PARTY_DOWNLOADED\$CAPNP_FOLDER_NAME" -Recurse -Force
tar -xzvf "$THIRD_PARTY_COMPILED\$CAPNP_FOLDER_NAME.tar.gz" -C "$THIRD_PARTY_COMPILED\$CAPNP_FOLDER_NAME"
Remove-Item -Path "$THIRD_PARTY_DOWNLOADED\$CAPNP_FOLDER_NAME" -Recurse -Force -ErrorAction SilentlyContinue
mkdir "$THIRD_PARTY_COMPILED" -Force
tar -xzvf "$THIRD_PARTY_DOWNLOADED\$CAPNP_FOLDER_NAME.tar.gz" -C "$THIRD_PARTY_COMPILED"

# Configure and build with Visual Studio using CMake
$oldDir = Get-Location
Set-Location -Path "$THIRD_PARTY_COMPILED\$CAPNP_FOLDER_NAME"
cmake -G "Visual Studio 17 2022" -B build
cmake --build build --config Release
Write-Host "Compiled capnp into $THIRD_PARTY_COMPILED\$CAPNP_FOLDER_NAME"
Set-Location $oldDir
}
elseif ($action -eq "install")
{
$oldDir = Get-Location
Set-Location -Path "$THIRD_PARTY_COMPILED\$CAPNP_FOLDER_NAME"
cmake --install build --config Release --prefix $PREFIX
Write-Host "Installed capnp into $PREFIX"
Set-Location $oldDir
}
else
{
Expand Down
13 changes: 13 additions & 0 deletions scripts/test.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#
# This script tests the C++ components.
#
# Usage:
# ./scripts/test.ps1

$OS="windows"
$ARCH="x64"
$BUILD_DIR="build_${OS}_${ARCH}"
$BUILD_PRESET="${OS}-${ARCH}"

# Run tests
ctest --preset $BUILD_PRESET -VV @args
Loading