Difference between revisions of "Documentation/Labs/AutomaticUpdateAndInstallationFramework"

From Slicer Wiki
Jump to: navigation, search
(some notes from a discussion with Dennis)
(add some ideas and notes for self-update)
Line 43: Line 43:
 
* Dennis' plan was to use Python scripting, but using C++/Qt would also be a good option
 
* Dennis' plan was to use Python scripting, but using C++/Qt would also be a good option
  
== Proposed Changed ==
+
== Proposed Changes ==
 
* a new (third) tab in the extension manager, which should list all previously installed extensions
 
* a new (third) tab in the extension manager, which should list all previously installed extensions
 
* view should have columns:
 
* view should have columns:
Line 66: Line 66:
 
NA
 
NA
  
 +
 +
= Use case: Self update of Slicer =
 +
 +
== Proposed Changes ==
 +
 +
* Display list of nightly builds in a web view
 +
* Selecting a new version should automate:
 +
** download
 +
** auto-start installer, with extra information for the next steps
 +
** auto-start new Slicer
 +
** possibly, directly going to the above extensions-reinstallation tab (maybe not even showing the main window before)
 +
* stuff that is there, or might be useful
 +
** cross-platform re-start functionality is there (as part of extension installation)
 +
** probably, at least on Win/Linux, "start Slicer after installation" is possible
 +
** unattended installation on any platform(s)?
  
 
= Notes =
 
= Notes =

Revision as of 14:13, 9 August 2016

Home < Documentation < Labs < AutomaticUpdateAndInstallationFramework

Overview

This page serves as roadmap for the Slicer Automatic Update and Installation framework.

Use cases:

  • New Slicer version installed locally should be updated with the list of extensions previously installed.
  • Self update of Slicer

Terminology

  • User Interface
    • Extensions Manager is a Slicer dialog allowing the user to Search, Install, Remove and disable extensions.
    • ExtensionWizard module: This is a Slicer module providing a graphical interface within Slicer to aid in the creation of Slicer extensions.



Convention

Tasks listed in this page can be associated with any of these state:

  • ToBeDone
  • Check.svg Completed
  • In progress

Use case: Keep track of the installed extensions across version

The goal here is to simplify the number of steps allowing people to reinstall extensions that were used in a previous installation.

Current Process

  • Dennis added a third tab in the extension manager, using Qt Designer
  • extensionsInstallPath() returns platform-specific path to "NA-MIC" folder which has "Extensions-2456" subfolders for all installed Slicer versions
    • on Linux, that's in ~/.config/NA-MIC
    • on Windows, in AppData/Roaming
    • on OS X, seems to be a subdirectory of the application bundle
  • Dennis' idea: look for all Extensions-* subfolders – how to do that on OS X properly?
  • Dennis' plan was to use Python scripting, but using C++/Qt would also be a good option

Proposed Changes

  • a new (third) tab in the extension manager, which should list all previously installed extensions
  • view should have columns:
    • extension name
    • Slicer revisions / last revision in which the extension was installed
    • checkbox for batch installation, pre-checked from latest previous Slicer revision
    • rows with installed extensions could be grayed out
  • below that, a button for installing the checked extensions

Progress

  • Extract list of extensions installed. Look at npm for the format. ToBeDone
  • Extension manager:
    • Update ExtensionManageModel API so that "list" can be processed ToBeDone
    • Update entry "Install Extension from file" to "Install Extensions from file" and support "tar.gz", ".json" ToBeDone

Meta issue:

  • 2779: Mechanism to keep track of the installed extensions across version ToBeDone

Completed

NA


Use case: Self update of Slicer

Proposed Changes

  • Display list of nightly builds in a web view
  • Selecting a new version should automate:
    • download
    • auto-start installer, with extra information for the next steps
    • auto-start new Slicer
    • possibly, directly going to the above extensions-reinstallation tab (maybe not even showing the main window before)
  • stuff that is there, or might be useful
    • cross-platform re-start functionality is there (as part of extension installation)
    • probably, at least on Win/Linux, "start Slicer after installation" is possible
    • unattended installation on any platform(s)?

Notes

2016.05.03

  • Serialize what is installed in you current Slicer