diff --git a/.editorconfig b/.editorconfig index fe20895..9576ebc 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,6 +2,7 @@ root = true [*] charset = utf-8 +end_of_line = lf indent_size = 4 indent_style = space insert_final_newline = true diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index 9f05a98..da211c1 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -3,12 +3,12 @@ version: 2 updates: - - commit-message: + - allow: + - dependency-type: "development" + commit-message: include: "scope" prefix: "composer" directory: "/" - ignore: - - dependency-name: "fakerphp/faker" labels: - "dependency" open-pull-requests-limit: 10 diff --git a/.github/settings.yml b/.github/settings.yml index e9bfa42..ffbed4f 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -1,4 +1,4 @@ -# https://github.com/probot/settings +# https://github.com/repository-settings/app branches: - name: "main" diff --git a/.github/workflows/integrate.yaml b/.github/workflows/integrate.yaml index 3762a4a..58c21ba 100644 --- a/.github/workflows/integrate.yaml +++ b/.github/workflows/integrate.yaml @@ -14,6 +14,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + strategy: matrix: php-version: @@ -27,7 +29,7 @@ jobs: uses: "actions/checkout@v4.1.1" - name: "Set up PHP" - uses: "shivammathur/setup-php@2.27.1" + uses: "shivammathur/setup-php@2.28.0" with: coverage: "xdebug" extensions: "none, ctype, curl, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" @@ -73,6 +75,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + strategy: matrix: php-version: @@ -93,7 +97,7 @@ jobs: strict: true - name: "Set up PHP" - uses: "shivammathur/setup-php@2.27.1" + uses: "shivammathur/setup-php@2.28.0" with: coverage: "none" extensions: "none, ctype, curl, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" @@ -143,6 +147,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + strategy: matrix: php-version: @@ -156,7 +162,7 @@ jobs: uses: "actions/checkout@v4.1.1" - name: "Set up PHP" - uses: "shivammathur/setup-php@2.27.1" + uses: "shivammathur/setup-php@2.28.0" with: coverage: "none" extensions: "none, ctype, curl, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" @@ -190,13 +196,15 @@ jobs: trust-gpg-keys: "0x033E5F8D801A2F8D" - name: "Run maglnet/composer-require-checker" - run: ".phive/composer-require-checker check --config-file=$(pwd)/composer-require-checker.json" + run: ".phive/composer-require-checker check --ansi --config-file=$(pwd)/composer-require-checker.json --verbose" mutation-tests: name: "Mutation Tests" runs-on: "ubuntu-latest" + timeout-minutes: 5 + strategy: matrix: php-version: @@ -210,7 +218,7 @@ jobs: uses: "actions/checkout@v4.1.1" - name: "Set up PHP" - uses: "shivammathur/setup-php@2.27.1" + uses: "shivammathur/setup-php@2.28.0" with: coverage: "xdebug" extensions: "none, ctype, curl, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" @@ -247,6 +255,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + strategy: matrix: php-version: @@ -260,7 +270,7 @@ jobs: uses: "actions/checkout@v4.1.1" - name: "Set up PHP" - uses: "shivammathur/setup-php@2.27.1" + uses: "shivammathur/setup-php@2.28.0" with: coverage: "none" extensions: "none, ctype, curl, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" @@ -307,6 +317,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + strategy: matrix: php-version: @@ -320,7 +332,7 @@ jobs: uses: "actions/checkout@v4.1.1" - name: "Set up PHP" - uses: "shivammathur/setup-php@2.27.1" + uses: "shivammathur/setup-php@2.28.0" with: coverage: "none" extensions: "none, ctype, curl, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" @@ -355,6 +367,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + strategy: matrix: php-version: @@ -368,7 +382,7 @@ jobs: uses: "actions/checkout@v4.1.1" - name: "Set up PHP" - uses: "shivammathur/setup-php@2.27.1" + uses: "shivammathur/setup-php@2.28.0" with: coverage: "none" extensions: "none, ctype, curl, dom, json, mbstring, opcache, pcntl, phar, posix, simplexml, tokenizer, xml, xmlwriter" @@ -406,6 +420,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + strategy: matrix: php-version: @@ -422,7 +438,7 @@ jobs: uses: "actions/checkout@v4.1.1" - name: "Set up PHP" - uses: "shivammathur/setup-php@2.27.1" + uses: "shivammathur/setup-php@2.28.0" with: coverage: "none" extensions: "none, ctype, curl, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" diff --git a/.github/workflows/merge.yaml b/.github/workflows/merge.yaml index 39279b0..5b32680 100644 --- a/.github/workflows/merge.yaml +++ b/.github/workflows/merge.yaml @@ -15,6 +15,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + if: > github.event.workflow_run.event == 'pull_request' && github.event.workflow_run.conclusion == 'success' && diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index c760eed..bbed7cd 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -13,6 +13,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + steps: - name: "Create release" uses: "ergebnis/.github/actions/github/release/create@1.8.0" diff --git a/.github/workflows/renew.yaml b/.github/workflows/renew.yaml index 3b41608..e55d659 100644 --- a/.github/workflows/renew.yaml +++ b/.github/workflows/renew.yaml @@ -12,6 +12,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + strategy: matrix: php-version: @@ -27,7 +29,7 @@ jobs: token: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - name: "Set up PHP" - uses: "shivammathur/setup-php@2.27.1" + uses: "shivammathur/setup-php@2.28.0" with: coverage: "none" extensions: "none, ctype, curl, dom, json, mbstring, phar, simplexml, tokenizer, xml, xmlwriter" diff --git a/.github/workflows/triage.yaml b/.github/workflows/triage.yaml index 8f59cb6..6b1217b 100644 --- a/.github/workflows/triage.yaml +++ b/.github/workflows/triage.yaml @@ -13,6 +13,8 @@ jobs: runs-on: "ubuntu-latest" + timeout-minutes: 5 + steps: - name: "Add labels based on branch name" uses: "ergebnis/.github/actions/github/pull-request/add-label-based-on-branch-name@1.8.0" diff --git a/.phive/phars.xml b/.phive/phars.xml index b195d71..f346d4e 100644 --- a/.phive/phars.xml +++ b/.phive/phars.xml @@ -1,4 +1,4 @@ - + diff --git a/Makefile b/Makefile index fa67999..f693f4e 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,7 @@ coding-standards: vendor ## Lints YAML files with yamllint, normalizes composer. .PHONY: dependency-analysis dependency-analysis: phive vendor ## Runs a dependency analysis with maglnet/composer-require-checker - .phive/composer-require-checker check --config-file=$(shell pwd)/composer-require-checker.json + .phive/composer-require-checker check --config-file=$(shell pwd)/composer-require-checker.json --verbose .PHONY: help help: ## Displays this list of targets with descriptions diff --git a/README.md b/README.md index 75eb04c..f35fc73 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ [![Total Downloads](https://poser.pugx.org/ergebnis/data-provider/downloads)](https://packagist.org/packages/ergebnis/data-provider) [![Monthly Downloads](http://poser.pugx.org/ergebnis/data-provider/d/monthly)](https://packagist.org/packages/ergebnis/data-provider) +This package provides generic data providers for use with [`phpunit/phpunit`](https://github.com/sebastianbergmann/phpunit). + ## Installation Run @@ -33,7 +35,7 @@ This package provides the following generic data providers: - [`Ergebnis\DataProvider\StringProvider`](https://github.com/ergebnis/data-provider#dataproviderstringprovider) - [`Ergebnis\DataProvider\UuidProvider`](https://github.com/ergebnis/data-provider#dataprovideruuidprovider) -Since it is possible to use multiple `@dataProvider` annotations for test methods, these generic data providers allow for reuse and composition of data providers: +Since it is possible to use multiple [`@dataProvider` annotations](https://docs.phpunit.de/en/10.4/annotations.html#dataprovider) or [`PHPUnit\Framework\Attribute\DataProviderExternal` attributes](https://docs.phpunit.de/en/10.4/attributes.html#dataproviderexternal) for test methods, these generic data providers allow for reuse and composition of data providers: ```php expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage('Value can not be an empty or blank string.'); + + UserName::fromString($value); + } + + #[Framework\DataProviderExternal(DataProvider\StringProvider::class, 'blank')] + #[Framework\DataProviderExternal(DataProvider\StringProvider::class, 'empty')] + public function testFromNameRejectsInvalidValueWithAttribute(string $value): void { $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('Value can not be an empty or blank string.'); @@ -131,26 +145,36 @@ For examples, see [`Ergebnis\DataProvider\Test\Unit\UuidProviderTest`](test/Unit ## Changelog -Please have a look at [`CHANGELOG.md`](CHANGELOG.md). +The maintainers of this package record notable changes to this project in a [changelog](CHANGELOG.md). ## Contributing -Please have a look at [`CONTRIBUTING.md`](.github/CONTRIBUTING.md). +The maintainers of this package suggest following the [contribution guide](.github/CONTRIBUTING.md). ## Code of Conduct -Please have a look at [`CODE_OF_CONDUCT.md`](https://github.com/ergebnis/.github/blob/main/CODE_OF_CONDUCT.md). +The maintainers of this package ask contributors to follow the [code of conduct](https://github.com/ergebnis/.github/blob/main/CODE_OF_CONDUCT.md). + +## General Support Policy + +The maintainers of this package provide limited support. + +You can support the maintenance of this package by [sponsoring @localheinz](https://github.com/sponsors/localheinz) or [requesting an invoice for services related to this package](mailto:am@localheinz.com?subject=ergebnis/data-provider:%20Requesting%20invoice%20for%20services). + +## PHP Version Support Policy + +This package supports PHP versions with [active support](https://www.php.net/supported-versions.php). + +The maintainers of this package add support for a PHP version following its initial release and drop support for a PHP version when it has reached its end of active support. ## Security Policy -Please have a look at [`SECURITY.md`](.github/SECURITY.md). +This package has a [security policy](.github/SECURITY.md). ## License -This package is licensed using the MIT License. - -Please have a look at [`LICENSE.md`](LICENSE.md). +This package uses the [MIT license](LICENSE.md). -## Curious what I am up to? +## Social -Follow me on [Twitter](https://twitter.com/intent/follow?screen_name=localheinz)! +Follow [@localheinz](https://twitter.com/intent/follow?screen_name=localheinz) and [@ergebnis](https://twitter.com/intent/follow?screen_name=ergebnis) on Twitter. diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 375073e..f5acd66 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,5 +1,5 @@ - + $value