diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 39888dbb..85aad9c5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -7,10 +7,12 @@ on: jobs: PHPUnit: name: PHPUnit (PHP ${{ matrix.php }}) - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 strategy: matrix: php: + - 8.3 + - 8.2 - 8.1 - 8.0 - 7.4 @@ -23,11 +25,16 @@ jobs: - 5.4 - 5.3 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: xdebug + ini-file: development + ini-values: disable_functions='' # do not disable PCNTL functions on PHP < 8.1 + extensions: sockets, pcntl + env: + fail-fast: true # fail step if any extension can not be installed - run: composer install - run: vendor/bin/phpunit --coverage-text --exclude-group internet if: ${{ matrix.php >= 7.3 }} @@ -36,13 +43,16 @@ jobs: PHPUnit-hhvm: name: PHPUnit (HHVM) - runs-on: ubuntu-18.04 + runs-on: ubuntu-22.04 continue-on-error: true steps: - - uses: actions/checkout@v2 - - uses: azjezz/setup-hhvm@v1 + - uses: actions/checkout@v4 + - run: cp "$(which composer)" composer.phar && ./composer.phar self-update --2.2 # downgrade Composer for HHVM + - name: Run hhvm composer.phar require --dev react/async:^2 react/promise:^2 phpunit/phpunit:^5.7 # downgrade Async and Promise for HHVM + uses: docker://hhvm/hhvm:3.30-lts-latest with: - version: lts-3.30 - - run: composer self-update --2.2 # downgrade Composer for HHVM - - run: hhvm $(which composer) require react/async:^2 # downgrade Async component for HHVM - - run: hhvm vendor/bin/phpunit --exclude-group internet + args: hhvm composer.phar require --dev react/async:^2 react/promise:^2 phpunit/phpunit:^5.7 + - name: Run hhvm vendor/bin/phpunit --exclude-group internet + uses: docker://hhvm/hhvm:3.30-lts-latest + with: + args: hhvm vendor/bin/phpunit --exclude-group internet diff --git a/CHANGELOG.md b/CHANGELOG.md index 45b68ac2..f5f711e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## 1.4.0 (2023-07-11) + +A major new feature release, see [**release announcement**](https://clue.engineering/2023/announcing-reactphp-promise-v3). + +* Feature: Add support for new Promise v3 release. + (#464 and #524 by @clue) + +* Feature: Support PHP 8.2 release. + (#491 by @Nielsvanpach) + +* Improve test suite, update dependencies and report failed assertions. + (#462 and #501 by @clue and #466 and #492 by @SimonFrings) + ## 1.3.0 (2022-07-11) A major new feature release, see [**release announcement**](https://clue.engineering/2022/announcing-reactphp-async). diff --git a/README.md b/README.md index 4cf54602..f8e1d0f2 100644 --- a/README.md +++ b/README.md @@ -219,7 +219,7 @@ installed like this: ```bash # quick protoyping only: install all stable components -composer require react/react:^1.3 +composer require react/react:^1.4 ``` For more details, check out [ReactPHP's homepage](https://reactphp.org/) for diff --git a/composer.json b/composer.json index 64f517de..3f752a63 100644 --- a/composer.json +++ b/composer.json @@ -9,21 +9,20 @@ }, "require": { "php": ">=5.3.8", - "react/async": "^4 || ^3 || ^2", + "react/async": "^4.3 || ^3.2 || ^2.2", "react/cache": "^1.1", - "react/dns": "^1.9", - "react/event-loop": "^1.3", - "react/http": "^1.6", - "react/promise": "^2.9 || ^1.2", - "react/promise-stream": "^1.3", - "react/promise-timer": "^1.8", - "react/socket": "^1.11", - "react/stream": "^1.2" + "react/dns": "^1.13", + "react/event-loop": "^1.5", + "react/http": "^1.11", + "react/promise": "^3.2 || ^2.10 || ^1.3", + "react/promise-stream": "^1.7", + "react/promise-timer": "^1.11", + "react/socket": "^1.15", + "react/stream": "^1.4" }, "require-dev": { - "clue/block-react": "^1.5", "clue/stream-filter": "^1.3", - "phpunit/phpunit": "^9.5 || ^5.7 || ^4.8.35" + "phpunit/phpunit": "^9.6 || ^7.5 || ^5.7 || ^4.8.36" }, "config": { "preferred-install": { diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 15445651..d5d26a2e 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,17 +1,17 @@ - + + + ./vendor/react/event-loop/tests/ ./vendor/react/*/tests/ - - ./vendor/react/http/tests/HttpServerTest.php @@ -19,4 +19,12 @@ ./vendor/react/*/src/ + + + + + + + + diff --git a/phpunit.xml.legacy b/phpunit.xml.legacy index 8a0d9b7f..2cd2f9b1 100644 --- a/phpunit.xml.legacy +++ b/phpunit.xml.legacy @@ -1,6 +1,6 @@ - + ./vendor/react/*/tests/ - - ./vendor/react/http/tests/HttpServerTest.php @@ -17,4 +15,12 @@ ./vendor/react/*/src/ + + + + + + + + diff --git a/tests/bootstrap.php b/tests/bootstrap.php index db5b8cac..2af732cf 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -2,7 +2,9 @@ $autoload = require __DIR__ . '/../vendor/autoload.php'; -// register all `autoload-dev` paths from React's components +assert($autoload instanceof Composer\Autoload\ClassLoader); + +// register all `autoload-dev` paths from ReactPHP's components foreach (glob(__DIR__ . '/../vendor/react/*/composer.json') as $b) { $config = json_decode(file_get_contents($b), true); @@ -15,17 +17,3 @@ } } } - -// load all legacy test bootstrap scripts from React's components -foreach (glob(__DIR__ . '/../vendor/react/*/tests/bootstrap.php') as $b) { - // skip legacy react/promise for now and use manual autoload path from bootstrap config - // @link https://github.com/reactphp/promise/blob/1.x/tests/bootstrap.php - // @link https://github.com/reactphp/promise/blob/2.x/tests/bootstrap.php - if (strpos($b, 'react/promise/tests/bootstrap.php') !== false) { - $autoload->add('React\Promise', __DIR__ . '/../vendor/react/promise/tests'); - $autoload->addPsr4('React\\Promise\\', __DIR__ . '/../vendor/react/promise/tests'); - continue; - } - - include $b; -} pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy