From b620409dfac28ee7fe8253a3032f815b814200fd Mon Sep 17 00:00:00 2001 From: Alex Kaszynski Date: Tue, 2 Jan 2024 17:12:16 -0700 Subject: [PATCH 1/6] build for python 3.12 --- .github/workflows/build-and-deploy.yml | 6 ++++-- pyproject.toml | 2 +- src/pygcransac/__init__.py | 2 +- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index bef0a55..4d5fadd 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -62,7 +62,7 @@ jobs: shell: pwsh - name: Build wheels - uses: pypa/cibuildwheel@v2.14.1 + uses: pypa/cibuildwheel@v2.16.2 env: CIBW_ENVIRONMENT_WINDOWS: 'OpenCV_DIR="D:/a/graph-cut-ransac/graph-cut-ransac/opencv/build" Eigen3_DIR="C:/eigen3"' CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -w {dest_dir} {wheel} --add-path D:/a/graph-cut-ransac/graph-cut-ransac/opencv/build/bin" @@ -81,7 +81,9 @@ jobs: submodules: 'recursive' - name: Build - run: pipx run build --sdist + run: | + rm -rf build # remove conflicting directory + pipx run build --sdist - name: Validate run: | diff --git a/pyproject.toml b/pyproject.toml index e793e37..e91e69e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ testpaths = 'tests' [tool.cibuildwheel] archs = ["auto64"] # 64-bit only -build = "cp38-* cp39-* cp310-* cp311-*" # Only build Python 3.8-3.11 wheels +build = "cp38-* cp39-* cp310-* cp311-* cp312-*" # Only build Python 3.8-3.12 wheels skip = ["pp*", "*musllinux*"] # disable PyPy and musl-based wheels manylinux-x86_64-image = "ghcr.io/akaszynski/manylinux2014-centos7-opencv/manylinux2014_x86_64_opencv3:v3.4.5" test-requires = "pytest opencv-python" diff --git a/src/pygcransac/__init__.py b/src/pygcransac/__init__.py index 4b80076..850fb8a 100644 --- a/src/pygcransac/__init__.py +++ b/src/pygcransac/__init__.py @@ -1,2 +1,2 @@ from .pygcransac import * -__version__ = '0.1.0' +__version__ = '0.2.dev0' From 6629d76167e94baad99437e6065640ac131bfec1 Mon Sep 17 00:00:00 2001 From: Alex Kaszynski Date: Tue, 2 Jan 2024 17:12:26 -0700 Subject: [PATCH 2/6] build for python 3.12 --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index b862943..d62a15c 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,6 +1,6 @@ repos: # Validate github workflow files - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.26.3 + rev: 0.27.3 hooks: - id: check-github-workflows From c1b68a6eb2a168dc67d4b0cb449a67a4724c035c Mon Sep 17 00:00:00 2001 From: Alex Kaszynski Date: Tue, 2 Jan 2024 17:31:26 -0700 Subject: [PATCH 3/6] bump to v0.1.1 --- setup.py | 2 +- src/pygcransac/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 26795c9..a3e6b0e 100755 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ setup( name='pygcransac', - version='0.1.0', + version='0.1.1', author='Daniel Barath, Dmytro Mishkin', author_email='barath.daniel@sztaki.mta.hu', description='Graph-Cut RANSAC', diff --git a/src/pygcransac/__init__.py b/src/pygcransac/__init__.py index 850fb8a..573d30e 100644 --- a/src/pygcransac/__init__.py +++ b/src/pygcransac/__init__.py @@ -1,2 +1,2 @@ from .pygcransac import * -__version__ = '0.2.dev0' +__version__ = '0.1.1' From a240b82e0d4991f69d5cac2de1199b917007886b Mon Sep 17 00:00:00 2001 From: Alex Kaszynski Date: Tue, 2 Jan 2024 18:16:16 -0700 Subject: [PATCH 4/6] test upload --- .github/workflows/build-and-deploy.yml | 49 +++++++++++++------------- setup.py | 2 +- src/pygcransac/__init__.py | 2 +- 3 files changed, 26 insertions(+), 27 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 4d5fadd..9909b57 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -24,7 +24,7 @@ jobs: os: [ubuntu-latest, windows-latest] steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' @@ -67,7 +67,7 @@ jobs: CIBW_ENVIRONMENT_WINDOWS: 'OpenCV_DIR="D:/a/graph-cut-ransac/graph-cut-ransac/opencv/build" Eigen3_DIR="C:/eigen3"' CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -w {dest_dir} {wheel} --add-path D:/a/graph-cut-ransac/graph-cut-ransac/opencv/build/bin" - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: pygcransac-wheels-${{ runner.os }} path: ./wheelhouse/*.whl @@ -76,7 +76,7 @@ jobs: name: Build source distribution runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: 'recursive' @@ -90,7 +90,7 @@ jobs: pip install twine twine check dist/* - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: pygcransac-sdist path: dist/*.tar.gz @@ -99,30 +99,29 @@ jobs: name: Release and upload to PyPI needs: [build_wheels, build_sdist] runs-on: ubuntu-latest - # upload to PyPI on every tag - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') steps: - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.11' + - uses: actions/download-artifact@v4 - # Download all artifacts - - uses: actions/download-artifact@v3 + - name: Display structure of downloaded files + run: ls -R - - name: Upload to Public PyPi + - name: Flatten directory structure run: | - pip install twine - twine upload --skip-existing ./**/*.whl - twine upload --skip-existing ./**/*.tar.gz - env: - TWINE_USERNAME: __token__ - TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} + mkdir -p dist/ + find . -name '*.whl' -exec mv {} dist/ \; + find . -name '*.tar.gz' -exec mv {} dist/ \; - - name: Release - uses: softprops/action-gh-release@v1 - with: - generate_release_notes: true - files: | - ./**/*.whl + - name: Display final structure + run: ls -R + + - name: Upload to Public PyPi + uses: pypa/gh-action-pypi-publish@release/v1 + + # - name: Release + # uses: softprops/action-gh-release@v1 + # with: + # generate_release_notes: true + # files: | + # ./**/*.whl diff --git a/setup.py b/setup.py index a3e6b0e..e4e34f1 100755 --- a/setup.py +++ b/setup.py @@ -18,7 +18,7 @@ setup( name='pygcransac', - version='0.1.1', + version='0.2.dev0', author='Daniel Barath, Dmytro Mishkin', author_email='barath.daniel@sztaki.mta.hu', description='Graph-Cut RANSAC', diff --git a/src/pygcransac/__init__.py b/src/pygcransac/__init__.py index 573d30e..850fb8a 100644 --- a/src/pygcransac/__init__.py +++ b/src/pygcransac/__init__.py @@ -1,2 +1,2 @@ from .pygcransac import * -__version__ = '0.1.1' +__version__ = '0.2.dev0' From 06efdad6529425b1ec5d5d624da4356878c887f7 Mon Sep 17 00:00:00 2001 From: Alex Kaszynski Date: Tue, 2 Jan 2024 19:02:25 -0700 Subject: [PATCH 5/6] add in id-token write --- .github/workflows/build-and-deploy.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 9909b57..6c45af6 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -99,6 +99,8 @@ jobs: name: Release and upload to PyPI needs: [build_wheels, build_sdist] runs-on: ubuntu-latest + permissions: + id-token: write # this permission is mandatory for trusted publishing # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') steps: From 3686c0cc6cfdf3d059d0c87eeb4ced89d8b2a936 Mon Sep 17 00:00:00 2001 From: Alex Kaszynski Date: Tue, 2 Jan 2024 19:30:27 -0700 Subject: [PATCH 6/6] enable conditional for release step --- .github/workflows/build-and-deploy.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml index 6c45af6..f0889ec 100644 --- a/.github/workflows/build-and-deploy.yml +++ b/.github/workflows/build-and-deploy.yml @@ -101,7 +101,7 @@ jobs: runs-on: ubuntu-latest permissions: id-token: write # this permission is mandatory for trusted publishing - # if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags') steps: - uses: actions/download-artifact@v4 @@ -121,9 +121,9 @@ jobs: - name: Upload to Public PyPi uses: pypa/gh-action-pypi-publish@release/v1 - # - name: Release - # uses: softprops/action-gh-release@v1 - # with: - # generate_release_notes: true - # files: | - # ./**/*.whl + - name: Release + uses: softprops/action-gh-release@v1 + with: + generate_release_notes: true + files: | + ./**/*.whl