Epic #63909

Updated by Nicole Cordes about 4 years ago

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.

h2. Desired functionality

h3. 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

h3. 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

h3. General

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

h3. 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-) (#-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-) (#-55140-)
* Filter extentions by (-#43177- (#-43177- / -#37382- #-37382- / -#30508- #-30508- / -#54997-): #-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-) (#-17573-)
* UI should show the last update from TER *and* when the extension has been installed (-#25202-) (#-25202-)
* Extension updates with security issues should be moved to the top (-#37199-) (#-37199-)
* Extensions with security updates should provide a link to the bulletin (-#37156-) (#-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-) (#-43178-)

h3. Directory Layout

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

Back