diff --git a/driver/version.py b/driver/version.py index 7c1f09167a..f38f42a20f 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__ = "22.12+" +__version__ = "23.06" diff --git a/misc/releases/23.06/Dockerfile.23.06 b/misc/releases/23.06/Dockerfile.23.06 new file mode 100644 index 0000000000..a91deb607c --- /dev/null +++ b/misc/releases/23.06/Dockerfile.23.06 @@ -0,0 +1,67 @@ +# This file has been automatically generated. + +# The recipe below implements a Docker multi-stage build: +# + +############################################################################### +# A first image to build the planner +############################################################################### +FROM ubuntu:22.04 AS builder + +RUN apt-get update && apt-get install --no-install-recommends -y \ + ca-certificates \ + cmake \ + g++ \ + git \ + libgmp3-dev \ + make \ + python3 \ + zlib1g-dev + +# Set up some environment variables. +ENV CXX g++ +# TODO: on next release, replace this with a tagged SoPlex release > 6.0.3. +ENV SOPLEX_REVISION a5df081 +ENV DOWNWARD_SOPLEX_ROOT /opt/soplex + +# Install SoPlex. +WORKDIR /workspace/soplex +# TODO: on next release, work with a tagged SoPlex release again if possible. +# We might continue using git clone, replacing this with `--depth 1 --branch $SOPLEX_REVISION` +# ($SOPLEX_REVISION needs to be a branch or tag, not a commit hash) or use +# another distribution mechanism. +RUN git clone --branch master https://github.com/scipopt/soplex.git . && \ + git checkout $SOPLEX_REVISION && \ + cmake -DCMAKE_INSTALL_PREFIX="$DOWNWARD_SOPLEX_ROOT" -S . -B build && \ + cmake --build build && \ + cmake --install build + +# Install Fast Downward. +WORKDIR /workspace/downward/ +RUN git clone --depth 1 --branch release-23.06.0 https://github.com/aibasel/downward.git . && \ + ./build.py release debug && \ + strip --strip-all builds/release/bin/downward + + +############################################################################### +# The final image to run the planner +############################################################################### +FROM ubuntu:22.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/builds/debug/bin/ ./builds/debug/bin/ +COPY --from=builder /workspace/downward/driver ./driver +COPY --from=builder /opt/soplex /opt/soplex + +ENV DOWNWARD_SOPLEX_ROOT=/opt/soplex +ENV LD_LIBRARY_PATH=$DOWNWARD_SOPLEX_ROOT/lib + +ENTRYPOINT ["/workspace/downward/fast-downward.py"] diff --git a/misc/releases/23.06/Vagrantfile.23.06 b/misc/releases/23.06/Vagrantfile.23.06 new file mode 100644 index 0000000000..4e1038fbf6 --- /dev/null +++ b/misc/releases/23.06/Vagrantfile.23.06 @@ -0,0 +1,75 @@ +# 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. + + # We increase the RAM from a default of 1GB for compiling with SoPlex. + # See issue1101 for details. + config.vm.provider "virtualbox" do |v| + v.memory = 2048 + end + + config.vm.box = "ubuntu/jammy64" + + # To compile the planner with support for CPLEX, download the 64-bit Linux + # installer of CPLEX 22.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_studio2211.linux_x86_64.bin" + if File.exists?(cplex_installer) + config.vm.synced_folder ENV["DOWNWARD_LP_INSTALLERS"], "/lp", :mount_options => ["ro"] + provision_env["CPLEX_INSTALLER"] = "/lp/" + File.basename(cplex_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 \ + zlib1g-dev + + 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_Studio2211/cplex" + EOM + source /etc/profile.d/downward-cplex.sh + + # Install CPLEX. + $CPLEX_INSTALLER -DLICENSE_ACCEPTED=TRUE -i silent + fi + + # 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 + git clone --branch master https://github.com/scipopt/soplex.git soplex + cd soplex + git checkout a5df081 + cmake -DCMAKE_INSTALL_PREFIX="$DOWNWARD_SOPLEX_ROOT" -S . -B build + cmake --build build + cmake --install build + + cd /home/vagrant + + if ! [ -e downward ] ; then + git clone --branch release-23.06.0 https://github.com/aibasel/downward.git downward + ./downward/build.py release debug + chown -R vagrant.vagrant downward + fi + + SHELL +end diff --git a/misc/releases/latest/Dockerfile b/misc/releases/latest/Dockerfile index e7f543d301..00cd48ce77 120000 --- a/misc/releases/latest/Dockerfile +++ b/misc/releases/latest/Dockerfile @@ -1 +1 @@ -../22.12/Dockerfile.22.12 \ No newline at end of file +../23.06/Dockerfile.23.06 \ No newline at end of file diff --git a/misc/releases/latest/Vagrantfile b/misc/releases/latest/Vagrantfile index fb1b019231..967211af34 120000 --- a/misc/releases/latest/Vagrantfile +++ b/misc/releases/latest/Vagrantfile @@ -1 +1 @@ -../22.12/Vagrantfile.22.12 \ No newline at end of file +../23.06/Vagrantfile.23.06 \ No newline at end of file