retworkx 0.8.0

A python graph library implemented in Rust
Documentation
---
name: Wheel Builds
on:
  push:
    tags:
      - '*'
jobs:
  sdist:
    name: Build sdist
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        name: Install Python
        with:
          python-version: '3.7'
      - name: Install deps
        run: pip install -U twine setuptools-rust
      - name: Build sdist
        run: python setup.py sdist
      - uses: actions/upload-artifact@v2
        with:
          path: ./dist/*
      - name: Upload to PyPI
        run: twine upload ./dist/*
        env:
          TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
          TWINE_USERNAME: retworkx-ci
  build_wheels:
    name: Build wheels on ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        name: Install Python
        with:
          python-version: '3.7'
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
      - name: Install cibuildwheel
        run: |
          python -m pip install cibuildwheel==1.9.0 twine
      - name: Build wheels
        run: |
          python -m cibuildwheel --output-dir wheelhouse
        env:
          CIBW_BEFORE_ALL_LINUX: "yum install -y wget && {package}/tools/install_rust.sh"
          CIBW_ENVIRONMENT_LINUX: 'PATH="$PATH:$HOME/.cargo/bin"'
          CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=10.9
          CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/manylinux2010_x86_64:latest
          CIBW_MANYLINUX_I686_IMAGE: quay.io/pypa/manylinux2010_i686:latest
          CIBW_SKIP: cp27-* cp34-* cp35-* pp* *win32
          CIBW_BEFORE_BUILD: pip install -U setuptools-rust
          CIBW_TEST_COMMAND: python -m unittest discover {project}/tests
      - uses: actions/upload-artifact@v2
        with:
          path: ./wheelhouse/*.whl
      - name: Upload to PyPI
        run: twine upload ./wheelhouse/*.whl
        env:
          TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
          TWINE_USERNAME: retworkx-ci
  build-mac-arm-wheels:
    name: Build wheels on macos for arm
    runs-on: macos-10.15
    steps:
      - uses: actions/checkout@v2
      - name: Build wheels
        uses: joerick/cibuildwheel@v1.9.0
        env:
          CIBW_BEFORE_ALL: rustup target add aarch64-apple-darwin
          CIBW_ARCHS_MACOS: arm64
          CIBW_BEFORE_BUILD: pip install -U setuptools-rust
          CIBW_ENVIRONMENT: CARGO_BUILD_TARGET="aarch64-apple-darwin" PYO3_CROSS_LIB_DIR="/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9"
      - uses: actions/upload-artifact@v2
        with:
          path: ./wheelhouse/*.whl
      - uses: actions/setup-python@v2
        name: Install Python
        with:
          python-version: '3.8'
      - name: Install cibuildwheel
        run: |
          python -m pip install twine
      - name: Upload to PyPI
        run: twine upload ./wheelhouse/*.whl
        env:
          TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
          TWINE_USERNAME: retworkx-ci
  build-win32-wheels:
    name: Build wheels on win32
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v2
      - uses: actions/setup-python@v2
        name: Install Python
        with:
          python-version: '3.7'
          architecture: 'x86'
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: stable
          target: i686-pc-windows-msvc
          default: true
      - name: Force win32 rust
        run: rustup default stable-i686-pc-windows-msvc
      - name: Install cibuildwheel
        run: |
          python -m pip install cibuildwheel==1.9.0 twine
      - name: Build wheels
        run: |
          python -m cibuildwheel --output-dir wheelhouse
        env:
          CIBW_ENVIRONMENT_MACOS: MACOSX_DEPLOYMENT_TARGET=10.9
          CIBW_SKIP: cp27-* cp34-* cp35-* pp* *amd64
          CIBW_BEFORE_BUILD: pip install -U setuptools-rust
          CIBW_TEST_COMMAND: python -m unittest discover {project}/tests
      - uses: actions/upload-artifact@v2
        with:
          path: ./wheelhouse/*.whl
      - name: Upload to PyPI
        run: twine upload ./wheelhouse/*.whl
        env:
          TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }}
          TWINE_USERNAME: retworkx-ci