diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d8b5edc012..eb6ae594a4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,9 +15,6 @@ jobs: strategy: matrix: php-version: - - '7.1' - - '7.2' - - '7.3' - '7.4' - '8.0' - '8.1' @@ -50,4 +47,4 @@ jobs: - name: Static analysis run: 'vendor/bin/psalm --config="tests/psalm.xml"' - if: ${{ !matrix.future-release && matrix.php-version >= 7.1 }} + if: ${{ !matrix.future-release }} diff --git a/.github/workflows/dependabot-auto-merge.yml b/.github/workflows/dependabot-auto-merge.yml index 0182aa39d8..15deb843c9 100644 --- a/.github/workflows/dependabot-auto-merge.yml +++ b/.github/workflows/dependabot-auto-merge.yml @@ -17,7 +17,15 @@ jobs: - name: Approve and label updates run: | - gh pr review --approve "$PR_URL" + review_status="$( + gh pr view "$PR_URL" \ + --json="reviewDecision" \ + --jq=".reviewDecision" + )" + echo "Pull request review status: ${review_status}" + if [[ "${review_status}" != "APPROVED" ]]; then + gh pr review --approve "$PR_URL" + fi gh pr edit --add-label "cleanup-no-release-required" "$PR_URL" env: PR_URL: ${{ github.event.pull_request.html_url }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index d6d6a0fd7f..048143a3d0 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -14,7 +14,7 @@ jobs: - name: Get changed python files id: changed-files - uses: tj-actions/changed-files@v44 + uses: tj-actions/changed-files@v45 with: files: "**/*.py" diff --git a/CHANGELOG.md b/CHANGELOG.md index 194f7881c7..f3d148c534 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ backwards-incompatible changes that will affect existing usage. +## 11.0.0 - 2024-08-22 + +- Drop support for PHP 7.3 ([#889](https://github.com/php-curl-class/php-curl-class/pull/889)) +- Drop support for PHP 7.2 ([#888](https://github.com/php-curl-class/php-curl-class/pull/888)) +- Drop support for PHP 7.1 ([#887](https://github.com/php-curl-class/php-curl-class/pull/887)) + ## 10.0.1 - 2024-08-21 - Use nullable type declaration ([#882](https://github.com/php-curl-class/php-curl-class/pull/882)) diff --git a/README.md b/README.md index 3e454c8727..b706f557a4 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,7 @@ Installation instructions to use the `composer` command can be found on https:// ### Requirements -PHP Curl Class works with PHP 8.3, 8.2, 8.1, 8.0, 7.4, 7.3, 7.2, and 7.1. +PHP Curl Class works with PHP 8.3, 8.2, 8.1, 8.0, and 7.4. ### Quick Start and Examples diff --git a/composer.json b/composer.json index ea8d153ac0..78222991bc 100644 --- a/composer.json +++ b/composer.json @@ -18,7 +18,7 @@ } ], "require": { - "php": ">=7.1", + "php": ">=7.4", "ext-curl": "*" }, "require-dev": { @@ -29,7 +29,7 @@ "phpcsstandards/phpcsutils": "@alpha", "phpunit/phpunit": "*", "squizlabs/php_codesniffer": "*", - "vimeo/psalm": ">=2" + "vimeo/psalm": ">=5.25.0" }, "suggest": { "ext-mbstring": "*" diff --git a/src/Curl/Curl.php b/src/Curl/Curl.php index 427c7008e7..739177c214 100644 --- a/src/Curl/Curl.php +++ b/src/Curl/Curl.php @@ -6,7 +6,7 @@ class Curl extends BaseCurl { - public const VERSION = '10.0.1'; + public const VERSION = '11.0.0'; public const DEFAULT_TIMEOUT = 30; public $curl = null; diff --git a/tests/check_coding_standards.sh b/tests/check_coding_standards.sh index d4d0ae7ca3..b1ab3a65bc 100755 --- a/tests/check_coding_standards.sh +++ b/tests/check_coding_standards.sh @@ -93,41 +93,31 @@ if [[ ! -z "${elses}" ]]; then fi # Run PHP_CodeSniffer. -if [[ "${CI_PHP_VERSION}" == "7.1" ]]; then : +# Determine which phpcs to use. +if [[ -f "vendor/bin/phpcs" ]]; then + phpcs_to_use="vendor/bin/phpcs" else + phpcs_to_use="phpcs" +fi - # Determine which phpcs to use. - if [[ -f "vendor/bin/phpcs" ]]; then - phpcs_to_use="vendor/bin/phpcs" - else - phpcs_to_use="phpcs" - fi - - # Detect coding standard violations. - "${phpcs_to_use}" --version - "${phpcs_to_use}" \ - --extensions="php" \ - --ignore="*/vendor/*" \ - --standard="tests/ruleset.xml" \ - -p \ - -s \ - . - if [[ "${?}" -ne 0 ]]; then - echo "Error: found PHP_CodeSniffer coding standard violation(s)" - errors+=("found PHP_CodeSniffer coding standard violation(s)") - fi - +# Detect coding standard violations. +"${phpcs_to_use}" --version +"${phpcs_to_use}" \ + --extensions="php" \ + --ignore="*/vendor/*" \ + --standard="tests/ruleset.xml" \ + -p \ + -s \ + . +if [[ "${?}" -ne 0 ]]; then + echo "Error: found PHP_CodeSniffer coding standard violation(s)" + errors+=("found PHP_CodeSniffer coding standard violation(s)") fi # Run PHP-CS-Fixer. -if [[ "${CI_PHP_VERSION}" == "7.1" ]]; then : -elif [[ "${CI_PHP_VERSION}" == "7.2" ]]; then : -elif [[ "${CI_PHP_VERSION}" == "7.3" ]]; then : -else - vendor/bin/php-cs-fixer --version - vendor/bin/php-cs-fixer fix --ansi --config="tests/.php-cs-fixer.php" --diff --dry-run - if [[ "${?}" -ne 0 ]]; then - echo "Error: found PHP-CS-Fixer coding standard violation(s)" - errors+=("found PHP-CS-Fixer coding standard violation(s)") - fi +vendor/bin/php-cs-fixer --version +vendor/bin/php-cs-fixer fix --ansi --config="tests/.php-cs-fixer.php" --diff --dry-run +if [[ "${?}" -ne 0 ]]; then + echo "Error: found PHP-CS-Fixer coding standard violation(s)" + errors+=("found PHP-CS-Fixer coding standard violation(s)") fi diff --git a/tests/dockerfiles/php71/1_build.sh b/tests/dockerfiles/php71/1_build.sh deleted file mode 100755 index f61a4bc850..0000000000 --- a/tests/dockerfiles/php71/1_build.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Build an image. -set -x -docker build --tag="php-curl-class/php71" . diff --git a/tests/dockerfiles/php71/2_start.sh b/tests/dockerfiles/php71/2_start.sh deleted file mode 100755 index 8b2ad9fbc2..0000000000 --- a/tests/dockerfiles/php71/2_start.sh +++ /dev/null @@ -1,15 +0,0 @@ -# Run image to create container. - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -set -x -cd "${SCRIPT_DIR}/../../.." -project_dir="${PWD}" - -docker start "php71" || - docker run \ - --detach \ - --interactive \ - --mount "type=bind,src=${project_dir},dst=/data,readonly=true" \ - --name="php71" \ - --tty \ - "php-curl-class/php71" diff --git a/tests/dockerfiles/php71/3_test.sh b/tests/dockerfiles/php71/3_test.sh deleted file mode 100755 index 181c9206f5..0000000000 --- a/tests/dockerfiles/php71/3_test.sh +++ /dev/null @@ -1,17 +0,0 @@ -# Run tests inside container. -command=$(cat <<-END -mkdir --parents "/tmp/php-curl-class" && -rsync --delete --exclude=".git" --exclude="vendor" --exclude="composer.lock" --links --recursive "/data/" "/tmp/php-curl-class/" && -cd "/tmp/php-curl-class" && -export CI_PHP_VERSION="7.1" && -( - [ ! -f "/tmp/.composer_updated" ] && - composer --no-interaction update && - touch "/tmp/.composer_updated" || - exit 0 -) && -bash "tests/run.sh" -END -) -set -x -docker exec --tty "php71" sh -c "${command}" diff --git a/tests/dockerfiles/php71/4_stop.sh b/tests/dockerfiles/php71/4_stop.sh deleted file mode 100755 index 8a16db2c80..0000000000 --- a/tests/dockerfiles/php71/4_stop.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Stop container. -set -x -docker stop "php71" diff --git a/tests/dockerfiles/php71/Dockerfile b/tests/dockerfiles/php71/Dockerfile deleted file mode 100644 index 654d6f5601..0000000000 --- a/tests/dockerfiles/php71/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM php:7.1-cli -ENV DEBIAN_FRONTEND noninteractive - -RUN apt-get --assume-yes --quiet update - -RUN apt-get --assume-yes --quiet install git && \ - apt-get --assume-yes --quiet install libpng-dev && \ - apt-get --assume-yes --quiet install rsync && \ - apt-get --assume-yes --quiet install zip - -RUN curl --silent --show-error "https://getcomposer.org/installer" | php && \ - mv "composer.phar" "/usr/local/bin/composer" && \ - composer global require --no-interaction "phpunit/phpunit" - -RUN docker-php-ext-configure gd && \ - docker-php-ext-install gd - -ENV PATH /root/.composer/vendor/bin:$PATH -CMD ["bash"] diff --git a/tests/dockerfiles/php71/attach.sh b/tests/dockerfiles/php71/attach.sh deleted file mode 100755 index 2a3ae0fb3b..0000000000 --- a/tests/dockerfiles/php71/attach.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Attach to running container. - -docker exec --interactive --tty "php71" bash -l diff --git a/tests/dockerfiles/php71/run.sh b/tests/dockerfiles/php71/run.sh deleted file mode 100755 index ced63cf365..0000000000 --- a/tests/dockerfiles/php71/run.sh +++ /dev/null @@ -1,23 +0,0 @@ -bash "1_build.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Build failed" - exit 1 -fi - -bash "2_start.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Start failed" - exit 1 -fi - -bash "3_test.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Test failed" - exit 1 -fi - -bash "4_stop.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Stop failed" - exit 1 -fi diff --git a/tests/dockerfiles/php71/run_interactive.sh b/tests/dockerfiles/php71/run_interactive.sh deleted file mode 100755 index d0ec358b91..0000000000 --- a/tests/dockerfiles/php71/run_interactive.sh +++ /dev/null @@ -1,14 +0,0 @@ -# Run image to create container and attach to it. - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -set -x -cd "${SCRIPT_DIR}/../../.." -project_dir="${PWD}" - -docker run \ - --interactive \ - --mount "type=bind,src=${project_dir},dst=/data,readonly=true" \ - --name="php71" \ - --rm \ - --tty \ - "php-curl-class/php71" /bin/bash diff --git a/tests/dockerfiles/php72/1_build.sh b/tests/dockerfiles/php72/1_build.sh deleted file mode 100755 index 408cfad5ef..0000000000 --- a/tests/dockerfiles/php72/1_build.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Build an image. -set -x -docker build --tag="php-curl-class/php72" . diff --git a/tests/dockerfiles/php72/2_start.sh b/tests/dockerfiles/php72/2_start.sh deleted file mode 100755 index af24a69cd5..0000000000 --- a/tests/dockerfiles/php72/2_start.sh +++ /dev/null @@ -1,15 +0,0 @@ -# Run image to create container. - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -set -x -cd "${SCRIPT_DIR}/../../.." -project_dir="${PWD}" - -docker start "php72" || - docker run \ - --detach \ - --interactive \ - --mount "type=bind,src=${project_dir},dst=/data,readonly=true" \ - --name="php72" \ - --tty \ - "php-curl-class/php72" diff --git a/tests/dockerfiles/php72/3_test.sh b/tests/dockerfiles/php72/3_test.sh deleted file mode 100755 index 3eec9f85d8..0000000000 --- a/tests/dockerfiles/php72/3_test.sh +++ /dev/null @@ -1,17 +0,0 @@ -# Run tests inside container. -command=$(cat <<-END -mkdir --parents "/tmp/php-curl-class" && -rsync --delete --exclude=".git" --exclude="vendor" --exclude="composer.lock" --links --recursive "/data/" "/tmp/php-curl-class/" && -cd "/tmp/php-curl-class" && -export CI_PHP_VERSION="7.2" && -( - [ ! -f "/tmp/.composer_updated" ] && - composer --no-interaction update && - touch "/tmp/.composer_updated" || - exit 0 -) && -bash "tests/run.sh" -END -) -set -x -docker exec --tty "php72" sh -c "${command}" diff --git a/tests/dockerfiles/php72/4_stop.sh b/tests/dockerfiles/php72/4_stop.sh deleted file mode 100755 index da8f31ab84..0000000000 --- a/tests/dockerfiles/php72/4_stop.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Stop container. -set -x -docker stop "php72" diff --git a/tests/dockerfiles/php72/Dockerfile b/tests/dockerfiles/php72/Dockerfile deleted file mode 100644 index b3c6ecb5b0..0000000000 --- a/tests/dockerfiles/php72/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM php:7.2-cli -ENV DEBIAN_FRONTEND noninteractive - -RUN apt-get --assume-yes --quiet update - -RUN apt-get --assume-yes --quiet install git && \ - apt-get --assume-yes --quiet install libpng-dev && \ - apt-get --assume-yes --quiet install rsync && \ - apt-get --assume-yes --quiet install zip - -RUN curl --silent --show-error "https://getcomposer.org/installer" | php && \ - mv "composer.phar" "/usr/local/bin/composer" && \ - composer global require --no-interaction "phpunit/phpunit" - -RUN docker-php-ext-configure gd && \ - docker-php-ext-install gd - -ENV PATH /root/.composer/vendor/bin:$PATH -CMD ["bash"] diff --git a/tests/dockerfiles/php72/attach.sh b/tests/dockerfiles/php72/attach.sh deleted file mode 100755 index cc6d36efd5..0000000000 --- a/tests/dockerfiles/php72/attach.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Attach to running container. - -docker exec --interactive --tty "php72" bash -l diff --git a/tests/dockerfiles/php72/run.sh b/tests/dockerfiles/php72/run.sh deleted file mode 100755 index ced63cf365..0000000000 --- a/tests/dockerfiles/php72/run.sh +++ /dev/null @@ -1,23 +0,0 @@ -bash "1_build.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Build failed" - exit 1 -fi - -bash "2_start.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Start failed" - exit 1 -fi - -bash "3_test.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Test failed" - exit 1 -fi - -bash "4_stop.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Stop failed" - exit 1 -fi diff --git a/tests/dockerfiles/php72/run_interactive.sh b/tests/dockerfiles/php72/run_interactive.sh deleted file mode 100755 index df7fe12bab..0000000000 --- a/tests/dockerfiles/php72/run_interactive.sh +++ /dev/null @@ -1,14 +0,0 @@ -# Run image to create container and attach to it. - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -set -x -cd "${SCRIPT_DIR}/../../.." -project_dir="${PWD}" - -docker run \ - --interactive \ - --mount "type=bind,src=${project_dir},dst=/data,readonly=true" \ - --name="php72" \ - --rm \ - --tty \ - "php-curl-class/php72" /bin/bash diff --git a/tests/dockerfiles/php73/1_build.sh b/tests/dockerfiles/php73/1_build.sh deleted file mode 100755 index 4cb42d3cb4..0000000000 --- a/tests/dockerfiles/php73/1_build.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Build an image. -set -x -docker build --tag="php-curl-class/php73" . diff --git a/tests/dockerfiles/php73/2_start.sh b/tests/dockerfiles/php73/2_start.sh deleted file mode 100755 index de2a49bbff..0000000000 --- a/tests/dockerfiles/php73/2_start.sh +++ /dev/null @@ -1,15 +0,0 @@ -# Run image to create container. - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -set -x -cd "${SCRIPT_DIR}/../../.." -project_dir="${PWD}" - -docker start "php73" || - docker run \ - --detach \ - --interactive \ - --mount "type=bind,src=${project_dir},dst=/data,readonly=true" \ - --name="php73" \ - --tty \ - "php-curl-class/php73" diff --git a/tests/dockerfiles/php73/3_test.sh b/tests/dockerfiles/php73/3_test.sh deleted file mode 100755 index 3ce53c2807..0000000000 --- a/tests/dockerfiles/php73/3_test.sh +++ /dev/null @@ -1,17 +0,0 @@ -# Run tests inside container. -command=$(cat <<-END -mkdir --parents "/tmp/php-curl-class" && -rsync --delete --exclude=".git" --exclude="vendor" --exclude="composer.lock" --links --recursive "/data/" "/tmp/php-curl-class/" && -cd "/tmp/php-curl-class" && -export CI_PHP_VERSION="7.3" && -( - [ ! -f "/tmp/.composer_updated" ] && - composer --no-interaction update && - touch "/tmp/.composer_updated" || - exit 0 -) && -bash "tests/run.sh" -END -) -set -x -docker exec --tty "php73" sh -c "${command}" diff --git a/tests/dockerfiles/php73/4_stop.sh b/tests/dockerfiles/php73/4_stop.sh deleted file mode 100755 index e119c63411..0000000000 --- a/tests/dockerfiles/php73/4_stop.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Stop container. -set -x -docker stop "php73" diff --git a/tests/dockerfiles/php73/Dockerfile b/tests/dockerfiles/php73/Dockerfile deleted file mode 100644 index ab796d70f8..0000000000 --- a/tests/dockerfiles/php73/Dockerfile +++ /dev/null @@ -1,19 +0,0 @@ -FROM php:7.3-cli -ENV DEBIAN_FRONTEND noninteractive - -RUN apt-get --assume-yes --quiet update - -RUN apt-get --assume-yes --quiet install git && \ - apt-get --assume-yes --quiet install libpng-dev && \ - apt-get --assume-yes --quiet install rsync && \ - apt-get --assume-yes --quiet install zip - -RUN curl --silent --show-error "https://getcomposer.org/installer" | php && \ - mv "composer.phar" "/usr/local/bin/composer" && \ - composer global require --no-interaction "phpunit/phpunit" - -RUN docker-php-ext-configure gd && \ - docker-php-ext-install gd - -ENV PATH /root/.composer/vendor/bin:$PATH -CMD ["bash"] diff --git a/tests/dockerfiles/php73/attach.sh b/tests/dockerfiles/php73/attach.sh deleted file mode 100755 index f8ef94c496..0000000000 --- a/tests/dockerfiles/php73/attach.sh +++ /dev/null @@ -1,3 +0,0 @@ -# Attach to running container. - -docker exec --interactive --tty "php73" bash -l diff --git a/tests/dockerfiles/php73/run.sh b/tests/dockerfiles/php73/run.sh deleted file mode 100755 index ced63cf365..0000000000 --- a/tests/dockerfiles/php73/run.sh +++ /dev/null @@ -1,23 +0,0 @@ -bash "1_build.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Build failed" - exit 1 -fi - -bash "2_start.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Start failed" - exit 1 -fi - -bash "3_test.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Test failed" - exit 1 -fi - -bash "4_stop.sh" -if [[ $? -ne 0 ]]; then - echo "Error: Stop failed" - exit 1 -fi diff --git a/tests/dockerfiles/php73/run_interactive.sh b/tests/dockerfiles/php73/run_interactive.sh deleted file mode 100755 index b7410b551b..0000000000 --- a/tests/dockerfiles/php73/run_interactive.sh +++ /dev/null @@ -1,14 +0,0 @@ -# Run image to create container and attach to it. - -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -set -x -cd "${SCRIPT_DIR}/../../.." -project_dir="${PWD}" - -docker run \ - --interactive \ - --mount "type=bind,src=${project_dir},dst=/data,readonly=true" \ - --name="php73" \ - --rm \ - --tty \ - "php-curl-class/php73" /bin/bash