Skip to content

Commit

Permalink
Require PHP 8.1+
Browse files Browse the repository at this point in the history
  • Loading branch information
odan committed Sep 9, 2023
1 parent 16c7002 commit 1a16beb
Show file tree
Hide file tree
Showing 12 changed files with 123 additions and 114 deletions.
25 changes: 23 additions & 2 deletions .cs.php
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?php

return (new PhpCsFixer\Config())
use PhpCsFixer\Config;

return (new Config())
->setUsingCache(false)
->setRiskyAllowed(true)
->setRules(
Expand All @@ -19,6 +21,12 @@
'concat_space' => ['spacing' => 'one'],
'compact_nullable_typehint' => true,
'declare_equal_normalize' => ['space' => 'single'],
'general_phpdoc_annotation_remove' => [
'annotations' => [
'author',
'package',
],
],
'increment_style' => ['style' => 'post'],
'list_syntax' => ['syntax' => 'short'],
'echo_tag_syntax' => ['format' => 'long'],
Expand All @@ -32,9 +40,22 @@
'method_argument_space' => ['on_multiline' => 'ensure_fully_multiline'],
'ordered_imports' => [
'sort_algorithm' => 'alpha',
'imports_order' => ['class', 'const', 'function']
'imports_order' => ['class', 'const', 'function'],
],
'single_line_throw' => false,
'declare_strict_types' => false,
'blank_line_between_import_groups' => true,
'fully_qualified_strict_types' => true,
'no_null_property_initialization' => false,
'operator_linebreak' => [
'only_booleans' => true,
'position' => 'beginning',
],
'global_namespace_import' => [
'import_classes' => true,
'import_constants' => null,
'import_functions' => null
]
]
)
->setFinder(
Expand Down
26 changes: 19 additions & 7 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -1,25 +1,37 @@
# Set the default behavior, in case people don't have core.autocrlf set.
# Git will always convert line endings to LF on checkout. You should use
# this for files that must keep LF endings, even on Windows.
# Git will always convert line endings to LF on checkout. You should use
# this for files that must keep LF endings, even on Windows.
* text eol=lf

# ------------------------------------------------------------------------------
# All the files and directories that can be excluded from dist,
# All the files and directories that can be excluded from dist,
# we could have a more clean vendor/
#
# So when someone will install that package through with --prefer-dist option,
# all the files and directories listed in .gitattributes file will be excluded.
# This could have a big impact on big deployments and/or testing.
# So when someone will install that package through with --prefer-dist option,
# all the files and directories listed in .gitattributes file will be excluded.
# This could have a big impact on big deployments and/or testing.
# ------------------------------------------------------------------------------

/tests export-ignore
/build export-ignore
/docs export-ignore
/.github export-ignore
/build.xml export-ignore
/phpunit.xml export-ignore
/.gitattributes export-ignore
/.gitignore export-ignore
/.travis.* export-ignore
/.scrutinizer.* export-ignore
/.editorconfig export-ignore
/.coveralls.* export-ignore

# Define binary file attributes.
# - Do not treat them as text.
# - Include binary diff in patches instead of "binary files differ."
*.pdf binary
*.mo binary
*.gif binary
*.ico binary
*.jpg binary
*.jpeg binary
*.png binary
*.zip binary
81 changes: 37 additions & 44 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,41 @@
name: build

on: [push, pull_request]
on: [ push, pull_request ]

jobs:
run:
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ubuntu-latest]
php-versions: ['7.3', '7.4', '8.0']
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}

steps:
- name: Checkout
uses: actions/checkout@v1

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, intl, zip
coverage: none

- name: Check PHP Version
run: php -v

- name: Check Composer Version
run: composer -V

- name: Check PHP Extensions
run: php -m

- name: Validate composer.json and composer.lock
run: composer validate

- name: Install dependencies for PHP 7
if: matrix.php-versions < '8.0'
run: composer update --prefer-dist --no-progress

- name: Install dependencies for PHP 8
if: matrix.php-versions >= '8.0'
run: composer update --prefer-dist --no-progress --ignore-platform-req=php

- name: Run test suite
run: composer test:all
env:
PHP_CS_FIXER_IGNORE_ENV: 1
run:
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ ubuntu-latest ]
php-versions: [ '8.1', '8.2' ]
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}

steps:
- name: Checkout
uses: actions/checkout@v1

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-versions }}
extensions: mbstring, intl, zip
coverage: none

- name: Check PHP Version
run: php -v

- name: Check Composer Version
run: composer -V

- name: Check PHP Extensions
run: php -m

- name: Validate composer.json and composer.lock
run: composer validate

- name: Install dependencies
run: composer install --prefer-dist --no-progress --no-suggest

- name: Run test suite
run: composer test:all
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@ composer.lock
nbproject/
vendor/
build/
.phpunit.result.cache
.phpunit.cache/
.phpunit.result.cache
13 changes: 7 additions & 6 deletions .scrutinizer.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
filter:
paths: ["src/*"]
excluded_paths: ["vendor/*", "tests/*"]
paths: [ "src/*" ]
excluded_paths: [ "vendor/*", "tests/*" ]

checks:
php:
Expand All @@ -12,7 +12,10 @@ tools:

build:
environment:
php: 7.4
php:
version: 8.1.2
ini:
xdebug.mode: coverage
mysql: false
node: false
postgresql: false
Expand All @@ -30,11 +33,9 @@ build:
dependencies:
before:
- composer self-update
- composer update --no-interaction --prefer-dist --no-progress
tests:
before:
-
command: composer test:coverage
- command: composer test:coverage
coverage:
file: 'build/logs/clover.xml'
format: 'clover'
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
The MIT License (MIT)

Copyright (c) 2021 odan
Copyright (c) 2023 odan

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

## Requirements

* PHP 7.3+ or 8.0+
* PHP 8.1+

## Installation

Expand Down
29 changes: 15 additions & 14 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,20 +1,19 @@
{
"name": "selective/luhn",
"type": "library",
"description": "Luhn library, modulo 10",
"license": "MIT",
"type": "library",
"keywords": [
"luhn"
],
"homepage": "https://github.com/selective-php/luhn",
"license": "MIT",
"require": {
"php": "^7.3 || ^8.0"
"php": "^8.1"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3",
"overtrue/phplint": "^3",
"phpstan/phpstan": "^1",
"phpunit/phpunit": "^9",
"phpunit/phpunit": "^10",
"squizlabs/php_codesniffer": "^3"
},
"autoload": {
Expand All @@ -28,21 +27,23 @@
}
},
"config": {
"sort-packages": true,
"process-timeout": 0
"process-timeout": 0,
"sort-packages": true
},
"scripts": {
"cs:check": "php-cs-fixer fix --dry-run --format=txt --verbose --diff --config=.cs.php --ansi",
"cs:fix": "php-cs-fixer fix --config=.cs.php --ansi",
"lint": "phplint ./ --exclude=vendor --no-interaction --no-cache --ansi",
"phoenix": "phoenix --ansi",
"stan": "phpstan analyse -c phpstan.neon --no-progress --ansi",
"schema:dump": "php bin/console.php schema-dump --ansi",
"cs:check": [
"@putenv PHP_CS_FIXER_IGNORE_ENV=1",
"php-cs-fixer fix --dry-run --format=txt --verbose --diff --config=.cs.php --ansi"
],
"cs:fix": [
"@putenv PHP_CS_FIXER_IGNORE_ENV=1",
"php-cs-fixer fix --config=.cs.php --ansi --verbose"
],
"sniffer:check": "phpcs --standard=phpcs.xml",
"sniffer:fix": "phpcbf --standard=phpcs.xml",
"stan": "phpstan analyse -c phpstan.neon --no-progress --ansi",
"test": "phpunit --configuration phpunit.xml --do-not-cache-result --colors=always",
"test:all": [
"@lint",
"@cs:check",
"@sniffer:check",
"@stan",
Expand Down
21 changes: 1 addition & 20 deletions phpcs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,27 +9,8 @@
<file>./src</file>
<file>./tests</file>

<rule ref="PSR2"></rule>
<rule ref="PSR12"></rule>
<rule ref="PSR12"/>

<rule ref="Squiz.Commenting.ClassComment">
<exclude name="Squiz.Commenting.ClassComment.TagNotAllowed"/>
<type>warning</type>
<exclude-pattern>*/tests/</exclude-pattern>
</rule>
<rule ref="Squiz.Commenting.ClassComment.Missing">
<type>warning</type>
</rule>
<rule ref="Squiz.Commenting.FunctionComment.Missing">
<type>warning</type>
<exclude-pattern>*/config/</exclude-pattern>
</rule>
<rule ref="Squiz.Commenting.FunctionComment.MissingParamTag">
<type>warning</type>
</rule>
<rule ref="Squiz.Commenting.FunctionComment.MissingParamComment">
<type>warning</type>
</rule>
<rule ref="Squiz.Commenting.FunctionComment.ParamCommentNotCapital">
<type>warning</type>
</rule>
Expand Down
7 changes: 2 additions & 5 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -1,7 +1,4 @@
parameters:
level: max
checkGenericClassInNonGenericObjectType: false
checkMissingIterableValueType: false
level: 8
paths:
- src
- tests
- src
20 changes: 11 additions & 9 deletions phpunit.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,22 @@
bootstrap="vendor/autoload.php"
colors="true"
backupGlobals="false"
backupStaticAttributes="false"
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd">
<coverage processUncoveredFiles="false">
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/10.3/phpunit.xsd"
cacheDirectory=".phpunit.cache"
backupStaticProperties="false">
<coverage/>
<testsuites>
<testsuite name="Tests">
<directory suffix="Test.php">tests</directory>
</testsuite>
</testsuites>
<source>
<include>
<directory suffix=".php">src</directory>
</include>
<exclude>
<directory>vendor</directory>
<directory>build</directory>
</exclude>
</coverage>
<testsuites>
<testsuite name="Tests">
<directory suffix="Test.php">tests</directory>
</testsuite>
</testsuites>
</source>
</phpunit>
Loading

0 comments on commit 1a16beb

Please sign in to comment.