Skip to content
  • Christian Kuhn's avatar
    [FEATURE] Install tool: Extension scanner · 081ce36b
    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: default avatarTYPO3com <no-reply@typo3.com>
    Reviewed-by: default avatarJan Helke <typo3@helke.de>
    Tested-by: default avatarJan Helke <typo3@helke.de>
    Reviewed-by: default avatarWouter Wolters <typo3@wouterwolters.nl>
    Reviewed-by: default avatarFrank Naegler <frank.naegler@typo3.org>
    Tested-by: default avatarFrank Naegler <frank.naegler@typo3.org>
    Reviewed-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
    Tested-by: default avatarAnja Leichsenring <aleichsenring@ab-softlab.de>
    Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
    Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
    081ce36b