1. 11 Dec, 2020 2 commits
  2. 22 Oct, 2020 1 commit
  3. 09 Oct, 2020 1 commit
    • Benni Mack's avatar
      [!!!][FEATURE] Refactor TER-download handling · 3f980fbb
      Benni Mack authored and Georg Ringer's avatar Georg Ringer committed
      This change is cleaning up a lot of Extension-Manager-code under-the-hood
      in order to solve some important topics related to t3x files, and how
      to fetch extensions from TER / Repositories.
      
      First of all, instead of having *one* API on how to retrieve extensions,
      an ExtensionDownloaderRemoteInterface is added which allows for downloading
      a single extension from a remote endpoint.
      
      In conjunction ListableRemoteInterface is used to fetch all available
      extensions from a remote (known as extensions.xml.gz currently).
      
      For both functionalities, the existing functionality from TER API is kept:
      * Downloading an extensions.xml.gz
      * Downloading an extension as a t3x file from a remote
      
      However, this is now placed into the TerExtensionRemote class.
      
      Custom remote configuration can be added in Services.yaml.
      
      This makes the previous "Repository" and its connected "Mirrors" functionality
      completely obsolete.
      
      Additional bugfixes:
      * Since TER does not have mirrors anymore, fetching those is not used anymore
      * The endpoints now use the correct URL from extensions.typo3.org instead of
      repositories.typo3.org (mirrors) and typo3.org (extensions.xml.gz)
      * Extensions do not longer depend on a "repository" but on a remote identifier
      (such as "ter"). The remotes are configured in Services.yaml and are registered
      through a compiler pass, based on the new `extension.remote` tag. This means
      that the "tx_extensionmanager_domain_model_repository" DB table is removed,
      and therefore does not need to be populated during upgrades / installation
      anymore. The Upgrade Wizard is also removed.
      
      In order to ship a new, more flexible download process of extensions,
      the TerExtensionRemote can be completely replaced by a third-party
      implementation (!) with its custom syntax.
      
      Updating the extension list now directly populates the database,
      and uses the BulkExtensionRepositoryWriter instead of the very complex
      ExtensionListUtility. This is tightly connected to the TerExtensionRemote
      and the XML Parser functionality.
      
      The XML Parser for parsing the mirrors.xml is now removed, and the
      XmlParserFactory heavily simplified.
      
      The "Remote" objects now know by themselves when they need to update
      and re-import their data. This centralizes the fetching of the remote data,
      and also moves the "import into DB" into two separate logic areas.
      
      This cleans up the EM code massively, and reduces the dependency hell of
      "utility" and "helper" classes.
      
      In addition, it is now visible how the TerExtensionRemote can be used in
      the Upgrade Wizards to download extensions via a cleaner API, which will
      become even easier in the future.
      
      Resolves: #92457
      Relates: #91665
      Releases: master
      Change-Id: I243d731dae9f39dfa7919c9fd69341c8c7b98c75
      Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65922
      
      
      Tested-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Tested-by: default avatarTYPO3com <noreply@typo3.com>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Tested-by: Georg Ringer's avatarGeorg Ringer <georg.ringer@gmail.com>
      Reviewed-by: Oliver Bartsch's avatarOliver Bartsch <bo@cedev.de>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Reviewed-by: Georg Ringer's avatarGeorg Ringer <georg.ringer@gmail.com>
      3f980fbb
  4. 07 Sep, 2020 1 commit
  5. 15 Apr, 2020 1 commit
  6. 14 Apr, 2020 1 commit
  7. 15 Jan, 2020 1 commit
  8. 17 Dec, 2019 1 commit
  9. 23 Nov, 2019 1 commit
  10. 07 Oct, 2019 1 commit
  11. 12 Jun, 2019 1 commit
  12. 15 Jan, 2019 1 commit
  13. 01 Oct, 2018 1 commit
  14. 09 Aug, 2018 1 commit
  15. 15 Jun, 2018 1 commit
  16. 11 May, 2018 1 commit
  17. 26 Apr, 2018 1 commit
  18. 29 Mar, 2018 1 commit
  19. 16 Mar, 2018 1 commit
  20. 13 Jan, 2018 1 commit
  21. 22 Aug, 2017 1 commit
    • Christian Kuhn's avatar
      [!!!][TASK] Extension manager: Drop "Download SQL Dump" · 15819601
      Christian Kuhn authored and Benni Mack's avatar Benni Mack committed
      The em in "Installed Extensions" has a button "Download SQL Dump"
      for all extensions that provide ext_tables.sql. On click, an sql
      dump file is sent.
      
      This feature is severely flawed:
      * Dumps of extensions that add fields to existing tables contain
        a 'drop table' of these tables, the 'import into' statements are
        broken and only (try to) add these fields again. This easily
        leads to hazard in DB if importing such a dump.
      * There are no charset specs and other meta data whatsoever in the dump.
      * The dump is not dbal compatible, field definitions and imports
        are incomplete.
      
      We assume nobody really used this feature in a sane way, even at
      this prominent position in em. The lack of bug reports to this
      broken feature and the fact there have been zero changes in this
      area since main em refactoring years ago support this view.
      
      There are way better options to retrieve proper data specifications:
      * The list module has a csv export
      * Ext:impexp supports export and import in a much better way
        including proper relation handling and other options.
      * Low level db exports and backups should be done on cli or
        with more powerful guis like phpmyadmin or other db engine
        specific tools.
      
      The feature is dropped without substitution.
      
      The v8 backport of this patch will just remove the button from
      the em list view, but keep all code.
      
      Change-Id: Ia027e7498c5464af04c49675987a696ee3a06070
      Resolves: #82148
      Releases: master, 8.7
      Reviewed-on: https://review.typo3.org/53764
      
      
      Tested-by: default avatarTYPO3com <no-reply@typo3.com>
      Reviewed-by: Georg Ringer's avatarGeorg Ringer <georg.ringer@gmail.com>
      Tested-by: Georg Ringer's avatarGeorg Ringer <georg.ringer@gmail.com>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      15819601
  22. 12 May, 2017 1 commit
  23. 28 Mar, 2017 1 commit
    • Wouter Wolters's avatar
      [TASK] Streamline return tags in phpdocs · eb049dba
      Wouter Wolters authored and Benni Mack's avatar Benni Mack committed
      The TYPO3 Core currently has no guidline how to handle phpdoc
      comments regarding @return annoations related to "void" and "null".
      
      In practice, these annotations have no additional value if no additional
      documentation is given.
      
      With this change, the php-cs-fixer will remove any unnecessary linebreaks
      within the comments above the @return annotation, as well as remove completely
      empty phpdoc comments because the @return annotation is removed.
      
      Please be aware, that once PSR-5 is accepted, this coding standard
      within the TYPO3 Core will change again, where there are currently
      some further proposal details like inheritance information.
      
      Resolves: #80454
      Releases: master
      Change-Id: Ie969d720684c0a75919fe5addd1c36ef5b12eb04
      Reviewed-on: https://review.typo3.org/51686
      
      
      Reviewed-by: Nicole Cordes's avatarNicole Cordes <typo3@cordes.co>
      Tested-by: Nicole Cordes's avatarNicole Cordes <typo3@cordes.co>
      Reviewed-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      Tested-by: Benni Mack's avatarBenni Mack <benni@typo3.org>
      eb049dba
  24. 30 Aug, 2016 1 commit
  25. 28 Jan, 2016 1 commit
  26. 20 Nov, 2015 1 commit
  27. 08 Oct, 2015 1 commit
  28. 06 Oct, 2015 1 commit
  29. 18 Aug, 2015 1 commit
  30. 15 Aug, 2015 1 commit
  31. 06 Aug, 2015 1 commit
  32. 15 Jul, 2015 1 commit
  33. 13 Jul, 2015 1 commit
  34. 10 Jun, 2015 1 commit
  35. 31 Jan, 2015 1 commit
  36. 29 Jan, 2015 1 commit
  37. 18 Jan, 2015 1 commit
  38. 29 Dec, 2014 1 commit
  39. 13 Dec, 2014 1 commit