Difference between revisions of "Documentation/Labs/AutomaticUpdateAndInstallationFramework"
From Slicer Wiki
Hans.Meine (talk | contribs) (some notes from a discussion with Dennis) |
Hans.Meine (talk | contribs) (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 | + | == 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 < AutomaticUpdateAndInstallationFrameworkContents
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.
- Command line
- ExtensionWizard is a command line tool to simplify the process of creating and contributing extensions.
- API
- ExtensionsManagerModel: This is the backend of the Extensions Manager displayed to the user
- Utilities/Scripts/SlicerWizard: This is a python package used in the ExtensionWizard
Convention
Tasks listed in this page can be associated with any of these state:
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
- Ability to ask the installer (or Slicer) to install other extensions
- Would it make sense to transition to http://doc.qt.io/qtinstallerframework/ ?
- Serialize what is installed in you current Slicer
- Update of installed extensions: