Epic #63909

Refactor Extension Manager

Added by Andreas Fernandez almost 7 years ago. Updated about 4 years ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Extension Manager
Start date:
2014-12-15
Due date:
% Done:

100%

Estimated time:
(Total: 0.00 h)
Sprint Focus:

Description

This issue collects all specs for a new EM.
It should run on PHP5.3+ so we can bundle it for 6.2 at a later stage.

Desired functionality

From the Backend

  • Enable extension
  • Disable extension
  • Remove extension from disk
  • Get extension from remote repository (also a specific version)
  • Resolve dependencies on download
  • Review changes (before install/update and after installation)
  • Upload Extension ZIP via Browser

From Command Line

  • Enable Extension
  • Disable Extension
  • Get extension from remote repository
  • Resolve dependencies on install
  • Update all extensions
  • Fetch lists of installed extensions and available updates

General

  • It should be possible to import data into tables that do not belong to the extension (#23965)
  • It should be possible to sign packages (#30594)
  • If an extension get excluded from updates, the locallang files must not be updated (#54287)
  • Updating an extension must trigger an entry in sys_log (#19992)
  • Should clear opcode caches in install/uninstall (#56969)
  • Should clear classes cache "by package" if possible (#56323)
  • Updating an extension should create a backup first (#20664, #49297)
  • Issue an error message when offline (#43080)
  • Updating dependencies should ask per update (#50347)

UI

  • Get List of all extensions that offer updates (no matter if uploaded manually or installed from TER)
  • Offer the ability to search for an extension (but exclude meta-fields like "state")
  • Set Focus to the searchfield onload (#29628)
  • Reload List of Extensions after updating an extension (#48867)
  • List of Extensions should be sortable and provide indicators of the current sorting state (#55140)
  • Filter extentions by (#43177 / #37382 / #30508 / #54997):
    • active
    • inactive
    • has update available
    • state (alpha/beta/stable)
  • Remote Extension list should not show installed extensions
  • UI should show dependencies and conflicts
  • UI should allow overriding errors (dependencies/version-requirements; "I know what I'm doing"-mode)
  • UI should allow search by author and/or category
  • UI should show reverse dependencies (installed extensions only) (#17573)
  • UI should show the last update from TER and when the extension has been installed (#25202)
  • Extension updates with security issues should be moved to the top (#37199)
  • Extensions with security updates should provide a link to the bulletin (#37156)
  • Refactor messages in confirmation dialogs, move HTML from PHP and locallang.xlf into Fluid templates
  • UI should paginate search results in "Get Extensions"
  • Offer possibility to show changelog prior to installing an extension (#43178)

Directory Layout

 |-- Packages
 |   |-- Common
 |   |   |-- my_global_ext
 |   |-- Application
 |   |   |-- tt_news
 |   |-- Framework
 |   |   |-- workspaces
 |   |-- Library
 |   |   |-- doctrine
 |   |       |-- dbal
 |   |       |-- common
 |-- Web (public Webroot)
 |-- composer.json

Subtasks

Task #63910: EXT:extensionmanager: Port javascript to RequireJSClosed2014-12-15

Actions

Also available in: Atom PDF