Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
56fd085
Use AltDSS/DSS C-API 0.14.5
PMeira Mar 29, 2024
55d9192
Build: add builder for Oddie module.
PMeira Mar 28, 2024
659211e
Use AltDSS/DSS C-API 0.14.6a1 to test Oddie builds
PMeira Jun 26, 2024
0043d14
UserModels: build 4 distinct DLLs for broader compatibility.
PMeira Jul 11, 2024
64a8348
enums: add NCIM to SolutionAlgorithms
PMeira Jul 17, 2024
5fed6c5
WIP/temp commit: add custom C extension to handle strings better
PMeira Jul 19, 2024
8beb819
Fix building on MSVC
PMeira Jul 20, 2024
f3fd450
Add list of string functions
PMeira Jul 20, 2024
574578c
WIP: all str and List[str] getters should work now.
PMeira Jul 21, 2024
e9f5d2e
Rename _fast module
PMeira Jul 21, 2024
f5b5e9d
WIP: start integrating directly with NumPy
PMeira Jul 22, 2024
ed88bd8
WIP: more getters (most)
PMeira Jul 22, 2024
0f4c1aa
_fast: Add OMIT_IF_ODDIE
PMeira Jul 23, 2024
0e50895
_fast: fix some OMIT_IF_ODDIE
PMeira Jul 23, 2024
2623087
_fast: replace OMIT_IF_ODDIE with IFNDEFs
PMeira Jul 23, 2024
2461437
_fast: omit more on Oddie
PMeira Jul 23, 2024
d25da1e
_fast: Oddie and general fixes
PMeira Jul 23, 2024
794b622
_fast: Add simple scalar setters
PMeira Jul 23, 2024
118b8ae
_fast: Add simple str setters
PMeira Jul 23, 2024
7c66868
_fast: add void functions
PMeira Jul 23, 2024
aea1bcd
_fast: add missing str check
PMeira Jul 23, 2024
e1ce052
_fast: booleans become int in C
PMeira Jul 23, 2024
01727d2
_fast: Use Pybuffers for strings
PMeira Jul 23, 2024
f98a69c
_fast: note about debug
PMeira Jul 23, 2024
a026fa0
_fast: Merge preprocessor blocks (cleaner code)
PMeira Jul 24, 2024
feccbaf
More _fast updates
PMeira Jul 25, 2024
e119481
_fast: More function types
PMeira Jul 25, 2024
0e879ee
_fast: Renames, updates
PMeira Jul 27, 2024
0187e92
_fastdss: reduce (compiled) code size
PMeira Jul 27, 2024
92de4c6
_fastdss: Initial comment
PMeira Jul 27, 2024
7edf12b
_fastdss: use `s#`, avoid Py_buffer due to API issues. Tests pending.
PMeira Jul 27, 2024
2e0e82e
enums: Update comment about flag ` InvControl9611`
PMeira Jul 27, 2024
e4d7e93
_fastdss: Separate complex from real outputs (fix)
PMeira Jul 27, 2024
58a87e8
enums: Typo
PMeira Jul 27, 2024
467bfa8
_fastdss: Fixes, refactoring and renames
PMeira Jul 29, 2024
8e5b4c8
_fastdss: Release the GIL when running the C functions
PMeira Jul 29, 2024
36482de
Enums: Add `MonitorHeader` to `DSSCompatFlags`.
PMeira Aug 13, 2024
4a82e77
Enums: Add `InvControlDeltaV` to `DSSCompatFlags`.
PMeira Aug 14, 2024
3b262c6
_fastdss: Update GR pointers for our C API v0.15
PMeira Aug 22, 2024
25c4cbe
API: include new functions
PMeira Sep 1, 2024
1bcd5e1
FastDSS: adjust BusNames arguments
PMeira Sep 11, 2024
045b282
FastDSS: enable Reactors and PDElements for Oddie
PMeira Oct 6, 2024
a17e9db
FastDSS: better compatibility with Python 3.7
PMeira Oct 7, 2024
fe1d2a4
FastDSS: set `py_limited_api=True` (generate abi3 files)
PMeira Oct 8, 2024
4b3b864
FastDSS: update the header name
PMeira Oct 8, 2024
24f803b
Update name/path for header files
PMeira Oct 8, 2024
29e1279
Update imports and `DSS_Start`
PMeira Oct 21, 2024
9500194
C extensions updated to use the new-style API
PMeira Dec 10, 2024
fb7a331
Add DSS_Start to FastDSS
PMeira Dec 12, 2024
652817d
Add new `oddie` submodule
PMeira Dec 12, 2024
c07c8e2
FastDSS: set the attributes to None for functions that are not implem…
PMeira Dec 14, 2024
d31f93d
enums: new flag DSSCompatFlags.PermissiveProperties
PMeira Dec 15, 2024
151e702
FastDSS: fix initialization on C extension.
PMeira Dec 15, 2024
87ea39a
FastDSS: handle AdvancedTypes
PMeira Dec 15, 2024
857cdfa
FastDSS: respect order and tweak handling of complex numbers
PMeira Dec 15, 2024
921b0cb
Clean-up
PMeira Dec 16, 2024
2262a36
FastDSS: tweak simple complex; make int arrays use C order.
PMeira Dec 16, 2024
265a039
FastDSS: fix subtle issue on ODD.py
PMeira Dec 18, 2024
4d9531b
Correct filenames according to the OS.
PMeira Feb 25, 2025
03ffed6
FastDSS: move common code to DSS C-API
PMeira Apr 23, 2025
78dcb44
Add CktElement.YprimOrder
PMeira May 2, 2025
4e52b8e
Incremental updates
PMeira May 9, 2025
a190960
Updates to license, dependencies, CI, and `pyproject.toml`.
PMeira Nov 7, 2025
5c2f289
FastDSS: initial/experimental support for free-threading builds
PMeira Nov 12, 2025
18b2fb9
Update FastDSS structs (classic Fuses API)
PMeira Feb 12, 2026
93c047d
CI: general updates for 2026; add ARM builds.
PMeira Feb 12, 2026
8559ef4
Revert "Update FastDSS structs (classic Fuses API)"
PMeira Feb 14, 2026
4885c34
Enums: add new `BatchOperation`; include `Broadcast` in `SetterFlags`.
PMeira Feb 15, 2026
51b404d
Use AltDSS/DSS C-API 0.15.0b1
PMeira Feb 16, 2026
0b6159c
Oddie: fix filenames across platforms.
PMeira Feb 18, 2026
e3faceb
FastDSS: adjust compilation on Windows.
PMeira Feb 18, 2026
8f2029c
CI/Builds: various updates
PMeira Feb 18, 2026
171f3ff
win32/x86: Pack the CAPI struct; skip LIB/PDB files instead of just DLL.
PMeira Feb 19, 2026
e6352dc
AltDSS/DSS C-API 0.15.0b3
PMeira Feb 20, 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
209 changes: 141 additions & 68 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: Builds
# TODO: generalize steps

env:
DSS_CAPI_TAG: '0.14.4'
DSS_CAPI_TAG: '0.15.0b3'
ARTIFACTS_FOLDER: '${{ github.workspace }}/artifacts'

on:
Expand All @@ -12,87 +12,96 @@ on:
push:

jobs:
build_linux_x64:
name: 'Linux x64'
runs-on: ubuntu-latest
build_linux:
name: 'Linux ${{ matrix.arch }} (${{ matrix.manylinux-base }})'
continue-on-error: false
strategy:
matrix:
container-image: [
'quay.io/pypa/manylinux_2_28_x86_64',
'quay.io/pypa/manylinux2014_x86_64'
]
container:
image: ${{ matrix.container-image }}
include:
- arch: x64
docker_image: 'quay.io/pypa/manylinux_2_28_x86_64'
dss_extensions_linux32: ''
gh_image: ubuntu-latest
manylinux-base: 'manylinux_2_28'
conda_subdir: 'linux-64'

- arch: x64
docker_image: 'quay.io/pypa/manylinux2014_x86_64'
dss_extensions_linux32: ''
gh_image: ubuntu-latest
manylinux-base: 'manylinux2014'
conda_subdir: 'linux-64'

- arch: x86
docker_image: 'quay.io/pypa/manylinux_2_34_i686'
dss_extensions_linux32: linux32
gh_image: ubuntu-latest
manylinux-base: 'manylinux2014'
conda_subdir: 'linux-32'

- arch: arm64
docker_image: 'quay.io/pypa/manylinux_2_28_aarch64'
dss_extensions_linux32: ''
gh_image: ubuntu-24.04-arm
manylinux-base: 'manylinux_2_28'
conda_subdir: 'linux-aarch64'

- arch: arm64
docker_image: 'quay.io/pypa/manylinux2014_aarch64'
dss_extensions_linux32: ''
gh_image: ubuntu-24.04-arm
manylinux-base: 'manylinux2014'
conda_subdir: 'linux-aarch64'

runs-on: ${{ matrix.gh_image }}
env:
CONDA_SUBDIR: 'linux-64'
CONDA_SUBDIR: '${{ matrix.conda_subdir }}'
DSS_CAPI_PATH: '${{ github.workspace }}/dss_capi'
CONDA: "/opt/miniconda/"
DOCKER_IMAGE: '${{ matrix.docker_image }}'
steps:
- name: 'Checkout'
run: |
git clone $GITHUB_SERVER_URL/$GITHUB_REPOSITORY dss_python_backend
cd dss_python_backend
git checkout $GITHUB_SHA
- name: 'Setup Docker'
run: |
docker pull $DOCKER_IMAGE
- name: 'Download/extract DSS C-API binaries'
run: |
curl -s -L https://github.com/dss-extensions/dss_capi/releases/download/${DSS_CAPI_TAG}/dss_capi_${DSS_CAPI_TAG}_linux_x64.tar.gz -o dss_capi.tar.gz
curl -s -L https://github.com/dss-extensions/dss_capi/releases/download/${DSS_CAPI_TAG}/dss_capi_${DSS_CAPI_TAG}_linux_${{ matrix.arch }}.tar.gz -o dss_capi.tar.gz
tar zxf dss_capi.tar.gz
cd dss_python_backend/dss_python_backend
- name: Build wheel
run: |
mkdir -p artifacts
mkdir -p artifacts_raw
bash dss_python_backend/ci/build_linux.sh x64
docker run -e GITHUB_SHA -e GITHUB_REF -e DSS_CAPI_PATH=/build/dss_capi -v "${PWD}:/build" -w /build $DOCKER_IMAGE ${{ matrix.dss_extensions_linux32}} bash /build/dss_python_backend/ci/build_linux.sh ${{ matrix.arch }}
ls -lh dss_python_backend/dss_python_backend
# - name: Build conda packages
# continue-on-error: true
# continue-on-error: false
# run: |
# bash dss_python_backend/ci/build_conda.sh
- name: Try installing the wheel
run: bash dss_python_backend/ci/test_wheel.sh
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
uses: "actions/upload-artifact@v4"
with:
name: 'packages'
name: 'packages-linux_${{ matrix.arch }}-${{ matrix.manylinux-base }}'
path: '${{ github.workspace }}/artifacts'

build_linux_x86:
name: 'Linux x86'
runs-on: ubuntu-latest
env:
CONDA_SUBDIR: 'linux-32'
DOCKER_IMAGE: 'pmeira/manylinux_wheel_fpc322_i686'
steps:
- name: 'Checkout'
run: |
git clone $GITHUB_SERVER_URL/$GITHUB_REPOSITORY dss_python_backend
cd dss_python_backend
git checkout $GITHUB_SHA
- name: 'Setup Docker'
run: |
docker pull $DOCKER_IMAGE
- name: 'Download/extract DSS C-API binaries'
run: |
curl -s -L https://github.com/dss-extensions/dss_capi/releases/download/${DSS_CAPI_TAG}/dss_capi_${DSS_CAPI_TAG}_linux_x86.tar.gz -o dss_capi.tar.gz
tar zxf dss_capi.tar.gz
cd dss_python_backend/dss_python_backend
- name: Build wheel
- name: Try installing the wheel
continue-on-error: ${{ matrix.arch == 'x86' }}
run: |
mkdir -p artifacts
mkdir -p artifacts_raw
docker run -e GITHUB_SHA -e GITHUB_REF -e DSS_CAPI_PATH=/build/dss_capi -v "${PWD}:/build" -w /build $DOCKER_IMAGE bash /build/dss_python_backend/ci/build_linux.sh x86
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
with:
name: 'packages'
path: '${{ github.workspace }}/artifacts'
docker run -e GITHUB_SHA -e GITHUB_REF -e DSS_CAPI_PATH=/build/dss_capi -v "${PWD}:/build" -w /build $DOCKER_IMAGE ${{ matrix.dss_extensions_linux32}} bash /build/dss_python_backend/ci/test_wheel.sh

build_macos_x64:
name: 'macOS x64'
runs-on: 'macos-11'
continue-on-error: false
runs-on: 'macos-15-intel'
env:
DSS_CAPI_PATH: '${{ github.workspace }}/dss_capi'
#SDKROOT: '${{ github.workspace }}/MacOSX10.13.sdk'
PYTHON: python3
PYTHON: python
MACOSX_DEPLOYMENT_TARGET: "11.0"
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -107,30 +116,47 @@ jobs:
# run: |
# curl -s -L https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.13.sdk.tar.xz -o macOSsdk.tar.xz
# tar xf macOSsdk.tar.xz
- name: 'Prepare Python'
uses: actions/setup-python@v6
with:
python-version: '3.11'
cache: 'pip'
- name: Prepare virtual environment
run: |
$PYTHON -m venv buildvenv
- name: Build wheel
run: |
source buildvenv/bin/activate
bash dss_python_backend/ci/build_wheel.sh
# - name: Build conda packages
# continue-on-error: true
# continue-on-error: false
# run: |
# sudo chown -R $UID $CONDA
# bash dss_python_backend/ci/build_conda.sh
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
uses: "actions/upload-artifact@v4"
with:
name: 'packages'
name: 'packages-darwin_x64'
path: '${{ github.workspace }}/artifacts'
- name: Try installing the wheel
continue-on-error: true
shell: bash
run: |
python -m pip install artifacts/dss_python_backend-*.whl
python -c 'from dss_python_backend import lib, ffi; lib.DSS_NewCircuit(ffi.NULL, b"test123"); assert ffi.string(lib.Circuit_Get_Name(ffi.NULL)) == b"test123"'
python -c 'from dss_python_backend import _fastdss'

build_macos_arm64:
name: 'macOS ARM64'
runs-on: 'macos-11'
continue-on-error: false
runs-on: 'macos-15'
env:
DSS_CAPI_PATH: '${{ github.workspace }}/dss_capi'
# SDKROOT: '${{ github.workspace }}/MacOSX10.13.sdk'
PYTHON: python3
PYTHON: python
_PYTHON_HOST_PLATFORM: macosx-11.0-arm64
ARCHFLAGS: '-arch arm64'

MACOSX_DEPLOYMENT_TARGET: "11.0"
steps:
- uses: actions/checkout@v3
with:
Expand All @@ -145,23 +171,40 @@ jobs:
# run: |
# curl -s -L https://github.com/phracker/MacOSX-SDKs/releases/download/11.3/MacOSX10.13.sdk.tar.xz -o macOSsdk.tar.xz
# tar xf macOSsdk.tar.xz
- name: 'Prepare Python'
uses: actions/setup-python@v6
with:
python-version: '3.11'
cache: 'pip'
- name: Prepare virtual environment
run: |
python -m venv buildvenv
- name: Build wheel
run: |
source buildvenv/bin/activate
bash dss_python_backend/ci/build_wheel.sh
# - name: Build conda packages
# continue-on-error: true
# continue-on-error: false
# run: |
# sudo chown -R $UID $CONDA
# bash dss_python_backend/ci/build_conda.sh
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
uses: "actions/upload-artifact@v4"
with:
name: 'packages'
name: 'packages-darwin_arm64'
path: '${{ github.workspace }}/artifacts'
- name: Try installing the wheel
continue-on-error: true
shell: bash
run: |
python -m pip install artifacts/dss_python_backend-*.whl
python -c 'from dss_python_backend import lib, ffi; lib.DSS_NewCircuit(ffi.NULL, b"test123"); assert ffi.string(lib.Circuit_Get_Name(ffi.NULL)) == b"test123"'
python -c 'from dss_python_backend import _fastdss'

build_win_x64:
name: 'Windows x64'
runs-on: windows-2019
continue-on-error: false
runs-on: windows-2022
env:
CONDA_SUBDIR: 'win-64'
DSS_CAPI_PATH: '${{ github.workspace }}\dss_capi'
Expand All @@ -182,19 +225,28 @@ jobs:
run: |
bash dss_python_backend/ci/build_wheel.sh
# - name: Build conda packages
# continue-on-error: true
# continue-on-error: false
# shell: bash
# run: |
# bash dss_python_backend/ci/build_conda.sh
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
uses: "actions/upload-artifact@v4"
with:
name: 'packages'
name: 'packages-win_x64'
path: '${{ github.workspace }}/artifacts'
- name: Try installing the wheel
continue-on-error: true
shell: bash
run: |
python -m pip install artifacts/dss_python_backend-*.whl
python -c "from dss_python_backend import lib, ffi; lib.DSS_NewCircuit(ffi.NULL, b'test123'); assert ffi.string(lib.Circuit_Get_Name(ffi.NULL)) == b'test123'"
python -c "from dss_python_backend import _fastdss"


build_win_x86:
name: 'Windows x86'
runs-on: windows-2019
continue-on-error: false
runs-on: windows-2022
env:
CONDA_SUBDIR: 'win-32'
DSS_CAPI_PATH: '${{ github.workspace }}\dss_capi'
Expand All @@ -204,9 +256,11 @@ jobs:
with:
fetch-depth: 0
path: 'dss_python_backend'
- uses: actions/setup-python@v3
- name: 'Setup Python'
uses: actions/setup-python@v6
with:
python-version: '3.8'
python-version: '3.11'
cache: 'pip'
architecture: 'x86'
- name: 'Download/extract DSS C-API binaries'
shell: cmd
Expand All @@ -219,8 +273,27 @@ jobs:
run: |
bash dss_python_backend/ci/build_wheel.sh
- name: 'Upload artifacts'
uses: "actions/upload-artifact@v3"
uses: "actions/upload-artifact@v4"
with:
name: 'packages'
name: 'packages-win_x86'
path: '${{ github.workspace }}/artifacts'
- name: Try installing the wheel
continue-on-error: true
shell: bash
run: |
python -m pip install artifacts/dss_python_backend-*.whl
python -c "from dss_python_backend import lib, ffi; lib.DSS_NewCircuit(ffi.NULL, b'test123'); assert ffi.string(lib.Circuit_Get_Name(ffi.NULL)) == b'test123'"
python -c "from dss_python_backend import _fastdss"

merge:
name: 'Merge build artifacts'
continue-on-error: false
runs-on: ubuntu-latest
needs: [build_linux, build_macos_arm64, build_macos_x64, build_win_x64, build_win_x86]
steps:
- name: Merge Artifacts
uses: actions/upload-artifact/merge@v4
with:
name: dss_python_backend-builds
pattern: packages-*
# delete-merged: true
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -126,3 +126,5 @@ dss_python_backend/**/*.hpp
*.dbl
*.sng
*.pdb

dss_python_backend/include
4 changes: 2 additions & 2 deletions LICENSE → LICENSE.BSD3
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
BSD 3-Clause License

Copyright (c) 2017-2023, Paulo Meira
Copyright (c) 2017-2023, DSS Python contributors
Copyright (c) 2017-2026, Paulo Meira
Copyright (c) 2017-2026, Contributors to DSS-Extensions
All rights reserved.

Redistribution and use in source and binary forms, with or without
Expand Down
Loading