-
Christian Kuhn authored
The patch adds a new feature - the "extension scanner" - to the install tool. It is meant as a helper script for extension and project developers to quickly spot places in extension code that may need adaptions if upgrading to younger core versions. The scanner could later work with different languages, for now only scanning PHP files is supported. This is based on the great library nikic/php-parser which creates an AST from php source files and allows simple traversing. A series of matchers hooks into the traverser and scans for configured core deprecation or removals. Some additional matchers could be added if a core example evolves (for instance usage of dropped core constants). From now on, whenever the core deprecates or breaks existing core PHP API, an entry in one of the matcher configurations in ext:install/Configuration/ExtensionScanner/Php should be done. Since these API changes are documented via ReST files already, the configuration links to according ReST files. A bamboo integrity test script verifies those can be found. Furthermore, all Breaking-* and Deprecation-* ReST files since core version 9.x / master now need an additional Tag "FullyScanned", "PartiallyScanned" or "NotScanned". This is also checked by an integration test script in bamboo. The matcher configuration files are pretty straight forward and should be obvious if looking at ext:install/Configuration/ExtensionScanner/Php. This patch contains: * Add nikic/php-parser as dependency * New install tool gui to scan extensions in typo3conf/ext * Scanner infrastructure for PHP * Preparation and configuration for all current "master" / v9 ReST files * Mark ReST files which are tagged with "FullyScanned" as "not affected" in install tool "Upgrade analysis" if no match was found * Integration script testing referenced ReST files are found * Integration script verifying Breaking- and Deprecation- ReST file contain "FullyScanned", "PartiallyScanned" or "NotSCanned" keyword. More information on this feature can be found at https://docs.typo3.org/typo3cms/CoreApiReference/ExtensionScanner/Index.html Change-Id: I760e88f9d929fdd710655fa0d25cb26291a7ed2b Resolves: #82014 Releases: master Reviewed-on: https://review.typo3.org/53450 Tested-by: TYPO3com <no-reply@typo3.com> Reviewed-by: Jan Helke <typo3@helke.de> Tested-by: Jan Helke <typo3@helke.de> Reviewed-by: Wouter Wolters <typo3@wouterwolters.nl> Reviewed-by: Frank Naegler <frank.naegler@typo3.org> Tested-by: Frank Naegler <frank.naegler@typo3.org> Reviewed-by: Anja Leichsenring <aleichsenring@ab-softlab.de> Tested-by: Anja Leichsenring <aleichsenring@ab-softlab.de> Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch> Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
081ce36b