Skip to content

Commit

Permalink
Repo updates and maintenance
Browse files Browse the repository at this point in the history
  • Loading branch information
dlh01 committed Oct 30, 2024
1 parent 04bbf0c commit c479fbf
Show file tree
Hide file tree
Showing 18 changed files with 211 additions and 181 deletions.
9 changes: 5 additions & 4 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,16 @@
# Exclude these files from release archives.
#
# This will also make the files unavailable when using Composer with `--prefer-dist`.
# If you develop using Composer, use `--prefer-source`.
#
# Via WPCS.
#
/phpcs.xml export-ignore
/phpunit.xml export-ignore
/.github export-ignore
/.php-cs-fixer.dist.php export-ignore
/.phpcs.xml export-ignore
/.phpcs export-ignore
/phpunit.xml export-ignore
/tests export-ignore
/configure.php export-ignore
/Makefile export-ignore

#
# Auto detect text files and perform LF normalization.
Expand Down
45 changes: 45 additions & 0 deletions .github/workflows/all-pr-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: "All Pull Request Tests"

on:
pull_request:
branches:
- main
types: [opened, synchronize, reopened, ready_for_review]

jobs:
# We use a single job to ensure that all steps run in the same environment and
# reduce the number of minutes used.
pr-tests:
# Don't run on draft PRs
if: github.event.pull_request.draft == false
# Timeout after 10 minutes
timeout-minutes: 10
# Define a matrix of PHP/WordPress versions to test against
strategy:
matrix:
php: [8.2, 8.3]
wordpress: ["latest"]
multisite: [false, true]
runs-on: ubuntu-latest
# Cancel any existing runs of this workflow
concurrency:
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.pull_request.number || github.ref }}-P${{ matrix.php }}-WP${{ matrix.wordpress }}-MS${{ matrix.multisite }}
cancel-in-progress: true
# Name the job in the matrix
name: "PR Tests PHP ${{ matrix.php }} WordPress ${{ matrix.wordpress }}"
steps:
- uses: actions/checkout@v4

- name: Run General Tests
# See https://github.com/alleyinteractive/action-test-general for more options
uses: alleyinteractive/action-test-general@develop

- name: Run PHP Tests
# See https://github.com/alleyinteractive/action-test-php for more options
uses: alleyinteractive/action-test-php@develop
with:
php-version: '${{ matrix.php }}'
audit-command: 'composer audit --no-dev --ansi --no-interaction'
wordpress-version: '${{ matrix.wordpress }}'
wordpress-multisite: '${{ matrix.multisite }}'
skip-wordpress-install: 'true'
12 changes: 0 additions & 12 deletions .github/workflows/coding-standards.yml

This file was deleted.

21 changes: 0 additions & 21 deletions .github/workflows/unit-test.yml

This file was deleted.

36 changes: 0 additions & 36 deletions .php-cs-fixer.dist.php

This file was deleted.

39 changes: 18 additions & 21 deletions phpcs.xml → .phpcs.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@
<ruleset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="alleyinteractive/wp-find-one" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/squizlabs/PHP_CodeSniffer/master/phpcs.xsd">
<description>PHP_CodeSniffer standard for alleyinteractive/wp-find-one.</description>

<file>src/</file>
<file>tests/</file>
<exclude-pattern>vendor/</exclude-pattern>
<!-- Include Alley Rules -->
<rule ref="Alley-Interactive"/>

<!--
Pass some flags to PHPCS:
Expand All @@ -13,34 +12,32 @@
-->
<arg value="ps"/>

<!-- Use the Alley standard. -->
<rule ref="Alley-Interactive"/>
<file>src/</file>
<file>tests/</file>
<exclude-pattern>vendor/</exclude-pattern>

<!-- Strip the filepaths down to the relevant bit. -->
<arg name="basepath" value="./"/>

<!-- Check up to N files simultaneously. -->
<arg name="parallel" value="75"/>
<!-- Check up to 20 files simultaneously. -->
<arg name="parallel" value="20"/>

<!-- Set severity to 1 to see everything that isn't effectively turned off. -->
<arg name="severity" value="1"/>

<!-- Set the allowed text domains for i18n. -->
<rule ref="WordPress.WP.I18n">
<properties>
<property name="text_domain" type="array" value="alley"/>
</properties>
</rule>
<!-- In effect, set the minimum supported version of WordPress to the latest version. -->
<config name="minimum_supported_wp_version" value="99.0"/>

<!-- Set the allowed prefixes for functions, etc. -->
<!-- Define the prefixes that can be used by the plugin -->
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
<properties>
<property name="prefixes" type="array" value="Alley"/>
<property name="prefixes" type="array">
<element value="alley"/>
</property>
</properties>
</rule>

<!-- Use a test-*.php class naming convention. -->
<rule ref="WordPress.Files.FileName.InvalidClassFileName">
<exclude-pattern>tests/</exclude-pattern>
<rule ref="WordPress.Files.FileName">
<exclude-pattern>tests/*</exclude-pattern>
</rule>

<!-- In effect, set the minimum supported version of WordPress to the latest version. -->
<config name="minimum_supported_wp_version" value="99.0"/>
</ruleset>
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,12 @@ This library adheres to [Semantic Versioning](https://semver.org/) and [Keep a C

Nothing yet.

## 3.0.0

### Changed

- The minimum PHP version is now 8.2.

## 2.0.0

### Removed
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ The `find_one()` family of functions are wrappers for common WordPress retrieval
Install the latest version with:

```bash
$ composer require alleyinteractive/wp-find-one
composer require alleyinteractive/wp-find-one
```

## Basic usage
Expand Down
109 changes: 64 additions & 45 deletions composer.json
Original file line number Diff line number Diff line change
@@ -1,49 +1,68 @@
{
"name": "alleyinteractive/wp-find-one",
"description": "Query for and return one WordPress post, term, or other object, bypassing intermediate arrays.",
"type": "library",
"license": "GPL-2.0-or-later",
"authors": [
{
"name": "Alley",
"email": "[email protected]"
}
],
"autoload": {
"files": [
"src/alley/wp/find-one.php",
"src/alley/wp/find-result.php"
]
},
"config": {
"allow-plugins": {
"alleyinteractive/composer-wordpress-autoloader": true,
"dealerdirect/phpcodesniffer-composer-installer": true
"name": "alleyinteractive/wp-find-one",
"description": "Query for and return one WordPress post, term, or other object, bypassing intermediate arrays.",
"license": "GPL-2.0-or-later",
"type": "library",
"authors": [
{
"name": "Alley",
"email": "[email protected]"
}
],
"require": {
"php": "^8.2"
},
"require-dev": {
"alleyinteractive/alley-coding-standards": "^2.0",
"ergebnis/composer-normalize": "^2.44",
"mantle-framework/testkit": "^1.2",
"szepeviktor/phpstan-wordpress": "^1.3"
},
"minimum-stability": "dev",
"prefer-stable": true,
"autoload": {
"files": [
"src/find-one.php",
"src/find-result.php"
]
},
"autoload-dev": {
"psr-4": {
"Alley\\WP\\Tests\\": "tests/"
}
},
"config": {
"allow-plugins": {
"alleyinteractive/composer-wordpress-autoloader": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
"ergebnis/composer-normalize": true
},
"lock": false,
"sort-packages": true
},
"extra": {
"wordpress-autoloader": {
"autoload": {
"Alley\\WP\\": "src/"
}
}
},
"lock": false
},
"require": {
"php": "^8.0"
},
"require-dev": {
"alleyinteractive/alley-coding-standards": "^1.0.0",
"friendsofphp/php-cs-fixer": "^3.8",
"mantle-framework/testkit": "^0.9"
},
"scripts": {
"fixer": "php-cs-fixer -v fix --allow-risky=yes",
"phpcbf": "phpcbf",
"phpcs": "phpcs",
"phpunit": "phpunit"
},
"extra": {
"wordpress-autoloader": {
"autoload": {
"Alley\\": "src/alley/"
},
"autoload-dev": {
"Alley\\": "tests/alley/"
}
"scripts": {
"pre-install-cmd": [
"@tidy"
],
"post-install-cmd": [
"@tidy"
],
"phpcbf": "phpcbf",
"phpcs": "phpcs",
"phpstan": "phpstan -v --memory-limit=512M",
"phpunit": "phpunit",
"test": [
"@phpcs",
"@phpstan",
"@phpunit"
],
"tidy": "[ $COMPOSER_DEV_MODE -eq 0 ] || composer normalize"
}
}
}
9 changes: 9 additions & 0 deletions phpstan.neon
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
includes:
- vendor/szepeviktor/phpstan-wordpress/extension.neon

parameters:
# Level 9 is the highest level
level: max

paths:
- src/
24 changes: 16 additions & 8 deletions phpunit.xml
Original file line number Diff line number Diff line change
@@ -1,12 +1,20 @@
<?xml version="1.0"?>
<phpunit
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
bootstrap="tests/bootstrap.php"
backupGlobals="false"
colors="true"
convertErrorsToExceptions="true"
convertNoticesToExceptions="true"
convertWarningsToExceptions="true"
>
<testsuite name="unit">
<directory suffix=".php">tests/alley/wp/</directory>
</testsuite>
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/11.2/phpunit.xsd"
cacheDirectory=".phpunit.result.cache">
<testsuites>
<testsuite name="Feature">
<directory>tests/Feature</directory>
</testsuite>
<testsuite name="Unit">
<directory>tests/Unit</directory>
</testsuite>
</testsuites>
<php>
<env name="MANTLE_USE_SQLITE" value="true"/>
<env name="WP_SKIP_DB_CREATE" value="true"/>
</php>
</phpunit>
Loading

0 comments on commit c479fbf

Please sign in to comment.