Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
dd09ba7
Rename the flag ENABLE_GSL into SZ3_ENABLE_GSL (#100)
gsylvand Jul 16, 2025
5d2fd26
SZ3.3 (#94)
ayzk Aug 6, 2025
9bb82da
update test
ayzk Aug 12, 2025
9153793
fix bug in MDZ
ayzk Sep 11, 2025
7756454
add stale action
ayzk Sep 11, 2025
52063dc
fix bug in MDZ
ayzk Sep 12, 2025
6d6329f
Merge remote-tracking branch 'origin/master'
ayzk Sep 12, 2025
635ddc3
3.3 bugfix (#104)
ayzk Sep 24, 2025
ad397e3
update error text
ayzk Sep 27, 2025
2d25881
fix openmp bug (#105)
ayzk Sep 28, 2025
a53c8e7
fix cmake issue
ayzk Oct 21, 2025
d096439
brand new pysz package v1.0.0
ayzk Oct 21, 2025
f7f6989
v3.3.1 (#106)
ayzk Oct 23, 2025
bc05561
update readme
ayzk Oct 23, 2025
6050ca2
bugfix for hdf5 on windows
ayzk Oct 24, 2025
bcdd1cf
Update HDF5 filter for Windows (#107)
ayzk Oct 24, 2025
b6b2a3c
big-endian and hdf5 (#109)
ayzk Oct 29, 2025
f9b16fb
Bio Algorithms (#115)
ayzk Nov 11, 2025
a32faab
Add SZ3Reader ParaView plugin (#112)
guoxiliu Nov 11, 2025
0ebe6fa
fix bug in compressed format (#116)
ayzk Nov 20, 2025
a140f75
Bounds-check decompression against corrupted input (ClickHouse)
alexey-milovidov Jun 29, 2026
dad7d23
Bounds-check SZ_decompress and Config::load against corrupted input (…
alexey-milovidov Jun 29, 2026
b461fe1
Validate SZ3 config dimensions are consistent with the element count …
alexey-milovidov Jun 29, 2026
cab0a29
Fix off-by-one in Config::load bounds check (ClickHouse)
alexey-milovidov Jun 29, 2026
f67d839
Bounds-check the lossless (zstd) decompression path (ClickHouse)
alexey-milovidov Jun 29, 2026
3f9476b
Fix undefined behavior in Huffman encoder for single-symbol (constant…
alexey-milovidov Jun 30, 2026
001cc52
Add SZ_load_config to parse the config without dispatching (ClickHouse)
alexey-milovidov Jun 30, 2026
d555d89
Bound the quantization index count in the generic decompressor (Click…
alexey-milovidov Jun 30, 2026
acf7d85
Bound index recovery in the quantizer and predictors (ClickHouse)
alexey-milovidov Jun 30, 2026
e33ddad
Bound Huffman tree reconstruction against corrupted input (ClickHouse)
alexey-milovidov Jun 30, 2026
a4b1a72
Bound the lossless decompression buffer against the declared size (Cl…
alexey-milovidov Jun 30, 2026
e37a8d7
Bound the generic lossy-path inner lossless buffer (ClickHouse)
alexey-milovidov Jun 30, 2026
c67548e
Fail closed when the lossless frame does not produce the declared siz…
alexey-milovidov Jun 30, 2026
f804e9f
Harden the SZ3 lossy decompression path against corrupted input (Clic…
alexey-milovidov Jun 30, 2026
596b59b
Harden SZ3 decompression: fix pointer-overflow UB and a Huffman over-…
alexey-milovidov Jul 1, 2026
7fd621c
Fix UBSan: guard the float-to-int quantization cast against NaN/Inf/o…
groeneai Jul 15, 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
108 changes: 108 additions & 0 deletions .github/workflows/build-pysz-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@
name: Build pysz (TestPyPI)

on:
push:
tags:
- 'pysz-test-v*' # Trigger on test tags like pysz-test-v1.0.2
workflow_dispatch: # Allow manual trigger

jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
arch: x86_64
- os: macos-13 # Intel
arch: x86_64
- os: macos-latest # Apple Silicon
arch: arm64
- os: windows-latest
arch: AMD64

steps:
- uses: actions/checkout@v4

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

- name: Install cibuildwheel
run: pip install cibuildwheel

- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
working-directory: tools/pysz
env:
# Build for Python 3.8-3.13
CIBW_BUILD: cp38-* cp39-* cp310-* cp311-* cp312-* cp313-*

# Use manylinux_2_28 (AlmaLinux 8) instead of manylinux2014 (CentOS 7)
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28

# Skip 32-bit builds and musllinux
CIBW_SKIP: "*-win32 *-manylinux_i686 *-musllinux_*"

# Build only for the current architecture
CIBW_ARCHS_LINUX: x86_64
CIBW_ARCHS_MACOS: ${{ matrix.arch }}
CIBW_ARCHS_WINDOWS: AMD64

# Install system dependencies before building
CIBW_BEFORE_ALL_LINUX: yum install -y --nogpgcheck cmake git ninja-build
CIBW_BEFORE_ALL_MACOS: brew install cmake git ninja

# Test the built wheels
CIBW_TEST_REQUIRES: pytest numpy
CIBW_TEST_COMMAND: "pytest {project}/tests -v"

- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.arch }}
path: tools/pysz/wheelhouse/*.whl

build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

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

- name: Install build dependencies
run: pip install build

- name: Build sdist
run: python -m build --sdist
working-directory: tools/pysz

- uses: actions/upload-artifact@v4
with:
name: sdist
path: tools/pysz/dist/*.tar.gz

upload_testpypi:
name: Upload to TestPyPI
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/pysz-test-v')

steps:
- uses: actions/download-artifact@v4
with:
path: dist
pattern: '*'
merge-multiple: true

- name: Publish to TestPyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.TEST_PYPI_API_TOKEN }}
repository-url: https://test.pypi.org/legacy/
packages-dir: dist/
107 changes: 107 additions & 0 deletions .github/workflows/build-pysz.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
name: Build pysz

on:
push:
tags:
- 'pysz-v*' # Trigger on pysz tags like pysz-v1.0.2
workflow_dispatch: # Allow manual trigger

jobs:
build_wheels:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
arch: x86_64
- os: macos-13 # Intel
arch: x86_64
- os: macos-latest # Apple Silicon
arch: arm64
- os: windows-latest
arch: AMD64

steps:
- uses: actions/checkout@v5

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

- name: Install cibuildwheel
run: pip install cibuildwheel

- name: Build wheels
run: python -m cibuildwheel --output-dir wheelhouse
working-directory: tools/pysz
env:
# Build for Python 3.8-3.13
CIBW_BUILD: cp38-* cp39-* cp310-* cp311-* cp312-* cp313-*

# Use manylinux_2_28 (AlmaLinux 8) instead of manylinux2014 (CentOS 7)
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28

# Skip 32-bit builds and musllinux
CIBW_SKIP: "*-win32 *-manylinux_i686 *-musllinux_*"

# Build only for the current architecture
CIBW_ARCHS_LINUX: x86_64
CIBW_ARCHS_MACOS: ${{ matrix.arch }}
CIBW_ARCHS_WINDOWS: AMD64

# Install system dependencies before building
CIBW_BEFORE_ALL_LINUX: yum install -y --nogpgcheck cmake git ninja-build
CIBW_BEFORE_ALL_MACOS: brew install cmake git ninja

# Test the built wheels
CIBW_TEST_REQUIRES: pytest numpy
CIBW_TEST_COMMAND: "pytest {project}/tests -v"

- uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix.os }}-${{ matrix.arch }}
path: tools/pysz/wheelhouse/*.whl

build_sdist:
name: Build source distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5

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

- name: Install build dependencies
run: pip install build

- name: Build sdist
run: python -m build --sdist
working-directory: tools/pysz

- uses: actions/upload-artifact@v4
with:
name: sdist
path: tools/pysz/dist/*.tar.gz

upload_pypi:
name: Upload to PyPI
needs: [build_wheels, build_sdist]
runs-on: ubuntu-latest
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/pysz-v')

steps:
- uses: actions/download-artifact@v4
with:
path: dist
pattern: '*'
merge-multiple: true

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
packages-dir: dist/
Loading