php-parallel-lint / PHP-Parallel-Lint

This tool check syntax of PHP files faster than serial check with fancier output.
Other
287 stars 21 forks source link

version 1.3.2 create-project command cause error Could not scan for classes inside "./tests/" which does not appear to be a file nor a folder #96

Closed samsonasik closed 2 years ago

samsonasik commented 2 years ago

with latest version 1.3.2, it cause error:

composer create-project php-parallel-lint/php-parallel-lint php-parallel-lint --ansi
Creating a "php-parallel-lint/php-parallel-lint" project at "./php-parallel-lint"
Installing php-parallel-lint/php-parallel-lint (v1.3.2)
  - Installing php-parallel-lint/php-parallel-lint (v1.3.2): Extracting archive
Created project in /Users/samsonasik/www/rector-src/php-parallel-lint
Loading composer repositories with package information
Updating dependencies
Lock file operations: 4 installs, 0 updates, 0 removals
  - Locking nette/tester (v2.4.1)
  - Locking php-parallel-lint/php-console-color (v1.0.1)
  - Locking php-parallel-lint/php-console-highlighter (v1.0.0)
  - Locking squizlabs/php_codesniffer (3.6.2)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 4 installs, 0 updates, 0 removals
  - Installing nette/tester (v2.4.1): Extracting archive
  - Installing php-parallel-lint/php-console-color (v1.0.1): Extracting archive
  - Installing php-parallel-lint/php-console-highlighter (v1.0.0): Extracting archive
  - Installing squizlabs/php_codesniffer (3.6.2): Extracting archive
Generating autoload files

  [RuntimeException]                                                                            
  Could not scan for classes inside "./tests/" which does not appear to be a file nor a folder  

create-project [-s|--stability STABILITY] [--prefer-source] [--prefer-dist] [--prefer-install PREFER-INSTALL] [--repository REPOSITORY] [--repository-url REPOSITORY-URL] [--add-repository] [--dev] [--no-dev] [--no-custom-installers] [--no-scripts] [--no-progress] [--no-secure-http] [--keep-vcs] [--remove-vcs] [--no-install] [--ignore-platform-req IGNORE-PLATFORM-REQ] [--ignore-platform-reqs] [--ask] [--] [<package>] [<directory>] [<version>]

1.3.1 seems working ok, ref https://github.com/rectorphp/rector-src/runs/5275779357?check_suite_focus=true#step:13:39

jrfnl commented 2 years ago

@samsonasik Thanks for reporting this. I'll have a look, but this may be more of a Composer issue....

Just out of interest: why are you using create-project to set up PHP Parallel Lint in the workflow ? When I look at this, my first instinct would be to change that to using the Phar file via tools: parallel-lint in the setup-php step. Other viable alternatives would be to use composer global install... or even downloading the Phar file directly.

jrfnl commented 2 years ago

@samsonasik Okay, I've had a look and I can reproduce the behaviour.

Analysis:

Note: the create-project command is more for bootstrapping a new project than for using an existing project, so it's not really the best command to use for what you're doing.

Having said that, if you want to keep using create-project instead of the alternatives I've mentioned above in my previous comment, there are (at least) two ways to prevent the issue and still get a running copy of PHP Parallel Lint:

  1. Add --no-dev to the command. This should be the preferred option as you don't need the dev dependencies from this package.
  2. Add --prefer-source or --prefer-install=auto to the command. This will get you a complete clone of the project, which includes the tests directory.

I've tested both commands and can confirm that using either option would fix your problem.

Does that help ?

samsonasik commented 2 years ago

Thank you @jrfnl , it seems with --no-dev seems make it works 👍 , I created PR https://github.com/php-parallel-lint/PHP-Parallel-Lint/pull/99 to update the readme for it.

TomasVotruba commented 2 years ago

Thank for such a quick fix. This broke on our CI and I had no idea what happened.

Good job :+1:

jrfnl commented 2 years ago

@TomasVotruba You're welcome and for the future, you may still want to consider switching to using the PHAR file via tools in setup-php.

TomasVotruba commented 2 years ago

@jrfnl PHARs proven to be very bad for debugging. Composer packages are much easier to work with.