Skip to content
Snippets Groups Projects
  1. Jul 06, 2023
  2. Mar 14, 2023
  3. Oct 14, 2022
  4. Oct 01, 2022
  5. Sep 06, 2022
  6. Aug 23, 2022
    • Benjamin Franzke's avatar
      [TASK] Migrate from yarn to npm · 6575656a
      Benjamin Franzke authored
      Yarn has been added to TYPO3 back in 2017 because
      npm shrinkwrap files were not stable and package-lock.json
      and `npm ci` not yet established.
      
      By now the yarn version in TYPO3 (v1) got outdated
      and an update to yarn v3 would be required sooner
      or later. The update to yarn v3 brings quite some
      problems for the TYPO3 codebase:
      
       - Yarn v3 is executed/proxied through yarn v1
         (installed on the developer machine) – therefore the
         yarn v3 executable needs to be tracked within git.
         See https://yarnpkg.com/cli/set/version#details
      
       - Yarn v3 pulls in @types/node (through the "got" package) for
         unknown reasons, causing clashes with TypeScript declarations
         for requirejs (window.require vs node's require())
      
      As package-lock.json is solid thesedays, there is no real
      need to depend on yarn anymore. We basically switch
      to npm because that switch is way more straightforward than
      migrating to yarn v3 and it removes one dependency.
      
      Note that `npm install` properly honors `package-lock.json`
      these days (no implicit version upgrades due to the lock file),
      but is faster than `npm ci`, therefore it is used in `grunt build`
      and runTests.sh for all developer oriented build-targets.
      All CI checks use `npm ci` to enfore a clean install.
      
      We set the required npm verson to v8 in order to use the
      newest package-lock.json v3 format and .nvmrc is updated to
      suggest the recent nodejs v16 LTS release, as npm v8 is
      shipped with nodejs v16 by default.
      
      Note that node v14 may still be used to compile packages, but
      npm v8 is needed for dependency installation (installable
      via `npm install -g npm` in node v14 installations). For that
      reason the CI docker images are updated to use nodejs v16
      instead of nodejs v14, see following ticket for details:
      https://git.typo3.org/typo3/CI/testing-infrastructure/-/issues/3
      
      Executed Commands:
      
        cd Build/
        # be sure the node_modules folder dir and is updated
        yarn install
        sed -i 's/"yarn": "^1.22.0"/"npm": ">=8.0.0 <9.0.0"/' package.json
        rm -f package-lock.json
        # npm install >= v7 can read yarn.lock and will create
        # package-lock.json as a result
        npm install
        git add package-lock.json
        git rm -f yarn.lock
        npm remove "jquery-ui"
        # The use of `git@` in the HTTPS URLs is a workaround for NPM's
        # auto-rewrite that results in an SSH URL being used instead,
        # which fails to install in CI.
        # See npm/cli#2610 for more information.
        npm install "git+https://git@github.com/jquery/jquery-ui#1.11.4"
        # Fix fsevents not being installed
        npm install rollup@~2.32.0
        # Explicitly pull in popperjs which would be included by npm's
        # resolver in npm >8.5
        npm install @popperjs/core@^2.11.6
        # Let npm build a new, fully clean tree, without old yarn cruft
        rm -rf node_modules/
        npm install
        grunt default
      
      Resolves: #96355
      Related: #83038
      Releases: main
      Change-Id: I88c1ecb1b12dcd117ac4200307af72d330c76d27
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/72642
      
      
      Tested-by: default avatarBenni Mack <benni@typo3.org>
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      Tested-by: default avatarBenjamin Franzke <bfr@qbus.de>
      Reviewed-by: default avatarBenni Mack <benni@typo3.org>
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      Reviewed-by: default avatarBenjamin Franzke <bfr@qbus.de>
      6575656a
  7. Jul 31, 2022
    • Stefan Bürk's avatar
      [TASK] Upgrade to codeception/codeception 5.x · 816476c2
      Stefan Bürk authored
      Codeception released new major version 5, which
      unblocks upgrading to symfony 6 components.
      This patch raises codeception only, thus acting as a
      pre-patch to raise symfony requirements.
      
      Codeception 5 is hard to impossible with core v11,
      so this patch is v12 only: Codeception 5 requires
      PHP 8.0, so we'd have to support both 4 and 5 in
      v11 to allow testing with older PHP versions. This
      would result in various headaches since some API
      changes in codeception 5 are hard breaking in PHP,
      especially due to changed class property type hints.
      We'll thus keep codeception 4 in v11 and go with
      codeception 5 in v12.
      
      Minor acceptance test related adaptions are needed:
      
      * Replaced config option `path.log` with `path.output`
      * Added proper property type because of inheritance to
        codeception setup classes
      * Ensure method return type compatibility
      * Use `actor`instead of `class name` in suite config
      * Create acceptance split files in proper folder to
        ensure group filtering keeps working. Adjust clean
        up scripts and gitignore for this
      
      Used commands:
      
      > composer req --dev -w \
        typo3/testing-framework:dev-main \
        codeception/codeception:^5.0.0 \
        codeception/module-asserts:^3.0.0 \
        codeception/module-cli:^2.0.0 \
        codeception/module-filesystem:^3.0.0 \
        codeception/module-webdriver:^3.1.2 \
        codeception/lib-asserts:^2.0.0
      
      Resolves: #98047
      Releases: main
      Change-Id: I5cea60c2641988cc032b30ed1fbe3d8b0ed3b3d1
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/75317
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarOliver Klee <typo3-coding@oliverklee.de>
      Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      816476c2
  8. Oct 19, 2021
    • Christian Kuhn's avatar
      [TASK] Do not cache phpunit results · 589df09c
      Christian Kuhn authored
      phpunit has a default-enabled feature to write test
      result to a cache file. phpunit however has no option
      to only run failed tests since those tests may have
      an @depends annatation and its hard for phpunit to
      sort this out. The cache file is of rather little
      use and mostly only pollutes the filesystem in real
      life.
      
      When developing core tests, developer typically
      use a filter or a path constraint to execute a sub set
      of tests only.
      
      Additionally, with multiple phpunit .xml files in
      one directory, the cache file overrides itself when
      different suites are executed.
      
      The patch disables that cache file by default in
      phpunit xml files.
      
      If anyone still wants to run the test suite and have
      tests that failed executed first, the option can be
      enabled on a per-use basis, example using runTests.sh:
      
        # Run suite and create cache file
        Build/Scripts/runTests.sh -e '--cache-result'
        # Run tests that failed first and update cache file
        Build/Scripts/runTests.sh -e '--cache-resul...
      589df09c
    • Jochen Roth's avatar
      [TASK] Add acceptance test for sitemap · 2e1d68b9
      Jochen Roth authored
      To make sure the sitemap works as expected
      a acceptance test has been added for
      the sitemap overview and detail view.
      
      Resolves: #94903
      Releases: master
      Change-Id: Ia747e4103aec5678300c0f91721bbef14e27e1d8
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/70639
      
      
      Tested-by: default avatarcore-ci <typo3@b13.com>
      Tested-by: default avatarStefan Bürk <stefan@buerk.tech>
      Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      Reviewed-by: default avatarStefan Bürk <stefan@buerk.tech>
      Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      2e1d68b9
  9. Aug 13, 2021
  10. Aug 06, 2021
    • Christian Kuhn's avatar
      [TASK] Merge phpunit setup files to Build/phpunit · 49b0077b
      Christian Kuhn authored
      typo3/testing-framework ships default .xml and
      bootstrap files for phpunit unit and functional tests.
      
      They are however quite hard to maintain since the
      testing-framework supports multiple core versions at
      once, but core occassionally needs version specific
      settings.
      
      The patch copies the files from the testing-framework
      to Build/phpunit and adapts core usages.
      
      The files within testing-framework will be kept, but
      will receive an additional "these are boilerplates,
      consider copying them to your extension" hint for
      extension developers.
      
      The local .xml files are now:
      * Compatible with phpunit 9
      * Let tests fail if phpunit marks a test with warning.
        With this enabled, we would have seen the issues
        fixed with #94724 and #94723 with initial #94706
        already. Good to do that now.
      
      Resolves: #94725
      Related: #94706
      Related: #94723
      Related: #94724
      Releases: master
      Change-Id: I9fef75a972759d26d4e0e3286142cacf181c33d2
      Reviewed-on: https://review.typo3.org/c/Pack...
      49b0077b
  11. Feb 24, 2021
  12. Feb 15, 2021
  13. Jan 25, 2021
  14. May 26, 2020
  15. Apr 05, 2019
  16. Oct 25, 2018
  17. Sep 18, 2018
  18. Aug 10, 2018
  19. Jul 07, 2018
    • Davert's avatar
      [TASK] Refactor acceptance tests · aab39102
      Davert authored
      typo3/testing-framework got a major release:
      composer update typo3/testing-framework ^4.0
      
      * codeception acceptance tests now live in a proper php namespace
      * merged installation suites yml files into one
      * installer tests are now one suite with different environment settings
      * aligned with changes in typo3/testing-framework
      * renamed Acceptance test suite to Backend test suite
      * removed Admin/Editor steps, replaced with useExistingLogin('role')
      
      Resolves: #85472
      Releases: master
      Change-Id: Ia049b43f5f9f645dddb509bde557ad83a7ac9023
      Reviewed-on: https://review.typo3.org/57461
      
      
      Tested-by: default avatarTYPO3com <no-reply@typo3.com>
      Reviewed-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      Tested-by: default avatarChristian Kuhn <lolli@schwarzbu.ch>
      aab39102
  20. Jun 22, 2018
  21. Aug 14, 2017
  22. Jul 31, 2017
  23. May 20, 2017
  24. Feb 05, 2017
  25. Jan 27, 2017
  26. Nov 07, 2016
  27. Oct 24, 2016
  28. Oct 10, 2016
  29. Jun 08, 2016
  30. Mar 03, 2016
  31. Aug 11, 2015
  32. Jul 16, 2015
  33. Jul 15, 2015
  34. Apr 02, 2015
  35. Mar 28, 2015
  36. Mar 26, 2015
  37. Mar 25, 2015
    • Benjamin Mack's avatar
      [!!!][TASK] Use typo3/contrib/vendor/ instead of Packages/ · 637ccaa2
      Benjamin Mack authored
      In a result of best practices with composer as well as taking
      the tarball distributions (typo3_src.zip) into account, the
      directory Packages/ is not necessarily optimal now for either
      development and shipping a package.
      
      Distributions (like the composer-installer for TYPO3) can still
      use the Packages/ directory in their webroot for other
      packages.
      
      This means: The TYPO3 source will not contain any
      third party library anymore in its GIT repository but instead
      these are installed via composer.
      
      For development purposes this means that a "composer install"
      command will install all required dev-dependencies into
      typo3/contrib/vendor/ which is now ignored by git and no
      changes are installed anymore.
      
      For the packaging process a "composer install --no-dev -o" will
      be executed when building the tarball and zip files on each
      release, downloading the necessary third-party libraries directly
      into "typo3/contrib/vendor/".
      
      Existing developer installations need to run
      "rm -rf typo3/contrib/vendor/ bin/ Packages/Libraries/ composer.lock"
      inside the typo3 repository directory and do a "composer install"
      again after applying this patch.
      
      This way, there is no conflict between autoloader as well as the
      Packages/ directory anymore for the TYPO3 CMS Core.
      
      The typo3/contrib/vendor/ folder is completely removed from
      Git as it is now handled via composer.
      
      Resolves: #66001
      Releases: master
      Change-Id: I70ff4e1427f2b9d888b7de336e577851116b93cf
      Reviewed-on: http://review.typo3.org/38138
      
      
      Reviewed-by: default avatarMarkus Klein <klein.t3@reelworx.at>
      Tested-by: default avatarMarkus Klein <klein.t3@reelworx.at>
      637ccaa2