chialisp 0.5.0

tools for working with chialisp language; compiler, repl, python and wasm bindings
Documentation
# Taken from clvm_rs' version.
name: Extensive tests

on:
  push:
    branches:
      - main
      - dev
    tags:
        - '**'
  pull_request:
    branches:
      - '**'

jobs:
  extensive_tests:
    name: Extensive tests
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false

    steps:
    - uses: actions/checkout@v7
      with:
        fetch-depth: 0

    - name: Set up rust tools
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        components: rustfmt, clippy

    - name: Set up rust (stable)
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable
        components: rustfmt, clippy

    - uses: actions/setup-python@v6
      name: Install Python 3.11
      with:
        python-version: 3.11

    - 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 and dependencies
      run: |
        python -m pip install --upgrade pip maturin==1.10.2

    - name: Set up rust
      uses: actions-rs/toolchain@v1
      with:
        toolchain: stable

    - name: Build Linux in manylinux_2_28 with maturin on Python ${{ matrix.python }}
      run: |
        docker run --rm -v $(pwd):/io ghcr.io/pyo3/maturin:v1.10.2 build --release --strip --manylinux 2_28
        # Refresh in case any ownerships changed.
        mv target target.docker && cp -r target.docker target
        # Ensure an empty .cargo-lock file exists.
        touch target/release/.cargo-lock

    - name: Install chialisp wheel
      if: ${{ !startsWith(matrix.os, 'windows') }}
      run: |
        ls 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
        export WHEEL_PATH=$(echo "3.10" | python -c 'DOTLESS=input().replace(".", ""); import glob; print(" ".join(filter(lambda x: "musl" not in x, glob.glob("target/wheels/chialisp-*-cp*-*.whl"))))' )
        echo ${WHEEL_PATH}
        pip install ${WHEEL_PATH}

    - name: Install other wheels
      run: |
        python -m pip install pytest
        python -m pip install blspy

    - name: install clvm & clvm_tools
      run: |
        git clone https://github.com/Chia-Network/clvm.git --branch=main --single-branch
        python -m pip install ./clvm

        echo "installing clvm_rs via pip"
        pip install clvm_rs

        echo "installing clvm_tools for clvm tests"
        # clvm tools is required to run the tests is clvm
        python -m pip install clvm_tools

        # Install chialisp pkg as "clvm_tools_rs" for older test framework
        pip install -e ./tmp


    - name: Run game referee test
      run: |
        cp support/test-game-referee.sh .
        sh test-game-referee.sh resources/tests/game-referee-in-cl23
        sh test-game-referee.sh resources/tests/game-referee-in-cl21
        sh test-game-referee.sh resources/tests/game-referee-after-cl21