From ae482010621e755d7edc68ef690f88f34194b6e2 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Sat, 11 Nov 2023 00:03:28 +0100 Subject: [PATCH] .gitattributes: ignore test files, don't ignore test framework As of PHPCS 4.0, the tests will no longer ship in a packaged version of the repo :tada: However, while this removes a lot of friction, it can also cause some, as quite a few external standards use the PHPCS native test framework to run their tests. To continue to do so, those external standards would now have to use `--prefer-source`, which would make their builds a lot slower and will cause extra support questions from new contributors to those standards. This commit proposes a solution to this issue by making a few small changes to the `.gitattributes` file. With these updates directives in place, the PHPCS native test _framework_ will still be included in the packaged up versions, but the test _files_ will not be. In practice, this means that the following files should still be included in a packaged up version: * `/tests/AllTests.php` * `/tests/bootstrap.php` * `/tests/FileList.php` * `/tests/TestSuite.php` * `/tests/Core/AbstractMethodUnitTest.php` * `/tests/Core/AllTests.php` * `/tests/Standards/AbstractSniffTest.php` * `/tests/Standards/AllSniffs.php` ... but that all other test files will be excluded. This removes the need for external standards to use `--prefer-source`. --- .gitattributes | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/.gitattributes b/.gitattributes index 3fd67cf09b..65631525e0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,16 +5,18 @@ # https://www.reddit.com/r/PHP/comments/2jzp6k/i_dont_need_your_tests_in_my_production/ # https://blog.madewithlove.be/post/gitattributes/ # -.github/ export-ignore -scripts/ export-ignore -src/Standards/**/Tests/ export-ignore -tests/ export-ignore -.cspell.json export-ignore -.gitattributes export-ignore -.gitignore export-ignore -phpcs.xml.dist export-ignore -phpstan.neon.dist export-ignore -phpunit.xml.dist export-ignore +.github/ export-ignore +scripts/ export-ignore +src/Standards/**/Tests/ export-ignore +tests/Core/**/ export-ignore +.cspell.json export-ignore +.gitattributes export-ignore +.gitignore export-ignore +phpcs.xml.dist export-ignore +phpstan.neon.dist export-ignore +phpunit.xml.dist export-ignore +tests/Core/ErrorSuppressionTest.php export-ignore +tests/Core/IsCamelCapsTest.php export-ignore # # Declare files that should always have CRLF line endings on checkout.