From ca4be1afcc77cd6f557df9f7d241cc68191e8d65 Mon Sep 17 00:00:00 2001 From: Vadym Doroshenko Date: Wed, 6 May 2026 11:55:50 +0200 Subject: [PATCH 1/8] Bump version to 1.1.5 --- pyproject.toml | 4 ++-- setup.cfg | 4 ++-- setup.py | 10 +++++----- src/pydp/__init__.py | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 11e9fb69..fdd0ea1d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -6,7 +6,7 @@ requires = [ [tool.poetry] name = "pydp" -version = "1.1.5.rc11" +version = "1.1.5" description = "" authors = [ "Chinmay Shah ", @@ -14,7 +14,7 @@ authors = [ license = "Apache-2.0" [tool.poetry.dependencies] -python = "^3.9" +python = "^3.11" [tool.poetry.dev-dependencies] black = "*" diff --git a/setup.cfg b/setup.cfg index 71884547..514c8c7a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 1.1.5.rc11 +current_version = 1.1.5 commit = True tag = True @@ -18,7 +18,7 @@ replace = __version__ = "{new_version}" max-line-length = 120 [mypy] -python_version = 3.9 +python_version = 3.11 ignore_missing_imports = True [tool:pytest] diff --git a/setup.py b/setup.py index 7d6f62be..b4bf6f6b 100755 --- a/setup.py +++ b/setup.py @@ -65,10 +65,10 @@ def read(fname): "Intended Audience :: Developers", "Natural Language :: English", "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ], cmdclass={"build_ext": Build}, description="Python API for Google's Differential Privacy library", @@ -86,9 +86,9 @@ def read(fname): }, packages=find_packages(where="src", exclude=["tests"]), setup_requires=setup_requirements, - python_requires=">=3.8", + python_requires=">=3.11", test_suite="tests", url="https://github.com/OpenMined/PyDP", - version="1.1.5.rc11", + version="1.1.5", zip_safe=False, ) diff --git a/src/pydp/__init__.py b/src/pydp/__init__.py index a1586e99..fb9324c9 100644 --- a/src/pydp/__init__.py +++ b/src/pydp/__init__.py @@ -7,4 +7,4 @@ from pydp import util from pydp import ml -__version__ = "1.1.5.rc11" +__version__ = "1.1.5" From 2665a9ee6e027c595aecfbdf5f4fbe16ab75365c Mon Sep 17 00:00:00 2001 From: Vadym Doroshenko Date: Wed, 6 May 2026 12:04:45 +0200 Subject: [PATCH 2/8] fixes --- .github/workflows/tests.yml | 4 ++-- .github/workflows/versions.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index fca627c9..d3ffdd07 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -24,7 +24,7 @@ jobs: strategy: max-parallel: 1 matrix: - python-version: ["3.10"] + python-version: ["3.11"] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} @@ -41,7 +41,7 @@ jobs: run: | mypy src tests - name: Run clang-format style check for C/C++ programs. - uses: jidicula/clang-format-action@v3.3.0 + uses: jidicula/clang-format-action@v4.11.0 with: clang-format-version: "11" check-path: "/src/bindings/" diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index 911bb235..b0916004 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -22,7 +22,7 @@ jobs: strategy: max-parallel: 1 matrix: - python-version: ["3.10"] + python-version: ["3.11"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} From 4050b86c743ed215fadc08f29bda324e02a5fa04 Mon Sep 17 00:00:00 2001 From: Vadym Doroshenko Date: Fri, 8 May 2026 07:14:15 +0200 Subject: [PATCH 3/8] fix --- .github/workflows/tests.yml | 7 ++++--- .github/workflows/versions.yml | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d3ffdd07..171fb2e3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -52,10 +52,11 @@ jobs: needs: [linting] strategy: fail-fast: false - max-parallel: 3 + max-parallel: 12 matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.10", 3.11, 3.12, 3.13, 3.14] + # TODO: fix for Windows. + os: [ubuntu-latest, macos-latest] + python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - uses: actions/checkout@v2 diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index b0916004..d0cf9b41 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -52,7 +52,7 @@ jobs: fail-fast: false max-parallel: 12 matrix: - # TODO: fix for Mac and Windows. + # TODO: fix for Windows. os: [ubuntu-latest, macos-latest] python-version: ["3.11", "3.12", "3.13", "3.14"] From 8c9541424abe3b72f9d0cbd72c0e75787558e594 Mon Sep 17 00:00:00 2001 From: Vadym Doroshenko Date: Fri, 8 May 2026 10:05:12 +0200 Subject: [PATCH 4/8] fixes --- .github/workflows/tests.yml | 4 ++-- .github/workflows/versions.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 171fb2e3..93e69d95 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -26,9 +26,9 @@ jobs: matrix: python-version: ["3.11"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install python dependencies diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index d0cf9b41..13d1d2ca 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -47,7 +47,7 @@ jobs: build: runs-on: ${{ matrix.os }} - # needs: [linting] # don't require linting to pass + needs: [linting] # don't require linting to pass strategy: fail-fast: false max-parallel: 12 From 73c3cd4af45e3a91ef66e543e86e9e6aca59c225 Mon Sep 17 00:00:00 2001 From: Vadym Doroshenko Date: Fri, 8 May 2026 10:13:10 +0200 Subject: [PATCH 5/8] fix --- .github/workflows/versions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml index 13d1d2ca..5a6b543c 100644 --- a/.github/workflows/versions.yml +++ b/.github/workflows/versions.yml @@ -149,7 +149,7 @@ jobs: - name: Build PyDP macOS if: runner.os == 'macOS' run: | - poetry run python setup.py build bdist_wheel + poetry run python setup.py build bdist_wheel --plat-name macosx_10_14_x86_64 - name: Build PyDP Linux / Windows if: runner.os != 'macOS' From c9f919176077627ee4228423c8199dcbf586c8f3 Mon Sep 17 00:00:00 2001 From: Vadym Doroshenko Date: Fri, 8 May 2026 10:49:49 +0200 Subject: [PATCH 6/8] fix --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 93e69d95..adf76ed0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -124,7 +124,7 @@ jobs: - name: Build PyDP macOS if: runner.os == 'macOS' run: | - poetry run python setup.py build bdist_wheel --plat-name macosx_10_14_x86_64 + poetry run python setup.py build bdist_wheel - name: Build PyDP Linux / Windows if: runner.os != 'macOS' From c17780257bf3023d030178e7ada9d4ef9f815d38 Mon Sep 17 00:00:00 2001 From: Vadym Doroshenko Date: Fri, 8 May 2026 13:19:41 +0200 Subject: [PATCH 7/8] fix --- .github/workflows/tests.yml | 50 ++++++++----------------------------- 1 file changed, 11 insertions(+), 39 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index adf76ed0..7202e9ed 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,9 +1,11 @@ name: Tests on: + schedule: + - cron: "30 20 * * *" # 7:30pm UTC + workflow_dispatch: pull_request: paths: - - "*.bazel" - "*.cpp" - "*.c" - "*.cc" @@ -45,7 +47,7 @@ jobs: with: clang-format-version: "11" check-path: "/src/bindings/" - fallback-style: "Google" # optional + fallback-style: "Google" build: runs-on: ${{ matrix.os }} @@ -54,47 +56,23 @@ jobs: fail-fast: false max-parallel: 12 matrix: - # TODO: fix for Windows. os: [ubuntu-latest, macos-latest] python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 with: submodules: true - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - - name: Setup msbuild Windows - if: runner.os == 'Windows' - uses: microsoft/setup-msbuild@v1.0.2 - - - name: Fix Paths Windows - # Make sure that tar.exe from Git is used not from Windows - if: runner.os == 'Windows' - run: | - @("C:\Program Files\Git\usr\bin") + (Get-Content $env:GITHUB_PATH) | Set-Content $env:GITHUB_PATH -Encoding utf8 - - - name: Build Google DP Unix - if: runner.os != 'Windows' + - name: Build Google DP timeout-minutes: 20 run: | - bash build_PyDP.sh - - - name: Build Google DP Windows - if: runner.os == 'Windows' - timeout-minutes: 20 - run: | - $PYTHONHOME=$(python -c 'import sys; print(sys.executable);').replace('\', '/') - $PYTHONPATH=$(python -c "import sys; print([x for x in sys.path if 'site-packages' in x][0]);").replace('\', '/') - echo "PYTHONHOME=$PYTHONHOME" - echo "PYTHONPATH=$PYTHONPATH" - echo "Running: ${{ matrix.os }}" - bazel.exe --output_base ./bazel-cache build src/python:pydp --config windows --verbose_failures --action_env=PYTHON_BIN_PATH=$PYTHONHOME --action_env=PYTHON_LIB_PATH=$PYTHONPATH - copy ./bazel-bin/src/bindings/_pydp.so ./src/pydp/_pydp.pyd + bash build_PyDP.sh - name: Upgrade pip run: | @@ -107,7 +85,7 @@ jobs: - name: Get poetry cache dir id: poetry-cache run: | - echo "::set-output name=dir::$(poetry config cache-dir)" + echo "dir=$(poetry config cache-dir)" >> $GITHUB_OUTPUT - name: poetry cache uses: actions/cache@v4 @@ -126,21 +104,15 @@ jobs: run: | poetry run python setup.py build bdist_wheel - - name: Build PyDP Linux / Windows - if: runner.os != 'macOS' + - name: Build PyDP Linux + if: runner.os == 'Linux' run: | poetry run python setup.py build bdist_wheel - name: Install Wheel Unix - if: runner.os != 'Windows' run: | pip install `find -L ./ -name "*.whl"` - - name: Install Wheel Windows - if: runner.os == 'Windows' - run: | - Get-ChildItem -Path ./ -Filter "*.whl" -Recurse -File | foreach {pip install $_.FullName} - - name: Import Package run: | python -c "import pydp; print(pydp.__version__)" From 482bf6effd6a6d864789cc83fa6dbae73655a2a5 Mon Sep 17 00:00:00 2001 From: Vadym Doroshenko Date: Fri, 8 May 2026 16:57:20 +0200 Subject: [PATCH 8/8] merge --- .github/workflows/tests.yml | 36 +++---- .github/workflows/versions.yml | 175 --------------------------------- 2 files changed, 18 insertions(+), 193 deletions(-) delete mode 100644 .github/workflows/versions.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 7202e9ed..7742eb3e 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,9 +1,9 @@ name: Tests on: - schedule: - - cron: "30 20 * * *" # 7:30pm UTC - workflow_dispatch: + schedule: + - cron: "30 20 * * *" # 7:30pm UTC + workflow_dispatch: pull_request: paths: - "*.cpp" @@ -26,11 +26,11 @@ jobs: strategy: max-parallel: 1 matrix: - python-version: ["3.11"] + python-version: ["3.11"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install python dependencies @@ -43,36 +43,36 @@ jobs: run: | mypy src tests - name: Run clang-format style check for C/C++ programs. - uses: jidicula/clang-format-action@v4.11.0 + uses: jidicula/clang-format-action@v4.11.0 with: clang-format-version: "11" check-path: "/src/bindings/" - fallback-style: "Google" + fallback-style: "Google" build: runs-on: ${{ matrix.os }} needs: [linting] strategy: fail-fast: false - max-parallel: 12 + max-parallel: 12 matrix: - os: [ubuntu-latest, macos-latest] - python-version: ["3.11", "3.12", "3.13", "3.14"] + os: [ubuntu-latest, macos-latest] + python-version: ["3.11", "3.12", "3.13", "3.14"] steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v4 with: submodules: true - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - - name: Build Google DP + - name: Build Google DP timeout-minutes: 20 run: | - bash build_PyDP.sh + bash build_PyDP.sh - name: Upgrade pip run: | @@ -85,7 +85,7 @@ jobs: - name: Get poetry cache dir id: poetry-cache run: | - echo "dir=$(poetry config cache-dir)" >> $GITHUB_OUTPUT + echo "dir=$(poetry config cache-dir)" >> $GITHUB_OUTPUT - name: poetry cache uses: actions/cache@v4 @@ -104,8 +104,8 @@ jobs: run: | poetry run python setup.py build bdist_wheel - - name: Build PyDP Linux - if: runner.os == 'Linux' + - name: Build PyDP Linux + if: runner.os == 'Linux' run: | poetry run python setup.py build bdist_wheel diff --git a/.github/workflows/versions.yml b/.github/workflows/versions.yml deleted file mode 100644 index 5a6b543c..00000000 --- a/.github/workflows/versions.yml +++ /dev/null @@ -1,175 +0,0 @@ -# Version Tests -# To speed up development we don't run all the tests when opening and updating a PR. -# This test will run older versions of Python so we don't consume a lot of extra actions -# when we don't need to. It's important to keep this in sync with tests.yml so that -# they are essentially doing the same thing only this runs on a schedule. -name: Version Tests -on: - schedule: - - cron: "30 20 * * *" # 7:30pm UTC, 1am IST - pull_request: - branches: - - dev - workflow_dispatch: - inputs: - none: - description: "Run Version Tests Manually" - required: false - -jobs: - linting: - runs-on: ubuntu-latest - strategy: - max-parallel: 1 - matrix: - python-version: ["3.11"] - steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - name: Install python dependencies - run: | - pip install black mypy - - name: Black - run: | - black . - - name: MyPY - run: | - mypy src tests - - name: Run clang-format style check for C/C++ programs. - uses: jidicula/clang-format-action@v4.11.0 - with: - clang-format-version: "11" - check-path: "/src/bindings/" - fallback-style: "Google" # optional - - build: - runs-on: ${{ matrix.os }} - needs: [linting] # don't require linting to pass - strategy: - fail-fast: false - max-parallel: 12 - matrix: - # TODO: fix for Windows. - os: [ubuntu-latest, macos-latest] - python-version: ["3.11", "3.12", "3.13", "3.14"] - - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - - name: Install Protobuf Compiler Linux - if: runner.os == 'Linux' - run: | - sudo apt-get update - sudo apt-get install -y protobuf-compiler libprotobuf-dev - - - name: Install Protobuf Compiler Windows - if: runner.os == 'Windows' - run: | - $protobufVersion = "32.0" - $downloadUrl = "https://github.com/protocolbuffers/protobuf/releases/download/v$protobufVersion/protoc-$protobufVersion-win64.zip" - $destinationFolder = "$env:TEMP\protoc" - - Invoke-WebRequest -Uri $downloadUrl -OutFile protoc.zip - Expand-Archive -Path protoc.zip -DestinationPath $destinationFolder - - # Add the protoc directory to the PATH - echo "$destinationFolder\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - - - name: Verify protoc installation - if: runner.os != 'macOS' - run: protoc --version - - - name: Download proto header Windows - if: runner.os == 'Windows' - run: vcpkg install protobuf:x64-windows - - - name: Setup msbuild Windows - if: runner.os == 'Windows' - uses: microsoft/setup-msbuild@v1.0.2 - - - name: Setup Visual studio Windows - if: runner.os == 'Windows' - uses: ilammy/msvc-dev-cmd@v1 - - - name: Build Google DP Unix - if: runner.os != 'Windows' - timeout-minutes: 20 - run: | - bash build_PyDP.sh - - - name: Build Google DP Windows - if: runner.os == 'Windows' - timeout-minutes: 20 - run: | - echo "Running: ${{ matrix.os }}" - mkdir build - cd build - cmake .. -DCMAKE_BUILD_TYPE=Release - cmake --build . --config Release -j - echo %CD% - dir - move /Y .\src\bindings\PyDP\_pydp.pyd ..\src\pydp\_pydp.pyd - - - name: Upgrade pip - run: | - pip install --upgrade --user pip - - - name: Install Poetry - run: | - pip install poetry - - - name: Get poetry cache dir - id: poetry-cache - run: | - echo "dir=$(poetry config cache-dir)" >> $GITHUB_OUTPUT - - - name: poetry cache - uses: actions/cache@v4 - with: - path: ${{ steps.poetry-cache.outputs.dir }} - key: ${{ runner.os }}-pip-py${{ matrix.python-version }}-${{ hashFiles('**/pyproject.toml') }} - restore-keys: | - ${{ runner.os }}-pip-py${{ matrix.python-version }}- - - - name: Install dependencies - run: | - poetry lock - poetry install - - - name: Build PyDP macOS - if: runner.os == 'macOS' - run: | - poetry run python setup.py build bdist_wheel --plat-name macosx_10_14_x86_64 - - - name: Build PyDP Linux / Windows - if: runner.os != 'macOS' - run: | - poetry run python setup.py build bdist_wheel - - - name: Install Wheel Unix - if: runner.os != 'Windows' - run: | - pip install `find -L ./ -name "*.whl"` - - - name: Install Wheel Windows - if: runner.os == 'Windows' - run: | - Get-ChildItem -Path ./ -Filter "*.whl" -Recurse -File | foreach {pip install $_.FullName} - - - name: Import Package - run: | - python -c "import pydp; print(pydp.__version__)" - - - name: Run Pytest - run: | - poetry run pytest tests -n auto