From f13a1ceaf97c874a4ee54bd5649bcfe524450e95 Mon Sep 17 00:00:00 2001 From: Marco Costa Date: Thu, 30 Nov 2023 16:29:07 -0500 Subject: [PATCH] Remove support for Ruby 2.1, 2.2, 2.3, 2.4 (#3291) --- .circleci/config.yml | 132 ----------- .circleci/images/primary/Dockerfile-2.1.10 | 144 ------------ .circleci/images/primary/Dockerfile-2.2.10 | 145 ------------ .circleci/images/primary/Dockerfile-2.3.8 | 76 ------- .circleci/images/primary/Dockerfile-2.4.10 | 68 ------ .github/workflows/build-ruby.yml | 12 - .github/workflows/system-tests.yml | 24 +- .github/workflows/test-macos.yaml | 3 - .github/workflows/update-gemfiles.yml | 2 + Gemfile-2.1 | 1 - Gemfile-2.2 | 1 - Gemfile-2.3 | 1 - Gemfile-2.4 | 1 - Gemfile-jruby-9.2.8.0 | 1 - appraisal/ruby-2.1.rb | 144 ------------ appraisal/ruby-2.2.rb | 219 ------------------- appraisal/ruby-2.3.rb | 242 --------------------- appraisal/ruby-2.4.rb | 170 --------------- docker-compose.yml | 114 +--------- docs/Compatibility.md | 8 +- docs/GettingStarted.md | 3 - lib/ddtrace/version.rb | 2 +- tasks/appraisal.rake | 4 - 23 files changed, 14 insertions(+), 1503 deletions(-) delete mode 100644 .circleci/images/primary/Dockerfile-2.1.10 delete mode 100644 .circleci/images/primary/Dockerfile-2.2.10 delete mode 100644 .circleci/images/primary/Dockerfile-2.3.8 delete mode 100644 .circleci/images/primary/Dockerfile-2.4.10 delete mode 120000 Gemfile-2.1 delete mode 120000 Gemfile-2.2 delete mode 120000 Gemfile-2.3 delete mode 120000 Gemfile-2.4 delete mode 120000 Gemfile-jruby-9.2.8.0 delete mode 100644 appraisal/ruby-2.1.rb delete mode 100644 appraisal/ruby-2.2.rb delete mode 100644 appraisal/ruby-2.3.rb delete mode 100644 appraisal/ruby-2.4.rb diff --git a/.circleci/config.yml b/.circleci/config.yml index 1c795468928..f82f25c4438 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -450,26 +450,6 @@ orbs: job_configuration: # MRI - - &config-2_1 - <<: *filters_all_branches_and_tags - ruby_version: 'ruby-2.1.10' - image: ghcr.io/datadog/dd-trace-rb/ruby:2.1.10-dd - resource_class_to_use: medium+ - - &config-2_2 - <<: *filters_all_branches_and_tags - ruby_version: 'ruby-2.2.10' - image: ghcr.io/datadog/dd-trace-rb/ruby:2.2.10-dd - resource_class_to_use: medium+ - - &config-2_3 - <<: *filters_all_branches_and_tags - ruby_version: 'ruby-2.3.8' - image: ghcr.io/datadog/dd-trace-rb/ruby:2.3.8-dd - resource_class_to_use: medium+ - - &config-2_4 - <<: *filters_all_branches_and_tags - ruby_version: 'ruby-2.4.10' - image: ghcr.io/datadog/dd-trace-rb/ruby:2.4.10-dd - resource_class_to_use: medium+ - &config-2_5 <<: *filters_all_branches_and_tags ruby_version: 'ruby-2.5.9' @@ -533,10 +513,6 @@ workflows: <<: *config-2_7-small name: coverage requires: - - test-2.1 - - test-2.2 - - test-2.3 - - test-2.4 - test-2.5 - test-2.6 - test-2.7 @@ -556,26 +532,6 @@ workflows: branches: only: /bump_to_version_.*/ # Integration - - orb/build_and_test_integration: - name: build_and_test_integration-2.1 - integration_apps: 'rack' - ruby_version: '2.1' - <<: *filters_all_branches_and_tags - - orb/build_and_test_integration: - name: build_and_test_integration-2.2 - integration_apps: 'rack' - ruby_version: '2.2' - <<: *filters_all_branches_and_tags - - orb/build_and_test_integration: - name: build_and_test_integration-2.3 - integration_apps: 'rack' - ruby_version: '2.3' - <<: *filters_all_branches_and_tags - - orb/build_and_test_integration: - name: build_and_test_integration-2.4 - integration_apps: 'rack' - ruby_version: '2.4' - <<: *filters_all_branches_and_tags - orb/build_and_test_integration: name: build_and_test_integration-2.5 integration_apps: 'rack rails-five rails-six' @@ -614,38 +570,6 @@ workflows: # ⬆️ **Note**: If add/remove test apps above, remember to also copy-paste the changes to the "edge" workflow further down the file. # # ADD NEW RUBIES HERE - - orb/build: - <<: *config-2_1 - name: build-2.1 - - orb/test: - <<: *config-2_1 - name: test-2.1 - requires: - - build-2.1 - - orb/build: - <<: *config-2_2 - name: build-2.2 - - orb/test: - <<: *config-2_2 - name: test-2.2 - requires: - - build-2.2 - - orb/build: - <<: *config-2_3 - name: build-2.3 - - orb/test: - <<: *config-2_3 - name: test-2.3 - requires: - - build-2.3 - - orb/build: - <<: *config-2_4 - name: build-2.4 - - orb/test: - <<: *config-2_4 - name: test-2.4 - requires: - - build-2.4 - orb/build: <<: *config-2_5 name: build-2.5 @@ -732,26 +656,6 @@ workflows: - master jobs: # Integration - - orb/build_and_test_integration: - name: build_and_test_integration-2.1 - integration_apps: 'rack' - ruby_version: '2.1' - <<: *filters_all_branches_and_tags - - orb/build_and_test_integration: - name: build_and_test_integration-2.2 - integration_apps: 'rack' - ruby_version: '2.2' - <<: *filters_all_branches_and_tags - - orb/build_and_test_integration: - name: build_and_test_integration-2.3 - integration_apps: 'rack rails-five' - ruby_version: '2.3' - <<: *filters_all_branches_and_tags - - orb/build_and_test_integration: - name: build_and_test_integration-2.4 - integration_apps: 'rack rails-five' - ruby_version: '2.4' - <<: *filters_all_branches_and_tags - orb/build_and_test_integration: name: build_and_test_integration-2.5 integration_apps: 'rack rails-five rails-six' @@ -788,42 +692,6 @@ workflows: ruby_version: '3.3' <<: *filters_all_branches_and_tags # ADD NEW RUBIES HERE - - orb/build: - <<: *config-2_1 - name: build-2.1 - edge: true - - orb/test: - <<: *config-2_1 - name: test-2.1 - requires: - - build-2.1 - - orb/build: - <<: *config-2_2 - name: build-2.2 - edge: true - - orb/test: - <<: *config-2_2 - name: test-2.2 - requires: - - build-2.2 - - orb/build: - <<: *config-2_3 - name: build-2.3 - edge: true - - orb/test: - <<: *config-2_3 - name: test-2.3 - requires: - - build-2.3 - - orb/build: - <<: *config-2_4 - name: build-2.4 - edge: true - - orb/test: - <<: *config-2_4 - name: test-2.4 - requires: - - build-2.4 - orb/build: <<: *config-2_5 name: build-2.5 diff --git a/.circleci/images/primary/Dockerfile-2.1.10 b/.circleci/images/primary/Dockerfile-2.1.10 deleted file mode 100644 index c72614f70f4..00000000000 --- a/.circleci/images/primary/Dockerfile-2.1.10 +++ /dev/null @@ -1,144 +0,0 @@ -# ruby:2.1.10 was based on jessie, but never got a aarch64 image -# aarch64 used to be supported upon release but is not part of LTS, so archive.debian.org does not contain aarch64: https://www.debian.org/releases/jessie/ - -# Note: See the "Publishing updates to images" note in ./README.md for how to publish new builds of this container image - -# taken from https://github.com/docker-library/ruby/blob/c5693b25aa865489fee130e572a3f11bccebd21b/2.1/Dockerfile -FROM buildpack-deps:stretch AS ruby-2.1.10-stretch - -# skip installing gem documentation -RUN mkdir -p /usr/local/etc \ - && { \ - echo 'install: --no-document'; \ - echo 'update: --no-document'; \ - } >> /usr/local/etc/gemrc - -ENV RUBY_MAJOR 2.1 -ENV RUBY_VERSION 2.1.10 -ENV RUBY_DOWNLOAD_SHA256 5be9f8d5d29d252cd7f969ab7550e31bbb001feb4a83532301c0dd3b5006e148 -ENV RUBYGEMS_VERSION 2.7.11 -ENV BUNDLER_VERSION 1.17.3 - -# some of ruby's build scripts are written in ruby -# we purge system ruby later to make sure our final image uses what we just built -RUN set -ex \ - \ - && buildDeps=' \ - bison \ - dpkg-dev \ - libgdbm-dev \ - # ruby 2.3 on stretch can only support libssl1.0-dev (libssl dev from buildpack-deps is 1.1.x) - libssl1.0-dev \ - ruby \ - ' \ - && apt-get update \ - && apt-get install -y --no-install-recommends $buildDeps \ - && rm -rf /var/lib/apt/lists/* \ - \ - && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ - && echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum -c - \ - \ - && mkdir -p /usr/src/ruby \ - && tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1 \ - && rm ruby.tar.xz \ - \ - && cd /usr/src/ruby \ - \ -# hack in "ENABLE_PATH_CHECK" disabling to suppress: -# warning: Insecure world writable dir - && { \ - echo '#define ENABLE_PATH_CHECK 0'; \ - echo; \ - cat file.c; \ - } > file.c.new \ - && mv file.c.new file.c \ - \ - && autoconf \ - && gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ - && ./configure \ - --build="$gnuArch" \ - --disable-install-doc \ - --enable-shared \ - && make -j "$(nproc)" \ - && make install \ - \ - && apt-get purge -y --auto-remove $buildDeps \ - && cd / \ - && rm -r /usr/src/ruby \ - \ - && gem update --system "$RUBYGEMS_VERSION" \ - && gem install bundler --version "$BUNDLER_VERSION" --force \ - && rm -r /root/.gem/ - -# install things globally, for great justice -# and don't create ".bundle" in all our apps -ENV GEM_HOME /usr/local/bundle -ENV BUNDLE_BIN="$GEM_HOME/bin" \ - BUNDLE_SILENCE_ROOT_WARNING=1 \ - BUNDLE_APP_CONFIG="$GEM_HOME" -ENV PATH $BUNDLE_BIN:$PATH -RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN" \ - && chmod 777 "$GEM_HOME" "$BUNDLE_BIN" - -CMD [ "irb" ] - -FROM ruby-2.1.10-stretch - -# Make apt non-interactive -RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ - && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci - -ENV DEBIAN_FRONTEND=noninteractive - -# Install required packages -RUN set -ex; \ - apt-get update; \ - mkdir -p /usr/share/man/man1; \ - apt-get install --force-yes --no-install-recommends \ - git mercurial xvfb \ - locales sudo openssh-client ca-certificates tar gzip parallel \ - net-tools netcat unzip zip bzip2 gnupg curl wget \ - tzdata rsync vim less jq; \ - rm -rf /var/lib/apt/lists/*; - -# Set timezone to UTC by default -RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime - -# Set language -RUN locale-gen en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en - -# Install Docker -RUN set -ex \ - && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/$(arch)/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \ - && DOCKER_URL="https://download.docker.com/linux/static/stable/$(arch)/${DOCKER_VERSION}" \ - && echo DOCKER_URL: $DOCKER_URL \ - && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ - && ls -lha /tmp/docker.tgz \ - && tar -xz -C /tmp -f /tmp/docker.tgz \ - && mv /tmp/docker/* /usr/bin \ - && rm -rf /tmp/docker /tmp/docker.tgz \ - && which docker \ - && (docker version || true) - -# Install Docker Compose -# Releases over there don't work as they need a more recent glibc than Stretch has: https://github.com/linuxserver/docker-docker-compose/releases/download/1.29.2-ls51 -# So we fall back to using stretch-backports which has 1.21 -RUN echo 'deb http://ftp.debian.org/debian stretch-backports main\ndeb-src http://ftp.debian.org/debian stretch-backports main' > /etc/apt/sources.list.d/stretch-backports.list \ - && apt-get update \ - && apt-get install -y docker-compose \ - && docker-compose version \ - && rm -rf /var/lib/apt/lists/* - -# Install Dockerize -RUN DOCKERIZE_URL="https://github.com/powerman/dockerize/releases/download/v0.17.0/dockerize-$(uname -s | tr '[:upper:]' '[:lower:]')-$(arch | sed 's/aarch64/arm64/')" \ - && echo DOCKERIZE_URL: $DOCKERIZE_URL \ - && curl --silent --show-error --location --fail --retry 3 --output /usr/local/bin/dockerize $DOCKERIZE_URL \ - && chmod +x /usr/local/bin/dockerize \ - && dockerize --version - -RUN mkdir /app -WORKDIR /app - -CMD ["/bin/sh"] diff --git a/.circleci/images/primary/Dockerfile-2.2.10 b/.circleci/images/primary/Dockerfile-2.2.10 deleted file mode 100644 index fd566eb550a..00000000000 --- a/.circleci/images/primary/Dockerfile-2.2.10 +++ /dev/null @@ -1,145 +0,0 @@ -# ruby:2.2.10-jessie was based on jessie, and had a aarch64 image -# aarch64 used to be supported upon release but is not part of LTS, -# so archive.debian.org does not contain aarch64: https://www.debian.org/releases/jessie/ - -# Note: See the "Publishing updates to images" note in ./README.md for how to publish new builds of this container image - -# taken from https://github.com/docker-library/ruby/blob/b5ef401d348ca9b1d9f6a5cb4b25f32bf013daca/2.2/jessie/Dockerfile -FROM buildpack-deps:stretch AS ruby-2.2.10-stretch - -# skip installing gem documentation -RUN mkdir -p /usr/local/etc \ - && { \ - echo 'install: --no-document'; \ - echo 'update: --no-document'; \ - } >> /usr/local/etc/gemrc - -ENV RUBY_MAJOR 2.2 -ENV RUBY_VERSION 2.2.10 -ENV RUBY_DOWNLOAD_SHA256 bf77bcb7e6666ccae8d0882ea12b05f382f963f0a9a5285a328760c06a9ab650 -ENV RUBYGEMS_VERSION 2.7.11 -ENV BUNDLER_VERSION 1.17.3 - -# some of ruby's build scripts are written in ruby -# we purge system ruby later to make sure our final image uses what we just built -RUN set -ex \ - \ - && buildDeps=' \ - bison \ - dpkg-dev \ - libgdbm-dev \ - # ruby 2.3 on stretch can only support libssl1.0-dev (libssl dev from buildpack-deps is 1.1.x) - libssl1.0-dev \ - ruby \ - ' \ - && apt-get update \ - && apt-get install -y --no-install-recommends $buildDeps \ - && rm -rf /var/lib/apt/lists/* \ - \ - && wget -O ruby.tar.xz "https://cache.ruby-lang.org/pub/ruby/${RUBY_MAJOR%-rc}/ruby-$RUBY_VERSION.tar.xz" \ - && echo "$RUBY_DOWNLOAD_SHA256 *ruby.tar.xz" | sha256sum -c - \ - \ - && mkdir -p /usr/src/ruby \ - && tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1 \ - && rm ruby.tar.xz \ - \ - && cd /usr/src/ruby \ - \ -# hack in "ENABLE_PATH_CHECK" disabling to suppress: -# warning: Insecure world writable dir - && { \ - echo '#define ENABLE_PATH_CHECK 0'; \ - echo; \ - cat file.c; \ - } > file.c.new \ - && mv file.c.new file.c \ - \ - && autoconf \ - && gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \ - && ./configure \ - --build="$gnuArch" \ - --disable-install-doc \ - --enable-shared \ - && make -j "$(nproc)" \ - && make install \ - \ - && apt-get purge -y --auto-remove $buildDeps \ - && cd / \ - && rm -r /usr/src/ruby \ - \ - && gem update --system "$RUBYGEMS_VERSION" \ - && gem install bundler --version "$BUNDLER_VERSION" --force \ - && rm -r /root/.gem/ - -# install things globally, for great justice -# and don't create ".bundle" in all our apps -ENV GEM_HOME /usr/local/bundle -ENV BUNDLE_BIN="$GEM_HOME/bin" \ - BUNDLE_SILENCE_ROOT_WARNING=1 \ - BUNDLE_APP_CONFIG="$GEM_HOME" -ENV PATH $BUNDLE_BIN:$PATH -RUN mkdir -p "$GEM_HOME" "$BUNDLE_BIN" \ - && chmod 777 "$GEM_HOME" "$BUNDLE_BIN" - -CMD [ "irb" ] - -FROM ruby-2.2.10-stretch - -# Make apt non-interactive -RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ - && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci - -ENV DEBIAN_FRONTEND=noninteractive - -# Install required packages -RUN set -ex; \ - apt-get update; \ - mkdir -p /usr/share/man/man1; \ - apt-get install --force-yes --no-install-recommends \ - git mercurial xvfb \ - locales sudo openssh-client ca-certificates tar gzip parallel \ - net-tools netcat unzip zip bzip2 gnupg curl wget \ - tzdata rsync vim less jq; \ - rm -rf /var/lib/apt/lists/*; - -# Set timezone to UTC by default -RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime - -# Set language -RUN locale-gen en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en - -# Install Docker -RUN set -ex \ - && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/$(arch)/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \ - && DOCKER_URL="https://download.docker.com/linux/static/stable/$(arch)/${DOCKER_VERSION}" \ - && echo DOCKER_URL: $DOCKER_URL \ - && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ - && ls -lha /tmp/docker.tgz \ - && tar -xz -C /tmp -f /tmp/docker.tgz \ - && mv /tmp/docker/* /usr/bin \ - && rm -rf /tmp/docker /tmp/docker.tgz \ - && which docker \ - && (docker version || true) - -# Install Docker Compose -# Releases over there don't work as they need a more recent glibc than Stretch has: https://github.com/linuxserver/docker-docker-compose/releases/download/1.29.2-ls51 -# So we fall back to using stretch-backports which has 1.21 -RUN echo 'deb http://ftp.debian.org/debian stretch-backports main\ndeb-src http://ftp.debian.org/debian stretch-backports main' > /etc/apt/sources.list.d/stretch-backports.list \ - && apt-get update \ - && apt-get install -y docker-compose \ - && docker-compose version \ - && rm -rf /var/lib/apt/lists/* - -# Install Dockerize -RUN DOCKERIZE_URL="https://github.com/powerman/dockerize/releases/download/v0.17.0/dockerize-$(uname -s | tr '[:upper:]' '[:lower:]')-$(arch | sed 's/aarch64/arm64/')" \ - && echo DOCKERIZE_URL: $DOCKERIZE_URL \ - && curl --silent --show-error --location --fail --retry 3 --output /usr/local/bin/dockerize $DOCKERIZE_URL \ - && chmod +x /usr/local/bin/dockerize \ - && dockerize --version - -RUN mkdir /app -WORKDIR /app - -CMD ["/bin/sh"] diff --git a/.circleci/images/primary/Dockerfile-2.3.8 b/.circleci/images/primary/Dockerfile-2.3.8 deleted file mode 100644 index 01b82b77ef3..00000000000 --- a/.circleci/images/primary/Dockerfile-2.3.8 +++ /dev/null @@ -1,76 +0,0 @@ -# Note: See the "Publishing updates to images" note in ./README.md for how to publish new builds of this container image - -# Last version: https://github.com/docker-library/ruby/blob/31f66490fdb837ddcc5896e3275f2188f2b7b6dd/2.3/stretch/Dockerfile -FROM ruby:2.3.8-stretch - -# Make apt non-interactive -RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ - && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci - -ENV DEBIAN_FRONTEND=noninteractive - -# Install required packages -RUN set -ex; \ - apt-get update; \ - mkdir -p /usr/share/man/man1; \ - apt-get install -y --no-install-recommends \ - git mercurial xvfb \ - locales sudo openssh-client ca-certificates tar gzip parallel \ - net-tools netcat unzip zip bzip2 gnupg curl wget \ - tzdata rsync vim less jq; \ - rm -rf /var/lib/apt/lists/*; - -# Set timezone to UTC by default -RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime - -# Set language -RUN locale-gen en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en - -# Install Docker -RUN set -ex \ - && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/$(arch)/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \ - && DOCKER_URL="https://download.docker.com/linux/static/stable/$(arch)/${DOCKER_VERSION}" \ - && echo DOCKER_URL: $DOCKER_URL \ - && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ - && ls -lha /tmp/docker.tgz \ - && tar -xz -C /tmp -f /tmp/docker.tgz \ - && mv /tmp/docker/* /usr/bin \ - && rm -rf /tmp/docker /tmp/docker.tgz \ - && which docker \ - && (docker version || true) - -# Install Docker Compose -# Releases over there don't work as they need a more recent glibc than Stretch has: https://github.com/linuxserver/docker-docker-compose/releases/download/1.29.2-ls51 -# So we fall back to using stretch-backports which has 1.21 -RUN echo 'deb http://ftp.debian.org/debian stretch-backports main\ndeb-src http://ftp.debian.org/debian stretch-backports main' > /etc/apt/sources.list.d/stretch-backports.list \ - && apt-get update \ - && apt-get install -y docker-compose \ - && docker-compose version \ - && rm -rf /var/lib/apt/lists/* - -# Install Dockerize -RUN DOCKERIZE_URL="https://github.com/powerman/dockerize/releases/download/v0.17.0/dockerize-$(uname -s | tr '[:upper:]' '[:lower:]')-$(arch | sed 's/aarch64/arm64/')" \ - && echo DOCKERIZE_URL: $DOCKERIZE_URL \ - && curl --silent --show-error --location --fail --retry 3 --output /usr/local/bin/dockerize $DOCKERIZE_URL \ - && chmod +x /usr/local/bin/dockerize \ - && dockerize --version - -# Install RubyGems -RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME" - -# Install RubyGems and Bundler -# NOTE: Rubygems 3.0.6 is the last version that seems to work fine in this image AND not drag bundler 2 along. -# Later versions are either broken or they force the use of bundler 2, which we can't use because some of our -# dependencies (e.g. rails 3.0.20) don't like it. -RUN gem update --system '3.0.6' -# Ruby 2.3 can support Bundler 2+ -# But hold back to < 2 for now, because some dependencies require it. -RUN gem install bundler -v '1.17.3' -ENV BUNDLE_SILENCE_ROOT_WARNING 1 - -RUN mkdir /app -WORKDIR /app - -CMD ["/bin/sh"] diff --git a/.circleci/images/primary/Dockerfile-2.4.10 b/.circleci/images/primary/Dockerfile-2.4.10 deleted file mode 100644 index 68361daed9f..00000000000 --- a/.circleci/images/primary/Dockerfile-2.4.10 +++ /dev/null @@ -1,68 +0,0 @@ -# Note: See the "Publishing updates to images" note in ./README.md for how to publish new builds of this container image - -FROM ruby:2.4.10-buster - -# Make apt non-interactive -RUN echo 'APT::Get::Assume-Yes "true";' > /etc/apt/apt.conf.d/90circleci \ - && echo 'DPkg::Options "--force-confnew";' >> /etc/apt/apt.conf.d/90circleci - -ENV DEBIAN_FRONTEND=noninteractive - -# Install required packages -RUN set -ex; \ - apt-get update; \ - mkdir -p /usr/share/man/man1; \ - apt-get install -y --no-install-recommends \ - git mercurial xvfb \ - locales sudo openssh-client ca-certificates tar gzip parallel \ - net-tools netcat unzip zip bzip2 gnupg curl wget \ - tzdata rsync vim less jq; \ - rm -rf /var/lib/apt/lists/*; - -# Set timezone to UTC by default -RUN ln -sf /usr/share/zoneinfo/Etc/UTC /etc/localtime - -# Set language -RUN locale-gen en_US.UTF-8 -ENV LANG en_US.UTF-8 -ENV LANGUAGE en_US:en - -# Install Docker -RUN set -ex \ - && export DOCKER_VERSION=$(curl --silent --fail --retry 3 https://download.docker.com/linux/static/stable/$(arch)/ | grep -o -e 'docker-[.0-9]*-ce\.tgz' | sort -r | head -n 1) \ - && DOCKER_URL="https://download.docker.com/linux/static/stable/$(arch)/${DOCKER_VERSION}" \ - && echo DOCKER_URL: $DOCKER_URL \ - && curl --silent --show-error --location --fail --retry 3 --output /tmp/docker.tgz "${DOCKER_URL}" \ - && ls -lha /tmp/docker.tgz \ - && tar -xz -C /tmp -f /tmp/docker.tgz \ - && mv /tmp/docker/* /usr/bin \ - && rm -rf /tmp/docker /tmp/docker.tgz \ - && which docker \ - && (docker version || true) - -# Install Docker Compose -RUN COMPOSE_URL="https://github.com/linuxserver/docker-docker-compose/releases/download/1.29.2-ls51/docker-compose-$(dpkg --print-architecture)" \ - && echo COMPOSE_URL: $COMPOSE_URL \ - && curl --silent --show-error --location --fail --retry 3 --output /usr/bin/docker-compose $COMPOSE_URL \ - && chmod +x /usr/bin/docker-compose \ - && docker-compose version - -# Install Dockerize -RUN DOCKERIZE_URL="https://github.com/powerman/dockerize/releases/download/v0.17.0/dockerize-$(uname -s | tr '[:upper:]' '[:lower:]')-$(arch | sed 's/aarch64/arm64/')" \ - && echo DOCKERIZE_URL: $DOCKERIZE_URL \ - && curl --silent --show-error --location --fail --retry 3 --output /usr/local/bin/dockerize $DOCKERIZE_URL \ - && chmod +x /usr/local/bin/dockerize \ - && dockerize --version - -# Install RubyGems -RUN mkdir -p "$GEM_HOME" && chmod -R 777 "$GEM_HOME" - -# Install RubyGems and Bundler -RUN gem update --system 3.3.26 -RUN gem install bundler -v '~> 2.3.26' -ENV BUNDLE_SILENCE_ROOT_WARNING 1 - -RUN mkdir /app -WORKDIR /app - -CMD ["/bin/sh"] diff --git a/.github/workflows/build-ruby.yml b/.github/workflows/build-ruby.yml index 9925f63c523..ab2af6a59af 100644 --- a/.github/workflows/build-ruby.yml +++ b/.github/workflows/build-ruby.yml @@ -21,18 +21,6 @@ jobs: fail-fast: false matrix: include: - - engine: ruby - version: 2.1.10 - dockerfile: Dockerfile-2.1.10 - - engine: ruby - version: 2.2.10 - dockerfile: Dockerfile-2.2.10 - - engine: ruby - version: 2.3.8 - dockerfile: Dockerfile-2.3.8 - - engine: ruby - version: 2.4.10 - dockerfile: Dockerfile-2.4.10 - engine: ruby version: 2.5.9 dockerfile: Dockerfile-2.5.9 diff --git a/.github/workflows/system-tests.yml b/.github/workflows/system-tests.yml index 8369411a4ad..c5781ef9dc3 100644 --- a/.github/workflows/system-tests.yml +++ b/.github/workflows/system-tests.yml @@ -62,13 +62,9 @@ jobs: - ruby app: - rack - - sinatra14 +# - sinatra14 # DEV-2.0: Uncomment after https://github.com/DataDog/system-tests/pull/1882 is merged - sinatra20 - sinatra21 - - rails32 - - rails40 - - rails41 - - rails42 - rails50 - rails51 - rails52 @@ -118,13 +114,9 @@ jobs: - ruby app: - rack - - sinatra14 +# - sinatra14 # DEV-2.0: Uncomment after https://github.com/DataDog/system-tests/pull/1882 is merged - sinatra20 - sinatra21 - - rails32 - - rails40 - - rails41 - - rails42 - rails50 - rails51 - rails52 @@ -253,13 +245,9 @@ jobs: - ruby app: - rack - - sinatra14 +# - sinatra14 # DEV-2.0: Uncomment after https://github.com/DataDog/system-tests/pull/1882 is merged - sinatra20 - sinatra21 - - rails32 - - rails40 - - rails41 - - rails42 - rails50 - rails51 - rails52 @@ -298,13 +286,9 @@ jobs: - runner - agent - weblog-rack - - weblog-sinatra14 +# - weblog-sinatra14 # DEV-2.0: Uncomment after https://github.com/DataDog/system-tests/pull/1882 is merged - weblog-sinatra20 - weblog-sinatra21 - - weblog-rails32 - - weblog-rails40 - - weblog-rails41 - - weblog-rails42 - weblog-rails50 - weblog-rails51 - weblog-rails52 diff --git a/.github/workflows/test-macos.yaml b/.github/workflows/test-macos.yaml index ad6124ed73c..f415ce7e454 100644 --- a/.github/workflows/test-macos.yaml +++ b/.github/workflows/test-macos.yaml @@ -14,9 +14,6 @@ jobs: os: - macos-latest ruby: - - '2.2' - - '2.3' - - '2.4' - '2.5' - '2.6' - '2.7' diff --git a/.github/workflows/update-gemfiles.yml b/.github/workflows/update-gemfiles.yml index 00620d2dd4e..17d61cd72cf 100644 --- a/.github/workflows/update-gemfiles.yml +++ b/.github/workflows/update-gemfiles.yml @@ -54,6 +54,8 @@ jobs: # Files that control gemfile generation - tasks/appraisal.rake - .github/workflows/update-gemfiles.yml + # The gem version is present in all lock files + - lib/ddtrace/version.rb # In case the generated files were updated manually or in a merge commit - appraisal/** - gemfiles/** diff --git a/Gemfile-2.1 b/Gemfile-2.1 deleted file mode 120000 index 6ab79009c0a..00000000000 --- a/Gemfile-2.1 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-2.2 b/Gemfile-2.2 deleted file mode 120000 index 6ab79009c0a..00000000000 --- a/Gemfile-2.2 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-2.3 b/Gemfile-2.3 deleted file mode 120000 index 6ab79009c0a..00000000000 --- a/Gemfile-2.3 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-2.4 b/Gemfile-2.4 deleted file mode 120000 index 6ab79009c0a..00000000000 --- a/Gemfile-2.4 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/Gemfile-jruby-9.2.8.0 b/Gemfile-jruby-9.2.8.0 deleted file mode 120000 index 6ab79009c0a..00000000000 --- a/Gemfile-jruby-9.2.8.0 +++ /dev/null @@ -1 +0,0 @@ -Gemfile \ No newline at end of file diff --git a/appraisal/ruby-2.1.rb b/appraisal/ruby-2.1.rb deleted file mode 100644 index 7df301e1353..00000000000 --- a/appraisal/ruby-2.1.rb +++ /dev/null @@ -1,144 +0,0 @@ -appraise 'rails32-mysql2' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'mysql2', '0.3.21' - gem 'activerecord-mysql-adapter' - gem 'rack-cache', '1.7.1' - gem 'sqlite3', '~> 1.3.5' - gem 'makara', '< 0.5.0' # >= 0.5.0 contain Ruby 2.3+ syntax -end - -appraise 'rails32-postgres' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'pg', '0.15.1' - gem 'rack-cache', '1.7.1' -end - -appraise 'rails32-postgres-redis' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'pg', '0.15.1' - gem 'redis-rails' - gem 'redis', '< 4.0' - gem 'rack-cache', '1.7.1' -end - -appraise 'rails32-postgres-sidekiq' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'pg', '0.15.1' - gem 'sidekiq', '4.0.0' - gem 'rack-cache', '1.7.1' - gem 'connection_pool', '2.2.3' -end - -appraise 'rails4-mysql2' do - gem 'rails', '4.2.11.1' - gem 'mysql2', '< 1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails4-postgres' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails4-semantic-logger' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'rails_semantic_logger', '~> 4.0' -end - -appraise 'rails4-postgres-redis' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'redis-rails' - gem 'redis', '< 4.0' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'aws' do - gem 'aws-sdk', '~> 2.0' -end - -appraise 'http' do - gem 'faraday' - gem 'multipart-post', '~> 2.1.1' # Compatible with faraday 0.x - gem 'ethon' - gem 'excon' - gem 'http' - gem 'httpclient' - gem 'rest-client' - gem 'typhoeus' -end - -appraise 'elasticsearch-7' do - gem 'elasticsearch', '~> 7' - gem 'multipart-post', '~> 2.1.1' # Compatible with faraday 0.x -end - -appraise 'relational_db' do - gem 'activerecord', '3.2.22.5' - gem 'activerecord-mysql-adapter' - gem 'delayed_job' - gem 'delayed_job_active_record' - gem 'makara', '< 0.5.0' # >= 0.5.0 contain Ruby 2.3+ syntax - gem 'mysql2', '0.3.21' - gem 'pg', '>= 0.18.4', '< 1.0' - gem 'sequel', '~> 4.0', '< 4.37' - gem 'sqlite3', '~> 1.3.6' -end - -appraise 'activesupport' do - gem 'active_model_serializers', '~> 0.9.0' - gem 'ruby-kafka', '>= 0.7.10' -end - -appraise 'contrib' do - gem 'concurrent-ruby' - gem 'dalli', '< 3.0.0' # Dalli 3.0 dropped support for Ruby < 2.5 - gem 'presto-client', '>= 0.5.14' - gem 'mongo', '< 2.5' - gem 'rack-test' # Dev dependencies for testing rack-based code - gem 'rake', '< 12.3' - gem 'resque', '< 2.0' - gem 'roda', '>= 2.0.0' - gem 'semantic_logger', '~> 4.0' - gem 'sidekiq', '~> 3.5.4' - gem 'sucker_punch' - gem 'timers', '< 4.2' -end - -[1].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end - -appraise 'sinatra' do - gem 'sinatra' - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code -end - -appraise 'opentracing' do - gem 'opentracing', '>= 0.4.1' -end - -[3].each do |n| - appraise "redis-#{n}" do - gem 'redis', "~> #{n}" - end -end - -appraise 'core-old' do - gem 'dogstatsd-ruby', '~> 4' -end diff --git a/appraisal/ruby-2.2.rb b/appraisal/ruby-2.2.rb deleted file mode 100644 index f4f450f6d76..00000000000 --- a/appraisal/ruby-2.2.rb +++ /dev/null @@ -1,219 +0,0 @@ -appraise 'rails32-mysql2' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'mysql2', '0.3.21' - gem 'activerecord-mysql-adapter' - gem 'rack-cache', '1.7.1' - gem 'sqlite3', '~> 1.3.5' -end - -appraise 'rails32-postgres' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'pg', '0.15.1' - gem 'rack-cache', '1.7.1' -end - -appraise 'rails32-postgres-redis' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'pg', '0.15.1' - gem 'redis-rails' - gem 'redis', '< 4.0' - gem 'rack-cache', '1.7.1' -end - -appraise 'rails32-postgres-sidekiq' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'pg', '0.15.1' - gem 'sidekiq', '4.0.0' - gem 'rack-cache', '1.7.1' - gem 'connection_pool', '2.2.3' -end - -appraise 'rails4-mysql2' do - gem 'rails', '4.2.11.1' - gem 'mysql2', '< 1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails4-postgres' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails4-semantic-logger' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'rails_semantic_logger', '~> 4.0' -end - -appraise 'rails4-postgres-redis' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'redis-rails' - gem 'redis', '< 4.0' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails4-postgres-sidekiq' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'sidekiq' - gem 'activejob' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails5-mysql2' do - gem 'rails', '5.2.3' - gem 'mysql2', '< 1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' - gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved. -end - -appraise 'rails5-postgres' do - gem 'rails', '5.2.3' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' - gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved. -end - -appraise 'rails5-postgres-redis' do - gem 'rails', '5.2.3' - gem 'pg', '< 1.0' - gem 'redis', '>= 4.0.1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' - gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved. -end - -appraise 'rails5-postgres-redis-activesupport' do - gem 'rails', '5.2.3' - gem 'pg', '< 1.0' - gem 'redis', '>= 4.0.1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' - gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved. - gem 'redis-rails' -end - -appraise 'rails5-postgres-sidekiq' do - gem 'rails', '5.2.3' - gem 'pg', '< 1.0' - gem 'sidekiq', '~> 5.0' - gem 'activejob' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' - gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved. -end - -appraise 'rails5-semantic-logger' do - gem 'rails', '5.2.3' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'rails_semantic_logger', '~> 4.0' - gem 'mimemagic', '0.3.9' # Pinned until https://github.com/mimemagicrb/mimemagic/issues/142 is resolved. -end - -appraise 'aws' do - gem 'aws-sdk' - gem 'shoryuken' -end - -appraise 'http' do - gem 'ethon' - gem 'excon' - gem 'faraday' - gem 'multipart-post', '~> 2.1.1' # Compatible with faraday 0.x - gem 'http' - gem 'httpclient' - gem 'rest-client' - gem 'typhoeus' -end - -appraise 'elasticsearch-7' do - gem 'elasticsearch', '~> 7' - gem 'multipart-post', '~> 2.1.1' # Compatible with faraday 0.x -end - -appraise 'relational_db' do - gem 'activerecord', '~> 5' - gem 'delayed_job' - gem 'delayed_job_active_record' - gem 'makara', '< 0.5.0' # >= 0.5.0 contain Ruby 2.3+ syntax - gem 'mysql2', '< 0.5' - gem 'pg', '>= 0.18.4' - gem 'sequel', '~> 5.54.0' # TODO: Support sequel 5.62.0+ - gem 'sqlite3', '~> 1.3.6' -end - -appraise 'activesupport' do - gem 'activesupport', '~> 5' - - gem 'actionpack' - gem 'actionview' - gem 'active_model_serializers', '>= 0.10.0' - gem 'grape' - gem 'lograge', '~> 0.11' - gem 'racecar', '>= 0.3.5' - gem 'ruby-kafka', '>= 0.7.10' - - gem 'rack', '~> 2.0.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980 - gem 'loofah', '~> 2.19.0' # Fix `rails-html-sanitizer` used by `action_pack` and `actionview` -end - -appraise 'contrib' do - gem 'concurrent-ruby' - gem 'dalli', '< 3.0.0' # Dalli 3.0 dropped support for Ruby < 2.5 - gem 'graphql' - gem 'grpc', '~> 1.19.0' # Last version to support Ruby < 2.3 & google-protobuf < 3.7 - gem 'mongo', '>= 2.8.0' - gem 'presto-client', '>= 0.5.14' - gem 'rack-test' # Dev dependencies for testing rack-based code - gem 'rake', '>= 12.3' - gem 'redis', '~> 3' - gem 'resque', '< 2.0' - gem 'roda', '>= 2.0.0' - gem 'semantic_logger', '~> 4.0' - gem 'sidekiq' - gem 'sneakers', '>= 2.12.0' - gem 'sucker_punch' - gem 'que', '>= 1.0.0', '< 2.0.0' -end - -[1].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end - -appraise 'sinatra' do - gem 'sinatra' - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code -end - -appraise 'opentracing' do - gem 'opentracing', '>= 0.4.1' -end - -[3].each do |n| - appraise "redis-#{n}" do - gem 'redis', "~> #{n}" - end -end - -appraise 'core-old' do - gem 'dogstatsd-ruby', '~> 4' -end diff --git a/appraisal/ruby-2.3.rb b/appraisal/ruby-2.3.rb deleted file mode 100644 index 620c01bb913..00000000000 --- a/appraisal/ruby-2.3.rb +++ /dev/null @@ -1,242 +0,0 @@ -appraise 'hanami-1' do - gem 'rack' - gem 'rack-test' # Dev dependencies for testing rack-based code - gem 'hanami', '~> 1' -end - -appraise 'rails32-mysql2' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'mysql2', '0.3.21' - gem 'activerecord-mysql-adapter' - gem 'rack-cache', '1.7.1' - gem 'sqlite3', '~> 1.3.5' -end - -appraise 'rails32-postgres' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'pg', '0.15.1' - gem 'rack-cache', '1.7.1' -end - -appraise 'rails32-postgres-redis' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'pg', '0.15.1' - gem 'redis-rails' - gem 'redis', '< 4.0' - gem 'rack-cache', '1.7.1' -end - -appraise 'rails32-postgres-sidekiq' do - gem 'test-unit' - gem 'rails', '3.2.22.5' - gem 'pg', '0.15.1' - gem 'sidekiq', '4.0.0' - gem 'rack-cache', '1.7.1' -end - -appraise 'rails4-mysql2' do - gem 'rails', '4.2.11.1' - gem 'mysql2', '< 1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails4-postgres' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails4-semantic-logger' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'rails_semantic_logger', '~> 4.0' -end - -appraise 'rails4-postgres-redis' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'redis-rails' - gem 'redis', '< 4.0' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails4-postgres-sidekiq' do - gem 'rails', '4.2.11.1' - gem 'pg', '< 1.0' - gem 'sidekiq' - gem 'activejob' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails5-mysql2' do - gem 'rails', '~> 5.2.1' - gem 'mysql2', '< 1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails5-postgres' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails5-postgres-redis' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'redis', '>= 4.0.1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails5-semantic-logger' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'rails_semantic_logger', '~> 4.0' -end - -appraise 'rails5-postgres-redis-activesupport' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'redis', '>= 4.0.1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' - gem 'redis-rails' - gem 'redis-store', '> 1.6.0' -end - -appraise 'rails5-postgres-sidekiq' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'sidekiq' - gem 'activejob' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'resque2-redis3' do - gem 'redis', '< 4.0' - gem 'resque', '>= 2.0' -end - -appraise 'resque2-redis4' do - gem 'redis', '>= 4.0' - gem 'resque', '>= 2.0' -end - -appraise 'aws' do - gem 'aws-sdk' - gem 'shoryuken' -end - -appraise 'http' do - gem 'ethon' - gem 'excon' - gem 'faraday' - gem 'http' - gem 'httpclient' - gem 'rest-client' - gem 'stripe', '~> 5.15' - gem 'typhoeus' -end - -appraise 'elasticsearch-7' do - gem 'elasticsearch', '~> 7' -end - -appraise 'relational_db' do - gem 'activerecord', '~> 5' - gem 'delayed_job' - gem 'delayed_job_active_record' - gem 'makara' - gem 'mysql2', '< 0.5' - gem 'pg', '>= 0.18.4' - gem 'sequel', '~> 5.54.0' # TODO: Support sequel 5.62.0+ - gem 'sqlite3', '~> 1.3.6' -end - -appraise 'activesupport' do - gem 'activesupport', '~> 5' - - gem 'actionpack' - gem 'actionview' - gem 'active_model_serializers', '>= 0.10.0' - gem 'grape' - gem 'lograge', '~> 0.11' - gem 'racecar', '>= 0.3.5' - gem 'ruby-kafka', '>= 0.7.10' - - gem 'rack', '~> 2.0.0' # Locked due to grape incompatibility: https://github.com/ruby-grape/grape/issues/1980 - gem 'loofah', '~> 2.19.0' # Fix `rails-html-sanitizer` used by `action_pack` and `actionview` -end - -appraise 'contrib' do - gem 'concurrent-ruby' - gem 'dalli', '< 3.0.0' # Dalli 3.0 dropped support for Ruby < 2.5 - gem 'graphql' - gem 'grpc' - gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5 - gem 'mongo', '>= 2.8.0', '< 2.15.0' # TODO: FIX TEST BREAKAGES ON >= 2.15 https://github.com/DataDog/dd-trace-rb/issues/1596 - gem 'rack-test' # Dev dependencies for testing rack-based code - gem 'rake', '>= 12.3' - gem 'resque' - gem 'roda', '>= 2.0.0' - gem 'semantic_logger', '~> 4.0' - gem 'sidekiq' - gem 'sneakers', '>= 2.12.0' - gem 'sucker_punch' - gem 'que', '>= 1.0.0', '< 2.0.0' -end - -[1, 2].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end - -appraise 'sinatra' do - gem 'sinatra', '< 3.0' - gem 'mustermann', '< 3.0' - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code -end - -appraise 'opentracing' do - gem 'opentracing', '>= 0.4.1' -end - -[3].each do |n| - appraise "redis-#{n}" do - gem 'redis', "~> #{n}" - end -end - -appraise 'contrib-old' do - gem 'faraday', '0.17' - gem 'presto-client', '>= 0.5.14' # Renamed to trino-client in >= 1.0 -end - -appraise 'core-old' do - gem 'dogstatsd-ruby', '~> 4' -end - -# Somehow, I failed to install this appraisal group with Ruby 2.4 -appraise 'activerecord-3' do - gem 'activerecord', '~> 3' - gem 'mysql2', '~> 0.3.0' - gem 'activerecord-mysql-adapter' - gem 'sqlite3', '~> 1.3.0' - gem 'makara', '~> 0.3.0' -end diff --git a/appraisal/ruby-2.4.rb b/appraisal/ruby-2.4.rb deleted file mode 100644 index f011946739f..00000000000 --- a/appraisal/ruby-2.4.rb +++ /dev/null @@ -1,170 +0,0 @@ -appraise 'hanami-1' do - gem 'rack' - gem 'rack-test' # Dev dependencies for testing rack-based code - gem 'hanami', '~> 1' -end - -appraise 'rails5-mysql2' do - gem 'rails', '~> 5.2.1' - gem 'mysql2', '< 1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails5-postgres' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails5-semantic-logger' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'sprockets', '< 4' - gem 'rails_semantic_logger', '~> 4.0' -end - -appraise 'rails5-postgres-redis' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'redis', '>= 4.0.1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'rails5-postgres-redis-activesupport' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'redis', '>= 4.0.1' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' - gem 'redis-rails' -end - -appraise 'rails5-postgres-sidekiq' do - gem 'rails', '~> 5.2.1' - gem 'pg', '< 1.0' - gem 'sidekiq' - gem 'activejob' - gem 'sprockets', '< 4' - gem 'lograge', '~> 0.11' -end - -appraise 'resque2-redis3' do - gem 'redis', '< 4.0' - gem 'resque', '>= 2.0' -end - -appraise 'resque2-redis4' do - gem 'redis', '>= 4.0' - gem 'resque', '>= 2.0' -end - -appraise 'aws' do - gem 'aws-sdk' - gem 'shoryuken' -end - -appraise 'http' do - gem 'ethon' - gem 'excon' - gem 'faraday' - gem 'http' - gem 'httpclient' - gem 'rest-client' - gem 'stripe', '~> 6.0' - gem 'typhoeus' -end - -appraise 'opensearch-2' do - gem 'opensearch-ruby', '~> 2' -end - -appraise 'elasticsearch-7' do - gem 'elasticsearch', '~> 7' -end - -appraise 'relational_db' do - gem 'activerecord', '~> 5' - gem 'delayed_job' - gem 'delayed_job_active_record' - gem 'makara' - gem 'mysql2', '< 0.5' - gem 'pg', '>= 0.18.4' - gem 'sequel', '~> 5.54.0' # TODO: Support sequel 5.62.0+ - gem 'sqlite3', '~> 1.3.6' -end - -appraise 'activesupport' do - gem 'activesupport', '~> 5' - - gem 'actionpack' - gem 'actionview' - gem 'active_model_serializers', '>= 0.10.0' - gem 'grape' - gem 'lograge', '~> 0.11' - gem 'racecar', '>= 0.3.5' - gem 'ruby-kafka', '>= 0.7.10' - - gem 'loofah', '~> 2.19.0' # Fix `rails-html-sanitizer` used by `action_pack` and `actionview` -end - -appraise 'contrib' do - gem 'concurrent-ruby' - gem 'dalli', '< 3.0.0' # Dalli 3.0 dropped support for Ruby < 2.5 - gem 'graphql', '>= 2.0' - gem 'grpc' - gem 'google-protobuf', '~> 3.11.0' # Last version to support Ruby < 2.5 - gem 'mongo', '>= 2.8.0', '< 2.15.0' # TODO: FIX TEST BREAKAGES ON >= 2.15 https://github.com/DataDog/dd-trace-rb/issues/1596 - gem 'rack-test' # Dev dependencies for testing rack-based code - gem 'rake', '>= 12.3' - gem 'resque' - gem 'roda', '>= 2.0.0' - gem 'semantic_logger', '~> 4.0' - gem 'sidekiq' - gem 'sneakers', '>= 2.12.0' - gem 'sucker_punch' - gem 'que', '>= 1.0.0', '< 2.0.0' -end - -appraise 'activerecord-4' do - gem 'activerecord', '~> 4' - gem 'mysql2' - gem 'sqlite3', '~> 1.3.0' - gem 'makara', '~> 0.3.0' -end - -[1, 2, 3].each do |n| - appraise "rack-#{n}" do - gem 'rack', "~> #{n}" - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code - end -end - -appraise 'sinatra' do - gem 'sinatra' - gem 'rack-contrib' - gem 'rack-test' # Dev dependencies for testing rack-based code -end - -appraise 'opentracing' do - gem 'opentracing', '>= 0.4.1' -end - -[3, 4].each do |n| - appraise "redis-#{n}" do - gem 'redis', "~> #{n}" - end -end - -appraise 'contrib-old' do - gem 'faraday', '0.17' - gem 'graphql', '~> 1.12.0', '< 2.0' # TODO: Support graphql 1.13.x - gem 'presto-client', '>= 0.5.14' # Renamed to trino-client in >= 1.0 -end - -appraise 'core-old' do - gem 'dogstatsd-ruby', '~> 4' -end diff --git a/docker-compose.yml b/docker-compose.yml index 1f9dc0d4337..293aa5e0175 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,7 @@ version: '3.2' services: - tracer-2.1: - image: ghcr.io/datadog/dd-trace-rb/ruby:2.1.10-dd + tracer-2.5: + image: ghcr.io/datadog/dd-trace-rb/ruby:2.5.9-dd command: /bin/bash depends_on: - ddagent @@ -17,7 +17,7 @@ services: - testagent env_file: ./.env environment: &common-environment - BUNDLE_GEMFILE: /app/Gemfile-2.1 + BUNDLE_GEMFILE: /app/Gemfile-2.5 DD_AGENT_HOST: testagent DD_TRACE_AGENT_PORT: 9126 TEST_DATADOG_INTEGRATION: 1 @@ -36,110 +36,6 @@ services: DDTRACE_CI: 'true' stdin_open: true tty: true - volumes: - - .:/app - - extension-build-tmp:/app/tmp - - bundle-2.1:/usr/local/bundle - - "ddagent_var_run:${TEST_DDAGENT_VAR_RUN}" - tracer-2.2: - image: ghcr.io/datadog/dd-trace-rb/ruby:2.2.10-dd - command: /bin/bash - depends_on: - - ddagent - - elasticsearch - - memcached - - mongodb - - mysql - - opensearch - - postgres - - presto - - redis - - redis_old - - testagent - env_file: ./.env - environment: - <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-2.2 - stdin_open: true - tty: true - volumes: - - .:/app - - extension-build-tmp:/app/tmp - - bundle-2.2:/usr/local/bundle - - "ddagent_var_run:${TEST_DDAGENT_VAR_RUN}" - tracer-2.3: - image: ghcr.io/datadog/dd-trace-rb/ruby:2.3.8-dd - command: /bin/bash - depends_on: - - ddagent - - elasticsearch - - memcached - - mongodb - - mysql - - opensearch - - postgres - - presto - - redis - - redis_old - - testagent - env_file: ./.env - environment: - <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-2.3 - stdin_open: true - tty: true - volumes: - - .:/app - - extension-build-tmp:/app/tmp - - bundle-2.3:/usr/local/bundle - - "ddagent_var_run:${TEST_DDAGENT_VAR_RUN}" - tracer-2.4: - image: ghcr.io/datadog/dd-trace-rb/ruby:2.4.10-dd - command: /bin/bash - depends_on: - - ddagent - - elasticsearch - - memcached - - mongodb - - mysql - - opensearch - - postgres - - presto - - redis - - redis_old - - testagent - env_file: ./.env - environment: - <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-2.4 - stdin_open: true - tty: true - volumes: - - .:/app - - extension-build-tmp:/app/tmp - - bundle-2.4:/usr/local/bundle - - "ddagent_var_run:${TEST_DDAGENT_VAR_RUN}" - tracer-2.5: - image: ghcr.io/datadog/dd-trace-rb/ruby:2.5.9-dd - command: /bin/bash - depends_on: - - ddagent - - elasticsearch - - memcached - - mongodb - - mysql - - opensearch - - postgres - - presto - - redis - - redis_old - - testagent - env_file: ./.env - environment: - <<: *common-environment - BUNDLE_GEMFILE: /app/Gemfile-2.5 - stdin_open: true - tty: true volumes: - .:/app - extension-build-tmp:/app/tmp @@ -506,10 +402,6 @@ services: ports: - "127.0.0.1:${TEST_REDIS_OLD_PORT}:6379" volumes: - bundle-2.1: - bundle-2.2: - bundle-2.3: - bundle-2.4: bundle-2.5: bundle-2.6: bundle-2.7: diff --git a/docs/Compatibility.md b/docs/Compatibility.md index 56301f7178e..abd11c8cfec 100644 --- a/docs/Compatibility.md +++ b/docs/Compatibility.md @@ -12,10 +12,10 @@ The Ruby Datadog Trace library is open source. See the [dd-trace-rb][1] GitHub r | | | 2.7 | Full | Latest | | | | 2.6 | Full | Latest | | | | 2.5 | Full | Latest | -| | | 2.4 | Full | Latest | -| | | 2.3 | Full | Latest | -| | | 2.2 | Full (except for Profiling) | Latest | -| | | 2.1 | Full (except for Profiling) | Latest | +| | | 2.4 | EOL | < 2.0.0 | [comment]: <> (# DEV-2.0: Update with release date) +| | | 2.3 | EOL | < 2.0.0 | +| | | 2.2 | EOL | < 2.0.0 | +| | | 2.1 | EOL | < 2.0.0 | | | | 2.0 | EOL since June 7th, 2021 | < 0.50.0 | | | | 1.9.3 | EOL since August 6th, 2020 | < 0.27.0 | | | | 1.9.1 | EOL since August 6th, 2020 | < 0.27.0 | diff --git a/docs/GettingStarted.md b/docs/GettingStarted.md index 884e09e770c..d090fda8b2a 100644 --- a/docs/GettingStarted.md +++ b/docs/GettingStarted.md @@ -1540,9 +1540,6 @@ end | MRI Versions | JRuby Versions | Rails Versions | | ------------- | -------------- | -------------- | -| 2.1 | | 3.2 - 4.2 | -| 2.2 - 2.3 | | 3.2 - 5.2 | -| 2.4 | | 4.2.8 - 5.2 | | 2.5 | | 4.2.8 - 6.1 | | 2.6 - 2.7 | 9.2 | 5.0 - 6.1 | | 3.0 - 3.2 | | 6.1 | diff --git a/lib/ddtrace/version.rb b/lib/ddtrace/version.rb index da2c559e6f9..80fd08d5d19 100644 --- a/lib/ddtrace/version.rb +++ b/lib/ddtrace/version.rb @@ -11,7 +11,7 @@ module VERSION STRING = [MAJOR, MINOR, PATCH, PRE, BUILD].compact.join('.') - MINIMUM_RUBY_VERSION = '2.1.0' + MINIMUM_RUBY_VERSION = '2.5.0' # Restrict the installation of this gem with untested future versions of Ruby. # diff --git a/tasks/appraisal.rake b/tasks/appraisal.rake index a14665ca0b0..993ed1005e4 100644 --- a/tasks/appraisal.rake +++ b/tasks/appraisal.rake @@ -155,10 +155,6 @@ namespace :appraisal do # rubocop:disable Metrics/BlockLength end TRACER_VERSIONS = [ - '2.1', - '2.2', - '2.3', - '2.4', '2.5', '2.6', '2.7',