Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-3621

Create Python library compatibility test script

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • None
    • build, python

    Description

      It would be nice to have a script checked in $KUDU_HOME/build-support which would test all the supported Python versions, maybe check that the packaging/package installation works as expected.
      things to test:

      • build from source, and run all tests
      • build from source the sdist (what we upload to pypi), then try to install that package in a clean env (maybe on could also put in running the python example as well)
      • handle ubuntu and macos: on ubuntu we have somewhat well defined version support, however on macos testing the lower end of the support range is not feasible

      so far i've been using a simple script when running version compatibility tests.
      Maybe this can serve as a starting point for creating a nice script.
      My script for testing on macos for example:

      #!/bin/bash
      set -eou pipefail
      
      export DYLD_LIBRARY_PATH=$KUDU_HOME/build/debug/lib:$KUDU_HOME/build/debug/lib/exported
      
      version=$1
      kudu_python_package_filename="kudu_python-1.18.0.dev0.tar.gz"
      cd $KUDU_HOME/python
      rm -rf venv/
      
      ### Testing dev env
      
      python$version --version
      
      echo "testing if development setup works"
      rm -rf ./build/*
      rm -rf kudu_python.egg-info
      echo "creating venv"
      virtualenv -p python$version venv
      source ./venv/bin/activate
      python -m pip install -r requirements_dev.txt
      python setup.py test
      deactivate
      rm -rf ./venv
      
      ### Test Packaging
      echo "build the source dist in a clean env"
      rm -rf ./dist/*
      echo "creating venv"
      virtualenv -p python$version venv
      source ./venv/bin/activate
      python setup.py sdist
      deactivate
      rm -rf ./venv
      echo "cleaned up venv"
      
      echo "install the sdist into a clean venv"
      echo "creating venv"
      virtualenv -p python$version venv
      source ./venv/bin/activate
      pip install ./dist/$kudu_python_package_filename
      echo "executing pip list:"
      pip list
      deactivate
      rm -rf ./venv
      

      Attachments

        Activity

          People

            Unassigned Unassigned
            mgreber Marton Greber
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: