Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
01e4f5f
First commit of major refactor to modularize cbsdk and align on Centr…
cboulay Nov 12, 2025
4ef6491
tools/cbsdk_shmem to investigate shared memory and direct Python inte…
cboulay Nov 12, 2025
85ef4b4
First attempt at 'new' cbsdk interface.
cboulay Nov 12, 2025
e65cc91
Fixup device communication and add gemini_example
cboulay Nov 12, 2025
619904f
Remove `shmem_name` as something user-configurable. This is determine…
cboulay Nov 12, 2025
095a29d
Add transmit buffer and thread for managing transmit buffer
cboulay Nov 12, 2025
0cac710
Remove dead code from gemini_example
cboulay Nov 12, 2025
955a048
migrated the transmit buffer to a separate shared memory segment to m…
cboulay Nov 12, 2025
f075ccc
Rename shmem locations to align with Central's naming conventions.
cboulay Nov 12, 2025
9f3768e
Add cbRECbuffer
cboulay Nov 12, 2025
dac13ca
More implementations using cbRECbuffer
cboulay Nov 12, 2025
b5107dc
Pull in the rest of Central's buffers (still unused)
cboulay Nov 12, 2025
ac298ed
cbSTATUSbuffer Implementation
cboulay Nov 13, 2025
be69a34
spike buffer implementation
cboulay Nov 13, 2025
ea0616f
Implement cbSIGNALevent
cboulay Nov 13, 2025
a67eb81
Further cbSIGNALevent implementation
cboulay Nov 13, 2025
7c10614
Eliminate unnecessary thread in CLIENT mode.
cboulay Nov 13, 2025
681ee3d
Move remaining protocol types to cbproto/types.h and update includes.
cboulay Nov 13, 2025
deb5fec
Fixup header size calculations
cboulay Nov 13, 2025
f2e0e82
Fixup connect() handshake logic
cboulay Nov 14, 2025
b7efac8
Changed all thread lambdas to capture a raw pointer to Impl (Impl* im…
cboulay Nov 14, 2025
5eee950
Move handshake code to its own method.
cboulay Nov 14, 2025
cc1cc4c
Improved handshake sequence to fail fast when device not found.
cboulay Nov 14, 2025
85f8df6
simplify gemini_example to better leverage handshake.
cboulay Nov 14, 2025
288d57c
Improve criteria for deciding to store messages into config buffer.
cboulay Nov 14, 2025
b59ba28
Copy more types from upstream cbproto.h to types.h
cboulay Nov 14, 2025
21f3c04
Further fill out CentralConfigBuffer
cboulay Nov 14, 2025
0127abf
Handle more config packet types
cboulay Nov 14, 2025
e820ce6
rename cbdev::DeviceType::GEMINI to cbdev::DeviceType::GEMINI_NSP
cboulay Nov 14, 2025
810afb5
clang-tidy
cboulay Nov 14, 2025
e014fc6
Move handshake logic from cbsdk to cbdev
cboulay Nov 14, 2025
0239e85
Removed pollPacket() method because it would silently drop packets an…
cboulay Nov 14, 2025
a395d97
Fix packet size calculation.
cboulay Nov 14, 2025
d388a38
DeviceSession gets autorun and `connect`. SdkSession now uses these (…
cboulay Nov 14, 2025
dc99903
Move central config buffer into shared header and prepare DeviceSessi…
cboulay Nov 14, 2025
832c461
Move cbSPIKE_SORTING from types to config_buffer because it is not pa…
cboulay Nov 14, 2025
0c170b2
Finish move of config buffer filling from cbshmem to cbdev
cboulay Nov 14, 2025
6a5ba49
Add sysprotocolmonitor parsing to detect drops.
cboulay Nov 14, 2025
674af6c
Make cbdev requestConfiguration and setSystemRunLevel blocking.
cboulay Nov 15, 2025
40fe998
auto_run -> autorun
cboulay Nov 15, 2025
2b1538a
Add channel config methods to DeviceSession
cboulay Nov 15, 2025
7883702
Add protocol detector
cboulay Nov 17, 2025
6c0cbc0
Move more types from upstream cbproto to our cbproto/types.h
cboulay Nov 18, 2025
a98c460
Preliminary version of packet translation layer.
cboulay Nov 19, 2025
81834d5
Fixup protocol detector
cboulay Nov 21, 2025
d6b3a90
Moved some stuff around.
cboulay Nov 21, 2025
ca5d578
More moving stuff around -- temporarily limiting us to a subset of th…
cboulay Nov 21, 2025
1d7c874
Minimize cbdev interface
cboulay Nov 21, 2025
905d477
Minimize cbdev interface
cboulay Nov 21, 2025
4069ef8
renum enum
cboulay Nov 22, 2025
62a6623
DeviceSession has internal representation of device config state.
cboulay Nov 22, 2025
d77da67
Add channel configuration options to cbdev
cboulay Nov 23, 2025
cd655f9
Move device type, protocol version, and channel type enums to cbproto…
cboulay Nov 23, 2025
fb86666
cbdev: Add synchronous setters (requires receive thread) and deduplic…
cboulay Nov 24, 2025
2589bdb
cbdev: synchronous batch setters can now wait for a specified number …
cboulay Nov 25, 2025
ed377ca
fix integer wraparound
cboulay Nov 25, 2025
e35ec24
cbdev bugfixes
cboulay Nov 25, 2025
5061cf7
Improve send throughput.
cboulay Nov 25, 2025
6f56a7e
Fix Windows build
cboulay Nov 25, 2025
ed5172a
protocol_detector - windows compat and add debug info
cboulay Nov 26, 2025
10a987e
Fix sleep between packets in Windows
cboulay Nov 26, 2025
04eee8d
Header needed in Linux too, not just apple
cboulay Nov 26, 2025
937c28c
Fix socket settings in Linux. Also add notes for firewall and socket …
cboulay Nov 26, 2025
091e00a
On Windows, bind to specific adapter, not 0.0.0.0
cboulay Nov 26, 2025
472b6ba
Allocate recv buffer memory on the stack instead of heap, and outside…
chittti Nov 26, 2025
84971f7
Add <vector> include
chittti Nov 26, 2025
8d83ea3
Try to fix MSVC builds
cboulay Dec 8, 2025
1fb9d3f
Try to fix MSVC builds
cboulay Dec 8, 2025
56b4d49
Try to fix MSVC builds
cboulay Dec 8, 2025
900e685
Try to fix MSVC builds
cboulay Dec 8, 2025
3657f4c
Try to fix MSVC builds
cboulay Dec 8, 2025
34605b6
Fixed uninitialized variable bugs
cboulay Dec 8, 2025
d757105
Fix nPlay ports
cboulay Dec 9, 2025
968fc4e
cbdev can now manage its own thread and registered callbacks. Use thi…
cboulay Dec 9, 2025
94fa994
Update configure_channels example to use cbdev's threading.
cboulay Dec 9, 2025
aad20f2
setChannelsGroupSync -- limit to the number of channels of that type.
cboulay Dec 9, 2025
ac30d47
Fix channel count handling in `sync` channel config functions.
cboulay Dec 9, 2025
eee46a9
Use enumeration for sampling group / rate.
cboulay Dec 11, 2025
e2fa79f
Update shmem description, including Central's shmem and differences w…
cboulay Feb 8, 2026
597dfc0
Add native-mode shared memory layout to ShmemSession. Native mode has…
cboulay Feb 9, 2026
ba02ee5
Add Central shm compatibility layer
cboulay Feb 9, 2026
686b679
Protocol translation for Central compat Mode
cboulay Feb 9, 2026
dbe6c25
First attempt at CCF loading
cboulay Feb 19, 2026
bb2b214
Fixup some tests that weren't loading
cboulay Feb 19, 2026
56d3df1
First attempt at clock offset calculation for synchronization with sy…
cboulay Feb 19, 2026
d1c8b0b
Missing header
cboulay Feb 19, 2026
d7cea6b
Another missing include
cboulay Feb 19, 2026
0fe8c66
Clock sync using nPlay packets only.
cboulay Feb 20, 2026
fd90370
Change clock sync forward_delay_fraction to 0.5
cboulay Feb 20, 2026
4c32318
Update validate_clock_sync.cpp to calculate running stats
cboulay Feb 21, 2026
b105711
clock sync packet should set .mode to some unused value.
cboulay Feb 21, 2026
54ee28f
small timing probe utility
cboulay Feb 23, 2026
8f4d1b1
Add some missing types to bring our cbproto closer inline to upstream.
cboulay Mar 8, 2026
84921d2
polish cbdev README.md
cboulay Mar 8, 2026
f9a801f
Deduplicate Result<T>
cboulay Mar 8, 2026
3aa7df7
Add setChannelConfig, setDigitalOutput, sendComment to cbdev
cboulay Mar 9, 2026
b5ddda6
Clock sync via shared memory
cboulay Mar 9, 2026
924bafd
Typed callback system with capability-based channel classification
cboulay Mar 9, 2026
3fce6f5
* Config queries and command methods for cbsdk (mode-agnostic)
cboulay Mar 9, 2026
f092ef9
Fix tests
cboulay Mar 9, 2026
bd47a00
Merge branch 'cboulay/modularize' of https://github.com/CerebusOSS/Ce…
cboulay Mar 9, 2026
7d8bbc6
Ensure the device socket is non-blocking or timeout.
cboulay Mar 9, 2026
a543cd9
Fix bug when casting a small packet at the end of the buffer to the l…
cboulay Mar 9, 2026
befb1f8
Fix Windows shared memory for CLIENT mode and improve error diagnostics
cboulay Mar 9, 2026
8f01c03
Fix tests
cboulay Mar 9, 2026
3301ffd
Disable tests requiring a device on GHA runner.
cboulay Mar 9, 2026
b7351da
Fix Central-compat shared memory struct definitions to match cbhwlib.h
cboulay Mar 9, 2026
50b69bf
Fix CLIENT mode session lifecycle, threading, and ring buffer reads
cboulay Mar 9, 2026
2137038
Add central_client diagnostic tool for testing Central shared memory
cboulay Mar 10, 2026
3c2d181
Expand C-API
cboulay Mar 10, 2026
5ad243a
CBSDK_API for __declspec and CBSDK_BUILD_SHARED
cboulay Mar 10, 2026
0108f06
Get rid of unused posix-only header
cboulay Mar 10, 2026
fa5e99d
Static-link MinGW runtime
cboulay Mar 10, 2026
cba23a4
New pycbsdk, first version
cboulay Mar 10, 2026
28458c8
Cleanup GHA build targets
cboulay Mar 10, 2026
67599e5
Fix three bugs in the CCFUtils XML infrastructure (all stemming from …
cboulay Mar 10, 2026
27255f7
use std::string directly via the v1.15 string_view_t overloads
cboulay Mar 10, 2026
f7cee1c
Fix Read path using wrong index syntax for array element
cboulay Mar 10, 2026
3319dad
Better CCF support and tests
cboulay Mar 10, 2026
1dec68b
The transmit buffers (xmt and xmt_local) are now opened with write a…
cboulay Mar 10, 2026
5994a98
Added PROCTIME getLastTime() const method to read the current timest…
cboulay Mar 10, 2026
5dc6f62
- Rewrote enqueuePacket() to use the two-pass write protocol match…
cboulay Mar 10, 2026
1ffb833
- Rewrote enqueuePacket() to use the two-pass write protocol match…
cboulay Mar 10, 2026
bec578d
openCentralFileDialog(), closeCentralFileDialog(), and private sendFi…
cboulay Mar 10, 2026
b482bd0
We were using (head + 1) % buflen per word, but Central expects cont…
cboulay Mar 10, 2026
aee5645
Working test of central recording start and stop
cboulay Mar 10, 2026
d942f78
Add a couple utilities to examine and clear the xmt buffer shared wit…
cboulay Mar 10, 2026
19a6889
revert last
cboulay Mar 10, 2026
bce1f92
Python API now working with CCF management and Central data recording.
cboulay Mar 10, 2026
764d3c3
setAnalogOutputMonitor, setPatientInfo, and getTime
cboulay Mar 10, 2026
106505b
CMAKE_POSITION_INDEPENDENT_CODE ON for Linux builds
cboulay Mar 10, 2026
f04602e
The cmake_extra was -DCMAKE_OSX_ARCHITECTURES=arm64;x86_64 — bash int…
cboulay Mar 10, 2026
2f66bc2
auto-detect the compatible platform tag from auditwheel show
cboulay Mar 10, 2026
9ac532e
Added cbCONFIG_MAXNTRODES and cbCONFIG_AOUT_NUM_GAIN_CHANS; used in …
cboulay Mar 10, 2026
f68a188
Added static asserts for new constants
cboulay Mar 10, 2026
d190305
Buffer sizes: 256→sizeof(cbPKT_NPLAY), 512→sizeof(cbPKT_CHANINFO)
cboulay Mar 10, 2026
c9d50b9
Stack→heap allocation for NativeConfigBuffer and NativeTransmitBuffer…
cboulay Mar 10, 2026
5bed00d
Split test_device_session.cpp into cbdev_device_tests with device. pr…
cboulay Mar 10, 2026
99cdd72
Reduce scope of pycbsdk build trigger
cboulay Mar 10, 2026
975f7fd
Remove old code
cboulay Mar 10, 2026
f95dd63
* Stats mutex consolidation — 3-5 lock/unlock cycles per packet → sin…
cboulay Mar 10, 2026
be12080
* Snapshot callback list before dispatch
cboulay Mar 10, 2026
e46dc46
* Cache channel type classification
cboulay Mar 10, 2026
57dfe6e
Expanded channel config getters and setters.
cboulay Mar 10, 2026
d59b29f
Quiet linter warning on printing uint64
cboulay Mar 10, 2026
3e3174d
Add support for channel map (CMP) files. Device cannot store channel …
cboulay Mar 11, 2026
71960e5
Use enums instead of strings for rate, device type, and channel type.
cboulay Mar 11, 2026
4478853
Expose AC-input coupling methods from cbdev to (py)cbsdk.
cboulay Mar 11, 2026
e902cc0
Fix implicit int → enum conversions
cboulay Mar 11, 2026
1d555ea
Bump actions/checkout to v6
cboulay Mar 11, 2026
db026e8
log when we are dropping packets.
cboulay Mar 11, 2026
7a3abc5
Added generic `get_channel_field(chan_id, field)`, int64_t return.
cboulay Mar 11, 2026
54a034b
Added an example Python script for parsing a ccf.
cboulay Mar 11, 2026
f572d20
Add methods for protocol version and global spike options
cboulay Mar 11, 2026
bdd8156
Publish to pypi on release
cboulay Mar 11, 2026
6f40533
Harmonize versioning
cboulay Mar 11, 2026
5ad2051
Added GEMINI_NPLAY DeviceType variant.
cboulay Mar 11, 2026
f15316e
Fix order definition
cboulay Mar 12, 2026
9b9d58b
Fixup client local IP address detection (still incomplete)
cboulay Mar 12, 2026
e38fd66
Revert addition of GEMINI_NPLAY; not working.
cboulay Mar 12, 2026
dfa46f0
signal handler cleanup for shmem
cboulay Mar 12, 2026
ec30d12
Improve cleanup in Windows too.
cboulay Mar 12, 2026
565622e
exposed proc ident - needed to distinguish gemini from not-gemini
cboulay Mar 13, 2026
0b3040a
timestamps assumed to be nanosecond unless proc ident does not have '…
cboulay Mar 13, 2026
f8e91bc
Add some useful pycbsdk.cli utilities.
cboulay Mar 14, 2026
ef15cc6
PID-based liveness check of shmem owner.
cboulay Mar 14, 2026
4689ce6
Expose scaling factors through API
cboulay Mar 14, 2026
451b8f5
Added cli/configure_channels.py utility; removed configure_channels.cpp
cboulay Mar 14, 2026
923faf0
Fix includes for windows
cboulay Mar 14, 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
81 changes: 7 additions & 74 deletions .github/workflows/build_cbsdk.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
pull_request:
branches:
- master
- dev
release:
types: [published]

Expand All @@ -27,36 +28,22 @@ jobs:
fail-fast: false
matrix:
config:
- {name: "windows-x64", os: "windows-latest", cmake_extra: "-T v142,host=x86", arch: "AMD64"}
- {name: "windows-arm64", os: "windows-latest", cmake_extra: "-A ARM64", arch: "ARM64"}
- {name: "macOS-latest", os: "macOS-latest", arch: "auto"}
- {name: "jammy", os: "ubuntu-22.04", arch: "x86_64"}
- {name: "ubuntu-latest", os: "ubuntu-latest", arch: "x86_64"}
- {name: "bookworm-x64", os: "ubuntu-latest", container: "debian:bookworm", arch: "x86_64"}
- {name: "linux-arm64", os: "ubuntu-latest", arch: "aarch64"}

container: ${{ matrix.config.container }}
- {name: "windows-x64", os: "windows-latest", cmake_extra: "", arch: "AMD64"}
- {name: "macOS-latest", os: "macOS-latest", cmake_extra: "", arch: "auto"}
- {name: "linux-x64", os: "ubuntu-latest", cmake_extra: "", arch: "x86_64"}
- {name: "linux-arm64", os: "ubuntu-latest", cmake_extra: "", arch: "aarch64"}

steps:

- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6

- name: Set up QEMU for ARM emulation
if: matrix.config.arch == 'aarch64'
uses: docker/setup-qemu-action@v3
with:
platforms: arm64

- name: Install build dependencies (Debian container)
if: matrix.config.container
run: |
apt-get update
apt-get install -y \
cmake g++ make git \
python3 python3-pip python3-venv \
file lsb-release dpkg-dev

- name: Install ARM64 cross-compilation tools
if: matrix.config.arch == 'aarch64'
run: |
Expand Down Expand Up @@ -87,11 +74,8 @@ jobs:
SHLIBDEPS_ARG="-DCPACK_DEBIAN_PACKAGE_SHLIBDEPS=OFF"
fi
cmake -B build -S . \
-DCBSDK_BUILD_CBMEX=OFF \
-DCBSDK_BUILD_CBOCT=OFF \
-DCBSDK_BUILD_TEST=OFF \
-DCBSDK_BUILD_SAMPLE=OFF \
-DCBSDK_BUILD_TOOLS=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=${PWD}/install \
-DCPACK_PACKAGE_DIRECTORY=${PWD}/dist \
Expand All @@ -107,66 +91,15 @@ jobs:
cmake --build build --target package --config Release -j
fi

- name: Set up Python
if: "!matrix.config.container"
uses: actions/setup-python@v5
with:
python-version: '3.13'

- name: Install cibuildwheel
if: "!matrix.config.container"
run: python -m pip install cibuildwheel

- name: Build wheels
if: "(!startsWith(matrix.config.os, 'ubuntu-') || matrix.config.os == 'ubuntu-latest' || matrix.config.name == 'linux-arm64') && !matrix.config.container"
run: python -m cibuildwheel bindings/Python --output-dir bindings/Python/dist
env:
CIBW_BUILD: cp311-* cp312-* cp313-*
CIBW_SKIP: "*-musllinux_* *-win32 *-manylinux_i686"
CIBW_BUILD_VERBOSITY: 1
CIBW_ENVIRONMENT: CBSDK_INSTALL_PATH="${{ github.workspace }}/install" PIP_ONLY_BINARY=":all:"
CIBW_ARCHS: ${{ matrix.config.arch }}

- name: Linux - Prefix package with release name
if: startswith(matrix.config.os, 'ubuntu-') && !matrix.config.container && matrix.config.arch != 'aarch64'
run: |
pushd dist
temp="$(lsb_release -cs)"
for name in *
do
mv "$name" "$(echo $temp)-$name"
done
popd

- name: Debian - Prefix package with release name
if: matrix.config.container
run: |
pushd dist
for name in *
do
mv "$name" "bookworm-$name"
done
popd

- name: Upload C++ Packages
uses: actions/upload-artifact@v4
with:
name: cpp-packages-${{ matrix.config.name }}
path: dist/*
if-no-files-found: ignore

- name: Upload Python Wheels
uses: actions/upload-artifact@v4
if: "(!startsWith(matrix.config.os, 'ubuntu-') || matrix.config.os == 'ubuntu-latest' || matrix.config.name == 'linux-arm64') && !matrix.config.container"
with:
name: python-wheels-${{ matrix.config.name }}
path: bindings/Python/dist/*.whl
if-no-files-found: ignore

- name: Attach to Release
uses: softprops/action-gh-release@v1
if: github.event_name == 'release'
with:
files: |
dist/*
bindings/Python/dist/*.whl
files: dist/*
151 changes: 151 additions & 0 deletions .github/workflows/build_pycbsdk.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
name: Build pycbsdk Wheels

on:
workflow_dispatch:
push:
branches: [master]
paths:
- 'src/**'
- 'pycbsdk/**'
- '.github/workflows/build_pycbsdk.yml'
pull_request:
branches:
- master
- dev
paths:
- 'src/**'
- 'pycbsdk/**'
release:
types: [ published ]

permissions:
contents: read

defaults:
run:
shell: bash

jobs:
build-wheel:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- name: windows-x64
os: windows-latest
cmake_extra: ""
lib_pattern: "cbsdk.dll"
- name: linux-x64
os: ubuntu-latest
cmake_extra: ""
lib_pattern: "libcbsdk.so"
- name: macos-universal
os: macos-latest
cmake_extra: ""
lib_pattern: "libcbsdk.dylib"

steps:
- name: Checkout
uses: actions/checkout@v6
with:
fetch-depth: 0 # Full history needed for git describe and setuptools-scm

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.13'

- name: Install Python build tools
run: pip install build setuptools wheel setuptools-scm

- name: Build cbsdk shared library
run: |
cmake -B build -S . \
-DCBSDK_BUILD_SHARED=ON \
-DCBSDK_BUILD_TEST=OFF \
-DCBSDK_BUILD_SAMPLE=OFF \
-DCMAKE_BUILD_TYPE=Release \
${{ matrix.config.cmake_extra }}
cmake --build build --target cbsdk_shared --config Release

- name: Copy shared library to package
run: |
find build -name "${{ matrix.config.lib_pattern }}" -type f | head -1 | while read f; do
echo "Found: $f"
cp "$f" pycbsdk/src/pycbsdk/
done
ls -la pycbsdk/src/pycbsdk/

- name: Build wheel
run: |
cd pycbsdk
python -m build --wheel

- name: Repair wheel (Linux)
if: runner.os == 'Linux'
run: |
pip install auditwheel patchelf
# Detect the compatible manylinux tag for this toolchain
PLAT=$(auditwheel show pycbsdk/dist/*.whl 2>&1 | grep -oP 'manylinux_\d+_\d+_x86_64' | head -1)
if [ -z "$PLAT" ]; then
echo "auditwheel could not determine a manylinux tag, tagging as linux_x86_64"
PLAT="linux_x86_64"
fi
echo "Repairing wheel for platform: $PLAT"
auditwheel repair pycbsdk/dist/*.whl -w pycbsdk/wheelhouse/ --plat "$PLAT"
rm pycbsdk/dist/*.whl
mv pycbsdk/wheelhouse/*.whl pycbsdk/dist/

- name: Repair wheel (macOS)
if: runner.os == 'macOS'
run: |
pip install delocate
delocate-wheel -v pycbsdk/dist/*.whl

- name: Upload wheel
uses: actions/upload-artifact@v4
with:
name: pycbsdk-${{ matrix.config.name }}
path: pycbsdk/dist/*.whl

build-sdist:
name: Build source distribution
runs-on: ubuntu-latest
if: github.event_name == 'release'
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-python@v5
with:
python-version: '3.13'
- run: pip install build setuptools-scm
- run: cd pycbsdk && python -m build --sdist
- uses: actions/upload-artifact@v4
with:
name: pycbsdk-sdist
path: pycbsdk/dist/*.tar.gz

publish:
name: Publish to PyPI
needs: [build-wheel, build-sdist]
runs-on: ubuntu-latest
if: github.event_name == 'release'
permissions:
id-token: write # Required for trusted publishing (OIDC)
environment:
name: pypi
url: https://pypi.org/p/pycbsdk
steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: dist/
merge-multiple: true

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
packages-dir: dist/
48 changes: 0 additions & 48 deletions .github/workflows/publish-to-pypi.yml

This file was deleted.

6 changes: 4 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v6

- name: Configure CBSDK
run: |
Expand All @@ -46,4 +46,6 @@ jobs:
run: cmake --build build --config Release -j

- name: Run Tests
run: ctest --test-dir build --build-config Release --output-on-failure
run: >
ctest --test-dir build --build-config Release --output-on-failure
-E "^device\."
6 changes: 5 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,9 @@ Release/
**/cerelink/cbpyw.cpp
**/cerelink/*.dll
**/cerelink/__version__.py
*.ccf
!tests/ccf_raw.ccf
!tests/ccf_spk_1k.ccf

upstream
upstream
*/uv.lock
Loading
Loading