Skip to content

Commit

Permalink
Merge pull request #62 from WyriHaximus/PHP-8.2+
Browse files Browse the repository at this point in the history
PHP 8.2+
  • Loading branch information
WyriHaximus authored Nov 30, 2023
2 parents 6ec238f + 4466707 commit 3ed7217
Show file tree
Hide file tree
Showing 9 changed files with 1,305 additions and 1,943 deletions.
36 changes: 23 additions & 13 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ SHELL=bash

COMPOSER_SHOW_EXTENSION_LIST=$(shell composer show -t | grep -o "\-\-\(ext-\).\+" | sort | uniq | cut -d- -f4- | tr -d '\n' | grep . | sed '/^$$/d' | xargs | sed -e 's/ /, /g' | tr -cd '[:alnum:],' | sed 's/.$$//')
SLIM_DOCKER_IMAGE=$(shell php -r 'echo count(array_intersect(["gd", "vips"], explode(",", "${COMPOSER_SHOW_EXTENSION_LIST}"))) > 0 ? "" : "-slim";')
COMPOSER_CACHE_DIR=$(shell composer config --global cache-dir -q || echo ${HOME}/.composer-php/cache)
PHP_VERSION:=$(shell docker run --rm -v "`pwd`:`pwd`" jess/jq jq -r -c '.config.platform.php' "`pwd`/composer.json" | php -r "echo str_replace('|', '.', explode('.', implode('|', explode('.', stream_get_contents(STDIN), 2)), 2)[0]);")
COMPOSER_CONTAINER_CACHE_DIR=$(shell docker run --rm -it "ghcr.io/wyrihaximusnet/php:${PHP_VERSION}-nts-alpine${SLIM_DOCKER_IMAGE}-dev" composer config --global cache-dir -q || echo ${HOME}/.composer-php/cache)
CONTAINER_NAME=$(shell echo "ghcr.io/wyrihaximusnet/php:${PHP_VERSION}-nts-alpine${SLIM_DOCKER_IMAGE}-dev")
COMPOSER_CACHE_DIR=$(shell composer config --global cache-dir -q || echo ${HOME}/.composer-php/cache)
COMPOSER_CONTAINER_CACHE_DIR=$(shell docker run --rm -it ${CONTAINER_NAME} composer config --global cache-dir -q || echo ${HOME}/.composer-php/cache)

ifneq ("$(wildcard /.you-are-in-a-wyrihaximus.net-php-docker-image)","")
IN_DOCKER=TRUE
Expand All @@ -22,7 +23,7 @@ else
-v "`pwd`:`pwd`" \
-v "${COMPOSER_CACHE_DIR}:${COMPOSER_CONTAINER_CACHE_DIR}" \
-w "`pwd`" \
"ghcr.io/wyrihaximusnet/php:${PHP_VERSION}-nts-alpine${SLIM_DOCKER_IMAGE}-dev"
${CONTAINER_NAME}
endif

ifneq (,$(findstring icrosoft,$(shell cat /proc/version)))
Expand All @@ -31,13 +32,13 @@ else
THREADS=$(shell nproc)
endif

all: ## Runs everything ###
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | grep -v "###" | awk 'BEGIN {FS = ":.*?## "}; {printf "%s\n", $$1}' | xargs --open-tty $(MAKE)
all: ## Runs everything ####
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | grep -v "####" | awk 'BEGIN {FS = ":.*?## "}; {printf "%s\n", $$1}' | xargs --open-tty $(MAKE)

syntax-php: ## Lint PHP syntax
$(DOCKER_RUN) vendor/bin/parallel-lint --exclude vendor .

cs-fix: ## Fix any automatically fixable code style issues
cs-fix: ## Fix any automatically fixable code style issues ###
$(DOCKER_RUN) vendor/bin/phpcbf --parallel=$(THREADS) --cache=./var/.phpcs.cache.json --standard=./etc/qa/phpcs.xml || $(DOCKER_RUN) vendor/bin/phpcbf --parallel=$(THREADS) --cache=./var/.phpcs.cache.json --standard=./etc/qa/phpcs.xml || $(DOCKER_RUN) vendor/bin/phpcbf --parallel=$(THREADS) --cache=./var/.phpcs.cache.json --standard=./etc/qa/phpcs.xml -vvvv

cs: ## Check the code for code style issues
Expand All @@ -53,21 +54,21 @@ unit-testing: ## Run tests
$(DOCKER_RUN) vendor/bin/phpunit --colors=always -c ./etc/qa/phpunit.xml --coverage-text --coverage-html ./var/tests-unit-coverage-html --coverage-clover ./var/tests-unit-clover-coverage.xml
$(DOCKER_RUN) test -n "$(COVERALLS_REPO_TOKEN)" && test -n "$(COVERALLS_RUN_LOCALLY)" && test -f ./var/tests-unit-clover-coverage.xml && vendor/bin/php-coveralls -v --coverage_clover ./build/logs/clover.xml --json_path ./var/tests-unit-clover-coverage-upload.json || true

unit-testing-raw: ## Run tests ###
unit-testing-raw: ## Run tests ####
php vendor/phpunit/phpunit/phpunit --colors=always -c ./etc/qa/phpunit.xml --coverage-text --coverage-html ./var/tests-unit-coverage-html --coverage-clover ./var/tests-unit-clover-coverage.xml
test -n "$(COVERALLS_REPO_TOKEN)" && test -n "$(COVERALLS_RUN_LOCALLY)" && test -f ./var/tests-unit-clover-coverage.xml && ./vendor/bin/php-coveralls -v --coverage_clover ./build/logs/clover.xml --json_path ./var/tests-unit-clover-coverage-upload.json || true

mutation-testing: ## Run mutation testing
$(DOCKER_RUN) vendor/bin/roave-infection-static-analysis-plugin --ansi --log-verbosity=all --threads=$(THREADS) --psalm-config etc/qa/psalm.xml || (cat ./var/infection.log && false)

mutation-testing-raw: ## Run mutation testing ###
mutation-testing-raw: ## Run mutation testing ####
php vendor/roave/infection-static-analysis-plugin/bin/roave-infection-static-analysis-plugin --ansi --log-verbosity=all --threads=$(THREADS) --psalm-config etc/qa/psalm.xml || (cat ./var/infection.log && false)

composer-require-checker: ## Ensure we require every package used in this package directly
$(DOCKER_RUN) vendor/bin/composer-require-checker --ignore-parse-errors --ansi -vvv --config-file=./etc/qa/composer-require-checker.json

composer-unused: ## Ensure we don't require any package we don't use in this package directly
$(DOCKER_RUN) vendor/bin/composer-unused --ansi
$(DOCKER_RUN) vendor/bin/composer-unused --ansi --configuration=./etc/qa/composer-unused.php

composer-install: ## Install dependencies
$(DOCKER_RUN) composer install --no-progress --ansi --no-interaction --prefer-dist -o
Expand All @@ -78,12 +79,21 @@ backward-compatibility-check: ## Check code for backwards incompatible changes
backward-compatibility-check-raw: ## Check code for backwards incompatible changes, doesn't ignore the failure ###
$(DOCKER_RUN) vendor/bin/roave-backward-compatibility-check

shell: ## Provides Shell access in the expected environment ###
$(DOCKER_RUN) ash
shell: ## Provides Shell access in the expected environment ####
$(DOCKER_RUN) bash

install: ## Install dependencies ####
$(DOCKER_RUN) composer install

update: ## Update dependencies ####
$(DOCKER_RUN) composer update -W

outdated: ## Show outdated dependencies ####
$(DOCKER_RUN) composer outdated

task-list-ci: ## CI: Generate a JSON array of jobs to run, matches the commands run when running `make (|all)` ###
task-list-ci: ## CI: Generate a JSON array of jobs to run, matches the commands run when running `make (|all)` ####
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | grep -v "###" | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "%s\n", $$1}' | jq --raw-input --slurp -c 'split("\n")| .[0:-1]'

help: ## Show this help ###
help: ## Show this help ####
@printf "\033[33mUsage:\033[0m\n make [target]\n\n\033[33mTargets:\033[0m\n"
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[32m%-32s\033[0m %s\n", $$1, $$2}' | tr -d '#'
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# [ReactPHP](https://github.com/reactphp/) awaitable observable

[![Continuous Integration](https://github.com/WyriHaximus/reactphp-awaitable-observable/actions/workflows/ci.yml/badge.svg)](https://github.com/WyriHaximus/reactphp-awaitable-observable/actions/workflows/ci.yml)
[![Latest Stable Version](https://poser.pugx.org/WyriHaximus/react-awaitable-observable/v/stable.png)](https://packagist.org/packages/WyriHaximus/react-awaitable-observable)
[![Total Downloads](https://poser.pugx.org/WyriHaximus/react-awaitable-observable/downloads.png)](https://packagist.org/packages/WyriHaximus/react-awaitable-observable/stats)
[![License](https://poser.pugx.org/WyriHaximus/react-awaitable-observable/license.png)](https://packagist.org/packages/wyrihaximus/react-awaitable-observable)
![Continuous Integration](https://github.com/wyrihaximus/reactphp-awaitable-observable/workflows/Continuous%20Integration/badge.svg)
[![Latest Stable Version](https://poser.pugx.org/wyrihaximus/react-awaitable-observable/v/stable.png)](https://packagist.org/packages/wyrihaximus/react-awaitable-observable)
[![Total Downloads](https://poser.pugx.org/wyrihaximus/react-awaitable-observable/downloads.png)](https://packagist.org/packages/wyrihaximus/react-awaitable-observable/stats)
[![Type Coverage](https://shepherd.dev/github/WyriHaximus/reactphp-awaitable-observable/coverage.svg)](https://shepherd.dev/github/WyriHaximus/reactphp-awaitable-observable)
[![License](https://poser.pugx.org/wyrihaximus/react-awaitable-observable/license.png)](https://packagist.org/packages/wyrihaximus/react-awaitable-observable)

### Installation ###

Expand Down
10 changes: 5 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
}
],
"require": {
"php": "^8.1",
"php": "^8.2",
"react/async": "^4",
"react/promise": "^2.11",
"reactivex/rxphp": "^2.0.11"
"react/promise": "^2.10 || ^3",
"reactivex/rxphp": "^2.0.12"
},
"require-dev": {
"wyrihaximus/async-test-utilities": "^5.0.25"
"wyrihaximus/async-test-utilities": "^7.2"
},
"autoload": {
"psr-4": {
Expand All @@ -39,7 +39,7 @@
"infection/extension-installer": true
},
"platform": {
"php": "8.1.1"
"php": "8.2.13"
},
"sort-packages": true
},
Expand Down
Loading

0 comments on commit 3ed7217

Please sign in to comment.