diff --git a/.github/workflows/composer-dependency-analyser.yml b/.github/workflows/composer-dependency-analyser.yml new file mode 100644 index 0000000..6bb3328 --- /dev/null +++ b/.github/workflows/composer-dependency-analyser.yml @@ -0,0 +1,77 @@ +on: + pull_request: + paths-ignore: + - 'docs/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - 'infection.json.dist' + - 'phpunit.xml.dist' + - 'psalm.xml' + + push: + paths-ignore: + - 'docs/**' + - 'README.md' + - 'CHANGELOG.md' + - '.gitignore' + - '.gitattributes' + - 'infection.json.dist' + - 'phpunit.xml.dist' + - 'psalm.xml' + +name: Composer dependency analyser + +jobs: + composer-dependency-analyser: + name: PHP ${{ matrix.php }}-${{ matrix.os }} + + env: + key: cache-v1 + + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: + - ubuntu-latest + + php: + - 8.2 + - 8.3 + + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Install PHP + uses: shivammathur/setup-php@v2 + env: + update: true + with: + php-version: ${{ matrix.php }} + ini-values: date.timezone='UTC' + coverage: none + tools: composer:v2 + + - name: Determine composer cache directory on Linux + if: matrix.os == 'ubuntu-latest' + run: echo "COMPOSER_CACHE_DIR=$(composer config cache-dir)" >> $GITHUB_ENV + + - name: Cache dependencies installed with composer + uses: actions/cache@v4 + with: + path: ${{ env.COMPOSER_CACHE_DIR }} + key: php${{ matrix.php }}-composer-${{ hashFiles('**/composer.json') }} + restore-keys: | + php${{ matrix.php }}-composer- + + - name: Update composer + run: composer self-update + + - name: Install dependencies with composer + run: composer update --prefer-dist --no-interaction --no-progress --optimize-autoloader --ansi + + - name: Analyse project dependencies + run: vendor/bin/composer-dependency-analyser diff --git a/.github/workflows/composer-require-checker.yml b/.github/workflows/composer-require-checker.yml deleted file mode 100644 index b3330e7..0000000 --- a/.github/workflows/composer-require-checker.yml +++ /dev/null @@ -1,33 +0,0 @@ -on: - pull_request: - paths-ignore: - - 'docs/**' - - 'README.md' - - 'CHANGELOG.md' - - '.gitignore' - - '.gitattributes' - - 'infection.json.dist' - - 'phpunit.xml.dist' - - 'psalm.xml' - - push: - paths-ignore: - - 'docs/**' - - 'README.md' - - 'CHANGELOG.md' - - '.gitignore' - - '.gitattributes' - - 'infection.json.dist' - - 'phpunit.xml.dist' - - 'psalm.xml' - -name: Composer require checker - -jobs: - composer-require-checker: - uses: yiisoft/actions/.github/workflows/composer-require-checker.yml@master - with: - os: >- - ['ubuntu-latest'] - php: >- - ['8.2'] diff --git a/composer-dependency-analyser.php b/composer-dependency-analyser.php new file mode 100644 index 0000000..3b130f2 --- /dev/null +++ b/composer-dependency-analyser.php @@ -0,0 +1,14 @@ +addPathsToScan([__DIR__ . '/config', __DIR__ . '/src'], false) + ->addPathToScan(__DIR__ . '/tests', true) + ->ignoreErrorsOnPath(__DIR__ . '/config', [ErrorType::DEV_DEPENDENCY_IN_PROD]) // We really can configure non-existent classes + ->ignoreErrorsOnPath(__DIR__ . '/src/Console', [ErrorType::DEV_DEPENDENCY_IN_PROD]) // symfony/console is an optional dependency, CLI commands won't be used without it + ->disableComposerAutoloadPathScan(); diff --git a/composer.json b/composer.json index a69c41d..a0b8c75 100644 --- a/composer.json +++ b/composer.json @@ -21,9 +21,13 @@ "yiisoft/injector": "^1.0" }, "require-dev": { - "maglnet/composer-require-checker": "^4.5", + "php-http/multipart-stream-builder": "^1.4", "phpunit/phpunit": "^10.1", + "psr/http-client": "^1.0", + "psr/http-factory": "^1.1", + "psr/http-message": "^2.0", "roave/infection-static-analysis-plugin": "^1.16", + "shipmonk/composer-dependency-analyser": "^1.8", "symfony/console": "^7.2", "symfony/http-client": "^7.0", "vimeo/psalm": "^6.8", @@ -31,8 +35,8 @@ "yiisoft/test-support": "^3.0" }, "suggest": { - "symfony/http-client": "^6.0", - "yiisoft/yii-console": "^1.0", + "symfony/http-client": "^7.0", + "yiisoft/yii-console": "^2.0", "yiisoft/yii-event": "^2.0" }, "autoload": { diff --git a/tests/Middleware/MiddlewareFactoryTest.php b/tests/Middleware/MiddlewareFactoryTest.php index daffc56..144288d 100644 --- a/tests/Middleware/MiddlewareFactoryTest.php +++ b/tests/Middleware/MiddlewareFactoryTest.php @@ -12,7 +12,6 @@ use Botasis\Runtime\Middleware\MiddlewareFactory; use Botasis\Runtime\Middleware\MiddlewareFactoryInterface; use Botasis\Runtime\Middleware\MiddlewareInterface; -use Botasis\Runtime\Request\TelegramRequestEnriched; use Botasis\Runtime\Response\Response; use Botasis\Runtime\Response\ResponseInterface; use Botasis\Runtime\Tests\Middleware\Support\InvalidController;