From 3a27ea77f85f41486c57286f5e73a5cac96cc35c Mon Sep 17 00:00:00 2001 From: Malte Helmert Date: Sun, 26 Jul 2020 23:39:50 +0200 Subject: [PATCH] [release-20.06] Release version 20.06.0. --- driver/version.py | 2 +- misc/releases/20.06/Dockerfile.20.06 | 85 ++++++++++++++++++ misc/releases/20.06/Singularity.20.06 | 14 +++ misc/releases/20.06/Vagrantfile.20.06 | 119 ++++++++++++++++++++++++++ misc/releases/latest/Dockerfile | 2 +- misc/releases/latest/Singularity | 2 +- misc/releases/latest/Vagrantfile | 2 +- 7 files changed, 222 insertions(+), 4 deletions(-) create mode 100644 misc/releases/20.06/Dockerfile.20.06 create mode 100644 misc/releases/20.06/Singularity.20.06 create mode 100644 misc/releases/20.06/Vagrantfile.20.06 diff --git a/driver/version.py b/driver/version.py index 8e36c8b2f2..cbc8e3eb16 100644 --- a/driver/version.py +++ b/driver/version.py @@ -1,4 +1,4 @@ # This file is auto-generated by the scripts in misc/release. # Do not modify it. -__version__ = "19.12+" +__version__ = "20.06" diff --git a/misc/releases/20.06/Dockerfile.20.06 b/misc/releases/20.06/Dockerfile.20.06 new file mode 100644 index 0000000000..d19cae1fbb --- /dev/null +++ b/misc/releases/20.06/Dockerfile.20.06 @@ -0,0 +1,85 @@ +# This file has been automatically generated. + +# The recipe below implements a Docker multi-stage build: +# + +############################################################################### +# A first image to build the planner +############################################################################### +FROM ubuntu:18.04 AS builder + +RUN apt-get update && apt-get install --no-install-recommends -y \ + ca-certificates \ + cmake \ + g++ \ + git \ + libgmp3-dev \ + make \ + python3 \ + wget \ + zlib1g-dev + +# Set up some environment variables. +ENV CXX g++ +ENV SOPLEX_VERSION soplex-3.1.1 +ENV DOWNWARD_SOPLEX_INSTALLER $SOPLEX_VERSION.tgz +ENV DOWNWARD_SOPLEX_ROOT /opt/soplex +ENV OSI_VERSION Osi-0.107.9 +ENV DOWNWARD_COIN_ROOT /opt/osi + +# Install SoPlex. +WORKDIR /workspace/soplex +ADD $SOPLEX_VERSION.tgz . +RUN mkdir -p $SOPLEX_VERSION/build && \ + cd $SOPLEX_VERSION/build && \ + cmake -DCMAKE_INSTALL_PREFIX="$DOWNWARD_SOPLEX_ROOT" .. && \ + make && \ + make install + +# Install OSI with support for both CPLEX and SoPlex. +WORKDIR /workspace/osi/ +RUN wget http://www.coin-or.org/download/source/Osi/$OSI_VERSION.tgz && \ + tar xvzf $OSI_VERSION.tgz && \ + cd $OSI_VERSION && \ + mkdir $DOWNWARD_COIN_ROOT && \ + ./configure CC="gcc" CFLAGS="-pthread -Wno-long-long" \ + CXX="g++" CXXFLAGS="-pthread -Wno-long-long" \ + LDFLAGS="-L$DOWNWARD_SOPLEX_ROOT/lib" \ + --without-lapack --enable-static=no \ + --prefix="$DOWNWARD_COIN_ROOT" \ + --disable-bzlib \ + --with-soplex-incdir="$DOWNWARD_SOPLEX_ROOT/include" \ + --with-soplex-lib="-lsoplex" && \ + make && \ + make install + +# Install Fast Downward. +WORKDIR /workspace/downward/ +RUN git clone --depth 1 --branch release-20.06.0 https://github.com/aibasel/downward.git . && \ + ./build.py && \ + strip --strip-all builds/release/bin/downward + + +############################################################################### +# The final image to run the planner +############################################################################### +FROM ubuntu:18.04 AS runner + +RUN apt-get update && apt-get install --no-install-recommends -y \ + python3 \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /workspace/downward/ + +# Copy the relevant files from the previous docker build into this build. +COPY --from=builder /workspace/downward/fast-downward.py . +COPY --from=builder /workspace/downward/builds/release/bin/ ./builds/release/bin/ +COPY --from=builder /workspace/downward/driver ./driver +COPY --from=builder /opt/soplex /opt/soplex +COPY --from=builder /opt/osi /opt/osi + +ENV DOWNWARD_SOPLEX_ROOT=/opt/soplex +ENV DOWNWARD_COIN_ROOT=/opt/osi +ENV LD_LIBRARY_PATH=$DOWNWARD_SOPLEX_ROOT/lib:$DOWNWARD_COIN_ROOT/lib + +ENTRYPOINT ["/workspace/downward/fast-downward.py"] diff --git a/misc/releases/20.06/Singularity.20.06 b/misc/releases/20.06/Singularity.20.06 new file mode 100644 index 0000000000..030fbc68e2 --- /dev/null +++ b/misc/releases/20.06/Singularity.20.06 @@ -0,0 +1,14 @@ +# This file has been automatically generated. + +Bootstrap: docker +From: aibasel/downward:20.06 + +%setup + # Just for diagnosis purposes + hostname -f > $SINGULARITY_ROOTFS/etc/build_host + +%post + +%labels +Name Fast Downward +Description Singularity image for the Fast Downward planning system diff --git a/misc/releases/20.06/Vagrantfile.20.06 b/misc/releases/20.06/Vagrantfile.20.06 new file mode 100644 index 0000000000..4af28c3f2d --- /dev/null +++ b/misc/releases/20.06/Vagrantfile.20.06 @@ -0,0 +1,119 @@ +# All Vagrant configuration is done below. The "2" in Vagrant.configure +# configures the configuration version (we support older styles for +# backwards compatibility). Please don't change it unless you know what +# you're doing. +Vagrant.configure("2") do |config| + # For a complete reference of vagrant options see https://docs.vagrantup.com. + + config.vm.box = "ubuntu/bionic64" + + # To compile the planner with support for CPLEX or SoPlex, download the 64-bit + # Linux installers of CPLEX 12.9 and/or SoPlex 3.1.1 and set the environment + # variable DOWNWARD_LP_INSTALLERS to an absolute path containing them before + # provisioning the VM. + provision_env = {} + if !ENV["DOWNWARD_LP_INSTALLERS"].nil? + cplex_installer = ENV["DOWNWARD_LP_INSTALLERS"] + "/cplex_studio129.linux-x86-64.bin" + soplex_installer = ENV["DOWNWARD_LP_INSTALLERS"] + "/soplex-3.1.1.tgz" + if File.exists?(cplex_installer) || File.exists?(soplex_installer) + config.vm.synced_folder ENV["DOWNWARD_LP_INSTALLERS"], "/lp", :mount_options => ["ro"] + provision_env["CPLEX_INSTALLER"] = "/lp/" + File.basename(cplex_installer) + provision_env["SOPLEX_INSTALLER"] = "/lp/" + File.basename(soplex_installer) + end + end + + config.vm.provision "shell", env: provision_env, inline: <<-SHELL + + apt-get update && apt-get install --no-install-recommends -y \ + ca-certificates \ + cmake \ + default-jre \ + g++ \ + git \ + libgmp3-dev \ + make \ + python3 \ + unzip \ + wget \ + zlib1g-dev + + OSI_LD_FLAGS="" + OSI_CONFIG_OPTIONS=() + if [ -f "$CPLEX_INSTALLER" ]; then + # Set environment variables for CPLEX. + cat > /etc/profile.d/downward-cplex.sh <<- EOM + export DOWNWARD_CPLEX_ROOT="/opt/ibm/ILOG/CPLEX_Studio129/cplex" + EOM + source /etc/profile.d/downward-cplex.sh + + # Install CPLEX. + $CPLEX_INSTALLER -DLICENSE_ACCEPTED=TRUE -i silent + + # Prepare configuration of OSI. + OSI_LD_FLAGS="$OSI_LD_FLAGS -L$DOWNWARD_CPLEX_ROOT/bin/x86-64_linux" + OSI_CONFIG_OPTIONS+=( + "--with-cplex-incdir=$DOWNWARD_CPLEX_ROOT/include/ilcplex" + "--with-cplex-lib=-lcplex1290 -lm") + fi + + if [ -f "$SOPLEX_INSTALLER" ]; then + # Set environment variables for SoPlex. + cat > /etc/profile.d/downward-soplex.sh <<- EOM + export DOWNWARD_SOPLEX_ROOT="/opt/soplex" + EOM + source /etc/profile.d/downward-soplex.sh + + # Install SoPlex. + tar xvzf $SOPLEX_INSTALLER + pushd $(basename $SOPLEX_INSTALLER .tgz) + mkdir build + cd build + cmake -DCMAKE_INSTALL_PREFIX="$DOWNWARD_SOPLEX_ROOT" .. + make + make install + popd + + # Prepare configuration of OSI. + OSI_LD_FLAGS="$OSI_LD_FLAGS -L$DOWNWARD_SOPLEX_ROOT/lib" + OSI_CONFIG_OPTIONS+=( + "--with-soplex-incdir=$DOWNWARD_SOPLEX_ROOT/include" + "--with-soplex-lib=-lsoplex") + fi + + if [ -f "$CPLEX_INSTALLER" ] || [ -f "$SOPLEX_INSTALLER" ]; then + # Set environment variables for OSI. + cat > /etc/profile.d/downward-osi.sh <<- EOM + export DOWNWARD_COIN_ROOT="/opt/osi" + EOM + source /etc/profile.d/downward-osi.sh + + # Install OSI. + OSI_VERSION="Osi-0.107.9" + wget http://www.coin-or.org/download/source/Osi/$OSI_VERSION.tgz + tar xvzf $OSI_VERSION.tgz + pushd $OSI_VERSION + mkdir $DOWNWARD_COIN_ROOT + + ./configure CC="gcc" CFLAGS="-pthread -Wno-long-long" \ + CXX="g++" CXXFLAGS="-pthread -Wno-long-long" \ + LDFLAGS="$OSI_LD_FLAGS" \ + --without-lapack --enable-static=no \ + --prefix="$DOWNWARD_COIN_ROOT" \ + --disable-bzlib \ + "${OSI_CONFIG_OPTIONS[@]}" + make + make install + popd + rm -rf $OSI_VERSION $OSI_VERSION.tgz + fi + + cd /home/vagrant + + if ! [ -e downward ] ; then + git clone --branch release-20.06.0 https://github.com/aibasel/downward.git downward + ./downward/build.py + chown -R vagrant.vagrant downward + fi + + SHELL +end diff --git a/misc/releases/latest/Dockerfile b/misc/releases/latest/Dockerfile index fb0a0b5836..3446f17989 120000 --- a/misc/releases/latest/Dockerfile +++ b/misc/releases/latest/Dockerfile @@ -1 +1 @@ -../19.12/Dockerfile.19.12 \ No newline at end of file +../20.06/Dockerfile.20.06 \ No newline at end of file diff --git a/misc/releases/latest/Singularity b/misc/releases/latest/Singularity index 5a7eee5030..8025d9a391 120000 --- a/misc/releases/latest/Singularity +++ b/misc/releases/latest/Singularity @@ -1 +1 @@ -../19.12/Singularity.19.12 \ No newline at end of file +../20.06/Singularity.20.06 \ No newline at end of file diff --git a/misc/releases/latest/Vagrantfile b/misc/releases/latest/Vagrantfile index 38f7dd45d6..3ad88e170a 120000 --- a/misc/releases/latest/Vagrantfile +++ b/misc/releases/latest/Vagrantfile @@ -1 +1 @@ -../19.12/Vagrantfile.19.12 \ No newline at end of file +../20.06/Vagrantfile.20.06 \ No newline at end of file