@@ -28,23 +28,27 @@ ifeq ("$(IN_DOCKER)","TRUE")
2828 DOCKER_INTERACTIVE_SHELL:=
2929else
3030 ifeq ($(DOCKER_AVAILABLE),0)
31- DOCKER_COMMON_OPS: =-v "` pwd ` :` pwd ` " -w "` pwd ` " -v "${COMPOSER_CACHE_DIR}:${COMPOSER_CONTAINER_CACHE_DIR}" -e OTEL_PHP_FIBERS_ENABLED="${OTEL_PHP_FIBERS_ENABLED}" --ulimit nofile=1000000
31+ DOCKER_DEFAULT_SECURITY_OPS=--cap-drop =ALL --security-opt="no-new-privileges=true" --user="` id -u ` :` id -g ` "
32+ DOCKER_COMMON_OPS: =-v "` pwd ` :` pwd ` " -w "` pwd ` " -v "` pwd ` /.git:` pwd ` /.git:ro" -v "${COMPOSER_CACHE_DIR}:${COMPOSER_CONTAINER_CACHE_DIR}" -e OTEL_PHP_FIBERS_ENABLED="${OTEL_PHP_FIBERS_ENABLED}" --ulimit nofile=1000000
3233 ifeq ("$(NEEDS_DOCKER_SOCKET)","TRUE")
3334 ifneq ("$(wildcard /var/run/docker.sock)","")
35+ DOCKER_SECURITY_OPS: =
3436 DOCKER_SOCKET_OPS: =-v "/var/run/docker.sock:/var/run/docker.sock"
3537 DOCKER_SOCKET_CONTAINER_NAME_SUFFIX: =-root
3638 else
39+ DOCKER_SECURITY_OPS: =${DOCKER_DEFAULT_SECURITY_OPS}
3740 DOCKER_SOCKET_OPS: =
3841 DOCKER_SOCKET_CONTAINER_NAME_SUFFIX: =
3942 endif
4043 else
44+ DOCKER_SECURITY_OPS: =${DOCKER_DEFAULT_SECURITY_OPS}
4145 DOCKER_SOCKET_OPS: =
4246 DOCKER_SOCKET_CONTAINER_NAME_SUFFIX: =
4347 endif
44- DOCKER_RUN: =docker run --rm -i ${DOCKER_COMMON_OPS} "${CONTAINER_NAME}"
45- DOCKER_RUN_WITH_SOCKET: =docker run --rm -i ${DOCKER_COMMON_OPS} ${DOCKER_SOCKET_OPS} "${CONTAINER_NAME}${DOCKER_SOCKET_CONTAINER_NAME_SUFFIX}"
46- DOCKER_SHELL: =docker run --rm -it ${DOCKER_COMMON_OPS} "${CONTAINER_NAME}"
47- DOCKER_INTERACTIVE_SHELL: =docker run --rm -it ${DOCKER_COMMON_OPS} "${CONTAINER_NAME_INTERACTIVE_SHELL}"
48+ DOCKER_RUN: =docker run --rm -i ${DOCKER_SECURITY_OPS} ${ DOCKER_COMMON_OPS} "${CONTAINER_NAME}"
49+ DOCKER_RUN_WITH_SOCKET: =docker run --rm -i ${DOCKER_SECURITY_OPS} ${ DOCKER_COMMON_OPS} ${DOCKER_SOCKET_OPS} "${CONTAINER_NAME}${DOCKER_SOCKET_CONTAINER_NAME_SUFFIX}"
50+ DOCKER_SHELL: =docker run --rm -it ${DOCKER_SECURITY_OPS} ${ DOCKER_COMMON_OPS} "${CONTAINER_NAME}"
51+ DOCKER_INTERACTIVE_SHELL: =docker run --rm -it ${DOCKER_SECURITY_OPS} ${ DOCKER_COMMON_OPS} "${CONTAINER_NAME_INTERACTIVE_SHELL}"
4852 else
4953 DOCKER_RUN: =
5054 DOCKER_RUN_WITH_SOCKET: =
@@ -269,16 +273,22 @@ migrations-inline-code-remove-line-internal: #### Remove all lines that contain
269273 ($( DOCKER_RUN) php -r ' $$possibleDirectories = ["src", "tests", "etc", "examples"]; foreach ($$possibleDirectories as $$possibleDirectory) { if (!file_exists($$possibleDirectory)) {continue;} $$i = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($$possibleDirectory)); $$i->rewind(); while ($$i->valid()) { if (!is_file($$i->key()) || (is_file($$i->key()) && !str_ends_with($$i->key(), ".php"))) { $$i->next(); continue; } $$fileContents = explode("\n", file_get_contents($$i->key())); foreach ($$fileContents as $$lineNumber => $$lineContent) { if (str_contains($$lineContent, "@internal")) { unset($$fileContents[$$lineNumber]); } } file_put_contents($$i->key(), implode("\n", $$fileContents)); $$i->next(); } }' || true)
270274
271275migrations-supported-features-php-ensure-we-only-cs-check-and-fix-tests-if-unit-tests-is-enabled : # ### Ensure we only cs check/fix tests/ if unit-tests is enabled ##*I*##
272- ($( DOCKER_RUN) php -r ' if (in_array("unit-tests", ["linux","macos","windows"," zts"])) {exit;} $$phpCSCongifFIle = "etc/qa/phpcs.xml"; $$fileContents = explode("\n", file_get_contents($$phpCSCongifFIle)); foreach ($$fileContents as $$lineNumber => $$lineContent) { if (str_contains($$lineContent, "<file>../../tests</file>")) { unset($$fileContents[$$lineNumber]); } } file_put_contents($$phpCSCongifFIle, implode("\n", $$fileContents));' || true)
276+ ($( DOCKER_RUN) php -r ' if (in_array("unit-tests", ["linux","zts"])) {exit;} $$phpCSCongifFIle = "etc/qa/phpcs.xml"; $$fileContents = explode("\n", file_get_contents($$phpCSCongifFIle)); foreach ($$fileContents as $$lineNumber => $$lineContent) { if (str_contains($$lineContent, "<file>../../tests</file>")) { unset($$fileContents[$$lineNumber]); } } file_put_contents($$phpCSCongifFIle, implode("\n", $$fileContents));' || true)
273277
274278migrations-supported-features-php-ensure-we-only-staticly-analyse-tests-with-phpstan-if-unit-tests-is-enabled : # ### Ensure we only staticly analyse tests/ with PHPStan if unit-tests is enabled ##*I*##
275- ($( DOCKER_RUN) php -r ' if (in_array("unit-tests", ["linux","macos","windows"," zts"])) {exit;} $$phpStanCongifFIle = "etc/qa/phpstan.neon"; $$fileContents = explode("\n", file_get_contents($$phpStanCongifFIle)); foreach ($$fileContents as $$lineNumber => $$lineContent) { if (str_contains($$lineContent, "- ../../tests")) { unset($$fileContents[$$lineNumber]); } } file_put_contents($$phpStanCongifFIle, implode("\n", $$fileContents));' || true)
279+ ($( DOCKER_RUN) php -r ' if (in_array("unit-tests", ["linux","zts"])) {exit;} $$phpStanCongifFIle = "etc/qa/phpstan.neon"; $$fileContents = explode("\n", file_get_contents($$phpStanCongifFIle)); foreach ($$fileContents as $$lineNumber => $$lineContent) { if (str_contains($$lineContent, "- ../../tests")) { unset($$fileContents[$$lineNumber]); } } file_put_contents($$phpStanCongifFIle, implode("\n", $$fileContents));' || true)
276280
277281migrations-supported-features-php-ensure-no-phpunit-config-file-is-present-when-unit-tests-are-disabled : # ### Ensure we remove the PHPUnit config file when unit-tests aren't enabled ##*I*##
278- ($( DOCKER_RUN) php -r ' if (in_array("unit-tests", ["linux","macos","windows"," zts"])) {exit;} @unlink("etc/qa/phpunit.xml");' || true)
282+ ($( DOCKER_RUN) php -r ' if (in_array("unit-tests", ["linux","zts"])) {exit;} @unlink("etc/qa/phpunit.xml");' || true)
279283
280284migrations-supported-features-php-ensure-no-infectionphp-config-file-is-present-when-unit-tests-are-disabled : # ### Ensure we remove the InfectionPHP config file when unit-tests aren't enabled ##*I*##
281- ($( DOCKER_RUN) php -r ' if (in_array("unit-tests", ["linux","macos","windows","zts"])) {exit;} @unlink("etc/qa/infection.json5");' || true)
285+ ($( DOCKER_RUN) php -r ' if (in_array("unit-tests", ["linux","zts"])) {exit;} @unlink("etc/qa/infection.json5");' || true)
286+
287+ migrations-supported-features-php-ensure-no-rector-config-file-is-present-when-code-style-is-disabled : # ### Ensure we remove the RectorPHP config file when code-style isn't enabled ##*I*##
288+ ($( DOCKER_RUN) php -r ' if (in_array("code-style", ["linux","zts"])) {exit;} @unlink("etc/qa/rector.php");' || true)
289+
290+ migrations-supported-features-php-ensure-no-phpcs-config-file-is-present-when-code-style-is-disabled : # ### Ensure we remove the PHPCSS config file when code-style isn't enabled ##*I*##
291+ ($( DOCKER_RUN) php -r ' if (in_array("code-style", ["linux","zts"])) {exit;} @unlink("etc/qa/phpcs.xml");' || true)
282292
283293migrations-php-make-sure-github-exists : # ### Make sure .github/ exists ##*I*##
284294 ($( DOCKER_RUN) mkdir .github || true)
@@ -342,7 +352,7 @@ migration-renovate-set-composer-constraint: #### Always keep renovate's constrai
342352# # Our default jobs
343353
344354on-install-or-update : # # Tasks, like migrations, that specifically have be run after composer install or update. These will also run by self hosted Renovate ####
345- $(DOCKER_RUN) $(MAKE) migrations-git-enforce-gitattributes-contents migrations-git-make-sure-gitignore-exists migrations-git-make-sure-gitignore-ignores-var migrations-git-make-sure-gitignore-excludes-var-gitkeep migrations-docs-update-readme-copyright-c-year-to-current migrations-docs-update-readme-copyright-year-to-current migrations-docs-update-etc-readme-template-copyright-c-year-to-current migrations-docs-update-etc-readme-template-copyright-year-to-current migrations-docs-create-license-when-it-doesnt-exists migrations-docs-update-license-copyright-c-year-to-current migrations-docs-update-license-copyright-year-to-current migrations-php-make-sure-var-exists migrations-php-make-sure-var-gitkeep-exists migrations-php-make-sure-etc-exists migrations-php-make-sure-etc-ci-exists migrations-php-make-sure-etc-qa-exists migrations-php-move-psalm-xml-config-to-etc migrations-php-remove-psalm-xml-config migrations-php-remove-old-phpunit-xml-dist-config migrations-php-remove-old-phpunit-xml-config migrations-php-ensure-etc-ci-markdown-link-checker-json-exists migrations-php-move-infection-config-to-etc migrations-php-infection-create-config-if-not-exists migrations-php-remove-phpunit-config-dir-from-infection migrations-php-fix-logs-relative-paths-for-infection migrations-php-infection-ensure-log-text-has-the-correct-path migrations-php-infection-ensure-log-summary-has-the-correct-path migrations-php-infection-ensure-log-json-has-the-correct-path migrations-php-infection-ensure-log-per-mutator-has-the-correct-path migrations-php-add-github-true-to-for-infection migrations-php-make-paths-compatible-with-infection-0-32 migrations-php-set-phpunit-ensure-config-file-exists migrations-php-set-phpunit-xsd-path-to-local migrations-php-set-phpunit-make-sure-we-see-all-the-warnings-deprecations-etc-etc-that-will-make-phpunit-do-a-non-happy-exit migrations-php-move-phpstan migrations-php-set-phpstan-ensure-config-file-exists migrations-php-set-phpstan-uncomment-parameters migrations-php-set-phpstan-add-parameters-if-it-isnt-present-in-the-config-file migrations-php-set-phpstan-paths-in-config migrations-php-set-phpstan-level-max-in-config migrations-php-set-phpstan-resolve-ergebnis-noExtends-classesAllowedToBeExtended migrations-php-set-phpstan-drop-checkGenericClassInNonGenericObjectType migrations-php-phpstan-add-prefix-for-anything-that-starts-with-vendor-in-a-list migrations-php-set-phpstan-drop-include-test-utilities-rules migrations-php-set-phpstan-drop-include-async-test-utilities-rules migrations-php-set-rector-create-config-if-not-exists migrations-php-composer-unused-create-config-if-not-exists migrations-php-composer-unused-drop-commented-out-line-scattered-across-my-repos migrations-php-move-phpcs migrations-php-move-phpcs-not-dist migrations-php-set-phpcs-ensure-config-file-exists migrations-php-phpcs-make-basepath-is-correct-relatively migrations-php-phpcs-make-cache-is-correct-relatively migrations-php-phpcs-make-sure-config-has-correct-relative-path-for-etc migrations-php-phpcs-make-sure-etc-has-no-trailing-slash migrations-php-phpcs-make-sure-config-has-correct-relative-path-for-src migrations-php-phpcs-make-sure-src-has-no-trailing-slash migrations-php-phpcs-make-sure-config-has-correct-relative-path-for-tests migrations-php-phpcs-make-sure-tests-has-no-trailing-slash migrations-php-phpcs-make-sure-etc-is-ran-through migrations-phpcs-include-examples-directory-when-present migrations-php-move-composer-require-checker migrations-php-composer-require-checker-create-config-if-not-exists migrations-inline-code-phpstan-remove-line-phpstan-ignore-next-line migrations-inline-code-phpstan-remove-rest-of-line-phpstan-ignore-line migrations-inline-code-psalm-remove-line-psalm-suppress migrations-inline-code-remove-line-internal migrations-supported-features-php-ensure-we-only-cs-check-and-fix-tests-if-unit-tests-is-enabled migrations-supported-features-php-ensure-we-only-staticly-analyse-tests-with-phpstan-if-unit-tests-is-enabled migrations-supported-features-php-ensure-no-phpunit-config-file-is-present-when-unit-tests-are-disabled migrations-supported-features-php-ensure-no-infectionphp-config-file-is-present-when-unit-tests-are-disabled migrations-php-make-sure-github-exists migrations-github-codeowners migrations-php-make-sure-github-workflows-exists migrations-github-actions-remove-composer-diff migrations-github-actions-remove-markdown-check-links migrations-github-actions-remove-markdown-craft-release migrations-github-actions-remove-set-milestone-on-pr migrations-github-actions-move-ci migrations-github-actions-remove-ci-if-its-old-style-php-ci-workflow migrations-github-actions-create-ci-if-not-exists migrations-github-actions-move-release-management migrations-github-actions-fix-management-in-release-management-referenced-workflow-file migrations-github-actions-create-release-management-if-not-exists migrations-renovate-remove-dependabot-config migrations-renovate-move-config migrations-renovate-create-config-if-not-exists migrations-renovate-point-at-correct-config migration-renovate-set-php-constraint migration-renovate-set-composer-constraint composer-validate syntax-php composer-normalize ## Count: 93
355+ $(DOCKER_RUN) $(MAKE) migrations-git-enforce-gitattributes-contents migrations-git-make-sure-gitignore-exists migrations-git-make-sure-gitignore-ignores-var migrations-git-make-sure-gitignore-excludes-var-gitkeep migrations-docs-update-readme-copyright-c-year-to-current migrations-docs-update-readme-copyright-year-to-current migrations-docs-update-etc-readme-template-copyright-c-year-to-current migrations-docs-update-etc-readme-template-copyright-year-to-current migrations-docs-create-license-when-it-doesnt-exists migrations-docs-update-license-copyright-c-year-to-current migrations-docs-update-license-copyright-year-to-current migrations-php-make-sure-var-exists migrations-php-make-sure-var-gitkeep-exists migrations-php-make-sure-etc-exists migrations-php-make-sure-etc-ci-exists migrations-php-make-sure-etc-qa-exists migrations-php-move-psalm-xml-config-to-etc migrations-php-remove-psalm-xml-config migrations-php-remove-old-phpunit-xml-dist-config migrations-php-remove-old-phpunit-xml-config migrations-php-ensure-etc-ci-markdown-link-checker-json-exists migrations-php-move-infection-config-to-etc migrations-php-infection-create-config-if-not-exists migrations-php-remove-phpunit-config-dir-from-infection migrations-php-fix-logs-relative-paths-for-infection migrations-php-infection-ensure-log-text-has-the-correct-path migrations-php-infection-ensure-log-summary-has-the-correct-path migrations-php-infection-ensure-log-json-has-the-correct-path migrations-php-infection-ensure-log-per-mutator-has-the-correct-path migrations-php-add-github-true-to-for-infection migrations-php-make-paths-compatible-with-infection-0-32 migrations-php-set-phpunit-ensure-config-file-exists migrations-php-set-phpunit-xsd-path-to-local migrations-php-set-phpunit-make-sure-we-see-all-the-warnings-deprecations-etc-etc-that-will-make-phpunit-do-a-non-happy-exit migrations-php-move-phpstan migrations-php-set-phpstan-ensure-config-file-exists migrations-php-set-phpstan-uncomment-parameters migrations-php-set-phpstan-add-parameters-if-it-isnt-present-in-the-config-file migrations-php-set-phpstan-paths-in-config migrations-php-set-phpstan-level-max-in-config migrations-php-set-phpstan-resolve-ergebnis-noExtends-classesAllowedToBeExtended migrations-php-set-phpstan-drop-checkGenericClassInNonGenericObjectType migrations-php-phpstan-add-prefix-for-anything-that-starts-with-vendor-in-a-list migrations-php-set-phpstan-drop-include-test-utilities-rules migrations-php-set-phpstan-drop-include-async-test-utilities-rules migrations-php-set-rector-create-config-if-not-exists migrations-php-composer-unused-create-config-if-not-exists migrations-php-composer-unused-drop-commented-out-line-scattered-across-my-repos migrations-php-move-phpcs migrations-php-move-phpcs-not-dist migrations-php-set-phpcs-ensure-config-file-exists migrations-php-phpcs-make-basepath-is-correct-relatively migrations-php-phpcs-make-cache-is-correct-relatively migrations-php-phpcs-make-sure-config-has-correct-relative-path-for-etc migrations-php-phpcs-make-sure-etc-has-no-trailing-slash migrations-php-phpcs-make-sure-config-has-correct-relative-path-for-src migrations-php-phpcs-make-sure-src-has-no-trailing-slash migrations-php-phpcs-make-sure-config-has-correct-relative-path-for-tests migrations-php-phpcs-make-sure-tests-has-no-trailing-slash migrations-php-phpcs-make-sure-etc-is-ran-through migrations-phpcs-include-examples-directory-when-present migrations-php-move-composer-require-checker migrations-php-composer-require-checker-create-config-if-not-exists migrations-inline-code-phpstan-remove-line-phpstan-ignore-next-line migrations-inline-code-phpstan-remove-rest-of-line-phpstan-ignore-line migrations-inline-code-psalm-remove-line-psalm-suppress migrations-inline-code-remove-line-internal migrations-supported-features-php-ensure-we-only-cs-check-and-fix-tests-if-unit-tests-is-enabled migrations-supported-features-php-ensure-we-only-staticly-analyse-tests-with-phpstan-if-unit-tests-is-enabled migrations-supported-features-php-ensure-no-phpunit-config-file-is-present-when-unit-tests-are-disabled migrations-supported-features-php-ensure-no-infectionphp-config-file-is-present-when-unit-tests-are-disabled migrations-supported-features-php-ensure-no-rector-config-file-is-present-when-code-style-is-disabled migrations-supported-features-php-ensure-no-phpcs-config-file-is-present-when-code-style-is-disabled migrations-php-make-sure-github-exists migrations-github-codeowners migrations-php-make-sure-github-workflows-exists migrations-github-actions-remove-composer-diff migrations-github-actions-remove-markdown-check-links migrations-github-actions-remove-markdown-craft-release migrations-github-actions-remove-set-milestone-on-pr migrations-github-actions-move-ci migrations-github-actions-remove-ci-if-its-old-style-php-ci-workflow migrations-github-actions-create-ci-if-not-exists migrations-github-actions-move-release-management migrations-github-actions-fix-management-in-release-management-referenced-workflow-file migrations-github-actions-create-release-management-if-not-exists migrations-renovate-remove-dependabot-config migrations-renovate-move-config migrations-renovate-create-config-if-not-exists migrations-renovate-point-at-correct-config migration-renovate-set-php-constraint migration-renovate-set-composer-constraint composer-validate syntax-php composer-normalize ## Count: 95
346356
347357composer-validate : # # Ensure we don't require any package we don't use in this package directly ##*IC*##
348358 $(DOCKER_SHELL ) composer validate
@@ -402,6 +412,9 @@ install: ### Install dependencies ####
402412composer-require : # ## Require passed dependencies ####
403413 $(DOCKER_INTERACTIVE_SHELL ) composer require -W $(wordlist 2,$(words $(MAKECMDGOALS ) ) ,$(MAKECMDGOALS ) )
404414
415+ composer-why : # ## Show why a specific dependency is loaded ####
416+ $(DOCKER_INTERACTIVE_SHELL ) composer why $(wordlist 2,$(words $(MAKECMDGOALS ) ) ,$(MAKECMDGOALS ) )
417+
405418update : # ## Update dependencies ####
406419 $(DOCKER_SHELL ) composer update -W
407420
@@ -437,5 +450,5 @@ task-list-ci-high: ## CI: Generate a JSON array of jobs to run against the highe
437450 @echo " [\" syntax-php\" ]" # # Count: 1
438451
439452supported-features : # # CI: List the features this package supports
440- @echo " [\" linux\" ,\" macos \" , \" windows \" , \" zts\" ]" # # Count: 4
453+ @echo " [\" linux\" ,\" zts\" ]" # # Count: 2
441454
0 commit comments