diff --git a/jenkins/README.md b/jenkins/README.md
deleted file mode 100644
index 29f664f..0000000
--- a/jenkins/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-
-Jenkins Infrastructure
-----------------------
-
-The scripts in this directory serve as plumbing for running the protobuf
-tests under Jenkins.
diff --git a/jenkins/build_and_run_docker.sh b/jenkins/build_and_run_docker.sh
deleted file mode 100755
index 50e1e8c..0000000
--- a/jenkins/build_and_run_docker.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/bash
-#
-# Builds docker image and runs a command under it.
-# This is a generic script that is configured with the following variables:
-#
-# DOCKERFILE_DIR - Directory in which Dockerfile file is located.
-# DOCKER_RUN_SCRIPT - Script to run under docker (relative to protobuf repo root)
-# OUTPUT_DIR - Directory that will be copied from inside docker after finishing.
-# $@ - Extra args to pass to docker run
-
-
-set -ex
-
-cd $(dirname $0)/..
-git_root=$(pwd)
-cd -
-
-# Use image name based on Dockerfile location checksum
-DOCKER_IMAGE_NAME=$(basename $DOCKERFILE_DIR)_$(sha1sum $DOCKERFILE_DIR/Dockerfile | cut -f1 -d\ )
-
-# Make sure docker image has been built. Should be instantaneous if so.
-docker build -t $DOCKER_IMAGE_NAME $DOCKERFILE_DIR
-
-# Ensure existence of ccache directory
-CCACHE_DIR=/tmp/protobuf-ccache
-mkdir -p $CCACHE_DIR
-
-# Choose random name for docker container
-CONTAINER_NAME="build_and_run_docker_$(uuidgen)"
-
-# Run command inside docker
-docker run \
-  "$@" \
-  -e CCACHE_DIR=$CCACHE_DIR \
-  -e EXTERNAL_GIT_ROOT="/var/local/jenkins/protobuf" \
-  -e TEST_SET="$TEST_SET" \
-  -e THIS_IS_REALLY_NEEDED='see https://github.com/docker/docker/issues/14203 for why docker is awful' \
-  -v "$git_root:/var/local/jenkins/protobuf:ro" \
-  -v $CCACHE_DIR:$CCACHE_DIR \
-  -w /var/local/git/protobuf \
-  --name=$CONTAINER_NAME \
-  $DOCKER_IMAGE_NAME \
-  bash -l "/var/local/jenkins/protobuf/$DOCKER_RUN_SCRIPT" || FAILED="true"
-
-# Copy output artifacts
-if [ "$OUTPUT_DIR" != "" ]
-then
-  docker cp "$CONTAINER_NAME:/var/local/git/protobuf/$OUTPUT_DIR" "$git_root" || FAILED="true"
-fi
-
-# remove the container, possibly killing it first
-docker rm -f $CONTAINER_NAME || true
-
-if [ "$FAILED" != "" ]
-then
-  exit 1
-fi
diff --git a/jenkins/buildcmds/README.md b/jenkins/buildcmds/README.md
deleted file mode 100644
index 7a48f2d..0000000
--- a/jenkins/buildcmds/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-
-Jenkins Build Commands
-----------------------
-
-The scripts in this directory are designed to be top-level entry points for
-Jenkins projects.
diff --git a/jenkins/buildcmds/pull_request.sh b/jenkins/buildcmds/pull_request.sh
deleted file mode 100755
index 51e4bfa..0000000
--- a/jenkins/buildcmds/pull_request.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-#
-# This is the top-level script we give to Jenkins as the entry point for
-# running the "pull request" project:
-#
-#   https://grpc-testing.appspot.com/view/Protocol%20Buffers/job/protobuf_pull_request/
-#
-# This script selects a specific Dockerfile (for building a Docker image) and
-# a script to run inside that image.  Then we delegate to the general
-# build_and_run_docker.sh script.
-
-export DOCKERFILE_DIR=jenkins/docker
-export DOCKER_RUN_SCRIPT=jenkins/pull_request_in_docker.sh
-export OUTPUT_DIR=testoutput
-export TEST_SET="csharp java_jdk7 javanano_jdk7 java_oracle7 javanano_oracle7 python python_cpp ruby_all javascript golang php_all"
-./jenkins/build_and_run_docker.sh
diff --git a/jenkins/buildcmds/pull_request_32.sh b/jenkins/buildcmds/pull_request_32.sh
deleted file mode 100755
index bf0fb7f..0000000
--- a/jenkins/buildcmds/pull_request_32.sh
+++ /dev/null
@@ -1,16 +0,0 @@
-#!/bin/bash
-#
-# This is the top-level script we give to Jenkins as the entry point for
-# running the "pull request 32" project:
-#
-#   https://grpc-testing.appspot.com/view/Protocol%20Buffers/job/Protocol%20Buffers%20Pull%20Request%2032/
-#
-# This script selects a specific Dockerfile (for building a Docker image) and
-# a script to run inside that image.  Then we delegate to the general
-# build_and_run_docker.sh script.
-
-export DOCKERFILE_DIR=jenkins/docker32
-export DOCKER_RUN_SCRIPT=jenkins/pull_request_in_docker.sh
-export OUTPUT_DIR=testoutput
-export TEST_SET="php_all_32"
-./jenkins/build_and_run_docker.sh
diff --git a/jenkins/docker/Dockerfile b/jenkins/docker/Dockerfile
deleted file mode 100644
index 3a279e6..0000000
--- a/jenkins/docker/Dockerfile
+++ /dev/null
@@ -1,244 +0,0 @@
-# This Dockerfile specifies the recipe for creating an image for the tests
-# to run in.
-#
-# We install as many test dependencies here as we can, because these setup
-# steps can be cached.  They do *not* run every time we run the build.
-# The Docker image is only rebuilt when the Dockerfile (ie. this file)
-# changes.
-
-# Base Dockerfile for gRPC dev images
-FROM debian:latest
-
-# Apt source for old Python versions.
-RUN echo 'deb http://ppa.launchpad.net/fkrull/deadsnakes/ubuntu trusty main' > /etc/apt/sources.list.d/deadsnakes.list && \
-  apt-key adv --keyserver keyserver.ubuntu.com --recv-keys DB82666C
-
-# Apt source for Oracle Java.
-RUN echo 'deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main' > /etc/apt/sources.list.d/webupd8team-java-trusty.list && \
-  apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886 && \
-  echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
-
-# Apt source for Mono
-RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list && \
-  echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list && \
-  apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
-
-# Apt source for php
-RUN echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu trusty main" | tee /etc/apt/sources.list.d/various-php.list && \
-  apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F4FCBB07
-
-# Install dotnet SDK based on https://www.microsoft.com/net/core#debian
-# (Ubuntu instructions need apt to support https)
-RUN apt-get update && apt-get install -y --force-yes curl libunwind8 gettext && \
-  curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=847105 &&  \
-  mkdir -p /opt/dotnet && tar zxf dotnet.tar.gz -C /opt/dotnet && \
-  ln -s /opt/dotnet/dotnet /usr/local/bin
-
-# Install dependencies.  We start with the basic ones require to build protoc
-# and the C++ build
-RUN apt-get clean && apt-get update && apt-get install -y --force-yes \
-  autoconf \
-  autotools-dev \
-  build-essential \
-  bzip2 \
-  ccache \
-  curl \
-  gcc \
-  git \
-  libc6 \
-  libc6-dbg \
-  libc6-dev \
-  libgtest-dev \
-  libtool \
-  make \
-  parallel \
-  time \
-  wget \
-  # -- For csharp --
-  mono-devel \
-  referenceassemblies-pcl \
-  nunit \
-  # -- For all Java builds -- \
-  maven \
-  # -- For java_jdk6 -- \
-  #   oops! not in jessie. too old? openjdk-6-jdk \
-  # -- For java_jdk7 -- \
-  openjdk-7-jdk \
-  # -- For java_oracle7 -- \
-  oracle-java7-installer \
-  # -- For python / python_cpp -- \
-  python-setuptools \
-  python-pip \
-  python-dev \
-  python2.6-dev \
-  python3.3-dev \
-  python3.4-dev \
-  # -- For Ruby --
-  ruby \
-  # -- For C++ benchmarks --
-  cmake \
-  # -- For PHP --
-  php5.6     \
-  php5.6-dev \
-  php5.6-xml \
-  php7.0     \
-  php7.0-dev \
-  php7.0-xml \
-  phpunit    \
-  valgrind   \
-  libxml2-dev \
-  && apt-get clean
-
-##################
-# C# dependencies
-
-RUN wget www.nuget.org/NuGet.exe -O /usr/local/bin/nuget.exe
-
-##################
-# Python dependencies
-
-# These packages exist in apt-get, but their versions are too old, so we have
-# to get updates from pip.
-
-RUN pip install pip --upgrade
-RUN pip install virtualenv tox yattag
-
-##################
-# Ruby dependencies
-
-# Install rvm
-RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
-RUN \curl -sSL https://get.rvm.io | bash -s stable
-
-# Install Ruby 2.1, Ruby 2.2 and JRuby 1.7
-RUN /bin/bash -l -c "rvm install ruby-2.1"
-RUN /bin/bash -l -c "rvm install ruby-2.2"
-RUN /bin/bash -l -c "rvm install jruby-1.7"
-RUN /bin/bash -l -c "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
-RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc"
-RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc"
-
-##################
-# Java dependencies
-
-# This step requires compiling protoc. :(
-
-ENV MAVEN_REPO /var/maven_local_repository
-ENV MVN mvn --batch-mode
-
-RUN cd /tmp && \
-  git clone https://github.com/google/protobuf.git && \
-  cd protobuf && \
-  git reset --hard 129a6e2aca95dcfb6c3e717d7b9cca1f104fde39 && \
-  ./autogen.sh && \
-  ./configure && \
-  make -j4 && \
-  cd java && \
-  $MVN install dependency:go-offline -Dmaven.repo.local=$MAVEN_REPO && \
-  cd ../javanano && \
-  $MVN install dependency:go-offline -Dmaven.repo.local=$MAVEN_REPO
-
-##################
-# PHP dependencies.
-RUN wget http://am1.php.net/get/php-5.5.38.tar.bz2/from/this/mirror
-RUN mv mirror php-5.5.38.tar.bz2
-RUN tar -xvf php-5.5.38.tar.bz2
-RUN cd php-5.5.38 && ./configure --enable-maintainer-zts --prefix=/usr/local/php-5.5-zts && \
-    make && make install && cd ..
-RUN cd php-5.5.38 && make clean && ./configure --enable-bcmath --prefix=/usr/local/php-5.5 && \
-    make && make install && cd ..
-
-RUN wget http://am1.php.net/get/php-5.6.30.tar.bz2/from/this/mirror
-RUN mv mirror php-5.6.30.tar.bz2
-RUN tar -xvf php-5.6.30.tar.bz2
-RUN cd php-5.6.30 && ./configure --enable-maintainer-zts --prefix=/usr/local/php-5.6-zts && \
-    make && make install && cd ..
-RUN cd php-5.6.30 && make clean && ./configure --enable-bcmath --prefix=/usr/local/php-5.6 && \
-    make && make install && cd ..
-
-RUN wget http://am1.php.net/get/php-7.0.18.tar.bz2/from/this/mirror
-RUN mv mirror php-7.0.18.tar.bz2
-RUN tar -xvf php-7.0.18.tar.bz2
-RUN cd php-7.0.18 && ./configure --enable-maintainer-zts --prefix=/usr/local/php-7.0-zts && \
-    make && make install && cd ..
-RUN cd php-7.0.18 && make clean && ./configure --enable-bcmath --prefix=/usr/local/php-7.0 && \
-    make && make install && cd ..
-
-RUN wget http://am1.php.net/get/php-7.1.4.tar.bz2/from/this/mirror
-RUN mv mirror php-7.1.4.tar.bz2
-RUN tar -xvf php-7.1.4.tar.bz2
-RUN cd php-7.1.4 && ./configure --enable-maintainer-zts --prefix=/usr/local/php-7.1-zts && \
-    make && make install && cd ..
-RUN cd php-7.1.4 && make clean && ./configure --enable-bcmath --prefix=/usr/local/php-7.1 && \
-    make && make install && cd ..
-
-RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
-RUN php composer-setup.php
-RUN mv composer.phar /usr/bin/composer
-RUN php -r "unlink('composer-setup.php');"
-RUN composer config -g -- disable-tls true
-RUN composer config -g -- secure-http false
-RUN cd /tmp && \
-  rm -rf protobuf && \
-  git clone https://github.com/google/protobuf.git && \
-  cd protobuf && \
-  git reset --hard 49b44bff2b6257a119f9c6a342d6151c736586b8 && \
-  cd php && \
-  ln -sfn /usr/local/php-5.5/bin/php /usr/bin/php && \
-  ln -sfn /usr/local/php-5.5/bin/php-config /usr/bin/php-config && \
-  ln -sfn /usr/local/php-5.5/bin/phpize /usr/bin/phpize && \
-  composer install && \
-  mv vendor /usr/local/vendor-5.5 && \
-  ln -sfn /usr/local/php-5.6/bin/php /usr/bin/php && \
-  ln -sfn /usr/local/php-5.6/bin/php-config /usr/bin/php-config && \
-  ln -sfn /usr/local/php-5.6/bin/phpize /usr/bin/phpize && \
-  composer install && \
-  mv vendor /usr/local/vendor-5.6 && \
-  ln -sfn /usr/local/php-7.0/bin/php /usr/bin/php && \
-  ln -sfn /usr/local/php-7.0/bin/php-config /usr/bin/php-config && \
-  ln -sfn /usr/local/php-7.0/bin/phpize /usr/bin/phpize && \
-  composer install && \
-  mv vendor /usr/local/vendor-7.0 && \
-  ln -sfn /usr/local/php-7.1/bin/php /usr/bin/php && \
-  ln -sfn /usr/local/php-7.1/bin/php-config /usr/bin/php-config && \
-  ln -sfn /usr/local/php-7.1/bin/phpize /usr/bin/phpize && \
-  composer install && \
-  mv vendor /usr/local/vendor-7.1
-
-##################
-# Go dependencies.
-RUN apt-get install -y  \
-  # -- For go -- \
-  golang
-
-##################
-# Javascript dependencies.
-RUN apt-get install -y \
-  # -- For javascript -- \
-  npm
-
-##################
-# Python 3.5 3.6 dependencies.
-RUN apt-get clean && apt-get update && apt-get install -y --force-yes \
-  python3.5-dev \
-  python3.6-dev \
-  && apt-get clean
-
-# On Debian/Ubuntu, nodejs binary is named 'nodejs' because the name 'node'
-# is taken by another legacy binary. We don't have that legacy binary and
-# npm expects the binary to be named 'node', so we just create a symbol
-# link here.
-RUN ln -s `which nodejs` /usr/bin/node
-
-##################
-# Prepare ccache
-
-RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
-RUN ln -s /usr/bin/ccache /usr/local/bin/g++
-RUN ln -s /usr/bin/ccache /usr/local/bin/cc
-RUN ln -s /usr/bin/ccache /usr/local/bin/c++
-RUN ln -s /usr/bin/ccache /usr/local/bin/clang
-RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
-
-# Define the default command.
-CMD ["bash"]
diff --git a/jenkins/docker32/Dockerfile b/jenkins/docker32/Dockerfile
deleted file mode 100644
index 1278889..0000000
--- a/jenkins/docker32/Dockerfile
+++ /dev/null
@@ -1,143 +0,0 @@
-# This Dockerfile specifies the recipe for creating an image for the tests
-# to run in.
-#
-# We install as many test dependencies here as we can, because these setup
-# steps can be cached.  They do *not* run every time we run the build.
-# The Docker image is only rebuilt when the Dockerfile (ie. this file)
-# changes.
-
-# Base Dockerfile for gRPC dev images
-FROM 32bit/debian:latest
-
-# Apt source for php
-RUN echo "deb http://ppa.launchpad.net/ondrej/php/ubuntu trusty main" | tee /etc/apt/sources.list.d/various-php.list && \
-  apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F4FCBB07
-
-# Install dependencies.  We start with the basic ones require to build protoc
-# and the C++ build
-RUN apt-get clean && apt-get update && apt-get install -y --force-yes \
-  autoconf \
-  autotools-dev \
-  build-essential \
-  bzip2 \
-  ccache \
-  curl \
-  gcc \
-  git \
-  libc6 \
-  libc6-dbg \
-  libc6-dev \
-  libgtest-dev \
-  libtool \
-  make \
-  parallel \
-  time \
-  wget \
-  unzip \
-  # -- For python --
-  python-setuptools \
-  python-pip \
-  python-dev \
-  # -- For C++ benchmarks --
-  cmake  \
-  # -- For PHP --
-  php5.5     \
-  php5.5-dev \
-  php5.5-xml \
-  php5.6     \
-  php5.6-dev \
-  php5.6-xml \
-  php7.0     \
-  php7.0-dev \
-  php7.0-xml \
-  phpunit    \
-  valgrind   \
-  libxml2-dev \
-  && apt-get clean
-
-##################
-# PHP dependencies.
-RUN wget http://am1.php.net/get/php-5.5.38.tar.bz2/from/this/mirror
-RUN mv mirror php-5.5.38.tar.bz2
-RUN tar -xvf php-5.5.38.tar.bz2
-RUN cd php-5.5.38 && ./configure --enable-maintainer-zts --prefix=/usr/local/php-5.5-zts && \
-    make && make install && make clean && cd ..
-RUN cd php-5.5.38 && make clean && ./configure --enable-bcmath --prefix=/usr/local/php-5.5 && \
-    make && make install && make clean && cd ..
-
-RUN wget http://am1.php.net/get/php-5.6.30.tar.bz2/from/this/mirror
-RUN mv mirror php-5.6.30.tar.bz2
-RUN tar -xvf php-5.6.30.tar.bz2
-RUN cd php-5.6.30 && ./configure --enable-maintainer-zts --prefix=/usr/local/php-5.6-zts && \
-    make && make install && cd ..
-RUN cd php-5.6.30 && make clean && ./configure --enable-bcmath --prefix=/usr/local/php-5.6 && \
-    make && make install && cd ..
-
-RUN wget http://am1.php.net/get/php-7.0.18.tar.bz2/from/this/mirror
-RUN mv mirror php-7.0.18.tar.bz2
-RUN tar -xvf php-7.0.18.tar.bz2
-RUN cd php-7.0.18 && ./configure --enable-maintainer-zts --prefix=/usr/local/php-7.0-zts && \
-    make && make install && cd ..
-RUN cd php-7.0.18 && make clean && ./configure --enable-bcmath --prefix=/usr/local/php-7.0 && \
-    make && make install && cd ..
-
-RUN wget http://am1.php.net/get/php-7.1.4.tar.bz2/from/this/mirror
-RUN mv mirror php-7.1.4.tar.bz2
-RUN tar -xvf php-7.1.4.tar.bz2
-RUN cd php-7.1.4 && ./configure --enable-maintainer-zts --prefix=/usr/local/php-7.1-zts && \
-    make && make install && cd ..
-RUN cd php-7.1.4 && make clean && ./configure --enable-bcmath --prefix=/usr/local/php-7.1 && \
-    make && make install && cd ..
-
-RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
-RUN php composer-setup.php
-RUN mv composer.phar /usr/bin/composer
-RUN php -r "unlink('composer-setup.php');"
-RUN composer config -g -- disable-tls true
-RUN composer config -g -- secure-http false
-RUN cd /tmp && \
-  git clone https://github.com/google/protobuf.git && \
-  cd protobuf/php && \
-  git reset --hard 49b44bff2b6257a119f9c6a342d6151c736586b8 && \
-  ln -sfn /usr/local/php-5.5/bin/php /usr/bin/php && \
-  ln -sfn /usr/local/php-5.5/bin/php-config /usr/bin/php-config && \
-  ln -sfn /usr/local/php-5.5/bin/phpize /usr/bin/phpize && \
-  composer install && \
-  mv vendor /usr/local/vendor-5.5 && \
-  ln -sfn /usr/local/php-5.6/bin/php /usr/bin/php && \
-  ln -sfn /usr/local/php-5.6/bin/php-config /usr/bin/php-config && \
-  ln -sfn /usr/local/php-5.6/bin/phpize /usr/bin/phpize && \
-  composer install && \
-  mv vendor /usr/local/vendor-5.6 && \
-  ln -sfn /usr/local/php-7.0/bin/php /usr/bin/php && \
-  ln -sfn /usr/local/php-7.0/bin/php-config /usr/bin/php-config && \
-  ln -sfn /usr/local/php-7.0/bin/phpize /usr/bin/phpize && \
-  composer install && \
-  mv vendor /usr/local/vendor-7.0 && \
-  ln -sfn /usr/local/php-7.1/bin/php /usr/bin/php && \
-  ln -sfn /usr/local/php-7.1/bin/php-config /usr/bin/php-config && \
-  ln -sfn /usr/local/php-7.1/bin/phpize /usr/bin/phpize && \
-  composer install && \
-  mv vendor /usr/local/vendor-7.1
-
-##################
-# Python dependencies
-
-# These packages exist in apt-get, but their versions are too old, so we have
-# to get updates from pip.
-
-RUN pip install pip --upgrade
-RUN pip install virtualenv tox yattag
-
-##################
-# Prepare ccache
-
-RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
-RUN ln -s /usr/bin/ccache /usr/local/bin/g++
-RUN ln -s /usr/bin/ccache /usr/local/bin/cc
-RUN ln -s /usr/bin/ccache /usr/local/bin/c++
-RUN ln -s /usr/bin/ccache /usr/local/bin/clang
-RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
-
-# Define the default command.
-CMD ["bash"]
diff --git a/jenkins/make_test_output.py b/jenkins/make_test_output.py
deleted file mode 100644
index 9853685..0000000
--- a/jenkins/make_test_output.py
+++ /dev/null
@@ -1,94 +0,0 @@
-"""Gathers output from test runs and create an XML file in JUnit format.
-
-The output files from the individual tests have been written in a directory
-structure like:
-
-  $DIR/joblog  (output from "parallel --joblog joblog")
-  $DIR/logs/1/cpp/stdout
-  $DIR/logs/1/cpp/stderr
-  $DIR/logs/1/csharp/stdout
-  $DIR/logs/1/csharp/stderr
-  $DIR/logs/1/java_jdk7/stdout
-  $DIR/logs/1/java_jdk7/stderr
-  etc.
-
-This script bundles them into a single output XML file so Jenkins can show
-detailed test results.  It runs as the last step before the Jenkins build
-finishes.
-"""
-
-import os
-import sys
-from yattag import Doc
-from collections import defaultdict
-
-
-def readtests(basedir):
-  tests = defaultdict(dict)
-
-  # Sample input (note: separators are tabs).
-  #
-  # Seq	Host	Starttime	Runtime	Send	Receive	Exitval	Signal	Command
-  # 1	:	1456263838.313	0.005	0	0	0	0	echo A
-  with open(basedir + "/joblog") as jobs:
-    firstline = next(jobs)
-    for line in jobs:
-      values = line.split("\t")
-
-      name = values[8].split()[-1]
-      test = tests[name]
-      test["name"] = name
-      test["time"] = values[3]
-
-      exitval = values[6]
-      if int(exitval):
-        # We don't have a more specific message.  User should look at stderr.
-        test["failure"] = "TEST FAILURE"
-      else:
-        test["failure"] = False
-
-  for testname in os.listdir(basedir + "/logs/1"):
-    test = tests[testname]
-
-    with open(basedir + "/logs/1/" + testname + "/stdout") as f:
-      test["stdout"] = f.read()
-
-    with open(basedir + "/logs/1/" + testname + "/stderr") as f:
-      test["stderr"] = f.read()
-
-  # The cpp test is special since it doesn't run under parallel so doesn't show
-  # up in the job log.
-  tests["cpp"]["name"] = "cpp"
-
-  with open(basedir + '/logs/1/cpp/build_time', 'r') as f:
-    tests["cpp"]["time"] = f.read().strip()
-  tests["cpp"]["failure"] = False
-
-  ret = tests.values()
-  ret.sort(key=lambda x: x["name"])
-
-  return ret
-
-
-def genxml(tests):
-  doc, tag, text = Doc().tagtext()
-
-  with tag("testsuites"):
-    with tag("testsuite", name="Protobuf Tests"):
-      for test in tests:
-        with tag("testcase", name=test["name"], classname=test["name"],
-                             time=test["time"]):
-          with tag("system-out"):
-            text(test["stdout"])
-          with tag("system-err"):
-            text(test["stderr"])
-          if test["failure"]:
-            with tag("failure"):
-              text(test["failure"])
-
-  return doc.getvalue()
-
-
-sys.stderr.write("make_test_output.py: writing XML from directory: " +
-                 sys.argv[1] + "\n")
-print(genxml(readtests(sys.argv[1])))
diff --git a/jenkins/pull_request_in_docker.sh b/jenkins/pull_request_in_docker.sh
deleted file mode 100755
index 19753c3..0000000
--- a/jenkins/pull_request_in_docker.sh
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/bin/bash
-#
-# This is the script that runs inside Docker, once the image has been built,
-# to execute all tests for the "pull request" project.
-
-WORKSPACE_BASE=`pwd`
-MY_DIR="$(dirname "$0")"
-TEST_SCRIPT=$MY_DIR/../tests.sh
-BUILD_DIR=/tmp/protobuf
-
-set -e  # exit immediately on error
-set -x  # display all commands
-
-# The protobuf repository is mounted into our Docker image, but read-only.
-# We clone into a directory inside Docker (this is faster than cp).
-rm -rf $BUILD_DIR
-mkdir -p $BUILD_DIR
-cd $BUILD_DIR
-git clone /var/local/jenkins/protobuf
-cd protobuf
-
-# Initialize any submodules:
-git submodule update --init --recursive
-
-# Set up the directory where our test output is going to go.
-OUTPUT_DIR=`mktemp -d`
-LOG_OUTPUT_DIR=$OUTPUT_DIR/logs
-mkdir -p $LOG_OUTPUT_DIR/1/cpp
-
-################################################################################
-# cpp build needs to run first, non-parallelized, so that protoc is available
-# for other builds.
-
-# Output filenames to follow the overall scheme used by parallel, ie:
-#  $DIR/logs/1/cpp/stdout
-#  $DIR/logs/1/cpp/stderr
-#  $DIR/logs/1/csharp/stdout
-#  $DIR/logs/1/csharp/stderr
-#  $DIR/logs/1/java_jdk7/stdout
-#  $DIR/logs/1/java_jdk7/stderr
-CPP_STDOUT=$LOG_OUTPUT_DIR/1/cpp/stdout
-CPP_STDERR=$LOG_OUTPUT_DIR/1/cpp/stderr
-
-# Time the C++ build, so we can put this info in the test output.
-# It's important that we get /usr/bin/time (which supports -f and -o) and not
-# the bash builtin "time" which doesn't.
-TIME_CMD="/usr/bin/time -f %e -o $LOG_OUTPUT_DIR/1/cpp/build_time"
-
-$TIME_CMD $TEST_SCRIPT cpp > >(tee $CPP_STDOUT) 2> >(tee $CPP_STDERR >&2)
-
-# Other tests are run in parallel. TEST_SET is defined in
-# buildcmds/pull_request{_32}.sh
-
-parallel --results $LOG_OUTPUT_DIR --joblog $OUTPUT_DIR/joblog $TEST_SCRIPT ::: \
-  $TEST_SET \
-  || true  # Process test results even if tests fail.
-
-cat $OUTPUT_DIR/joblog
-
-# The directory that is copied from Docker back into the Jenkins workspace.
-COPY_FROM_DOCKER=/var/local/git/protobuf/testoutput
-mkdir -p $COPY_FROM_DOCKER
-TESTOUTPUT_XML_FILE=$COPY_FROM_DOCKER/testresults.xml
-
-# Process all the output files from "parallel" and package them into a single
-# .xml file with detailed, broken-down test output.
-python $MY_DIR/make_test_output.py $OUTPUT_DIR > $TESTOUTPUT_XML_FILE
-
-ls -l $TESTOUTPUT_XML_FILE
diff --git a/more_tests/Makefile b/more_tests/Makefile
deleted file mode 100755
index 286cf0f..0000000
--- a/more_tests/Makefile
+++ /dev/null
@@ -1,41 +0,0 @@
-# Additional tests to run before releasing a package.
-#
-# Run like:
-#   make PACKAGE=/path/to/protobuf-VERSION.tar.gz
-#
-# Some of these tests require tools or make assumptions that may not be
-# available on end-user machines, so these cannot be part of "make check".  For
-# example, we test that the headers compile with strict warning settings, but
-# since different compilers produce wildly different warnings we cannot assume
-# that this test will pass everywhere.  If we ran it as part of "make check",
-# it could unnecessarily block users from running the real tests just because
-# their compiler produces some extra warnings that probably aren't a big deal.
-# So we run it separately. 
-
-all: header_warning_test
-
-clean:
-	rm -rf src target header_warning_test.cc header_warning_test.o header_warning_test
-
-# Unpack the package into src, then install it into target.
-PACKAGE=protobuf.tar.gz
-
-src: $(PACKAGE)
-	tar zxvf $(PACKAGE)
-	mv `basename $(PACKAGE) .tar.gz` src
-
-target: src
-	(cd src && ./configure --prefix=$$PWD/../target --disable-shared)
-	(cd src && make -j4 check)
-	(cd src && make install)
-
-# Verify that headers produce no warnings even under strict settings.
-header_warning_test.cc: target
-	( (cd target/include && find google/protobuf -name '*.h') | \
-	  awk '{print "#include \""$$1"\""} ' > header_warning_test.cc )
-
-header_warning_test: header_warning_test.cc
-	# TODO(kenton):  Consider adding -pedantic and -Weffc++.  Currently these
-	#   produce tons of extra warnings so we'll need to do some work first.
-	g++ -Itarget/include -Wall -Werror -Wsign-compare -O2 -c header_warning_test.cc
-	touch header_warning_test
