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