1. 19 Jan, 2022 20 commits
  2. 18 Jan, 2022 4 commits
    • Stefan Bürk's avatar
      [!!!][TASK] Prepare for new minimum system requirements · 4c04c847
      Stefan Bürk authored and Benni Mack's avatar Benni Mack committed
      System Requirements have been announced for TYPO3
      v12 [1]: PHP 8.1 and higher, raised minimum DBMS
      versions and removed mssql support.
      
      The patch sets according PHP requirements in
      the central composer.json files:
      
      > composer config platform.php 8.1.1
      > composer req php:"^8.1"
      > composer req php:"^8.1" -d typo3/sysext/core --no-update
      
      The patch adjusts the core main test suite to run
      tests with PHP 8.1, ignoring older PHP releases,
      drops mssql from the test suites and raises versions
      of other DBMS in the test suite.
      
      The option set of Build/Scripts/runTests.sh is
      updated accordingly. phpstan needs a special
      handling since it is not PHP 8.1 ready, yet: The
      code scanner is still run using PHP 8.0 for now.
      
      With the default charset being changed to utf8
      in mysql, an acceptance tests becomes obsolete and
      is substituted with an @todo comment to further
      investigate if we could streamline the underlying
      code in the install tool.
      
      [1] https://typo3.org/arti...
      4c04c847
    • Stefan Bürk's avatar
      [TASK] Use proper QueryBuilder execute() replacement methods · 597a92fd
      Stefan Bürk authored and Benni Mack's avatar Benni Mack committed
      doctrine/dbal implemented single purpose method to replace the
      compound 'execute()' in QueryBuilder to avoid the incompatible
      return typehint tuple of 'Doctrine\DBAL\Result|int' in favour
      of 'executeQuery()' and 'executeStatement()' which was added
      forward-compatible with #96247 marking the old one internal
      but not deprecated for now to keep a eventually longer grace
      period to mitigate for extensions developers.
      
      This patch however goes through the core and replace these
      methods to be clean as possible and is a first preparation
      to remove the 'checkThisOnly' option from phpstan which are
      swallowed by this option.
      
      * replace 'execute' with 'executeQuery()' for select and
        count queries generating results ('Doctrine\DBAL\Result').
      * use 'executeStatement()' for insert, update and delete
        queries return affected rows as return value (int)
      * adjust return typehints to match the single return type
        signature on really minor places to match the return type
        of the wrapped replaced execute method.
      * replace one really old 'exec()' from connection with
        corresponding replacement method along the way.
      * add several todos on two places which are weird and do
        not make any sense for further investigation and fixing,
        as declared as out-of-the-scope for this wide-area patch.
      
      Resolves: #96551
      Related: #96247
      Related: #96521
      Releases: main, 11.5
      Change-Id: Ie8d40f3882f1694ab7f7e5053729fa1c798a9c5f
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/73032
      
      Tested-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Christian Kuhn's avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      597a92fd
    • Lina Wolf's avatar
      [DOCS] Update outdated manual of EXT:fluid_styled_content · 4343860f
      Lina Wolf authored and Lina Wolf's avatar Lina Wolf committed
      Resolves: #95835
      Releases: main, 11.5
      Change-Id: Iaa79aa4daa763c66c073d407168a7494cc11e938
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72164
      
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Susanne Moog's avatarSusanne Moog <look@susi.dev>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Susanne Moog's avatarSusanne Moog <look@susi.dev>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      4343860f
    • Benjamin Franzke's avatar
      [FEATURE] Add infrastructure for ES6 modules and importmaps · a3e28bd1
      Benjamin Franzke authored
      JavaScript ES6 modules may now be used instead of AMD modules, both in
      backend and frontend context. JavaScript node-js style path resolutions
      are managed by importmaps, which allow web pages to control the
      behavior of JavaScript imports.
      
      By the time of writing importmaps are supported natively by
      Google Chrome, a polyfill is available for Firefox and Safari and
      included by TYPO3 core and applied whenever an importmap is emitted.
      
      RequireJs is shimmed to prefer ES6 modules if available, allowing any
      extension to ship ES6 modules by providing an importmap configuration
      in Configuration/JavaScriptModules.php while providing full backwards
      compatibility support for extensions that load modules via RequireJS.
      
      For security reasons importmap configuration is only emitted when the
      modules are actually used, that means when a module has been added to
      the current page response via via `PageRenderer->loadJavaScriptModule()`
      or `JavaScriptRenderer->addJavaScriptModuleInstruction()`.
      
      Further Notes:
      
      1) importmaps serve multiple purposes:
       * They are used to map away cache busting hashes in filenames:
         https://github.com/WICG/import-maps#mapping-away-hashes-in-script-filenames
       * They allow to avoid relative paths between extensions,
         which wouldn't work with typo3/cms-composer-installers v4
       * They allow for extension less imports, like: `import 'jquery'`
         https://github.com/WICG/import-maps#extension-less-imports
      2) The importmap becomes very large if all modules are included, but
         preparation is made to allow to optimize this in future:
       * We map all bare module imports to use .js suffix, allowing prefix
         definitions. To use that feature we'll need cache-invalidation for
         extensions paths and that is out of scope for this patch, but become
         possible with typo3/cms-composer-installers v4
       * Configuration/JavaScriptModules.php contains dependency information
         in order to only load importmap configuration for modules that are
         actually needed (loaded modules are tracked by `ImportMap` and their
         respective configuration and dependencies are loaded). This is
         also important for security reasons in order to avoid disclosing all
         installed extensions.
      3) Usage in TYPO3 Backend will follow in #96511
      
      Commands executed:
      
        yarn add es-module-shims
      
      Releases: main
      Resolves: #96510
      Related: #96511
      Related: #96323
      Change-Id: Ia9025444f9f3e122ba6556559ab85852e3ec98ee
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/73004
      
      Tested-by: core-ci's avatarcore-ci <typo3@b13.com>
      Tested-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Tested-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Andreas Fernandez's avatarAndreas Fernandez <a.fernandez@scripting-base.de>
      Reviewed-by: Benjamin Franzke's avatarBenjamin Franzke <bfr@qbus.de>
      a3e28bd1
  3. 17 Jan, 2022 4 commits
  4. 16 Jan, 2022 3 commits
  5. 15 Jan, 2022 1 commit
  6. 14 Jan, 2022 8 commits