From 8c0d3c1381e50184f0d038802f4c4f9abda1c2da Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Mon, 1 Sep 2025 15:18:24 -0600 Subject: [PATCH 01/11] s/wordpress-template/kitchen-sink/g --- .env.example | 2 +- README.md | 2 +- composer.json | 4 ++-- docker-compose.yml | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.env.example b/.env.example index 9dd9ef7..7f82367 100644 --- a/.env.example +++ b/.env.example @@ -1,7 +1,7 @@ DATABASE_URL='mysql://wp:password@ap-ks-db:3306/wp' WP_ENV='development' -WP_HOME='https://wordpress-template.local' +WP_HOME='https://kitchen-sink.local' WP_SITEURL="${WP_HOME}/wp" # Specify optional debug.log path diff --git a/README.md b/README.md index a1c985a..cc8f628 100644 --- a/README.md +++ b/README.md @@ -1 +1 @@ -# wordpress-template +# kitchen-sink diff --git a/composer.json b/composer.json index b76b9ab..d82a331 100644 --- a/composer.json +++ b/composer.json @@ -1,9 +1,9 @@ { - "name": "aspirepress/wordpress-template", + "name": "aspirepress/kitchen-sink", "type": "project", "license": "MIT", "description": "WordPress boilerplate based on Roots Bedrock, pre-configured with a large number of plugins", - "homepage": "https://github.com/aspirepress/wordpress-template", + "homepage": "https://github.com/aspirepress/kitchen-sink", "repositories": [ { "type": "composer", diff --git a/docker-compose.yml b/docker-compose.yml index 0205180..4e8bebd 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,8 +16,8 @@ services: app-net: ~ labels: - "traefik.enable=true" - - "traefik.http.routers.ap-ks.rule=Host(`wordpress-template.local`)" - - "traefik.http.routers.ap-ks-https.rule=Host(`wordpress-template.local`)" + - "traefik.http.routers.ap-ks.rule=Host(`kitchen-sink.local`)" + - "traefik.http.routers.ap-ks-https.rule=Host(`kitchen-sink.local`)" - "traefik.http.routers.ap-ks-https.tls=true" healthcheck: # healthchecks on the app container are generally useless for dev environments. From f0bf131ea04e3b7c0f3100bc91dcbc649a33d7a0 Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Mon, 1 Sep 2025 15:42:07 -0600 Subject: [PATCH 02/11] add aspireupdate and fair plugin --- composer.json | 29 ++++- composer.lock | 330 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 353 insertions(+), 6 deletions(-) diff --git a/composer.json b/composer.json index d82a331..e63eedc 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,18 @@ { "type": "composer", "url": "https://wpackagist.org", - "only": ["wpackagist-plugin/*", "wpackagist-theme/*"] + "only": [ + "wpackagist-plugin/*", + "wpackagist-theme/*" + ] + }, + { + "type": "vcs", + "url": "https://github.com/aspirepress/AspireUpdate" + }, + { + "type": "vcs", + "url": "https://github.com/fairpm/fair-plugin" } ], "require": { @@ -20,7 +31,9 @@ "roots/bedrock-disallow-indexing": "^2.0", "roots/wordpress": "6.8.2", "roots/wp-config": "1.0.0", - "wpackagist-theme/twentytwentyfive": "^1.0" + "wpackagist-theme/twentytwentyfive": "^1.0", + "aspirepress/aspireupdate": "dev-main", + "fair/fair-plugin": "dev-main" }, "require-dev": { "roave/security-advisories": "dev-latest" @@ -37,9 +50,15 @@ "prefer-stable": true, "extra": { "installer-paths": { - "web/app/mu-plugins/{$name}/": ["type:wordpress-muplugin"], - "web/app/plugins/{$name}/": ["type:wordpress-plugin"], - "web/app/themes/{$name}/": ["type:wordpress-theme"] + "web/app/mu-plugins/{$name}/": [ + "type:wordpress-muplugin" + ], + "web/app/plugins/{$name}/": [ + "type:wordpress-plugin" + ], + "web/app/themes/{$name}/": [ + "type:wordpress-theme" + ] }, "wordpress-install-dir": "web/wp" }, diff --git a/composer.lock b/composer.lock index ac940dc..a769cda 100644 --- a/composer.lock +++ b/composer.lock @@ -4,8 +4,250 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "ca6526b89f13bf8d9a2024bcd5b5db45", + "content-hash": "13df4a82402e7a3c003f796e33d28aff", "packages": [ + { + "name": "afragen/autoloader", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/afragen/autoloader.git", + "reference": "f79332a25eadecb53b397b84d0a5220cbbc4b457" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/afragen/autoloader/zipball/f79332a25eadecb53b397b84d0a5220cbbc4b457", + "reference": "f79332a25eadecb53b397b84d0a5220cbbc4b457", + "shasum": "" + }, + "require": { + "php": ">=7.1" + }, + "default-branch": true, + "type": "library", + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andy Fragen", + "email": "andy@thefragens.com", + "homepage": "https://thefragens.com", + "role": "Developer" + } + ], + "description": "PSR-4 style autoloader and classmap loader.", + "keywords": [ + "autoload" + ], + "support": { + "issues": "https://github.com/afragen/autoloader/issues", + "source": "https://github.com/afragen/autoloader/tree/3.0.1" + }, + "time": "2025-02-19T18:41:01+00:00" + }, + { + "name": "afragen/git-updater-lite", + "version": "2.3.7", + "source": { + "type": "git", + "url": "https://github.com/afragen/git-updater-lite.git", + "reference": "55862c61899f82d66863f22fe207a7784be8b213" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/afragen/git-updater-lite/zipball/55862c61899f82d66863f22fe207a7784be8b213", + "reference": "55862c61899f82d66863f22fe207a7784be8b213", + "shasum": "" + }, + "require": { + "php": ">=7.4" + }, + "require-dev": { + "squizlabs/php_codesniffer": "3.10.3", + "wp-coding-standards/wpcs": "~3.1.0", + "yoast/phpunit-polyfills": "^1.1.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "Lite.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andy Fragen", + "email": "andy@thefragens.com", + "homepage": "https://github.com/afragen/git-updater-lite", + "role": "Developer" + } + ], + "description": "A simple class to integrate with Git Updater for standalone plugin/theme updates.", + "keywords": [ + "plugin", + "theme", + "updater", + "wordpress" + ], + "support": { + "issues": "https://github.com/afragen/git-updater-lite/issues", + "source": "https://github.com/afragen/git-updater-lite/tree/2.3.7" + }, + "funding": [ + { + "url": "https://github.com/afragen", + "type": "github" + } + ], + "time": "2025-08-03T00:27:41+00:00" + }, + { + "name": "afragen/translations-updater", + "version": "1.2.1", + "source": { + "type": "git", + "url": "https://github.com/afragen/translations-updater.git", + "reference": "80290fe8eeef1dbaca21baea782b152d1a0e0a8c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/afragen/translations-updater/zipball/80290fe8eeef1dbaca21baea782b152d1a0e0a8c", + "reference": "80290fe8eeef1dbaca21baea782b152d1a0e0a8c", + "shasum": "" + }, + "require": { + "php": ">=5.4" + }, + "require-dev": { + "wp-coding-standards/wpcs": "^3.0.0" + }, + "type": "library", + "autoload": { + "psr-4": { + "Fragen\\Translations_Updater\\": "src/Translations_Updater/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andy Fragen", + "email": "andy@thefragens.com", + "homepage": "https://thefragens.com", + "role": "Developer" + } + ], + "description": "This framework provides automatic decoupled languate pack updates from a public repository for your WordPress plugin or theme.", + "keywords": [ + "language pack", + "plugin", + "theme", + "translations", + "updater", + "wordpress" + ], + "support": { + "issues": "https://github.com/afragen/translations-updater/issues", + "source": "https://github.com/afragen/translations-updater" + }, + "time": "2025-04-16T16:51:43+00:00" + }, + { + "name": "aspirepress/aspireupdate", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/aspirepress/aspireupdate.git", + "reference": "1c78bea1f73b723f7dd28173c860e26b3c8e672f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aspirepress/aspireupdate/zipball/1c78bea1f73b723f7dd28173c860e26b3c8e672f", + "reference": "1c78bea1f73b723f7dd28173c860e26b3c8e672f", + "shasum": "" + }, + "require": { + "afragen/autoloader": "dev-master", + "afragen/git-updater-lite": "^2", + "afragen/translations-updater": "^1", + "php": ">=7.4.0" + }, + "require-dev": { + "nimut/phpunit-merger": "^2.0", + "squizlabs/php_codesniffer": "3.10.3", + "wp-cli/wp-cli-bundle": "^2.12", + "wp-coding-standards/wpcs": "~3.1.0", + "yoast/phpunit-polyfills": "^1.1.0" + }, + "default-branch": true, + "type": "wordpress-plugin", + "scripts": { + "format": [ + "@php ./vendor/squizlabs/php_codesniffer/bin/phpcbf --report=summary,source" + ], + "lint": [ + "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --report=summary,source" + ], + "test": [ + "Composer\\Config::disableProcessTimeout", + "@php ./vendor/phpunit/phpunit/phpunit" + ], + "test:multisite": [ + "Composer\\Config::disableProcessTimeout", + "@php ./vendor/phpunit/phpunit/phpunit -c tests/phpunit/multisite.xml" + ], + "coverage:merge": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=coverage", + "@php ./vendor/bin/phpunit-merger coverage tests/phpunit/coverage/php --html tests/phpunit/coverage/html/full tests/phpunit/cache/full-cache.xml" + ], + "coverage:single": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=off", + "@putenv WP_TESTS_SKIP_INSTALL=0", + "@test --filter prime_test_suite", + "@putenv XDEBUG_MODE=coverage", + "@putenv WP_TESTS_SKIP_INSTALL=1", + "@test" + ], + "coverage:multisite": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=off", + "@putenv WP_TESTS_SKIP_INSTALL=0", + "@test:multisite --filter prime_test_suite", + "@putenv XDEBUG_MODE=coverage", + "@putenv WP_TESTS_SKIP_INSTALL=1", + "@test:multisite" + ], + "coverage:full": [ + "Composer\\Config::disableProcessTimeout", + "@coverage:single", + "@coverage:multisite", + "@coverage:merge" + ] + }, + "license": [ + "GPLv2" + ], + "authors": [ + { + "name": "AspirePress" + } + ], + "description": "Update plugins and themes for WordPress.", + "support": { + "source": "https://github.com/aspirepress/aspireupdate/tree/main", + "issues": "https://github.com/aspirepress/aspireupdate/issues" + }, + "time": "2025-06-25T18:06:02+00:00" + }, { "name": "composer/installers", "version": "v2.3.0", @@ -152,6 +394,90 @@ ], "time": "2024-06-24T20:46:46+00:00" }, + { + "name": "fair/fair-plugin", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/fairpm/fair-plugin.git", + "reference": "3bef1caf08375b9061dcb085da10d2aa071df934" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fairpm/fair-plugin/zipball/3bef1caf08375b9061dcb085da10d2aa071df934", + "reference": "3bef1caf08375b9061dcb085da10d2aa071df934", + "shasum": "" + }, + "require": { + "php": ">=7.4" + }, + "require-dev": { + "humanmade/coding-standards": "^1.2", + "nimut/phpunit-merger": "*", + "yoast/phpunit-polyfills": "*" + }, + "default-branch": true, + "type": "wordpress-plugin", + "scripts": { + "lint": [ + "@php ./vendor/bin/phpcs ." + ], + "format": [ + "@php ./vendor/bin/phpcbf ." + ], + "test": [ + "Composer\\Config::disableProcessTimeout", + "@php ./vendor/phpunit/phpunit/phpunit" + ], + "test:multisite": [ + "Composer\\Config::disableProcessTimeout", + "@php ./vendor/phpunit/phpunit/phpunit -c tests/phpunit/multisite.xml" + ], + "coverage:merge": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=coverage", + "@php ./vendor/bin/phpunit-merger coverage tests/phpunit/coverage/php --html tests/phpunit/coverage/html/full tests/phpunit/cache/full-cache.xml" + ], + "coverage:single": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=off", + "@putenv WP_TESTS_SKIP_INSTALL=0", + "@test --filter prime_test_suite", + "@putenv XDEBUG_MODE=coverage", + "@putenv WP_TESTS_SKIP_INSTALL=1", + "@test" + ], + "coverage:multisite": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=off", + "@putenv WP_TESTS_SKIP_INSTALL=0", + "@test:multisite --filter prime_test_suite", + "@putenv XDEBUG_MODE=coverage", + "@putenv WP_TESTS_SKIP_INSTALL=1", + "@test:multisite" + ], + "coverage:full": [ + "Composer\\Config::disableProcessTimeout", + "@coverage:single", + "@coverage:multisite", + "@coverage:merge" + ] + }, + "license": [ + "gpl-2.0-only" + ], + "authors": [ + { + "name": "FAIR Contributors" + } + ], + "description": "Make your site more FAIR.", + "support": { + "source": "https://github.com/fairpm/fair-plugin/tree/main", + "issues": "https://github.com/fairpm/fair-plugin/issues" + }, + "time": "2025-08-22T23:59:54+00:00" + }, { "name": "graham-campbell/result-type", "version": "v1.1.3", @@ -2030,6 +2356,8 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { + "aspirepress/aspireupdate": 20, + "fair/fair-plugin": 20, "roave/security-advisories": 20 }, "prefer-stable": true, From e981032a35064c209663007534f240e645d71b27 Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Mon, 1 Sep 2025 15:57:58 -0600 Subject: [PATCH 03/11] use set -o nounset in prelude --- bin/_prelude.bash | 14 ++++++++------ bin/scrape | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/bin/_prelude.bash b/bin/_prelude.bash index ac40997..81de642 100644 --- a/bin/_prelude.bash +++ b/bin/_prelude.bash @@ -1,12 +1,6 @@ #!/usr/bin/false # This file should be sourced, not run -[[ -n $TRACE ]] && [[ $TRACE != 0 ]] && set -o xtrace - -set -o errexit -set -o pipefail -# set -o nounset # too strict IMHO: it breaks the basic shell idiom of [[ -n $SOMEOPTION ]] - function warn { echo "$@" >&2 } @@ -22,4 +16,12 @@ function RUN() { $_run "$@" } +#### + +set -o errexit +set -o pipefail +set -o nounset + +[[ ${TRACE:-0} != 0 ]] && set -o xtrace + cd $(dirname $0)/.. diff --git a/bin/scrape b/bin/scrape index ffb26e0..b80aedb 100755 --- a/bin/scrape +++ b/bin/scrape @@ -2,7 +2,7 @@ . $(dirname $0)/_prelude.bash -[[ -n $DANGEROUSLY_ALLOW_SCRAPE ]] || die "DANGEROUSLY_ALLOW_SCRAPE not set -- aborted" +[[ ${DANGEROUSLY_ALLOW_SCRAPE:-0} != 0 ]] || die "DANGEROUSLY_ALLOW_SCRAPE not set -- aborted" docker compose down --remove-orphans --volumes bin/rebuild From 3819d1ede8a04d7bc2fbecc69c692a0a0cd025a5 Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Mon, 1 Sep 2025 16:27:17 -0600 Subject: [PATCH 04/11] add gmp extension to base container image --- docker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 843be0d..b79a640 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,7 +2,7 @@ FROM dunglas/frankenphp:1.9.0-php8.4.11-bookworm AS base COPY --from=composer:2.8.11 /usr/bin/composer /usr/bin/composer -RUN install-php-extensions apcu bcmath exif gd intl mysqli zip imagick opcache +RUN install-php-extensions apcu bcmath exif gd gmp intl mysqli zip imagick opcache RUN useradd --create-home --shell /bin/bash app \ && chown -R app:app /config /data \ From d61f84a3d3db9a36c30c6de51cee503daa54f1ec Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Mon, 1 Sep 2025 17:09:55 -0600 Subject: [PATCH 05/11] don't scrape volumes by default --- bin/scrape | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bin/scrape b/bin/scrape index b80aedb..6d0ed6c 100755 --- a/bin/scrape +++ b/bin/scrape @@ -4,6 +4,9 @@ [[ ${DANGEROUSLY_ALLOW_SCRAPE:-0} != 0 ]] || die "DANGEROUSLY_ALLOW_SCRAPE not set -- aborted" -docker compose down --remove-orphans --volumes +args='' +[[ ${SCRAPE_VOLUMES:-0} != 0 ]] && args="$args --volumes" + +docker compose down --remove-orphans $args bin/rebuild bin/start --build From 1013338396d98c954520623f676df763ad9de92a Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Mon, 1 Sep 2025 17:40:09 -0600 Subject: [PATCH 06/11] add fair/fair-plugin, fairpm/mini-fair-repo, and afragen/git-updater --- composer.json | 8 +- composer.lock | 626 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 632 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index e63eedc..e43d486 100644 --- a/composer.json +++ b/composer.json @@ -20,6 +20,10 @@ { "type": "vcs", "url": "https://github.com/fairpm/fair-plugin" + }, + { + "type": "vcs", + "url": "https://github.com/fairpm/mini-fair-repo" } ], "require": { @@ -33,7 +37,9 @@ "roots/wp-config": "1.0.0", "wpackagist-theme/twentytwentyfive": "^1.0", "aspirepress/aspireupdate": "dev-main", - "fair/fair-plugin": "dev-main" + "fair/fair-plugin": "dev-main", + "afragen/git-updater": "dev-fair", + "fairpm/mini-fair-repo": "dev-main" }, "require-dev": { "roave/security-advisories": "dev-latest" diff --git a/composer.lock b/composer.lock index a769cda..8d52802 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "13df4a82402e7a3c003f796e33d28aff", + "content-hash": "8a2a404b09ce1325c9cda17d2aa0c29b", "packages": [ { "name": "afragen/autoloader", @@ -47,6 +47,66 @@ }, "time": "2025-02-19T18:41:01+00:00" }, + { + "name": "afragen/git-updater", + "version": "dev-fair", + "source": { + "type": "git", + "url": "https://github.com/afragen/git-updater.git", + "reference": "49c666006499231311a2c147e455fb44e0bff7f7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/afragen/git-updater/zipball/49c666006499231311a2c147e455fb44e0bff7f7", + "reference": "49c666006499231311a2c147e455fb44e0bff7f7", + "shasum": "" + }, + "require": { + "afragen/singleton": "^1.0", + "afragen/wordpress-plugin-readme-parser": "^1", + "afragen/wp-dismiss-notice": "*", + "php": ">=8.0" + }, + "require-dev": { + "wp-coding-standards/wpcs": "^3.0.0" + }, + "type": "wordpress-plugin", + "autoload": { + "psr-4": { + "Fragen\\Git_Updater\\": "src/Git_Updater/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andy Fragen", + "email": "andy@thefragens.com", + "homepage": "https://thefragens.com", + "role": "Developer" + } + ], + "description": "A plugin to automatically update GitHub, Bitbucket, GitLab, or Gitea hosted plugins, themes, and language packs.", + "keywords": [ + "plugin", + "theme", + "updater", + "wordpress" + ], + "support": { + "issues": "https://github.com/afragen/git-updater/issues", + "source": "https://github.com/afragen/git-updater" + }, + "funding": [ + { + "url": "https://github.com/afragen", + "type": "github" + } + ], + "time": "2025-08-06T23:27:35+00:00" + }, { "name": "afragen/git-updater-lite", "version": "2.3.7", @@ -106,6 +166,52 @@ ], "time": "2025-08-03T00:27:41+00:00" }, + { + "name": "afragen/singleton", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/afragen/singleton.git", + "reference": "c93d90651dcf027bcd365d81bccf1eda73fe2f2d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/afragen/singleton/zipball/c93d90651dcf027bcd365d81bccf1eda73fe2f2d", + "reference": "c93d90651dcf027bcd365d81bccf1eda73fe2f2d", + "shasum": "" + }, + "require": { + "php": ">=5.6.5" + }, + "type": "library", + "autoload": { + "classmap": [ + "Singleton.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andy Fragen", + "email": "andy@thefragens.com", + "homepage": "https://github.com/afragen/singleton", + "role": "Developer" + } + ], + "description": "A singleton static proxy generator.", + "keywords": [ + "singleton", + "wordpress" + ], + "support": { + "issues": "https://github.com/afragen/singleton/issues", + "source": "https://github.com/afragen/singleton/tree/1.0.5" + }, + "time": "2024-11-19T17:40:31+00:00" + }, { "name": "afragen/translations-updater", "version": "1.2.1", @@ -159,6 +265,94 @@ }, "time": "2025-04-16T16:51:43+00:00" }, + { + "name": "afragen/wordpress-plugin-readme-parser", + "version": "1.2024.12.10", + "source": { + "type": "git", + "url": "https://github.com/afragen/wordpress-plugin-readme-parser.git", + "reference": "803ccfc442d956aa04d69f4b234eda5d7f03afc4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/afragen/wordpress-plugin-readme-parser/zipball/803ccfc442d956aa04d69f4b234eda5d7f03afc4", + "reference": "803ccfc442d956aa04d69f4b234eda5d7f03afc4", + "shasum": "" + }, + "require": { + "erusev/parsedown": "^1.7", + "php": ">=5.4" + }, + "type": "library", + "autoload": { + "classmap": [ + "class-parser.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "WordPress.org", + "homepage": "https://meta.trac.wordpress.org/browser/sites/trunk/wordpress.org/public_html/wp-content/plugins/plugin-directory/readme" + } + ], + "description": "A clone of the current WordPress.org Plugin Readme Parser, class-parser.php", + "keywords": [ + "parser", + "readme", + "wordpress" + ], + "support": { + "issues": "https://github.com/afragen/wordpress-plugin-readme-parser/issues", + "source": "https://github.com/afragen/wordpress-plugin-readme-parser/tree/1.2024.12.10" + }, + "time": "2024-12-10T23:43:17+00:00" + }, + { + "name": "afragen/wp-dismiss-notice", + "version": "0.3.7", + "source": { + "type": "git", + "url": "https://github.com/afragen/wp-dismiss-notice.git", + "reference": "3e2c694ca891fe94771457f54a3a5457a70c0aec" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/afragen/wp-dismiss-notice/zipball/3e2c694ca891fe94771457f54a3a5457a70c0aec", + "reference": "3e2c694ca891fe94771457f54a3a5457a70c0aec", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "type": "library", + "autoload": { + "classmap": [ + "wp-dismiss-notice.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Andy Fragen", + "email": "andy@thefragens.com", + "homepage": "https://thefragens.com", + "role": "Developer" + } + ], + "description": "Library for time dismissible WordPress admin notices.", + "support": { + "issues": "https://github.com/afragen/wp-dismiss-notice/issues", + "source": "https://github.com/afragen/wp-dismiss-notice" + }, + "time": "2023-05-30T21:45:15+00:00" + }, { "name": "aspirepress/aspireupdate", "version": "dev-main", @@ -248,6 +442,66 @@ }, "time": "2025-06-25T18:06:02+00:00" }, + { + "name": "brick/math", + "version": "0.13.1", + "source": { + "type": "git", + "url": "https://github.com/brick/math.git", + "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/brick/math/zipball/fc7ed316430118cc7836bf45faff18d5dfc8de04", + "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04", + "shasum": "" + }, + "require": { + "php": "^8.1" + }, + "require-dev": { + "php-coveralls/php-coveralls": "^2.2", + "phpunit/phpunit": "^10.1", + "vimeo/psalm": "6.8.8" + }, + "type": "library", + "autoload": { + "psr-4": { + "Brick\\Math\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "Arbitrary-precision arithmetic library", + "keywords": [ + "Arbitrary-precision", + "BigInteger", + "BigRational", + "arithmetic", + "bigdecimal", + "bignum", + "bignumber", + "brick", + "decimal", + "integer", + "math", + "mathematics", + "rational" + ], + "support": { + "issues": "https://github.com/brick/math/issues", + "source": "https://github.com/brick/math/tree/0.13.1" + }, + "funding": [ + { + "url": "https://github.com/BenMorel", + "type": "github" + } + ], + "time": "2025-03-29T13:50:30+00:00" + }, { "name": "composer/installers", "version": "v2.3.0", @@ -394,6 +648,56 @@ ], "time": "2024-06-24T20:46:46+00:00" }, + { + "name": "erusev/parsedown", + "version": "1.7.4", + "source": { + "type": "git", + "url": "https://github.com/erusev/parsedown.git", + "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/cb17b6477dfff935958ba01325f2e8a2bfa6dab3", + "reference": "cb17b6477dfff935958ba01325f2e8a2bfa6dab3", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35" + }, + "type": "library", + "autoload": { + "psr-0": { + "Parsedown": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Emanuil Rusev", + "email": "hello@erusev.com", + "homepage": "http://erusev.com" + } + ], + "description": "Parser for Markdown.", + "homepage": "http://parsedown.org", + "keywords": [ + "markdown", + "parser" + ], + "support": { + "issues": "https://github.com/erusev/parsedown/issues", + "source": "https://github.com/erusev/parsedown/tree/1.7.x" + }, + "time": "2019-12-30T22:54:17+00:00" + }, { "name": "fair/fair-plugin", "version": "dev-main", @@ -478,6 +782,48 @@ }, "time": "2025-08-22T23:59:54+00:00" }, + { + "name": "fairpm/mini-fair-repo", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/fairpm/mini-fair-repo.git", + "reference": "e2351002619261b430053206227957d03b51a595" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fairpm/mini-fair-repo/zipball/e2351002619261b430053206227957d03b51a595", + "reference": "e2351002619261b430053206227957d03b51a595", + "shasum": "" + }, + "require": { + "simplito/elliptic-php": "^1.0", + "spomky-labs/cbor-php": "^3.1", + "yocto/yoclib-multibase": "^1.2" + }, + "default-branch": true, + "type": "wordpress-plugin", + "autoload": { + "classmap": [ + "inc/" + ] + }, + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "FAIR Contributors" + } + ], + "description": "Transform your WP site into a FAIR Package Management Repository", + "homepage": "https://github.com/fairpm/mini-fair-repo", + "support": { + "issues": "https://github.com/fairpm/mini-fair-repo/issues", + "source": "https://github.com/fairpm/mini-fair-repo" + }, + "time": "2025-09-01T19:33:48+00:00" + }, { "name": "graham-campbell/result-type", "version": "v1.1.3", @@ -1031,6 +1377,236 @@ }, "time": "2018-08-10T14:18:38+00:00" }, + { + "name": "simplito/bigint-wrapper-php", + "version": "1.0.0", + "source": { + "type": "git", + "url": "https://github.com/simplito/bigint-wrapper-php.git", + "reference": "cf21ec76d33f103add487b3eadbd9f5033a25930" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplito/bigint-wrapper-php/zipball/cf21ec76d33f103add487b3eadbd9f5033a25930", + "reference": "cf21ec76d33f103add487b3eadbd9f5033a25930", + "shasum": "" + }, + "type": "library", + "autoload": { + "psr-4": { + "BI\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Simplito Team", + "email": "s.smyczynski@simplito.com", + "homepage": "https://simplito.com" + } + ], + "description": "Common interface for php_gmp and php_bcmath modules", + "support": { + "issues": "https://github.com/simplito/bigint-wrapper-php/issues", + "source": "https://github.com/simplito/bigint-wrapper-php/tree/1.0.0" + }, + "time": "2018-02-27T12:38:08+00:00" + }, + { + "name": "simplito/bn-php", + "version": "1.1.4", + "source": { + "type": "git", + "url": "https://github.com/simplito/bn-php.git", + "reference": "83446756a81720eacc2ffb87ff97958431451fd6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplito/bn-php/zipball/83446756a81720eacc2ffb87ff97958431451fd6", + "reference": "83446756a81720eacc2ffb87ff97958431451fd6", + "shasum": "" + }, + "require": { + "simplito/bigint-wrapper-php": "~1.0.0" + }, + "require-dev": { + "phpunit/phpunit": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "BN\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Simplito Team", + "email": "s.smyczynski@simplito.com", + "homepage": "https://simplito.com" + } + ], + "description": "Big number implementation compatible with bn.js", + "support": { + "issues": "https://github.com/simplito/bn-php/issues", + "source": "https://github.com/simplito/bn-php/tree/1.1.4" + }, + "time": "2024-01-10T16:16:59+00:00" + }, + { + "name": "simplito/elliptic-php", + "version": "1.0.12", + "source": { + "type": "git", + "url": "https://github.com/simplito/elliptic-php.git", + "reference": "be321666781be2be2c89c79c43ffcac834bc8868" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/simplito/elliptic-php/zipball/be321666781be2be2c89c79c43ffcac834bc8868", + "reference": "be321666781be2be2c89c79c43ffcac834bc8868", + "shasum": "" + }, + "require": { + "ext-gmp": "*", + "simplito/bn-php": "~1.1.0" + }, + "require-dev": { + "phpbench/phpbench": "@dev", + "phpunit/phpunit": "*" + }, + "type": "library", + "autoload": { + "psr-4": { + "Elliptic\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Simplito Team", + "email": "s.smyczynski@simplito.com", + "homepage": "https://simplito.com" + } + ], + "description": "Fast elliptic curve cryptography", + "homepage": "https://github.com/simplito/elliptic-php", + "keywords": [ + "Curve25519", + "ECDSA", + "Ed25519", + "EdDSA", + "cryptography", + "curve", + "curve25519-weier", + "ecc", + "ecdh", + "elliptic", + "nistp192", + "nistp224", + "nistp256", + "nistp384", + "nistp521", + "secp256k1" + ], + "support": { + "issues": "https://github.com/simplito/elliptic-php/issues", + "source": "https://github.com/simplito/elliptic-php/tree/1.0.12" + }, + "time": "2024-01-09T14:57:04+00:00" + }, + { + "name": "spomky-labs/cbor-php", + "version": "3.1.1", + "source": { + "type": "git", + "url": "https://github.com/Spomky-Labs/cbor-php.git", + "reference": "5404f3e21cbe72f5cf612aa23db2b922fd2f43bf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Spomky-Labs/cbor-php/zipball/5404f3e21cbe72f5cf612aa23db2b922fd2f43bf", + "reference": "5404f3e21cbe72f5cf612aa23db2b922fd2f43bf", + "shasum": "" + }, + "require": { + "brick/math": "^0.9|^0.10|^0.11|^0.12|^0.13", + "ext-mbstring": "*", + "php": ">=8.0" + }, + "require-dev": { + "deptrac/deptrac": "^3.0", + "ekino/phpstan-banned-code": "^1.0|^2.0|^3.0", + "ext-json": "*", + "infection/infection": "^0.29", + "php-parallel-lint/php-parallel-lint": "^1.3", + "phpstan/extension-installer": "^1.1", + "phpstan/phpstan": "^1.0|^2.0", + "phpstan/phpstan-beberlei-assert": "^1.0|^2.0", + "phpstan/phpstan-deprecation-rules": "^1.0|^2.0", + "phpstan/phpstan-phpunit": "^1.0|^2.0", + "phpstan/phpstan-strict-rules": "^1.0|^2.0", + "phpunit/phpunit": "^10.1|^11.0|^12.0", + "rector/rector": "^1.0|^2.0", + "roave/security-advisories": "dev-latest", + "symfony/var-dumper": "^6.0|^7.0", + "symplify/easy-coding-standard": "^12.0" + }, + "suggest": { + "ext-bcmath": "GMP or BCMath extensions will drastically improve the library performance. BCMath extension needed to handle the Big Float and Decimal Fraction Tags", + "ext-gmp": "GMP or BCMath extensions will drastically improve the library performance" + }, + "type": "library", + "autoload": { + "psr-4": { + "CBOR\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Florent Morselli", + "homepage": "https://github.com/Spomky" + }, + { + "name": "All contributors", + "homepage": "https://github.com/Spomky-Labs/cbor-php/contributors" + } + ], + "description": "CBOR Encoder/Decoder for PHP", + "keywords": [ + "Concise Binary Object Representation", + "RFC7049", + "cbor" + ], + "support": { + "issues": "https://github.com/Spomky-Labs/cbor-php/issues", + "source": "https://github.com/Spomky-Labs/cbor-php/tree/3.1.1" + }, + "funding": [ + { + "url": "https://github.com/Spomky", + "type": "github" + }, + { + "url": "https://www.patreon.com/FlorentMorselli", + "type": "patreon" + } + ], + "time": "2025-06-13T11:57:55+00:00" + }, { "name": "symfony/polyfill-ctype", "version": "v1.33.0", @@ -1384,6 +1960,52 @@ }, "type": "wordpress-theme", "homepage": "https://wordpress.org/themes/twentytwentyfive/" + }, + { + "name": "yocto/yoclib-multibase", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/yocto/yoclib-multibase-php.git", + "reference": "c7171897bf61dbc4a4cc6bb3f2fd5c3e62298e13" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/yocto/yoclib-multibase-php/zipball/c7171897bf61dbc4a4cc6bb3f2fd5c3e62298e13", + "reference": "c7171897bf61dbc4a4cc6bb3f2fd5c3e62298e13", + "shasum": "" + }, + "require": { + "ext-mbstring": "*", + "php": "^7.4||^8" + }, + "require-dev": { + "phpunit/phpunit": "^7||^8||^9" + }, + "type": "library", + "autoload": { + "psr-4": { + "YOCLIB\\Multiformats\\Multibase\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0-or-later" + ], + "description": "This yocLibrary enables your project to encode and decode Multibases in PHP.", + "keywords": [ + "composer", + "multibase", + "multiformats", + "php", + "yoclib", + "yocto" + ], + "support": { + "issues": "https://github.com/yocto/yoclib-multibase-php/issues", + "source": "https://github.com/yocto/yoclib-multibase-php/tree/v1.2.0" + }, + "time": "2024-06-05T13:42:01+00:00" } ], "packages-dev": [ @@ -2356,8 +2978,10 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { + "afragen/git-updater": 20, "aspirepress/aspireupdate": 20, "fair/fair-plugin": 20, + "fairpm/mini-fair-repo": 20, "roave/security-advisories": 20 }, "prefer-stable": true, From d1c973cfa42494e2e18bd97abb7bdfcdf151e470 Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Mon, 1 Sep 2025 18:02:42 -0600 Subject: [PATCH 07/11] add bin/require-wp-plugins --- bin/require-wp-plugins | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100755 bin/require-wp-plugins diff --git a/bin/require-wp-plugins b/bin/require-wp-plugins new file mode 100755 index 0000000..569ab0b --- /dev/null +++ b/bin/require-wp-plugins @@ -0,0 +1,13 @@ +#!/bin/bash + +. $(dirname $0)/_prelude.bash + +packages=() +for package in "$@" +do + [[ ! $package =~ / ]] && package=wpackagist-plugin/$package + [[ ! $package =~ : ]] && [[ -n ${DEFAULT_VERSION:-} ]] && package="$package:$DEFAULT_VERSION" + packages+=($package) +done + +composer require ${packages[*]} From 2d92f64560e26e818279a524d1eed48497c653f7 Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Mon, 1 Sep 2025 18:14:25 -0600 Subject: [PATCH 08/11] add a grab bag of random plugins --- composer.json | 27 ++- composer.lock | 504 +++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 528 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index e43d486..5805c5c 100644 --- a/composer.json +++ b/composer.json @@ -39,7 +39,32 @@ "aspirepress/aspireupdate": "dev-main", "fair/fair-plugin": "dev-main", "afragen/git-updater": "dev-fair", - "fairpm/mini-fair-repo": "dev-main" + "fairpm/mini-fair-repo": "dev-main", + "wpackagist-plugin/akismet": "dev-trunk", + "wpackagist-plugin/wordpress-seo": "dev-trunk", + "wpackagist-plugin/gutenberg": "dev-trunk", + "wpackagist-plugin/two-factor": "dev-trunk", + "wpackagist-plugin/contact-form-7": "dev-trunk", + "wpackagist-plugin/woocommerce": "dev-trunk", + "wpackagist-plugin/advanced-custom-fields": "dev-trunk", + "wpackagist-plugin/hello-dolly": "dev-trunk", + "wpackagist-plugin/classic-editor": "dev-trunk", + "wpackagist-plugin/all-in-one-wp-migration": "dev-trunk", + "wpackagist-plugin/google-site-kit": "dev-trunk", + "wpackagist-plugin/wordfence": "dev-trunk", + "wpackagist-plugin/wp-mail-smtp": "dev-trunk", + "wpackagist-plugin/really-simple-ssl": "dev-trunk", + "wpackagist-plugin/duplicate-page": "dev-trunk", + "wpackagist-plugin/redirection": "dev-trunk", + "wpackagist-plugin/better-search-replace": "dev-trunk", + "wpackagist-plugin/svg-support": "dev-trunk", + "wpackagist-plugin/wp-optimize": "dev-trunk", + "wpackagist-plugin/ultimate-addons-for-gutenberg": "dev-trunk", + "wpackagist-plugin/polylang": "dev-trunk", + "wpackagist-plugin/meta-box": "dev-trunk", + "wpackagist-plugin/easy-table-of-contents": "dev-trunk", + "wpackagist-plugin/kadence-blocks": "dev-trunk", + "wpackagist-plugin/limit-login-attempts": "dev-trunk" }, "require-dev": { "roave/security-advisories": "dev-latest" diff --git a/composer.lock b/composer.lock index 8d52802..3eb8b1f 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8a2a404b09ce1325c9cda17d2aa0c29b", + "content-hash": "9b213a109ac314ecf0ecfc2ffd2c88dc", "packages": [ { "name": "afragen/autoloader", @@ -1943,6 +1943,481 @@ ], "time": "2025-04-30T23:37:27+00:00" }, + { + "name": "wpackagist-plugin/advanced-custom-fields", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/advanced-custom-fields/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/advanced-custom-fields.zip?timestamp=1754911195" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/advanced-custom-fields/", + "time": "2025-08-11T11:19:55+00:00" + }, + { + "name": "wpackagist-plugin/akismet", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/akismet/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/akismet.zip?timestamp=1755829717" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/akismet/", + "time": "2025-08-22T02:28:37+00:00" + }, + { + "name": "wpackagist-plugin/all-in-one-wp-migration", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/all-in-one-wp-migration/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/all-in-one-wp-migration.zip?timestamp=1756147790" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/all-in-one-wp-migration/", + "time": "2025-08-25T18:49:50+00:00" + }, + { + "name": "wpackagist-plugin/better-search-replace", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/better-search-replace/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/better-search-replace.zip?timestamp=1744648758" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/better-search-replace/", + "time": "2025-04-14T16:39:18+00:00" + }, + { + "name": "wpackagist-plugin/classic-editor", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/classic-editor/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/classic-editor.zip?timestamp=1733259823" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/classic-editor/", + "time": "2024-12-03T21:03:43+00:00" + }, + { + "name": "wpackagist-plugin/contact-form-7", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/contact-form-7/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/contact-form-7.zip?timestamp=1754382034" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/contact-form-7/", + "time": "2025-08-05T08:20:34+00:00" + }, + { + "name": "wpackagist-plugin/duplicate-page", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/duplicate-page/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/duplicate-page.zip?timestamp=1749804792" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/duplicate-page/", + "time": "2025-06-13T08:53:12+00:00" + }, + { + "name": "wpackagist-plugin/easy-table-of-contents", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/easy-table-of-contents/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/easy-table-of-contents.zip?timestamp=1755697274" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/easy-table-of-contents/", + "time": "2025-08-20T13:41:14+00:00" + }, + { + "name": "wpackagist-plugin/google-site-kit", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/google-site-kit/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/google-site-kit.zip?timestamp=1756242710" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/google-site-kit/", + "time": "2025-08-26T21:11:50+00:00" + }, + { + "name": "wpackagist-plugin/gutenberg", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/gutenberg/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/gutenberg.zip?timestamp=1756301986" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/gutenberg/", + "time": "2025-08-27T13:39:46+00:00" + }, + { + "name": "wpackagist-plugin/hello-dolly", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/hello-dolly/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/hello-dolly.zip?timestamp=1746636612" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/hello-dolly/", + "time": "2025-05-07T16:50:12+00:00" + }, + { + "name": "wpackagist-plugin/kadence-blocks", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/kadence-blocks/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/kadence-blocks.zip?timestamp=1756406175" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/kadence-blocks/", + "time": "2025-08-28T18:36:15+00:00" + }, + { + "name": "wpackagist-plugin/limit-login-attempts", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/limit-login-attempts/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/limit-login-attempts.zip?timestamp=1680635757" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/limit-login-attempts/", + "time": "2023-04-04T19:15:57+00:00" + }, + { + "name": "wpackagist-plugin/meta-box", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/meta-box/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/meta-box.zip?timestamp=1755160815" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/meta-box/", + "time": "2025-08-14T08:40:15+00:00" + }, + { + "name": "wpackagist-plugin/polylang", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/polylang/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/polylang.zip?timestamp=1750059149" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/polylang/", + "time": "2025-06-16T07:32:29+00:00" + }, + { + "name": "wpackagist-plugin/really-simple-ssl", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/really-simple-ssl/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/really-simple-ssl.zip?timestamp=1756465852" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/really-simple-ssl/", + "time": "2025-08-29T11:10:52+00:00" + }, + { + "name": "wpackagist-plugin/redirection", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/redirection/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/redirection.zip?timestamp=1745668654" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/redirection/", + "time": "2025-04-26T11:57:34+00:00" + }, + { + "name": "wpackagist-plugin/svg-support", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/svg-support/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/svg-support.zip?timestamp=1740472441" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/svg-support/", + "time": "2025-02-25T08:34:01+00:00" + }, + { + "name": "wpackagist-plugin/two-factor", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/two-factor/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/two-factor.zip?timestamp=1751563348" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/two-factor/", + "time": "2025-07-03T17:22:28+00:00" + }, + { + "name": "wpackagist-plugin/ultimate-addons-for-gutenberg", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/ultimate-addons-for-gutenberg/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/ultimate-addons-for-gutenberg.zip?timestamp=1752575147" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/ultimate-addons-for-gutenberg/", + "time": "2025-07-15T10:25:47+00:00" + }, + { + "name": "wpackagist-plugin/woocommerce", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/woocommerce/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/woocommerce.zip?timestamp=1756762847" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/woocommerce/", + "time": "2025-09-01T21:40:47+00:00" + }, + { + "name": "wpackagist-plugin/wordfence", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/wordfence/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/wordfence.zip?timestamp=1756146442" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/wordfence/", + "time": "2025-08-25T18:27:22+00:00" + }, + { + "name": "wpackagist-plugin/wordpress-seo", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/wordpress-seo/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/wordpress-seo.zip?timestamp=1756398156" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/wordpress-seo/", + "time": "2025-08-28T16:22:36+00:00" + }, + { + "name": "wpackagist-plugin/wp-mail-smtp", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/wp-mail-smtp/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/wp-mail-smtp.zip?timestamp=1756454239" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/wp-mail-smtp/", + "time": "2025-08-29T07:57:19+00:00" + }, + { + "name": "wpackagist-plugin/wp-optimize", + "version": "dev-trunk", + "source": { + "type": "svn", + "url": "https://plugins.svn.wordpress.org/wp-optimize/", + "reference": "trunk" + }, + "dist": { + "type": "zip", + "url": "https://downloads.wordpress.org/plugin/wp-optimize.zip?timestamp=1753967311" + }, + "require": { + "composer/installers": "^1.0 || ^2.0" + }, + "type": "wordpress-plugin", + "homepage": "https://wordpress.org/plugins/wp-optimize/", + "time": "2025-07-31T13:08:31+00:00" + }, { "name": "wpackagist-theme/twentytwentyfive", "version": "1.3", @@ -2982,7 +3457,32 @@ "aspirepress/aspireupdate": 20, "fair/fair-plugin": 20, "fairpm/mini-fair-repo": 20, - "roave/security-advisories": 20 + "roave/security-advisories": 20, + "wpackagist-plugin/advanced-custom-fields": 20, + "wpackagist-plugin/akismet": 20, + "wpackagist-plugin/all-in-one-wp-migration": 20, + "wpackagist-plugin/better-search-replace": 20, + "wpackagist-plugin/classic-editor": 20, + "wpackagist-plugin/contact-form-7": 20, + "wpackagist-plugin/duplicate-page": 20, + "wpackagist-plugin/easy-table-of-contents": 20, + "wpackagist-plugin/google-site-kit": 20, + "wpackagist-plugin/gutenberg": 20, + "wpackagist-plugin/hello-dolly": 20, + "wpackagist-plugin/kadence-blocks": 20, + "wpackagist-plugin/limit-login-attempts": 20, + "wpackagist-plugin/meta-box": 20, + "wpackagist-plugin/polylang": 20, + "wpackagist-plugin/really-simple-ssl": 20, + "wpackagist-plugin/redirection": 20, + "wpackagist-plugin/svg-support": 20, + "wpackagist-plugin/two-factor": 20, + "wpackagist-plugin/ultimate-addons-for-gutenberg": 20, + "wpackagist-plugin/woocommerce": 20, + "wpackagist-plugin/wordfence": 20, + "wpackagist-plugin/wordpress-seo": 20, + "wpackagist-plugin/wp-mail-smtp": 20, + "wpackagist-plugin/wp-optimize": 20 }, "prefer-stable": true, "prefer-lowest": false, From cb8b56cab701c6877e8cfc82415cae6e4f076108 Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Mon, 1 Sep 2025 18:16:25 -0600 Subject: [PATCH 09/11] make default namespace overrideable in require-wp-plugins --- bin/require-wp-plugins | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/require-wp-plugins b/bin/require-wp-plugins index 569ab0b..f9cb4f0 100755 --- a/bin/require-wp-plugins +++ b/bin/require-wp-plugins @@ -5,7 +5,7 @@ packages=() for package in "$@" do - [[ ! $package =~ / ]] && package=wpackagist-plugin/$package + [[ ! $package =~ / ]] && package=${DEFAULT_NAMESPACE:-wpackagist-plugin}/$package [[ ! $package =~ : ]] && [[ -n ${DEFAULT_VERSION:-} ]] && package="$package:$DEFAULT_VERSION" packages+=($package) done From e756adfcd1dcf52fe24f37b73a6b1eda81db7b1c Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Tue, 2 Sep 2025 11:25:45 -0600 Subject: [PATCH 10/11] add aspirepress/aspirecloud plugin (aka aspirehub) --- composer.json | 7 +++- composer.lock | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 101 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 5805c5c..9e42199 100644 --- a/composer.json +++ b/composer.json @@ -17,6 +17,10 @@ "type": "vcs", "url": "https://github.com/aspirepress/AspireUpdate" }, + { + "type": "vcs", + "url": "https://github.com/aspirepress/aspirecloud-plugin" + }, { "type": "vcs", "url": "https://github.com/fairpm/fair-plugin" @@ -64,7 +68,8 @@ "wpackagist-plugin/meta-box": "dev-trunk", "wpackagist-plugin/easy-table-of-contents": "dev-trunk", "wpackagist-plugin/kadence-blocks": "dev-trunk", - "wpackagist-plugin/limit-login-attempts": "dev-trunk" + "wpackagist-plugin/limit-login-attempts": "dev-trunk", + "aspirepress/aspirecloud": "dev-main" }, "require-dev": { "roave/security-advisories": "dev-latest" diff --git a/composer.lock b/composer.lock index 3eb8b1f..aa35d67 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9b213a109ac314ecf0ecfc2ffd2c88dc", + "content-hash": "628ec395342256d9cb93f7782a04330f", "packages": [ { "name": "afragen/autoloader", @@ -353,6 +353,99 @@ }, "time": "2023-05-30T21:45:15+00:00" }, + { + "name": "aspirepress/aspirecloud", + "version": "dev-main", + "source": { + "type": "git", + "url": "https://github.com/aspirepress/aspirecloud-plugin.git", + "reference": "b22ec865b0c934f511f625d6a78c0f829a8c47c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aspirepress/aspirecloud-plugin/zipball/b22ec865b0c934f511f625d6a78c0f829a8c47c9", + "reference": "b22ec865b0c934f511f625d6a78c0f829a8c47c9", + "shasum": "" + }, + "require": { + "php": ">=7.4.0" + }, + "require-dev": { + "nimut/phpunit-merger": "^2.0", + "squizlabs/php_codesniffer": "3.10.3", + "wp-cli/wp-cli-bundle": "^2.12", + "wp-coding-standards/wpcs": "~3.1.0", + "yoast/phpunit-polyfills": "^1.1.0" + }, + "default-branch": true, + "type": "wordpress-plugin", + "scripts": { + "format": [ + "@php ./vendor/squizlabs/php_codesniffer/bin/phpcbf --report=summary,source" + ], + "lint": [ + "@php ./vendor/squizlabs/php_codesniffer/bin/phpcs --report=summary,source" + ], + "test": [ + "Composer\\Config::disableProcessTimeout", + "@php ./vendor/phpunit/phpunit/phpunit" + ], + "test:multisite": [ + "Composer\\Config::disableProcessTimeout", + "@php ./vendor/phpunit/phpunit/phpunit -c tests/phpunit/multisite.xml" + ], + "build:css": [ + "npm run build:css" + ], + "build:css:dev": [ + "npm run build:css:dev" + ], + "watch:css": [ + "npm run watch:css" + ], + "build": [ + "npm run build" + ], + "coverage:merge": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=coverage", + "@php ./vendor/bin/phpunit-merger coverage tests/phpunit/coverage/php --html tests/phpunit/coverage/html/full tests/phpunit/cache/full-cache.xml" + ], + "coverage:single": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=off", + "@putenv WP_TESTS_SKIP_INSTALL=0", + "@test --filter prime_test_suite", + "@putenv XDEBUG_MODE=coverage", + "@php ./vendor/phpunit/phpunit/phpunit --filter Integration --coverage-php tests/phpunit/cache/full-cache.xml", + "@php ./vendor/bin/phpunit-merger coverage tests/phpunit/coverage/php --html tests/phpunit/coverage/html/single tests/phpunit/cache/full-cache.xml" + ], + "coverage:unit": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=coverage", + "@php ./vendor/phpunit/phpunit/phpunit --exclude-group=Integration --coverage-php tests/phpunit/coverage/php/unit.xml --coverage-html tests/phpunit/coverage/html/unit" + ], + "coverage:integration": [ + "Composer\\Config::disableProcessTimeout", + "@putenv XDEBUG_MODE=coverage", + "@php ./vendor/phpunit/phpunit/phpunit --group=Integration --coverage-php tests/phpunit/coverage/php/integration.xml --coverage-html tests/phpunit/coverage/html/integration" + ] + }, + "license": [ + "GPLv2" + ], + "authors": [ + { + "name": "AspirePress" + } + ], + "description": "WordPress Core Services API.", + "support": { + "source": "https://github.com/aspirepress/aspirecloud-plugin/tree/main", + "issues": "https://github.com/aspirepress/aspirecloud-plugin/issues" + }, + "time": "2025-08-09T20:34:35+00:00" + }, { "name": "aspirepress/aspireupdate", "version": "dev-main", @@ -3454,6 +3547,7 @@ "minimum-stability": "dev", "stability-flags": { "afragen/git-updater": 20, + "aspirepress/aspirecloud": 20, "aspirepress/aspireupdate": 20, "fair/fair-plugin": 20, "fairpm/mini-fair-repo": 20, From ddeb82ef64bc8e8da096a17bd8eac03c772d3025 Mon Sep 17 00:00:00 2001 From: Chuck Adams Date: Thu, 4 Sep 2025 11:11:53 -0600 Subject: [PATCH 11/11] composer.json fixes from https://github.com/fairpm/server/pull/30 --- composer.json | 11 +++-- composer.lock | 125 +++++++++++++++++++++++++++++++++++++++++++++++--- 2 files changed, 127 insertions(+), 9 deletions(-) diff --git a/composer.json b/composer.json index 9e42199..1658838 100644 --- a/composer.json +++ b/composer.json @@ -42,7 +42,7 @@ "wpackagist-theme/twentytwentyfive": "^1.0", "aspirepress/aspireupdate": "dev-main", "fair/fair-plugin": "dev-main", - "afragen/git-updater": "dev-fair", + "afragen/git-updater": "dev-develop", "fairpm/mini-fair-repo": "dev-main", "wpackagist-plugin/akismet": "dev-trunk", "wpackagist-plugin/wordpress-seo": "dev-trunk", @@ -72,19 +72,24 @@ "aspirepress/aspirecloud": "dev-main" }, "require-dev": { - "roave/security-advisories": "dev-latest" + "roave/security-advisories": "dev-latest", + "mcaskill/composer-exclude-files": "^4.0" }, "config": { "optimize-autoloader": true, "preferred-install": "dist", "allow-plugins": { "composer/installers": true, - "roots/wordpress-core-installer": true + "roots/wordpress-core-installer": true, + "mcaskill/composer-exclude-files": true } }, "minimum-stability": "dev", "prefer-stable": true, "extra": { + "exclude-from-files": [ + "freemius/wordpress-sdk/start.php" + ], "installer-paths": { "web/app/mu-plugins/{$name}/": [ "type:wordpress-muplugin" diff --git a/composer.lock b/composer.lock index aa35d67..5f3396a 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "628ec395342256d9cb93f7782a04330f", + "content-hash": "4cd61835b85e32e12e4e761b3984df8b", "packages": [ { "name": "afragen/autoloader", @@ -49,28 +49,36 @@ }, { "name": "afragen/git-updater", - "version": "dev-fair", + "version": "dev-develop", "source": { "type": "git", "url": "https://github.com/afragen/git-updater.git", - "reference": "49c666006499231311a2c147e455fb44e0bff7f7" + "reference": "44789f17cbeba31f594dae59242d75a99f0246cb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/afragen/git-updater/zipball/49c666006499231311a2c147e455fb44e0bff7f7", - "reference": "49c666006499231311a2c147e455fb44e0bff7f7", + "url": "https://api.github.com/repos/afragen/git-updater/zipball/44789f17cbeba31f594dae59242d75a99f0246cb", + "reference": "44789f17cbeba31f594dae59242d75a99f0246cb", "shasum": "" }, "require": { "afragen/singleton": "^1.0", "afragen/wordpress-plugin-readme-parser": "^1", "afragen/wp-dismiss-notice": "*", + "freemius/wordpress-sdk": "^2.12", "php": ">=8.0" }, "require-dev": { + "mcaskill/composer-exclude-files": "^4.0", "wp-coding-standards/wpcs": "^3.0.0" }, + "default-branch": true, "type": "wordpress-plugin", + "extra": { + "exclude-from-files": [ + "freemius/wordpress-sdk/start.php" + ] + }, "autoload": { "psr-4": { "Fragen\\Git_Updater\\": "src/Git_Updater/" @@ -105,7 +113,7 @@ "type": "github" } ], - "time": "2025-08-06T23:27:35+00:00" + "time": "2025-09-03T00:46:02+00:00" }, { "name": "afragen/git-updater-lite", @@ -917,6 +925,59 @@ }, "time": "2025-09-01T19:33:48+00:00" }, + { + "name": "freemius/wordpress-sdk", + "version": "2.12.1", + "source": { + "type": "git", + "url": "https://github.com/Freemius/wordpress-sdk.git", + "reference": "fedeba08eb3e62af5f84bd6d602f98636467cffc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Freemius/wordpress-sdk/zipball/fedeba08eb3e62af5f84bd6d602f98636467cffc", + "reference": "fedeba08eb3e62af5f84bd6d602f98636467cffc", + "shasum": "" + }, + "require": { + "php": ">=5.6" + }, + "require-dev": { + "dealerdirect/phpcodesniffer-composer-installer": "^1.0", + "phpcompatibility/php-compatibility": "^9.3", + "phpcompatibility/phpcompatibility-wp": "^2.1", + "phpstan/extension-installer": "^1.3", + "squizlabs/php_codesniffer": "^3.7", + "szepeviktor/phpstan-wordpress": "^1.3", + "wp-coding-standards/wpcs": "^2.3" + }, + "type": "library", + "autoload": { + "files": [ + "start.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-3.0-only" + ], + "description": "Freemius WordPress SDK", + "homepage": "https://freemius.com", + "keywords": [ + "freemius", + "plugin", + "sdk", + "theme", + "wordpress", + "wordpress-plugin", + "wordpress-theme" + ], + "support": { + "issues": "https://github.com/Freemius/wordpress-sdk/issues", + "source": "https://github.com/Freemius/wordpress-sdk/tree/2.12.1" + }, + "time": "2025-07-06T13:27:13+00:00" + }, { "name": "graham-campbell/result-type", "version": "v1.1.3", @@ -2577,6 +2638,58 @@ } ], "packages-dev": [ + { + "name": "mcaskill/composer-exclude-files", + "version": "v4.0.1", + "source": { + "type": "git", + "url": "https://github.com/mcaskill/composer-plugin-exclude-files.git", + "reference": "ed68fc7d6da2146ed2c32c92904587c9e03c985a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mcaskill/composer-plugin-exclude-files/zipball/ed68fc7d6da2146ed2c32c92904587c9e03c985a", + "reference": "ed68fc7d6da2146ed2c32c92904587c9e03c985a", + "shasum": "" + }, + "require": { + "composer-plugin-api": "^2.3", + "php": "^7.2.5 || ^8.0" + }, + "require-dev": { + "composer/composer": "^2.3", + "phpstan/phpstan": "^1.11", + "symfony/phpunit-bridge": "^7.1" + }, + "type": "composer-plugin", + "extra": { + "class": "McAskill\\Composer\\ExcludeFilePlugin", + "branch-alias": { + "dev-main": "4.x-dev" + } + }, + "autoload": { + "psr-4": { + "McAskill\\Composer\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Chauncey McAskill", + "email": "chauncey@mcaskill.ca" + } + ], + "description": "Exclude files from autoload_files.php", + "support": { + "issues": "https://github.com/mcaskill/composer-plugin-exclude-files/issues", + "source": "https://github.com/mcaskill/composer-plugin-exclude-files/tree/v4.0.1" + }, + "time": "2024-12-03T21:08:26+00:00" + }, { "name": "roave/security-advisories", "version": "dev-latest",