diff --git a/.dependabot/config.yml b/.dependabot/config.yaml similarity index 100% rename from .dependabot/config.yml rename to .dependabot/config.yaml diff --git a/.editorconfig b/.editorconfig index 329611ca..82ef559b 100644 --- a/.editorconfig +++ b/.editorconfig @@ -13,7 +13,7 @@ indent_size = 2 [*.neon] indent_style = tab -[*.yml] +[*.yaml] indent_size = 2 [Makefile] diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 530fc99d..729263ef 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -2,7 +2,12 @@ We are using [GitHub Actions](https://github.com/features/actions) as a continuous integration system. -For details, see [`workflows/continuous-integration.yml`](workflows/continuous-integration.yml). +For details, take a look at the following workflow configuration files: + +- [`workflows/integrate.yaml`](workflows/integrate.yaml) +- [`workflows/prune.yaml`](workflows/prune.yaml) +- [`workflows/release.yaml`](workflows/release.yaml) +- [`workflows/renew.yaml`](workflows/renew.yaml) ## Coding Standards diff --git a/.github/settings.yml b/.github/settings.yml index 144e0631..cf6ed877 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -35,6 +35,12 @@ branches: - "codecov/project" strict: false restrictions: + + # https://developer.github.com/v3/repos/branches/#parameters-1 + + # Note: User, app, and team restrictions are only available for organization-owned repositories. + # Set to null to disable when using this configuration for a repository on a personal account. + apps: - "dependabot-preview" teams: [] diff --git a/.github/workflows/continuous-deployment.yml b/.github/workflows/continuous-deployment.yml deleted file mode 100644 index d24ec074..00000000 --- a/.github/workflows/continuous-deployment.yml +++ /dev/null @@ -1,126 +0,0 @@ -# https://help.github.com/en/categories/automating-your-workflow-with-github-actions - -name: "Continuous Deployment" - -on: - push: - tags: - - "**" - -env: - COMPOSER_VERSION: "1.10.0" - REQUIRED_PHP_EXTENSIONS: "mbstring" - -jobs: - release: - name: "Release" - - runs-on: "ubuntu-latest" - - strategy: - matrix: - php-version: - - "7.4" - - dependencies: - - "locked" - - env: - COMPOSER_NORMALIZE_PHAR: ".build/phar/composer-normalize.phar" - COMPOSER_NORMALIZE_PHAR_SIGNATURE: ".build/phar/composer-normalize.phar.asc" - GPG_KEYS: ".build/phar/keys.asc" - GPG_KEYS_ENCRYPTED: "phar/keys.asc.gpg" - - steps: - - name: "Checkout" - uses: "actions/checkout@v2.0.0" - - - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.0.2" - with: - coverage: "none" - extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" - php-version: "${{ matrix.php-version }}" - - - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.1.2" - with: - path: "~/.composer/cache" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}-phar" - restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-phar" - - - name: "Install locked dependencies with composer" - run: "composer install --no-interaction --no-progress --no-suggest" - - - name: "Require composer/composer" - run: "composer require composer/composer:${{ env.COMPOSER_VERSION }} --no-interaction --no-progress --no-suggest" - - - name: "Validate configuration for humbug/box" - run: "phar/box.phar validate box.json" - - - name: "Compile composer-normalize.phar with humbug/box" - run: "phar/box.phar compile --config=box.json" - - - name: "Show info about composer-normalize.phar with humbug/box" - run: "phar/box.phar info ${{ env.COMPOSER_NORMALIZE_PHAR }}" - - - name: "Run composer-normalize.phar" - run: "${{ env.COMPOSER_NORMALIZE_PHAR }}" - - - name: "Show gpg version" - run: "gpg --version" - - - name: "Decrypt keys.asc.gpg with gpg" - run: "gpg --batch --output ${{ env.GPG_KEYS }} --passphrase \"${{ secrets.GPG_DECRYPT_PASSPHRASE }}\" --yes --decrypt ${{ env.GPG_KEYS_ENCRYPTED }}" - - - name: "Import keys from keys.asc with gpg" - run: "gpg --batch --import ${{ env.GPG_KEYS }}" - - - name: "Sign composer-normalize.phar with gpg" - run: "gpg --armor --local-user \"${{ secrets.GPG_LOCAL_USER }}\" --output ${{ env.COMPOSER_NORMALIZE_PHAR_SIGNATURE }} --passphrase \"${{ secrets.GPG_KEY_PASSPHRASE }}\" --pinentry-mode loopback --yes --detach-sig ${{ env.COMPOSER_NORMALIZE_PHAR }}" - - - name: "Receive key with gpg" - run: "gpg --receive-key \"${{ secrets.GPG_LOCAL_USER }}\"" - - - name: "Verify signature of composer-normalize.phar with gpg" - run: "gpg --verify ${{ env.COMPOSER_NORMALIZE_PHAR_SIGNATURE }} ${{ env.COMPOSER_NORMALIZE_PHAR }}" - - - name: "Remove decrypted keys.asc" - run: "rm ${{ env.GPG_KEYS }}" - - - name: "Determine tag" - id: "determine-tag" - run: "echo \"::set-output name=tag::${GITHUB_REF#refs/tags/}\"" - - - name: "Create release" - id: "create-release" - uses: "actions/create-release@v1.0.0" - env: - GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - with: - draft: false - prerelease: false - release_name: "${{ steps.determine-tag.outputs.tag }}" - tag_name: "${{ steps.determine-tag.outputs.tag }}" - - - name: "Upload composer-normalize.phar" - if: "always()" - uses: "actions/upload-release-asset@v1.0.1" - env: - GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - with: - asset_content_type: "text/plain" - asset_name: "composer-normalize.phar" - asset_path: "${{ env.COMPOSER_NORMALIZE_PHAR }}" - upload_url: "${{ steps.create-release.outputs.upload_url }}" - - - name: "Upload composer-normalize.phar.asc" - if: "always()" - uses: "actions/upload-release-asset@v1.0.1" - env: - GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" - with: - asset_content_type: "text/plain" - asset_name: "composer-normalize.phar.asc" - asset_path: "${{ env.COMPOSER_NORMALIZE_PHAR_SIGNATURE }}" - upload_url: "${{ steps.create-release.outputs.upload_url }}" diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/integrate.yaml similarity index 84% rename from .github/workflows/continuous-integration.yml rename to .github/workflows/integrate.yaml index 5388dbdb..2e86769b 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/integrate.yaml @@ -1,9 +1,9 @@ # https://help.github.com/en/categories/automating-your-workflow-with-github-actions -name: "Continuous Integration" +name: "Integrate" -on: - pull_request: +on: # yamllint disable-line rule:truthy + pull_request: null push: branches: - "master" @@ -28,10 +28,17 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.0.0" + uses: "actions/checkout@v2" + + - name: "Lint YAML files" + uses: "ibiqlik/action-yamllint@v1" + with: + config_file: ".yamllint.yaml" + file_or_dir: "." + strict: true - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.0.2" + uses: "shivammathur/setup-php@v2" with: coverage: "none" extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" @@ -45,21 +52,21 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.1.2" + uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies with composer" + - name: "Install lowest dependencies from composer.json" if: "matrix.dependencies == 'lowest'" run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - name: "Install locked dependencies with composer" + - name: "Install locked dependencies from composer.lock" if: "matrix.dependencies == 'locked'" run: "composer install --no-interaction --no-progress --no-suggest" - - name: "Install highest dependencies with composer" + - name: "Install highest dependencies from composer.json" if: "matrix.dependencies == 'highest'" run: "composer update --no-interaction --no-progress --no-suggest" @@ -72,7 +79,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v1.1.2" + uses: "actions/cache@v1" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('**/composer.lock') }}" @@ -96,10 +103,10 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.0.0" + uses: "actions/checkout@v2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.0.2" + uses: "shivammathur/setup-php@v2" with: coverage: "none" extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" @@ -110,21 +117,21 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.1.2" + uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies with composer" + - name: "Install lowest dependencies from composer.json" if: "matrix.dependencies == 'lowest'" run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - name: "Install locked dependencies with composer" + - name: "Install locked dependencies from composer.lock" if: "matrix.dependencies == 'locked'" run: "composer install --no-interaction --no-progress --no-suggest" - - name: "Install highest dependencies with composer" + - name: "Install highest dependencies from composer.json" if: "matrix.dependencies == 'highest'" run: "composer update --no-interaction --no-progress --no-suggest" @@ -148,10 +155,10 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.0.0" + uses: "actions/checkout@v2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.0.2" + uses: "shivammathur/setup-php@v2" with: coverage: "none" extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" @@ -162,21 +169,21 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.1.2" + uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "${{ matrix.php-version }}-composer-locked-${{ hashFiles('**/composer.lock') }}" restore-keys: "${{ matrix.php-version }}-composer-locked-" - - name: "Install lowest dependencies with composer" + - name: "Install lowest dependencies from composer.json" if: "matrix.dependencies == 'lowest'" run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - name: "Install locked dependencies with composer" + - name: "Install locked dependencies from composer.lock" if: "matrix.dependencies == 'locked'" run: "composer install --no-interaction --no-progress --no-suggest" - - name: "Install highest dependencies with composer" + - name: "Install highest dependencies from composer.json" if: "matrix.dependencies == 'highest'" run: "composer update --no-interaction --no-progress --no-suggest" @@ -212,10 +219,10 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.0.0" + uses: "actions/checkout@v2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.0.2" + uses: "shivammathur/setup-php@v2" with: coverage: "none" extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" @@ -226,21 +233,21 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.1.2" + uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies with composer" + - name: "Install lowest dependencies from composer.json" if: "matrix.dependencies == 'lowest'" run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - name: "Install locked dependencies with composer" + - name: "Install locked dependencies from composer.lock" if: "matrix.dependencies == 'locked'" run: "composer install --no-interaction --no-progress --no-suggest" - - name: "Install highest dependencies with composer" + - name: "Install highest dependencies from composer.json" if: "matrix.dependencies == 'highest'" run: "composer update --no-interaction --no-progress --no-suggest" @@ -268,10 +275,10 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.0.0" + uses: "actions/checkout@v2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.0.2" + uses: "shivammathur/setup-php@v2" with: coverage: "xdebug" extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" @@ -282,21 +289,21 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.1.2" + uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies with composer" + - name: "Install lowest dependencies from composer.json" if: "matrix.dependencies == 'lowest'" run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - name: "Install locked dependencies with composer" + - name: "Install locked dependencies from composer.lock" if: "matrix.dependencies == 'locked'" run: "composer install --no-interaction --no-progress --no-suggest" - - name: "Install highest dependencies with composer" + - name: "Install highest dependencies from composer.json" if: "matrix.dependencies == 'highest'" run: "composer update --no-interaction --no-progress --no-suggest" @@ -329,10 +336,10 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.0.0" + uses: "actions/checkout@v2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.0.2" + uses: "shivammathur/setup-php@v2" with: coverage: "none" extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" @@ -343,34 +350,24 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.1.2" + uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies with composer" + - name: "Install lowest dependencies from composer.json" if: "matrix.dependencies == 'lowest'" run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - name: "Install locked dependencies with composer" + - name: "Install locked dependencies from composer.lock" if: "matrix.dependencies == 'locked'" run: "composer install --no-interaction --no-progress --no-suggest" - - name: "Install highest dependencies with composer" + - name: "Install highest dependencies from composer.json" if: "matrix.dependencies == 'highest'" run: "composer update --no-interaction --no-progress --no-suggest" - - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.1.2" - with: - path: "~/.composer/cache" - key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}-phar" - restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-phar" - - - name: "Install locked dependencies with composer" - run: "composer install --no-interaction --no-progress --no-suggest" - - name: "Require composer/composer" run: "composer require composer/composer:${{ env.COMPOSER_VERSION }} --no-interaction --no-progress --no-suggest" diff --git a/.github/workflows/stale.yml b/.github/workflows/prune.yaml similarity index 82% rename from .github/workflows/stale.yml rename to .github/workflows/prune.yaml index 59f7b131..449e4652 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/prune.yaml @@ -1,18 +1,20 @@ # https://github.com/actions/stale -name: "Stale" +name: "Prune" -on: +on: # yamllint disable-line rule:truthy schedule: - cron: "0 12 * * *" jobs: - stale: + prune: + name: "Issues" + runs-on: "ubuntu-latest" steps: - - name: "Close stale issues and pull requests" - uses: "actions/stale@v1.1.0" + - name: "Prune issues and pull requests" + uses: "actions/stale@v1" with: days-before-close: 5 days-before-stale: 60 diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..5cd6d94b --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,29 @@ +# https://help.github.com/en/categories/automating-your-workflow-with-github-actions + +name: "Release" + +on: # yamllint disable-line rule:truthy + push: + tags: + - "**" + +jobs: + release: + name: "Release" + + runs-on: "ubuntu-latest" + + steps: + - name: "Determine tag" + id: "determine-tag" + run: "echo \"::set-output name=tag::${GITHUB_REF#refs/tags/}\"" + + - name: "Create release" + uses: "actions/create-release@v1" + env: + GITHUB_TOKEN: "${{ secrets.ERGEBNIS_BOT_TOKEN }}" + with: + draft: false + prerelease: false + release_name: "${{ steps.determine-tag.outputs.tag }}" + tag_name: "${{ steps.determine-tag.outputs.tag }}" diff --git a/.github/workflows/license.yml b/.github/workflows/renew.yaml similarity index 87% rename from .github/workflows/license.yml rename to .github/workflows/renew.yaml index a574f707..03a730b2 100644 --- a/.github/workflows/license.yml +++ b/.github/workflows/renew.yaml @@ -1,8 +1,8 @@ # https://help.github.com/en/categories/automating-your-workflow-with-github-actions -name: "License" +name: "Renew" -on: +on: # yamllint disable-line rule:truthy schedule: - cron: "1 0 1 1 *" @@ -25,10 +25,10 @@ jobs: steps: - name: "Checkout" - uses: "actions/checkout@v2.0.0" + uses: "actions/checkout@v2" - name: "Install PHP with extensions" - uses: "shivammathur/setup-php@2.0.2" + uses: "shivammathur/setup-php@v2" with: coverage: "none" extensions: "${{ env.REQUIRED_PHP_EXTENSIONS }}" @@ -42,21 +42,21 @@ jobs: run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: "Cache dependencies installed with composer" - uses: "actions/cache@v1.1.2" + uses: "actions/cache@v1" with: path: "${{ steps.determine-composer-cache-directory.outputs.directory }}" key: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-${{ hashFiles('**/composer.lock') }}" restore-keys: "php-${{ matrix.php-version }}-composer-${{ matrix.dependencies }}-" - - name: "Install lowest dependencies with composer" + - name: "Install lowest dependencies from composer.json" if: "matrix.dependencies == 'lowest'" run: "composer update --no-interaction --no-progress --no-suggest --prefer-lowest" - - name: "Install locked dependencies with composer" + - name: "Install locked dependencies from composer.lock" if: "matrix.dependencies == 'locked'" run: "composer install --no-interaction --no-progress --no-suggest" - - name: "Install highest dependencies with composer" + - name: "Install highest dependencies from composer.json" if: "matrix.dependencies == 'highest'" run: "composer update --no-interaction --no-progress --no-suggest" @@ -64,7 +64,7 @@ jobs: run: "mkdir -p .build/php-cs-fixer" - name: "Cache cache directory for friendsofphp/php-cs-fixer" - uses: "actions/cache@v1.1.2" + uses: "actions/cache@v1" with: path: ".build/php-cs-fixer" key: "php-${{ matrix.php-version }}-php-cs-fixer-${{ hashFiles('**/composer.lock') }}" diff --git a/.github/workflows/schema.yml b/.github/workflows/update.yaml similarity index 94% rename from .github/workflows/schema.yml rename to .github/workflows/update.yaml index ea3178a3..4ceccdbc 100644 --- a/.github/workflows/schema.yml +++ b/.github/workflows/update.yaml @@ -1,8 +1,8 @@ # https://help.github.com/en/categories/automating-your-workflow-with-github-actions -name: "Schema" +name: "Update" -on: +on: # yamllint disable-line rule:truthy schedule: - cron: "0 9 * * *" diff --git a/.php_cs b/.php_cs index d452ff7f..ff2f3bcc 100644 --- a/.php_cs +++ b/.php_cs @@ -32,9 +32,9 @@ $config->getFinder() ->ignoreDotFiles(false) ->in(__DIR__) ->exclude([ - '.build', - '.dependabot', - '.github', + '.build/', + '.dependabot/', + '.github/', ]) ->name('.php_cs'); diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 00000000..17b1b556 --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,65 @@ +extends: "default" + +ignore: | + .build/ + vendor/ + +rules: + braces: + max-spaces-inside-empty: 0 + max-spaces-inside: 1 + min-spaces-inside-empty: 0 + min-spaces-inside: 1 + brackets: + max-spaces-inside-empty: 0 + max-spaces-inside: 0 + min-spaces-inside-empty: 0 + min-spaces-inside: 0 + colons: + max-spaces-after: 1 + max-spaces-before: 0 + commas: + max-spaces-after: 1 + max-spaces-before: 0 + min-spaces-after: 1 + comments: + ignore-shebangs: true + min-spaces-from-content: 1 + require-starting-space: true + comments-indentation: "enable" + document-end: + present: false + document-start: + present: false + indentation: + check-multi-line-strings: true + indent-sequences: true + spaces: 2 + empty-lines: + max-end: 0 + max-start: 0 + max: 1 + empty-values: + forbid-in-block-mappings: true + forbid-in-flow-mappings: true + hyphens: + max-spaces-after: 2 + key-duplicates: "enable" + key-ordering: "disable" + line-length: "disable" + new-line-at-end-of-file: "enable" + new-lines: + type: "unix" + octal-values: + forbid-implicit-octal: true + quoted-strings: + quote-type: "double" + trailing-spaces: "enable" + truthy: + allowed-values: + - "false" + - "true" + +yaml-files: + - '*.yaml' + - '*.yml' diff --git a/CHANGELOG.md b/CHANGELOG.md index 8a049ad7..d82eee00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,8 +2,7 @@ All notable changes to this project will be documented in this file. -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## Unreleased diff --git a/Makefile b/Makefile index f74de086..5fada5e7 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ -COMPOSER_VERSION:=1.9.3 +MIN_COVERED_MSI:=100 +MIN_MSI:=100 .PHONY: it it: coding-standards dependency-analysis static-code-analysis tests ## Runs the coding-standards, dependency-analysis, static-code-analysis, and tests targets @@ -11,6 +12,7 @@ code-coverage: vendor ## Collects coverage from running integration tests with p .PHONY: coding-standards coding-standards: vendor ## Fixes code style issues with friendsofphp/php-cs-fixer + yamllint -c .yamllint.yaml --strict . mkdir -p .build/php-cs-fixer vendor/bin/php-cs-fixer fix --config=.php_cs --diff --diff-format=udiff --verbose diff --git a/README.md b/README.md index 4ae95445..3164871b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ # composer-normalize -[![Continuous Deployment](https://github.com/ergebnis/composer-normalize/workflows/Continuous%20Deployment/badge.svg)](https://github.com/ergebnis/composer-normalize/actions) -[![Continuous Integration](https://github.com/ergebnis/composer-normalize/workflows/Continuous%20Integration/badge.svg)](https://github.com/ergebnis/composer-normalize/actions) -[![Schema](https://github.com/ergebnis/composer-normalize/workflows/Schema/badge.svg)](https://github.com/ergebnis/composer-normalize/actions) +[![Integrate](https://github.com/ergebnis/php-library-template/workflows/Integrate/badge.svg?branch=master)](https://github.com/ergebnis/php-library-template/actions) +[![Prune](https://github.com/ergebnis/php-library-template/workflows/Prune/badge.svg?branch=master)](https://github.com/ergebnis/php-library-template/actions) +[![Release](https://github.com/ergebnis/php-library-template/workflows/Release/badge.svg?branch=master)](https://github.com/ergebnis/php-library-template/actions) +[![Renew](https://github.com/ergebnis/php-library-template/workflows/Renew/badge.svg?branch=master)](https://github.com/ergebnis/php-library-template/actions) +[![Update](https://github.com/ergebnis/php-library-template/workflows/Update/badge.svg?branch=master)](https://github.com/ergebnis/php-library-template/actions) [![Code Coverage](https://codecov.io/gh/ergebnis/composer-normalize/branch/master/graph/badge.svg)](https://codecov.io/gh/ergebnis/composer-normalize) [![Type Coverage](https://shepherd.dev/github/ergebnis/composer-normalize/coverage.svg)](https://shepherd.dev/github/ergebnis/composer-normalize) diff --git a/infection.json b/infection.json new file mode 100644 index 00000000..c7774fc5 --- /dev/null +++ b/infection.json @@ -0,0 +1,14 @@ +{ + "timeout": 10, + "source": { + "directories": [ + "src" + ] + }, + "phpUnit": { + "configDir": "test\/Unit" + }, + "logs": { + "text": ".build/infection/infection-log.txt" + } +} diff --git a/phpstan.neon b/phpstan.neon index 142f1bdc..b2f04a0a 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -11,6 +11,6 @@ parameters: inferPrivatePropertyTypeFromConstructor: true level: max paths: - - src - - test - tmpDir: %currentWorkingDirectory%/.build/phpstan + - src/ + - test/ + tmpDir: %currentWorkingDirectory%/.build/phpstan/ diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 4a1631e9..0eeb9ead 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -1,5 +1,5 @@ - + Application diff --git a/psalm.xml b/psalm.xml index 8da1112c..d645df4b 100644 --- a/psalm.xml +++ b/psalm.xml @@ -17,10 +17,10 @@ - - + + - + diff --git a/test/Integration/phpunit.xml b/test/Integration/phpunit.xml index 5cdbae97..a8e6125e 100644 --- a/test/Integration/phpunit.xml +++ b/test/Integration/phpunit.xml @@ -32,7 +32,7 @@ - ../../src + ../../src/ diff --git a/test/Unit/phpunit.xml b/test/Unit/phpunit.xml index 07b9c636..5d606146 100644 --- a/test/Unit/phpunit.xml +++ b/test/Unit/phpunit.xml @@ -29,7 +29,7 @@ - ../../src + ../../src/