From 4b16b14e260e68010ac24a9f142fac477632a639 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 11:55:43 -0500 Subject: [PATCH 01/18] rework workflows for consistency with other repos --- .github/workflows/build-arm64-wheels.yml | 101 ---- .github/workflows/build-m1-wheel.yml | 117 ----- .github/workflows/build-test.yml | 600 ++++++++++++++++++----- 3 files changed, 471 insertions(+), 347 deletions(-) delete mode 100644 .github/workflows/build-arm64-wheels.yml delete mode 100644 .github/workflows/build-m1-wheel.yml diff --git a/.github/workflows/build-arm64-wheels.yml b/.github/workflows/build-arm64-wheels.yml deleted file mode 100644 index ef1d47cc..00000000 --- a/.github/workflows/build-arm64-wheels.yml +++ /dev/null @@ -1,101 +0,0 @@ -name: Build ARM64 wheels on ubuntu-latest - -on: - push: - branches: - - main - - dev - tags: - - '**' - pull_request: - branches: - - '**' - -jobs: - build_wheels: - name: ARM64 Python Wheels on ubuntu-latest - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [[ARM64, Linux]] - - steps: - - uses: Chia-Network/actions/clean-workspace@main - - - name: Checkout repository - uses: actions/checkout@v3 - with: - fetch-depth: 1 - - - name: Set up QEMU on x86_64 - if: startsWith(matrix.os, 'ubuntu-latest') - id: qemu - uses: docker/setup-qemu-action@v2 - with: - platforms: arm64 - - - name: Build Python wheels - run: | - podman run --rm=true \ - -v ${{ github.workspace }}:/ws:rw --workdir=/ws \ - quay.io/pypa/manylinux2014_aarch64 \ - bash -exc '\ - echo $PATH && \ - curl -L https://sh.rustup.rs > rustup-init.sh && \ - sh rustup-init.sh -y && \ - yum -y install openssl-devel && \ - source $HOME/.cargo/env && \ - rustup target add aarch64-unknown-linux-musl && \ - rm -rf venv && \ - export PATH=/opt/python/cp310-cp310/bin/:$PATH && \ - export PATH=/opt/python/cp39-cp39/bin/:$PATH && \ - export PATH=/opt/python/cp38-cp38/bin/:$PATH && \ - export PATH=/opt/python/cp37-cp37m/bin/:$PATH && \ - /opt/python/cp38-cp38/bin/python -m venv venv && \ - if [ ! -f "activate" ]; then ln -s venv/bin/activate; fi && \ - . ./activate && \ - pip install maturin && \ - CC=gcc maturin build -m wheel/Cargo.toml --release --strip --manylinux 2014 --features=openssl \ - ' - - - name: Upload artifacts - uses: actions/upload-artifact@v3 - with: - name: wheels - path: wheel/target/wheels/ - - - name: Install Twine - run: | - if [ ! -f "venv" ]; then rm -rf venv; fi - sudo apt-get install python3-venv python3-pip -y - python3 -m venv venv - if [ ! -f "activate" ]; then ln -s venv/bin/activate; fi - . ./activate - pip install setuptools_rust - pip install twine - - - name: Test for secrets access - id: check_secrets - shell: bash - run: | - unset HAS_SECRET - if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi - echo "HAS_SECRET=${HAS_SECRET}" >>$GITHUB_OUTPUT - env: - SECRET: "${{ secrets.test_pypi_password }}" - - - name: publish (PyPi) - if: startsWith(github.event.ref, 'refs/tags') && steps.check_secrets.outputs.HAS_SECRET - env: - TWINE_USERNAME: __token__ - TWINE_NON_INTERACTIVE: 1 - TWINE_PASSWORD: ${{ secrets.pypi_password }} - run: | - . ./activate - twine upload --non-interactive --skip-existing --verbose 'wheel/target/wheels/*' - - - name: Clean up AMR64 - if: startsWith(matrix.os, 'ARM64') - run: | - rm -rf venv - rm -rf dist diff --git a/.github/workflows/build-m1-wheel.yml b/.github/workflows/build-m1-wheel.yml deleted file mode 100644 index aa3d7778..00000000 --- a/.github/workflows/build-m1-wheel.yml +++ /dev/null @@ -1,117 +0,0 @@ -name: Build M1 Wheels - -on: - push: - branches: - - main - - dev - tags: - - '**' - pull_request: - branches: - - '**' - -concurrency: - group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}--${{ (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/long_lived/')) && github.sha || '' }} - cancel-in-progress: true - -jobs: - build_wheels: - name: Build wheel on Mac M1 - runs-on: [m1] - strategy: - fail-fast: false - - steps: - - uses: Chia-Network/actions/clean-workspace@main - - - name: Checkout code - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Set up rust - run: | - curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rust.sh - arch -arm64 sh rust.sh -y - - - name: Build m1 wheels - run: | - arch -arm64 python3 -m venv venv - . ./venv/bin/activate - export PATH=~/.cargo/bin:$PATH - arch -arm64 pip install maturin - arch -arm64 maturin build -m wheel/Cargo.toml -i python --release --strip --features=openssl - - - name: Install clvm_rs wheel - run: | - . ./venv/bin/activate - ls ./wheel/target/wheels/ - arch -arm64 pip install ./wheel/target/wheels/clvm_rs*.whl - - - name: Install other wheels - run: | - . ./venv/bin/activate - arch -arm64 python -m pip install pytest - arch -arm64 python -m pip install blspy - - - name: install clvm & clvm_tools - run: | - . ./venv/bin/activate - arch -arm64 git clone https://github.com/Chia-Network/clvm.git --branch=main --single-branch - arch -arm64 python -m pip install ./clvm - - arch -arm64 git clone https://github.com/Chia-Network/clvm_tools.git --branch=main --single-branch - arch -arm64 python -m pip install ./clvm_tools - - - name: Ensure clvm, clvm_rs, clvm_tools are installed - run: | - . ./venv/bin/activate - arch -arm64 python -c 'import clvm' - arch -arm64 python -c 'import clvm; print(clvm.__file__)' - arch -arm64 python -c 'import clvm_rs; print(clvm_rs.__file__)' - arch -arm64 python -c 'import clvm_tools; print(clvm_tools.__file__)' - - - name: Run tests from clvm - run: | - . ./venv/bin/activate - cd clvm - arch -arm64 pytest tests - - - name: Run tests from clvm_tools - continue-on-error: true - run: | - . ./venv/bin/activate - cd clvm_tools - arch -arm64 pytest tests - - - name: Upload wheels - uses: actions/upload-artifact@v3 - with: - name: wheels - path: ./wheel/target/wheels - - - name: Test for secrets access - id: check_secrets - shell: bash - run: | - unset HAS_SECRET - if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi - echo "HAS_SECRET=${HAS_SECRET}" >>$GITHUB_OUTPUT - env: - SECRET: "${{ secrets.test_pypi_password }}" - - - name: Install twine - run: | - . ./venv/bin/activate - arch -arm64 pip install twine - - - name: Publish distribution to PyPI - if: startsWith(github.event.ref, 'refs/tags') && steps.check_secrets.outputs.HAS_SECRET - env: - TWINE_USERNAME: __token__ - TWINE_NON_INTERACTIVE: 1 - TWINE_PASSWORD: ${{ secrets.pypi_password }} - run: | - . ./venv/bin/activate - arch -arm64 twine upload --non-interactive --skip-existing --verbose 'wheel/target/wheels/*' diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 12f74152..3dc52bc4 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -1,35 +1,148 @@ -name: Build Mac, Linux, and Windows wheels +name: build - check - upload on: push: branches: - - main - - dev + - main tags: - - '**' + - '**' pull_request: branches: - - '**' + - '**' + +concurrency: + # SHA is added to the end if on `main` to let all main workflows run + group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}-${{ (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/long_lived/')) && github.sha || '' }} + cancel-in-progress: true jobs: - build_wheels: - name: Wheel on ${{ matrix.os }} py-${{ matrix.python }} - runs-on: ${{ matrix.os }} + build-wheels: + name: Wheel - ${{ matrix.os.name }} ${{ matrix.python.major-dot-minor }} ${{ matrix.arch.name }} + runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }} strategy: fail-fast: false + # TODO: switch back to abi3/single python version builds. (or maybe not?) matrix: - os: [macos-latest, ubuntu-latest, windows-latest] - python: [3.7] + os: + - name: macOS + matrix: macos + runs-on: + arm: [macOS, ARM64] + intel: [macos-latest] + - name: Ubuntu + matrix: ubuntu + runs-on: + arm: [Linux, ARM64] + intel: [ubuntu-latest] + - name: Windows + matrix: windows + runs-on: + intel: [windows-latest] + python: + - major-dot-minor: '3.7' + cibw-build: 'cp37-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.7' + - major-dot-minor: '3.8' + cibw-build: 'cp38-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.8' + - major-dot-minor: '3.9' + cibw-build: 'cp39-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.9' + - major-dot-minor: '3.10' + cibw-build: 'cp310-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.10' + - major-dot-minor: '3.11' + cibw-build: 'cp311-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.11' + arch: + - name: ARM + matrix: arm + - name: Intel + matrix: intel + exclude: + # Only partial entries are required here by GitHub Actions so generally I + # only specify the `matrix:` entry. The super linter complains so for now + # all entries are included to avoid that. Reported at + # https://github.com/github/super-linter/issues/3016 + - os: + name: Windows + matrix: windows + runs-on: + intel: [windows-latest] + arch: + name: ARM + matrix: arm + - os: + name: macOS + matrix: macos + runs-on: + arm: [macOS, ARM64] + intel: [macos-latest] + python: + major-dot-minor: '3.7' + cibw-build: 'cp37-*' + matrix: '3.7' + arch: + name: ARM + matrix: arm steps: - - uses: actions/checkout@v3 + - name: Clean workspace + uses: Chia-Network/actions/clean-workspace@main + + - name: Checkout code + uses: actions/checkout@v3 with: fetch-depth: 0 - - uses: actions/setup-python@v4 - name: Install Python ${{ matrix.python }} + - uses: Chia-Network/actions/setup-python@main with: - python-version: ${{ matrix.python }} + python-version: ${{ matrix.python.major-dot-minor }} - name: Update pip run: | @@ -45,132 +158,123 @@ jobs: python -m pip install maturin - name: Build MacOs with maturin on Python ${{ matrix.python }} - if: startsWith(matrix.os, 'macos') + if: matrix.os.matrix == 'macos' + env: + MACOSX_DEPLOYMENT_TARGET: ${{ matrix.arch.matrix == 'intel' && '10.14' || '11.0' }} run: | - python -m venv venv - ln -s venv/bin/activate - . ./activate - maturin build -m wheel/Cargo.toml --sdist -i python --release --strip --features=openssl + python${{ matrix.python.major-dot-minor }} -m venv venv + . venv/bin/activate + maturin build -i python --release -m wheel/Cargo.toml + # TODO: add back these? --strip --features=openssl - - name: Build Linux in manylinux2014 with maturin on Python ${{ matrix.python }} - if: startsWith(matrix.os, 'ubuntu') + - name: Build Linux with maturin on Python ${{ matrix.python }} + if: matrix.os.matrix == 'ubuntu' run: | podman run --rm=true \ -v ${{ github.workspace }}:/ws:rw --workdir=/ws \ - quay.io/pypa/manylinux2014_x86_64 \ + ${{ matrix.python.by-arch[matrix.arch.matrix].docker-url }} \ bash -exc '\ curl -L https://sh.rustup.rs > rustup-init.sh && \ sh rustup-init.sh -y && \ yum -y install openssl-devel && \ source $HOME/.cargo/env && \ - rustup target add x86_64-unknown-linux-musl && \ - PY_VERSION=${{ matrix.python }} - PY_VERSION=${PY_VERSION/.} && \ - echo "Python version with dot removed is $PY_VERSION" && \ - if [ "$PY_VERSION" = "37" ]; \ - then export SCND_VERSION="${PY_VERSION}m"; \ - else export SCND_VERSION="$PY_VERSION"; fi && \ - echo "Exporting path /opt/python/cp$PY_VERSION-cp$SCND_VERSION/bin" && \ - export PATH=/opt/python/cp$PY_VERSION-cp$SCND_VERSION/bin/:$PATH && \ - /opt/python/cp38-cp38/bin/python -m venv /venv && \ + rustup target add ${{ matrix.python.by-arch[matrix.arch.matrix].rustup-target }} && \ + python${{ matrix.python.major-dot-minor }} -m venv /venv && \ . /venv/bin/activate && \ pip install --upgrade pip && \ pip install maturin && \ - CC=gcc maturin build -m wheel/Cargo.toml --release --strip --manylinux 2014 --features=openssl \ + CC=gcc maturin build --release --manylinux ${{ matrix.python.by-arch[matrix.arch.matrix].manylinux-version }} -m wheel/Cargo.toml \ ' - python -m venv venv - ln -s venv/bin/activate + # TODO: add back these? --strip --features=openssl - name: Build Windows with maturin on Python ${{ matrix.python }} - if: startsWith(matrix.os, 'windows') + if: matrix.os.matrix == 'windows' run: | - python -m venv venv + py -${{ matrix.python.major-dot-minor }} -m venv venv . .\venv\Scripts\Activate.ps1 - ln -s venv\Scripts\Activate.ps1 activate - maturin build -m wheel/Cargo.toml -i python --release --strip - # this will install into the venv - # it'd be better to use the wheel, but I can't figure out how to do that - # TODO: figure this out - # this does NOT work: pip install wheel/target/wheels/clvm_rs-*.whl - maturin develop --release -m wheel/Cargo.toml - # the line above also doesn't seem to work + maturin build -i python --release -m wheel/Cargo.toml + # TODO: add back these? --strip + # TODO: why no --feature=openssl here? + + - uses: Chia-Network/actions/create-venv@main + id: create-venv + + - uses: Chia-Network/actions/activate-venv@main + with: + directories: ${{ steps.create-venv.outputs.activate-venv-directories }} - name: Install clvm_rs wheel - if: ${{ !startsWith(matrix.os, 'windows') }} - run: | - . ./activate - ls wheel/target/wheels/ - # this mess puts the name of the `.whl` file into `$WHEEL_PATH` - # remove the dot, use the `glob` lib to grab the file from the directory - WHEEL_PATH=$(echo ${{ matrix.python }} | python -c 'DOTLESS=input().replace(".", ""); import glob; print(" ".join(glob.glob("wheel/target/wheels/clvm_rs-*-cp%s-abi3-*.whl" % DOTLESS)))' ) - echo ${WHEEL_PATH} - pip install ${WHEEL_PATH} - - - name: Install other wheels run: | - . ./activate - python -m pip install pytest - python -m pip install blspy + pip install --no-index --find-links wheel/target/wheels/ clvm_rs - - name: install clvm & clvm_tools - run: | - . ./activate - git clone https://github.com/Chia-Network/clvm.git --branch=main --single-branch - python -m pip install ./clvm + - name: Upload artifacts + uses: actions/upload-artifact@v3 + with: + name: packages + path: ./wheel/target/wheels/ - git clone https://github.com/Chia-Network/clvm_tools.git --branch=main --single-branch - python -m pip install ./clvm_tools +# check-typestubs: +# name: Check clvm_rs.pyi +# runs-on: ubuntu-latest +# +# steps: +# - name: Checkout code +# uses: actions/checkout@v3 +# with: +# fetch-depth: 0 +# +# - uses: Chia-Network/actions/setup-python@main +# +# - name: check generated clvm_rs.pyi +# run: | +# python wheel/generate_type_stubs.py +# git diff --exit-code - - name: Ensure clvm, clvm_rs, clvm_tools are installed - run: | - . ./activate - python -c 'import clvm' - python -c 'import clvm; print(clvm.__file__)' - python -c 'import clvm_rs; print(clvm_rs.__file__)' - python -c 'import clvm_tools; print(clvm_tools.__file__)' + build-sdist: + name: sdist - ${{ matrix.os.name }} ${{ matrix.python.major-dot-minor }} ${{ matrix.arch.name }} + runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }} + strategy: + fail-fast: false + matrix: + os: + - name: Ubuntu + matrix: ubuntu + runs-on: + arm: [Linux, ARM64] + intel: [ubuntu-latest] + python: + - major-dot-minor: '3.7' + matrix: '3.7' + arch: + - name: Intel + matrix: intel - - name: Run tests from clvm - run: | - . ./activate - cd clvm - pytest tests + steps: + - name: Clean workspace + uses: Chia-Network/actions/clean-workspace@main + + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - uses: Chia-Network/actions/setup-python@main + with: + python-version: ${{ matrix.python.major-dot-minor }} - - name: Run tests from clvm_tools - continue-on-error: true + - name: Build source distribution run: | - . ./activate - cd clvm_tools - pytest tests + pip install maturin + maturin sdist -m wheel/Cargo.toml - name: Upload artifacts uses: actions/upload-artifact@v3 with: - name: wheels + name: packages path: ./wheel/target/wheels/ - - name: Install Twine - run: pip install twine - - - name: Test for secrets access - id: check_secrets - shell: bash - run: | - unset HAS_SECRET - if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi - echo "HAS_SECRET=${HAS_SECRET}" >>$GITHUB_OUTPUT - env: - SECRET: "${{ secrets.test_pypi_password }}" - - - name: publish (PyPi) - if: startsWith(github.event.ref, 'refs/tags') && steps.check_secrets.outputs.HAS_SECRET - env: - TWINE_USERNAME: __token__ - TWINE_NON_INTERACTIVE: 1 - TWINE_PASSWORD: ${{ secrets.pypi_password }} - run: twine upload --non-interactive --skip-existing --verbose 'wheel/target/wheels/*' - fmt: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest name: cargo fmt steps: - uses: actions/checkout@v3 @@ -179,25 +283,30 @@ jobs: - name: Install rust uses: actions-rs/toolchain@v1 with: - toolchain: stable - override: true + # TODO: was stable before, should probably be consistent across projects + toolchain: nightly + # TODO: why are we installing clippy here... components: rustfmt, clippy + override: true - name: fmt - run: cargo fmt -- --files-with-diff --check + # TODO: didn't have --all before + run: cargo fmt --all -- --files-with-diff --check clippy: - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 with: - toolchain: stable + # TODO: was stable before, should probably be consistent across projects + toolchain: nightly components: clippy override: true - uses: actions-rs/clippy-check@v1 with: token: ${{ secrets.GITHUB_TOKEN }} - args: --all-features + # TODO: didn't use --workspace before, what's that do? + args: --all-features --workspace # leaving out Windows fuzzing for now though it seems supported # https://llvm.org/docs/LibFuzzer.html#q-does-libfuzzer-support-windows @@ -211,15 +320,12 @@ jobs: python: [3.7] steps: - uses: actions/checkout@v3 - with: - fetch-depth: 1 - - name: Install rust - uses: actions-rs/toolchain@v1 + - uses: actions-rs/toolchain@v1 with: toolchain: nightly - name: cargo-fuzz run: cargo +nightly install cargo-fuzz - - name: build + - name: cargo fuzz run: cargo fuzz list | xargs -I "%" sh -c "cargo +nightly fuzz run % -- -max_total_time=30 || exit 255" unit_tests: @@ -229,25 +335,261 @@ jobs: fail-fast: false matrix: os: [macos-latest, ubuntu-latest, windows-latest] - python: [3.7] + release: + - name: release + options: --release + - name: not-release + options: '' + features: + - name: no features + options: '' + - name: counters + options: --features=counters + - name: pre-eval + options: --features=pre-eval + - name: pre-eval and counters + options: --features=pre-eval,counters steps: - uses: actions/checkout@v3 with: fetch-depth: 1 - - name: Install rust - uses: actions-rs/toolchain@v1 + - uses: actions-rs/toolchain@v1 with: toolchain: stable - components: rustfmt, clippy + - name: cargo test + run: cargo test ${{ matrix.features.options}} ${{ matrix.release.options }} + + clvm_tests: + name: ${{ matrix.package.name }} tests - ${{ matrix.os.name }} ${{ matrix.python.major-dot-minor }} ${{ matrix.arch.name }} + runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }} + needs: + - build-wheels + strategy: + fail-fast: false + matrix: + package: + - name: CLVM + directory: clvm + matrix: clvm + - name: CLVM tools + directory: clvm_tools + matrix: clvm_tools + os: + - name: macOS + matrix: macos + runs-on: + arm: [macOS, ARM64] + intel: [macos-latest] + - name: Ubuntu + matrix: ubuntu + runs-on: + arm: [Linux, ARM64] + intel: [ubuntu-latest] + - name: Windows + matrix: windows + runs-on: + intel: [windows-latest] + python: + - major-dot-minor: '3.7' + cibw-build: 'cp37-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.7' + - major-dot-minor: '3.8' + cibw-build: 'cp38-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.8' + - major-dot-minor: '3.9' + cibw-build: 'cp39-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.9' + - major-dot-minor: '3.10' + cibw-build: 'cp310-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.10' + - major-dot-minor: '3.11' + cibw-build: 'cp311-*' + by-arch: + arm: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_aarch64 + rustup-target: aarch64-unknown-linux-musl + intel: + manylinux-version: 2014 + docker-url: quay.io/pypa/manylinux2014_x86_64 + rustup-target: x86_64-unknown-linux-musl + matrix: '3.11' + arch: + - name: ARM + matrix: arm + - name: Intel + matrix: intel + exclude: + # Only partial entries are required here by GitHub Actions so generally I + # only specify the `matrix:` entry. The super linter complains so for now + # all entries are included to avoid that. Reported at + # https://github.com/github/super-linter/issues/3016 + - os: + name: Windows + matrix: windows + runs-on: + intel: [windows-latest] + arch: + name: ARM + matrix: arm + - os: + name: macOS + matrix: macos + runs-on: + arm: [macOS, ARM64] + intel: [macos-latest] + python: + major-dot-minor: '3.7' + cibw-build: 'cp37-*' + matrix: '3.7' + arch: + name: ARM + matrix: arm + steps: + - name: Clean workspace + uses: Chia-Network/actions/clean-workspace@main + + - name: Checkout CLVM + uses: actions/checkout@v3 + with: + repository: https://github.com/Chia-Network/clvm.git + path: clvm - - name: cargo test (default) - run: cargo test && cargo test --release + - name: Checkout CLVM tools + if: matrix.package.matrix == 'clvm_tools' + uses: actions/checkout@v3 + with: + repository: https://github.com/Chia-Network/clvm_tools.git + path: clvm_tools + + - uses: Chia-Network/actions/setup-python@main + with: + python-version: ${{ matrix.python.major-dot-minor }} + + - uses: Chia-Network/actions/create-venv@main + id: create-venv - - name: cargo test (counters) - run: cargo test --features=counters && cargo test --features=counters --release + - uses: Chia-Network/actions/activate-venv@main + with: + directories: ${{ steps.create-venv.outputs.activate-venv-directories }} + + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: packages + path: ./dist - - name: cargo test (pre-eval) - run: cargo test --features=pre-eval && cargo test --features=pre-eval --release + - name: Install packages + run: + # TODO: review how to get relevant test stuff installed + pip download --dest dist/ blspy pytest + pip install --no-index --find-links dist/ clvm_rs ./clvm ${{ matrix.package.matrix == 'clvm_tools' && './clvm_tools' || '' }} blspy pytest + python -c 'import clvm; print(clvm.__file__)' + python -c 'import clvm_rs; print(clvm_rs.__file__)' + python -c 'import clvm_tools; print(clvm_tools.__file__)' - - name: cargo test (pre-eval and counters) - run: cargo test --features=pre-eval,counters && cargo test --features=pre-eval,counters --release + - name: Test + run: + pytest ${{ matrix.package.directory }}/tests + + upload: + name: Upload to PyPI - ${{ matrix.os.name }} ${{ matrix.python.major-dot-minor }} ${{ matrix.arch.name }} + runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }} + needs: + - build-wheels + - build-sdist + - fmt + - clippy + - unit_tests + - clvm_tests + strategy: + fail-fast: false + matrix: + os: + - name: Ubuntu + matrix: ubuntu + runs-on: + arm: [Linux, ARM64] + intel: [ubuntu-latest] + python: + - major-dot-minor: '3.9' + matrix: '3.9' + arch: + - name: Intel + matrix: intel + + steps: + - name: Clean workspace + uses: Chia-Network/actions/clean-workspace@main + + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - uses: Chia-Network/actions/setup-python@main + with: + python-version: ${{ matrix.python.major-dot-minor }} + + - name: Download artifacts + uses: actions/download-artifact@v3 + with: + name: packages + path: ./dist + + - name: Test for secrets access + id: check_secrets + shell: bash + run: | + unset HAS_SECRET + if [ -n "$SECRET" ]; then HAS_SECRET='true' ; fi + echo "HAS_SECRET=${HAS_SECRET}" >>$GITHUB_OUTPUT + env: + SECRET: "${{ secrets.test_pypi_password }}" + + - name: Install twine + run: pip install twine + + - name: Publish distribution to PyPI + if: startsWith(github.event.ref, 'refs/tags') && steps.check_secrets.outputs.HAS_SECRET + env: + TWINE_USERNAME: __token__ + TWINE_NON_INTERACTIVE: 1 + TWINE_PASSWORD: ${{ secrets.pypi_password }} + run: twine upload --non-interactive --skip-existing --verbose 'dist/*' From e30ab72c6241524065e6f2591e9cfceb7ea202d0 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 12:27:01 -0500 Subject: [PATCH 02/18] fix repository: form --- .github/workflows/build-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 3dc52bc4..c4646253 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -488,14 +488,14 @@ jobs: - name: Checkout CLVM uses: actions/checkout@v3 with: - repository: https://github.com/Chia-Network/clvm.git + repository: Chia-Network/clvm path: clvm - name: Checkout CLVM tools if: matrix.package.matrix == 'clvm_tools' uses: actions/checkout@v3 with: - repository: https://github.com/Chia-Network/clvm_tools.git + repository: Chia-Network/clvm_tools path: clvm_tools - uses: Chia-Network/actions/setup-python@main From 56c5d0e1815ec2d9a7ab97c36e9d772458395b16 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 12:53:59 -0500 Subject: [PATCH 03/18] drop a pointless python matrix entry --- .github/workflows/build-test.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index c4646253..ad6434d2 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -317,7 +317,6 @@ jobs: fail-fast: false matrix: os: [macos-latest, ubuntu-latest] - python: [3.7] steps: - uses: actions/checkout@v3 - uses: actions-rs/toolchain@v1 From 870e607ed7764ccaf34d64e56271b232d4111299 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 12:56:50 -0500 Subject: [PATCH 04/18] fixup a couple run: without pipes --- .github/workflows/build-test.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index ad6434d2..58c8a214 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -515,7 +515,7 @@ jobs: path: ./dist - name: Install packages - run: + run: | # TODO: review how to get relevant test stuff installed pip download --dest dist/ blspy pytest pip install --no-index --find-links dist/ clvm_rs ./clvm ${{ matrix.package.matrix == 'clvm_tools' && './clvm_tools' || '' }} blspy pytest @@ -524,7 +524,7 @@ jobs: python -c 'import clvm_tools; print(clvm_tools.__file__)' - name: Test - run: + run: | pytest ${{ matrix.package.directory }}/tests upload: From 9fe1a51d1c4e9b4109064db4e4e5fa6a63fe81da Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 17:12:49 -0500 Subject: [PATCH 05/18] find the wheel path for install and allow pypi --- .github/workflows/build-test.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 58c8a214..e6ac4a35 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -517,8 +517,13 @@ jobs: - name: Install packages run: | # TODO: review how to get relevant test stuff installed - pip download --dest dist/ blspy pytest - pip install --no-index --find-links dist/ clvm_rs ./clvm ${{ matrix.package.matrix == 'clvm_tools' && './clvm_tools' || '' }} blspy pytest + WHEEL_PATH=$(pip install --no-index --dry-run --find-links dist/ clvm_rs | sed -n 's;^.*/blue/\(.*\)$;\1;p') + if [ "${WHEEL_PATH}" = "" ] + then + echo error: wheel not selected! + exit 1 + fi + pip install "${WHEEL_PATH}" ./clvm ${{ matrix.package.matrix == 'clvm_tools' && './clvm_tools' || '' }} blspy pytest python -c 'import clvm; print(clvm.__file__)' python -c 'import clvm_rs; print(clvm_rs.__file__)' python -c 'import clvm_tools; print(clvm_tools.__file__)' From 5062b6bc347e447c113f6d0c6f73da87fd711b8a Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 17:23:47 -0500 Subject: [PATCH 06/18] dist... not blue --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index e6ac4a35..bd59dce0 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -517,7 +517,7 @@ jobs: - name: Install packages run: | # TODO: review how to get relevant test stuff installed - WHEEL_PATH=$(pip install --no-index --dry-run --find-links dist/ clvm_rs | sed -n 's;^.*/blue/\(.*\)$;\1;p') + WHEEL_PATH=$(pip install --no-index --dry-run --find-links dist/ clvm_rs | sed -n 's;^.*/dist/\(.*\)$;\1;p') if [ "${WHEEL_PATH}" = "" ] then echo error: wheel not selected! From 5440b164c53e9c899ed4f34aaf6e40cb8efb1ea7 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 17:40:59 -0500 Subject: [PATCH 07/18] dist/ --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index bd59dce0..0e6f607e 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -517,7 +517,7 @@ jobs: - name: Install packages run: | # TODO: review how to get relevant test stuff installed - WHEEL_PATH=$(pip install --no-index --dry-run --find-links dist/ clvm_rs | sed -n 's;^.*/dist/\(.*\)$;\1;p') + WHEEL_PATH=dist/$(pip install --no-index --dry-run --find-links dist/ clvm_rs | sed -n 's;^.*/dist/\(.*\)$;\1;p') if [ "${WHEEL_PATH}" = "" ] then echo error: wheel not selected! From ff0cfc16d17fb25f2f114a9e0802a77426f4a24c Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 17:49:33 -0500 Subject: [PATCH 08/18] try to conditionally test clvm_tools import --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 0e6f607e..84c1c74a 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -526,7 +526,7 @@ jobs: pip install "${WHEEL_PATH}" ./clvm ${{ matrix.package.matrix == 'clvm_tools' && './clvm_tools' || '' }} blspy pytest python -c 'import clvm; print(clvm.__file__)' python -c 'import clvm_rs; print(clvm_rs.__file__)' - python -c 'import clvm_tools; print(clvm_tools.__file__)' + ${{ matrix.packages.matrix == 'clvm_tools' && 'python -c \'import clvm_tools; print(clvm_tools.__file__)\'' || '' }} - name: Test run: | From 1fced7aef80d9bbae47b8719206b8e2b774f4e6b Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 18:06:25 -0500 Subject: [PATCH 09/18] fixup yaml --- .github/workflows/build-test.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 84c1c74a..9974f3a0 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -526,7 +526,10 @@ jobs: pip install "${WHEEL_PATH}" ./clvm ${{ matrix.package.matrix == 'clvm_tools' && './clvm_tools' || '' }} blspy pytest python -c 'import clvm; print(clvm.__file__)' python -c 'import clvm_rs; print(clvm_rs.__file__)' - ${{ matrix.packages.matrix == 'clvm_tools' && 'python -c \'import clvm_tools; print(clvm_tools.__file__)\'' || '' }} + if [ "${{ matrix.packages.matrix == 'clvm_tools' && 'true' || 'false' }}" = "true" ] + then + python -c 'import clvm_tools; print(clvm_tools.__file__)' + fi - name: Test run: | From 0d68a9d3ba7a13b2f9d75ff3d0913f81721f47f8 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 18:13:52 -0500 Subject: [PATCH 10/18] add fuzz_targets as required for upload --- .github/workflows/build-test.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 9974f3a0..ce961fd7 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -543,6 +543,7 @@ jobs: - build-sdist - fmt - clippy + - fuzz_targets - unit_tests - clvm_tests strategy: From 8f7ccbf955b8509705183fc3d4cbce63ac938f6e Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 18:20:03 -0500 Subject: [PATCH 11/18] guess we always need clvm_tools even if only testing clvm, maybe --- .github/workflows/build-test.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index ce961fd7..91d880fa 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -369,10 +369,8 @@ jobs: package: - name: CLVM directory: clvm - matrix: clvm - name: CLVM tools directory: clvm_tools - matrix: clvm_tools os: - name: macOS matrix: macos @@ -491,7 +489,6 @@ jobs: path: clvm - name: Checkout CLVM tools - if: matrix.package.matrix == 'clvm_tools' uses: actions/checkout@v3 with: repository: Chia-Network/clvm_tools @@ -523,13 +520,10 @@ jobs: echo error: wheel not selected! exit 1 fi - pip install "${WHEEL_PATH}" ./clvm ${{ matrix.package.matrix == 'clvm_tools' && './clvm_tools' || '' }} blspy pytest + pip install "${WHEEL_PATH}" ./clvm ./clvm_tools blspy pytest python -c 'import clvm; print(clvm.__file__)' python -c 'import clvm_rs; print(clvm_rs.__file__)' - if [ "${{ matrix.packages.matrix == 'clvm_tools' && 'true' || 'false' }}" = "true" ] - then - python -c 'import clvm_tools; print(clvm_tools.__file__)' - fi + python -c 'import clvm_tools; print(clvm_tools.__file__)' - name: Test run: | From f7666fcd6fd38d4f29f130459dac7da3c98a8dbd Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 18:35:09 -0500 Subject: [PATCH 12/18] fetch-depth: 0 for the tags to identify the versions --- .github/workflows/build-test.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 91d880fa..4476389a 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -485,14 +485,18 @@ jobs: - name: Checkout CLVM uses: actions/checkout@v3 with: - repository: Chia-Network/clvm + # for the tags to identify the version + fetch-depth: 0 path: clvm + repository: Chia-Network/clvm - name: Checkout CLVM tools uses: actions/checkout@v3 with: - repository: Chia-Network/clvm_tools + # for the tags to identify the version + fetch-depth: 0 path: clvm_tools + repository: Chia-Network/clvm_tools - uses: Chia-Network/actions/setup-python@main with: From 321278658c602c5fd07c66035fc44f1c8da42d40 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 18:55:59 -0500 Subject: [PATCH 13/18] use bash for all the built-test workflow --- .github/workflows/build-test.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 4476389a..8fbfce30 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -15,6 +15,10 @@ concurrency: group: ${{ github.ref }}-${{ github.workflow }}-${{ github.event_name }}-${{ (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.ref, 'refs/heads/long_lived/')) && github.sha || '' }} cancel-in-progress: true +defaults: + run: + shell: bash + jobs: build-wheels: name: Wheel - ${{ matrix.os.name }} ${{ matrix.python.major-dot-minor }} ${{ matrix.arch.name }} From ba77a66196269b8653f86682488a827f2228e9cb Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 18:56:19 -0500 Subject: [PATCH 14/18] cd for the tests that assume a certain working directory --- .github/workflows/build-test.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 8fbfce30..31efad00 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -535,7 +535,9 @@ jobs: - name: Test run: | - pytest ${{ matrix.package.directory }}/tests + # the tests make assumptions about the working directory + cd ${{ matrix.package.directory }} + pytest tests upload: name: Upload to PyPI - ${{ matrix.os.name }} ${{ matrix.python.major-dot-minor }} ${{ matrix.arch.name }} From 0f21ff222183d20350608c620d7fe65fb70649d2 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 19:00:38 -0500 Subject: [PATCH 15/18] use actions for venv creation and activation --- .github/workflows/build-test.yml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index 31efad00..b2d7fe4a 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -148,6 +148,13 @@ jobs: with: python-version: ${{ matrix.python.major-dot-minor }} + - uses: Chia-Network/actions/create-venv@main + id: create-venv + + - uses: Chia-Network/actions/activate-venv@main + with: + directories: ${{ steps.create-venv.outputs.activate-venv-directories }} + - name: Update pip run: | python -m pip install --upgrade pip @@ -166,8 +173,6 @@ jobs: env: MACOSX_DEPLOYMENT_TARGET: ${{ matrix.arch.matrix == 'intel' && '10.14' || '11.0' }} run: | - python${{ matrix.python.major-dot-minor }} -m venv venv - . venv/bin/activate maturin build -i python --release -m wheel/Cargo.toml # TODO: add back these? --strip --features=openssl @@ -194,18 +199,16 @@ jobs: - name: Build Windows with maturin on Python ${{ matrix.python }} if: matrix.os.matrix == 'windows' run: | - py -${{ matrix.python.major-dot-minor }} -m venv venv - . .\venv\Scripts\Activate.ps1 maturin build -i python --release -m wheel/Cargo.toml # TODO: add back these? --strip # TODO: why no --feature=openssl here? - uses: Chia-Network/actions/create-venv@main - id: create-venv + id: create-install-venv - uses: Chia-Network/actions/activate-venv@main with: - directories: ${{ steps.create-venv.outputs.activate-venv-directories }} + directories: ${{ steps.create-install-venv.outputs.activate-venv-directories }} - name: Install clvm_rs wheel run: | From 7ca3afd4b601193a7da4cffbd64b1268d446ecb5 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 19:12:59 -0500 Subject: [PATCH 16/18] diagnostics for wheel selection --- .github/workflows/build-test.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index b2d7fe4a..fbac0307 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -525,11 +525,14 @@ jobs: - name: Install packages run: | # TODO: review how to get relevant test stuff installed - WHEEL_PATH=dist/$(pip install --no-index --dry-run --find-links dist/ clvm_rs | sed -n 's;^.*/dist/\(.*\)$;\1;p') + pip install --no-index --dry-run --find-links dist/ clvm_rs | tee .tmp.wheel_path + WHEEL_PATH=dist/$(cat .tmp.wheel_path | sed -n 's;^.*/dist/\(.*\)$;\1;p') if [ "${WHEEL_PATH}" = "" ] then echo error: wheel not selected! exit 1 + else + echo wheel selected: ${WHEEL_PATH} fi pip install "${WHEEL_PATH}" ./clvm ./clvm_tools blspy pytest python -c 'import clvm; print(clvm.__file__)' From ffc42e5e0145f48c8a35476daf3ecee689fa9dd2 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 28 Jan 2023 19:20:45 -0500 Subject: [PATCH 17/18] sed for / or \ --- .github/workflows/build-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index fbac0307..c05116b0 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -526,7 +526,7 @@ jobs: run: | # TODO: review how to get relevant test stuff installed pip install --no-index --dry-run --find-links dist/ clvm_rs | tee .tmp.wheel_path - WHEEL_PATH=dist/$(cat .tmp.wheel_path | sed -n 's;^.*/dist/\(.*\)$;\1;p') + WHEEL_PATH=dist/$(cat .tmp.wheel_path | sed -n 's;^.*[/\\]dist[/\\]\(.*\)$;\1;p') if [ "${WHEEL_PATH}" = "" ] then echo error: wheel not selected! From ecedc1d1a5a247e747c626dba6d050abc562d41e Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Mon, 13 Feb 2023 09:49:10 -0500 Subject: [PATCH 18/18] remove a few TODOs --- .github/workflows/build-test.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/build-test.yml b/.github/workflows/build-test.yml index c05116b0..c1a50ef7 100644 --- a/.github/workflows/build-test.yml +++ b/.github/workflows/build-test.yml @@ -25,7 +25,6 @@ jobs: runs-on: ${{ matrix.os.runs-on[matrix.arch.matrix] }} strategy: fail-fast: false - # TODO: switch back to abi3/single python version builds. (or maybe not?) matrix: os: - name: macOS @@ -292,8 +291,7 @@ jobs: with: # TODO: was stable before, should probably be consistent across projects toolchain: nightly - # TODO: why are we installing clippy here... - components: rustfmt, clippy + components: rustfmt override: true - name: fmt # TODO: didn't have --all before @@ -524,7 +522,6 @@ jobs: - name: Install packages run: | - # TODO: review how to get relevant test stuff installed pip install --no-index --dry-run --find-links dist/ clvm_rs | tee .tmp.wheel_path WHEEL_PATH=dist/$(cat .tmp.wheel_path | sed -n 's;^.*[/\\]dist[/\\]\(.*\)$;\1;p') if [ "${WHEEL_PATH}" = "" ]