This switches the installation method for Psalm from Phive to Composer, while still using a Phar file for running Psalm.
Includes:
* Removing Psalm from the Phive configuration.
* Adding Psalm to the Composer configuration. Includes upgrading from version `3.11.2` to version `4.8.1`.
* Adjusting the script used in the `Makefile`.
👉 Please verify and test this as things work differently on different OS-es and this should work for you.
* Adjusting the GH Actions script to use the Composer installed version of Psalm.
Note: due to the committed `composer.lock` file, Psalm will not automatically upgrade when newer versions are available.
Refs:
* https://github.com/vimeo/psalm/releases
* https://github.com/psalm/phar/releases
* composer: put require- together
* add phpstan
* add phpstan to travis
* phpstan fixes
* phpstan fixes
* phpstan fixes
* drop null defaults since every property is null by default
* DescriptionFactory: fix parse nullable type
* travis: add phpstan max
* travis: fix phpstan config
In order to restore a bc break made in 3.2.0 I downgraded the
type-resolver. This makes the version less compatible with php 7.1
But will help our users to upgrade.
Running the unit tests with php nightly exposed the bug:
Fatal error: Cannot use phpDocumentor\Reflection\Types\Void as Void
because 'Void' is a special class name in
/home/travis/build/hboomsma/ReflectionDocBlock/tests/unit/DocBlock/Tags/MethodTest.php
on line 25
composer validate gives the following warning:
````
phpdocumentor/reflection-docblock is valid for simple usage with composer but has
strict errors that make it unable to be published as a package:
description : The property description is required
````
Due a hotfix done in the the type resolver library version 0.1.5 is the new minimal version of type-resolver.
Without this fix an infinitive loop is created when the use keyword is used in a class.
PHPUnit 4.4 was the last version without phpspec. phpspec conflicts
with this package because it requires v2 of this component and
this causes a cyclic issue with composer
- Changed Tag to an interface and flattened hierarchy
- Changed Description to accept a list of tags and a template
- Allow auto-wiring when constructing tags
Markdown is only used once and a check is in place to see if the markdown classes exists. So perhaps it is better to move this to suggest instead of require, so the people who don't need it, don't have to download it.