Skip to content
Snippets Groups Projects
  1. Jan 06, 2024
  2. Jan 05, 2024
  3. Jan 04, 2024
    • Benni Mack's avatar
      [TASK] Streamline indentation of arrays and comments · 8cdf6380
      Benni Mack authored
      PHP-CS-Fixer rule `array_indentation` is activated to have
      consistent indentation of arrays.
      
      In addition, a full run of php-cs-fixer without
      caches shows also affected areas where comments
      did not apply properly.
      
      Resolves: #102753
      Releases: main, 12.4, 11.5
      Change-Id: I759149606c4b042f1ac4329d4f5b7166d591456b
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82334
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Reviewed-by: default avatarBenni Mack <benni@typo3.org>
      Tested-by: default avatarBenni Mack <benni@typo3.org>
      8cdf6380
    • Benni Mack's avatar
      [TASK] Allow usage of symfony 7 · b03970d9
      Benni Mack authored
      This change enables Symfony 7 in
      addition to symfony 6 in TYPO3.
      
      Symfony7 requires PHP 8.2, thus
      is not installed by default for the
      time being, as this change is also
      allowed for TYPO3 v12 support when
      running with PHP 8.2 and composer.
      
      Used commands:
      
      composer req -W \
       "symfony/config:^6.4 || ^7.0" \
       "symfony/console:^6.4 || ^7.0" \
       "symfony/dependency-injection:^6.4 || ^7.0" \
       "symfony/doctrine-messenger:^6.4 || ^7.0" \
       "symfony/expression-language:^6.4 || ^7.0" \
       "symfony/filesystem:^6.4 || ^7.0" \
       "symfony/finder:^6.4 || ^7.0" \
       "symfony/http-foundation:^6.4 || ^7.0" \
       "symfony/mailer:^6.4 || ^7.0" \
       "symfony/messenger:^6.4 || ^7.0" \
       "symfony/mime:^6.4 || ^7.0" \
       "symfony/options-resolver:^6.4 || ^7.0" \
       "symfony/property-access:^6.4 || ^7.0" \
       "symfony/property-info:^6.4 || ^7.0" \
       "symfony/rate-limiter:^6.4 || ^7.0" \
       "symfony/routing:^6.4 || ^7.0" \
       "symfony/uid:^6.4 || ^7.0" \
       "symfony/var-dumper:^6.4 || ^7.0" \
       "symfony/yaml:^6.4 || ^7.0"
      
       composer req --dev -W \
       "codeception/codeception:^5.0.13" \
       "codeception/module-filesystem:^3.0.1" \
       "friendsofphp/php-cs-fixer:^3.46" \
       "symfony/translation:^6.4 || ^7.0"
      
      Resolves: #102746
      Releases: main, 12.4
      Change-Id: I6bbbfb0bc6e26c00fba0010234b5c8b698cf0a81
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82314
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarBenni Mack <benni@typo3.org>
      Reviewed-by: default avatarBenni Mack <benni@typo3.org>
      b03970d9
    • Anja Leichsenring's avatar
      [TASK] Update locales translation files · 5a4a17fa
      Anja Leichsenring authored
      TYPO3 uses a composer package [1] to import
      locales along with translations and a custom
      script has been added to create and update
      included translation files.
      
      This change updates the language files with
      the last updates and requires the package
      with the current highest version as minimum.
      
      Used command(s):
      
      > composer req --dev \
          "sokil/php-isocodes-db-i18n":"^4.0.18"
      
      > Build/Scripts/runTests.sh \
          -s checkIsoDatabase \
          -p 8.1
      
      [1] sokil/php-isocodes-db-i18n
      
      Resolves: #102747
      Releases: main, 12.4
      Change-Id: I4d6603484c4fca213c66f0df0feff13bc1011b29
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82307
      
      
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      5a4a17fa
  4. Jan 03, 2024
  5. Jan 01, 2024
  6. Dec 30, 2023
  7. Dec 28, 2023
  8. Dec 26, 2023
    • Oliver Bartsch's avatar
      [BUGFIX] Omit calling `getRecordWSOL` in `BU::getProcessedValue()` · b61dfba9
      Oliver Bartsch authored
      Since #102616, itemsProcFunc config is resolved in
      `BU::getLabelFromItemlist()`. This method therefore
      was adjusted to take the record in question as argument,
      passing it to the underlying `ItemProcessingService`,
      which actually just requires the uid and pid.
      
      Since the database row is not passed to
      BU::getProcessedValue()`, the record was
      fetched for each item manually via
      `getRecordWSOL()`. This is not sufficient
      and has a serious performance impact.
      
      The functionality of resolving itemsProcFunc is
      now still in place but `BU::getProcessedValue()`
      does no longer fetch and pass the record, but
      only the uid and pid. This will therefore still
      enable most use cases, but does no longer slow
      down the backend.
      
      Resolves: #102698
      Related: #102616
      Related: #100855
      Releases: main, 12.4
      Change-Id: Ic52564fada13b47f5364df642acbf683538b0c21
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82248
      
      
      Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarOliver Bartsch <bo@cedev.de>
      b61dfba9
  9. Dec 22, 2023
  10. Dec 21, 2023
  11. Dec 20, 2023
  12. Dec 19, 2023
    • Stefan Bürk's avatar
      [TASK] Ensure removing dangling images works with podman · 9fa175c0
      Stefan Bürk authored
      The TYPO3 core `runTests.sh` contains the `-u` option to
      update the images and remove dangling images. Providing
      an image name and a `--filter` option is not supported
      by podman:
       > Error: cannot specify an image and a filter(s)
       and has not been discovered yet in the TYPO3
      core implementation yet.
      
      Both container runtimes `docker` and `podman` support filtering images
      using the `reference` filter option. Therefore, this change modifies
      the dangling image removal to use multiple filters
      
      To verify that filtering with two `--filter` options can be used with
      podman and docker, the following commands can be executed to list the
      set of local non-dangling images.
      
      Note: This example uses `dangling=false` instead of
      	  `dangling=true` (as in `runTests.sh`), since we expect
            most developers don't have dangling images yet.
      
      > podman images \
          --filter "reference=ghcr.io/typo3/core-testing-*" \
          --filter "dangling=false" --format "{{.ID}}"
      
      > docker images \
          --filter "reference=ghcr.io/typo3/core-testing-*" \
          --filter "dangling=false" --format "{{.ID}}"
      
      Resolves: #102697
      Releases: main, 12.4, 11.5
      Change-Id: I717d1aa229bdfb73c63aa5b2d46e1aff665544cb
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82235
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      9fa175c0
    • Garvin Hicking's avatar
      [BUGFIX] No "update storage index" FAL task fail with too many records · 390092d8
      Garvin Hicking authored
      The Indexer builds a large array of all actual files on a storage
      (identifiedFileUids). If many files exists, this array can get
      very large.
      
      This array was then passed to a QueryBuilder to fetch all
      records NOT IN that array. Since a NOT IN query is passed as a
      string to the database, it can exceed the string size allowed
      in a query, making the whole task fail.
      
      Since a NOT IN query cannot be chunked easily, the whole
      logic has been adapted in a different way.
      
      Instead of fetching a restricted list of database records,
      all records are fetched and iterated. Even with a million
      of sys_file_records of a single (!) storage this will
      perform alright, and be within practical usage scenarios.
      
      Each database record is then checked for a match in the
      large array of known records, and then execute the
      same logic as before.
      
      To benchmark the implications, the following test was run:
      
      Baseline:
      
      * sys_file with 50.736 entries
        * 16.912 marked as missing
        * 33.824 marked as existing
      * Filesystem with 8.771 actual files
      
      Tested setup via a script which:
      
      * Resets to baseline sys_file storage
      * Executes scheduler task "File Abstraction Layer: Update storage index
        (scheduler)"
      * Flags 41.965 files as missing, 8.771 as found.
      
      Script execution was performed 50 times, and a mean avery was calculated,
      once once with the patch in place, once without.
      
      Old variant (using NOT IN query): 11.787 seconds
      New variant (fetching all records): 12.0544 seconds
      
      On top of being within the same performance level, using the new method,
      no database exception will be provoked (see ticket).
      
      Resolves: #102295
      Releases: main, 12.4
      Change-Id: Id998d7cd062fe75aac738b896bfb307b51f5cef8
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82237
      
      
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      390092d8
    • Benjamin Franzke's avatar
      [TASK] Sanitize embedded HTML in Installation-Wide Configuration GUI · 5e2a9d4e
      Benjamin Franzke authored
      Input data is statically provided by EXT:core only, so there is no
      security issue known right now. This change is a preparation to avoid
      possible future security issues.
      
      Resolves: #102676
      Releases: main, 12.4, 11.5
      Change-Id: I49a7fdd250e8ce74fdde07ad305cbae7e4af8ec3
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82234
      
      
      Tested-by: default avatarOliver Bartsch <bo@cedev.de>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Reviewed-by: default avatarOliver Bartsch <bo@cedev.de>
      5e2a9d4e
    • Stefan Bürk's avatar
      [BUGFIX] Avoid type errors in `ResourceFactory` methods · 48d746eb
      Stefan Bürk authored
      With #92289 logic has been decoupled from `ResourceFactory`
      into the `StorageRepository`. As a side change, native php
      types have been added to a couple of methods.
      
      `StorageRepository->findByUid()` parameter type has been set
      to integer, which breaks the `null` fallback and retrieving
      the default storage `uid: 0` in `ResourceFactory` method
      `getStorageObjectFromCombinedIdentifier()`. Even worse is
      the fact that `getObjectFromCombinedIdentifier()` does not
      even try to cope with a invalid identifier provided.
      
      This change modifies `getObjectFromCombinedIdentifier()` and
      `getStorageObjectFromCombinedIdentifier` of `ResourceFactory`
      to cope with missing storage identifier by falling back to
      the default storage (`0`) with a shuffle of the exploded values.
      
      As a side-effect two PHPStan ignore patterns can be removed
      from the PHPStan baseline file.
      
      Used command(s):
      
        Build/Scripts/runTests.sh -s phpstanGenerateBaseline
      
      Resolves: #102692
      Related: #92289
      Releases: main, 12.4, 11.5
      Change-Id: I8ee9736839f59db7917cb49dd0d62af17ee28cda
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/82232
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      48d746eb
  13. Dec 18, 2023