diff --git a/README.md b/README.md index d779178df..ad8f0a9d7 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ More examples can be found [here](https://tuplex.cs.brown.edu/gettingstarted.htm To install Tuplex, you can use a PyPi package for Linux or MacOS(Intel), or a Docker container which will launch a jupyter notebook with Tuplex preinstalled. #### Docker ``` -docker run -p 8888:8888 tuplex/tuplex:v0.3.6dev +docker run -p 8888:8888 tuplex/tuplex:v0.3.6 ``` #### PyPI ``` diff --git a/benchmarks/311/create_conf.py b/benchmarks/311/create_conf.py index c5e2cfaed..5ae3e6532 100644 --- a/benchmarks/311/create_conf.py +++ b/benchmarks/311/create_conf.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# (c) 2020 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # this script creates Tuplex json configuration files for benchmarks import json diff --git a/benchmarks/dirty_zillow/benchmark_interpreter_vs_compiled_resolve.sh b/benchmarks/dirty_zillow/benchmark_interpreter_vs_compiled_resolve.sh index 04e69150e..097bc8ed0 100644 --- a/benchmarks/dirty_zillow/benchmark_interpreter_vs_compiled_resolve.sh +++ b/benchmarks/dirty_zillow/benchmark_interpreter_vs_compiled_resolve.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2021 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # this file compares how fast in a single-threaded setting resolving via # 1. interpreter only vs. 2. compiled code path is diff --git a/benchmarks/dirty_zillow/create_conf.py b/benchmarks/dirty_zillow/create_conf.py index 39bd486d1..5d90e2fe1 100644 --- a/benchmarks/dirty_zillow/create_conf.py +++ b/benchmarks/dirty_zillow/create_conf.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# (c) 2020 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # this script creates Tuplex json configuration files for benchmarks import json diff --git a/benchmarks/flights/benchmark-tuplex-caching.sh b/benchmarks/flights/benchmark-tuplex-caching.sh index 7c5626c17..9776cb112 100644 --- a/benchmarks/flights/benchmark-tuplex-caching.sh +++ b/benchmarks/flights/benchmark-tuplex-caching.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2020 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # run pyspark + tuplex with artitifical optimization barriers # Parse HWLOC settings diff --git a/benchmarks/flights/create_conf.py b/benchmarks/flights/create_conf.py index aa9b5ff2d..bed557ea3 100644 --- a/benchmarks/flights/create_conf.py +++ b/benchmarks/flights/create_conf.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# (c) 2020 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # this script creates Tuplex json configuration files for benchmarks import json diff --git a/benchmarks/flights/runbenchmark.sh b/benchmarks/flights/runbenchmark.sh index 9bf8da702..7b1c9424c 100644 --- a/benchmarks/flights/runbenchmark.sh +++ b/benchmarks/flights/runbenchmark.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2021 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # runs Tuplex benchmark on AWS setup # use 11 runs and a timeout after 60min diff --git a/benchmarks/logs/create_conf.py b/benchmarks/logs/create_conf.py index c5e2cfaed..5ae3e6532 100644 --- a/benchmarks/logs/create_conf.py +++ b/benchmarks/logs/create_conf.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# (c) 2020 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # this script creates Tuplex json configuration files for benchmarks import json diff --git a/benchmarks/sigmod21-reproducibility/README.md b/benchmarks/sigmod21-reproducibility/README.md index 562a54b21..ec6eb2f99 100644 --- a/benchmarks/sigmod21-reproducibility/README.md +++ b/benchmarks/sigmod21-reproducibility/README.md @@ -177,4 +177,4 @@ The experiment comparing Tuplex's Lambda backend vs. Spark is unfortunately not The setup guide and source code for this experiment can be found in the `benchmarks/distributed` folder. -- -(c) 2021 Tuplex authors +(c) 2017 - 2023 Tuplex authors diff --git a/benchmarks/tpch/Q06/create_conf.py b/benchmarks/tpch/Q06/create_conf.py index abe2b7344..e72bc74ea 100644 --- a/benchmarks/tpch/Q06/create_conf.py +++ b/benchmarks/tpch/Q06/create_conf.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# (c) 2020 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # this script creates Tuplex json configuration files for benchmarks import json diff --git a/benchmarks/tpch/Q06/runbenchmark.sh b/benchmarks/tpch/Q06/runbenchmark.sh index 920be7a93..8295e96a0 100644 --- a/benchmarks/tpch/Q06/runbenchmark.sh +++ b/benchmarks/tpch/Q06/runbenchmark.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2021 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # runs Tuplex TPCH Q06 benchmark on AWS setup # use 11 runs and a timeout after 60min diff --git a/benchmarks/tpch/Q19/create_conf.py b/benchmarks/tpch/Q19/create_conf.py index abe2b7344..e72bc74ea 100644 --- a/benchmarks/tpch/Q19/create_conf.py +++ b/benchmarks/tpch/Q19/create_conf.py @@ -1,5 +1,5 @@ #!/usr/bin/env python3 -# (c) 2020 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # this script creates Tuplex json configuration files for benchmarks import json diff --git a/benchmarks/tpch/Q19/runbenchmark.sh b/benchmarks/tpch/Q19/runbenchmark.sh index 534512989..1fe4d9220 100644 --- a/benchmarks/tpch/Q19/runbenchmark.sh +++ b/benchmarks/tpch/Q19/runbenchmark.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2021 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # runs Tuplex TPCH Q19 benchmark on AWS setup # use 11 runs and a timeout after 60min diff --git a/doc/create-site.sh b/doc/create-site.sh index 6ac49af95..702c5b9b3 100755 --- a/doc/create-site.sh +++ b/doc/create-site.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2020 L.Spiegelberg +# (c) 2017 - 2023 L.Spiegelberg # runs all command to package website rm -rf build diff --git a/doc/source/conf.py b/doc/source/conf.py index 63c9f791a..5654ab6df 100755 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -30,13 +30,13 @@ # -- Project information ----------------------------------------------------- project = 'Tuplex' -copyright = '(c) 2021 Tuplex Contributors' +copyright = '(c) 2017 - 2023 Tuplex Contributors' author = 'Leonhard Spiegelberg' # The short X.Y version version="0.3" # The full version, including alpha/beta/rc tags -release="0.3.6dev" +release="0.3.6" # -- General configuration --------------------------------------------------- diff --git a/examples/00_HelloTuplex.ipynb b/examples/00_HelloTuplex.ipynb index cca4bf63d..f2b42f13f 100644 --- a/examples/00_HelloTuplex.ipynb +++ b/examples/00_HelloTuplex.ipynb @@ -59,7 +59,7 @@ "id": "e82e0f44", "metadata": {}, "source": [ - "(c) 2022 Tuplex Team" + "(c) 2017 - 2023 Tuplex Team" ] } ], diff --git a/scripts/build_linux_wheels.sh b/scripts/build_linux_wheels.sh index d78877d72..9bf5885fb 100755 --- a/scripts/build_linux_wheels.sh +++ b/scripts/build_linux_wheels.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2021 Tuplex team +# (c) 2017 - 2023 Tuplex team # this script invokes the cibuildwheel process with necessary env variables to build the wheel for linux/docker # builds wheels for python 3.7 - 3.9 diff --git a/scripts/docker/benchmark/Dockerfile b/scripts/docker/benchmark/Dockerfile index 9ea6bfa4d..4188a4aee 100644 --- a/scripts/docker/benchmark/Dockerfile +++ b/scripts/docker/benchmark/Dockerfile @@ -1,5 +1,5 @@ # Docker image based on Ubuntu 20.04 which holds all frameworks for evaluation -# (c) 2021 L.Spiegelberg, R. Yesantharao +# (c) 2017 - 2023 L.Spiegelberg, R. Yesantharao FROM ubuntu:20.04 MAINTAINER Leonhard Spiegelberg "leonhard_spiegelberg@brown.edu" diff --git a/scripts/docker/benchmark/create-image.sh b/scripts/docker/benchmark/create-image.sh index 561b197db..d4aed79b1 100755 --- a/scripts/docker/benchmark/create-image.sh +++ b/scripts/docker/benchmark/create-image.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2021 Tuplex contributors +# (c) 2017 - 2023 Tuplex contributors # builds benchmark image while :; do diff --git a/scripts/docker/ci/create-image.sh b/scripts/docker/ci/create-image.sh index 589e2ccd9..a58a73230 100755 --- a/scripts/docker/ci/create-image.sh +++ b/scripts/docker/ci/create-image.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2021 Tuplex contributors +# (c) 2017 - 2023 Tuplex contributors # builds CI image while :; do diff --git a/scripts/docker/tuplex/Dockerfile b/scripts/docker/tuplex/Dockerfile index 2a59b4313..b0651a2d2 100644 --- a/scripts/docker/tuplex/Dockerfile +++ b/scripts/docker/tuplex/Dockerfile @@ -1,4 +1,4 @@ -# (c) 2022 Tuplex contributors +# (c) 2017 - 2023 Tuplex contributors # a ready-to-run Tuplex version on a jupyter image # docker pull jupyter/minimal-notebook:python-3.9.13 diff --git a/scripts/docker/tuplex/create-image.sh b/scripts/docker/tuplex/create-image.sh index 48acf1c15..3bc88141a 100755 --- a/scripts/docker/tuplex/create-image.sh +++ b/scripts/docker/tuplex/create-image.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (c) 2022 Tuplex contributors +# (c) 2017 - 2023 Tuplex contributors # builds notebook image while :; do @@ -20,10 +20,10 @@ cp -R ../../../examples/sample_data . # build benchmark docker image # copy from scripts to current dir because docker doesn't understand files # outside the build context -docker build -t tuplex/tuplex:0.3.6dev -f Dockerfile . || exit 1 +docker build -t tuplex/tuplex:0.3.6 -f Dockerfile . || exit 1 # is upload set? if [[ "${UPLOAD}" == 'SET' ]]; then docker login - docker push tuplex/tuplex:0.3.6dev + docker push tuplex/tuplex:0.3.6 fi diff --git a/scripts/macos/install_aws-sdk-cpp.sh b/scripts/macos/install_aws-sdk-cpp.sh index ff6ff2411..16cd47b6f 100755 --- a/scripts/macos/install_aws-sdk-cpp.sh +++ b/scripts/macos/install_aws-sdk-cpp.sh @@ -2,7 +2,7 @@ # check if dir exists (i.e. restored from cache, then skip) if [ -d "/usr/local/include/aws" ]; then - echo ">> Skip aws-sdk-cpp compile from source, already exists" + echo ">> Skip aws-sdk-cpp compile from source, already exists." exit 0 fi @@ -16,10 +16,9 @@ MACOS_VERSION=$(sw_vers -productVersion) echo "-- processing on MacOS ${MACOS_VERSION}" function version { echo "$@" | awk -F. '{ printf("%d%03d%03d%03d\n", $1,$2,$3,$4); }'; } -MACOS_VERSION_MAJOR=${MACOS_VERSION%.*} -if [ $MACOS_VERSION_MAJOR -ge 11 ]; then +MACOS_VERSION_MAJOR=$(echo "$MACOS_VERSION" | awk -F \. {'print $1'}) +if (( $MACOS_VERSION_MAJOR >= 11 )); then echo "-- Newer MacOS detected (>=11.0), using more recent base target." - MACOS_VERSION_MAJOR=${MACOS_VERSION%.*} echo "-- Using minimum target ${MACOS_VERSION_MAJOR}.0" MINIMUM_TARGET="-DCMAKE_OSX_DEPLOYMENT_TARGET=${MACOS_VERSION_MAJOR}.0" else diff --git a/scripts/set_version.py b/scripts/set_version.py index 566268883..a9bcb27f0 100755 --- a/scripts/set_version.py +++ b/scripts/set_version.py @@ -17,7 +17,7 @@ def LooseVersion(v): # to create a testpypi version use X.Y.devN -version = '0.3.6dev' +version = '0.3.6' # https://pypi.org/simple/tuplex/ # or https://test.pypi.org/simple/tuplex/ diff --git a/setup.py b/setup.py index c7e414936..c3616d281 100644 --- a/setup.py +++ b/setup.py @@ -79,12 +79,39 @@ def in_google_colab(): 'iso8601' ] +def run_command(cmd, cwd, env): + """ + run shell command `cmd` + :param cmd: command to run (list of strings) + :param cwd: working directory for command + :param env: environment dictionary + + "raises": raise subprocess.Ca + """ + + output, error = None, None + res = None + try: + res = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=cwd, env=env) + output, error = res.communicate() + if output: + logging.info(f"ret> {res.returncode}") + logging.info(f"OK> output {output.decode()}") + if error: + logging.info(f"ret> {res.returncode}") + logging.info(f"Error> error {error.decode().strip()}") + except os.OSError as e: + logging.error(f"OSError > {e.errno}") + logging.error(f"OSError > {e.strerror}") + logging.error(f"OSError > {e.filename}") + except: + logging.error("Error > {sys.exc_info()[0]}") + raise subprocess.CalledProcessError(res.returncode if res else 1, cmd, output, error) + # dependencies for AWS Lambda backend... # boto is broken currently... aws_lambda_dependencies = [] -# check python version, e.g., cloudpickle is specific - # manual fix for google colab if in_google_colab(): logging.debug('Building dependencies for Google Colab environment') @@ -515,16 +542,17 @@ def parse_bool_option(key): if 'MACOSX_DEPLOYMENT_TARGET' not in build_env.keys() and platform.system().lower() == 'darwin': build_env['MACOSX_DEPLOYMENT_TARGET'] = macos_build_target - subprocess.check_call( - ["cmake", ext.sourcedir] + cmake_args, cwd=self.build_temp, env=build_env - ) + cmake_command = ["cmake", ext.sourcedir] + cmake_args + logging.info('cmake build command: {}'.format(' '.join(cmake_command))) + run_command(cmake_command, cwd=self.build_temp, env=build_env) + logging.info('configuration done, workdir={}'.format(self.build_temp)) subprocess.check_call( ["cmake", "--build", "."] + build_args, cwd=self.build_temp, env=build_env ) # this helps to search paths in doubt - # print('searching for .so files in {}'.format(self.build_temp)) + # logging.info('searching for .so files in {}'.format(self.build_temp)) # subprocess.check_call(['find', '.', '-name', '*.so'], cwd = self.build_temp) # subprocess.check_call(['find', '.', '-name', '*.so'], cwd = ext.sourcedir) @@ -667,7 +695,7 @@ def tplx_package_data(): # logic and declaration, and simpler if you include description/version in a file. setup(name="tuplex", python_requires='>=3.8.0', - version="0.3.6dev", + version="0.3.6", author="Leonhard Spiegelberg", author_email="tuplex@cs.brown.edu", description="Tuplex is a novel big data analytics framework incorporating a Python UDF compiler based on LLVM " diff --git a/tuplex/awslambda/resources/scripts/make_lambda.sh b/tuplex/awslambda/resources/scripts/make_lambda.sh index 0c36fcf57..15ffb0f1d 100755 --- a/tuplex/awslambda/resources/scripts/make_lambda.sh +++ b/tuplex/awslambda/resources/scripts/make_lambda.sh @@ -9,7 +9,7 @@ //--------------------------------------------------------------------------------------------------------------------// #!/usr/bin/env bash -# (c) 2021 L. Spiegelberg, R. Yesantharao +# (c) 2017 - 2023 L. Spiegelberg, R. Yesantharao # Create AWS Lambda function and upload the provided function zip file. LAMBDA_NAME=tplxlam diff --git a/tuplex/historyserver/thserver/version.py b/tuplex/historyserver/thserver/version.py index 2d7af0fea..7cb607a85 100644 --- a/tuplex/historyserver/thserver/version.py +++ b/tuplex/historyserver/thserver/version.py @@ -1,2 +1,2 @@ -# (c) L.Spiegelberg 2017 - 2022 -__version__="0.3.6dev" \ No newline at end of file +# (c) L.Spiegelberg 2017 - 2023 +__version__="0.3.6" \ No newline at end of file diff --git a/tuplex/python/setup.py b/tuplex/python/setup.py index 1e07b1dd4..99ad427eb 100644 --- a/tuplex/python/setup.py +++ b/tuplex/python/setup.py @@ -29,7 +29,7 @@ setup( name="Tuplex", - version="0.3.6dev", + version="0.3.6", packages=find_packages(), package_data={ # include libs in libexec diff --git a/tuplex/python/tuplex/utils/version.py b/tuplex/python/tuplex/utils/version.py index 2d7af0fea..7cb607a85 100644 --- a/tuplex/python/tuplex/utils/version.py +++ b/tuplex/python/tuplex/utils/version.py @@ -1,2 +1,2 @@ -# (c) L.Spiegelberg 2017 - 2022 -__version__="0.3.6dev" \ No newline at end of file +# (c) L.Spiegelberg 2017 - 2023 +__version__="0.3.6" \ No newline at end of file