Epic #63909

Updated by Nicole Cordes about 5 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