View Issue Details

IDProjectCategoryView StatusLast Update
0002089Slicer4Core: Extensionspublic2018-03-02 11:06
Reporterjcfr Assigned Tomatthew-woehlke  
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Product Version 
Target VersionSlicer 4.4.0Fixed in VersionSlicer 4.4.0 
Summary0002089: Either on-demand or when slicer starts, check if there are available extensions update.
Description

It should be possible to configure in the settings if Slicer should check for available extension when it starts.

The button in the extension manager could propose an "Update" button.
The "install tab" would display only the "Update button" whereas the "manage tab" would display both "uninstall" and "update" button.

TagsNo tags attached.

Relationships

related to 0002088 closedjcfr Indicate the user when extensions is incompatible 
related to 0003784 closedmatthew-woehlke Log info to the console when updating extension 

Activities

jcfr

jcfr

2014-06-17 17:13

administrator   ~0012087

Current work-in-progress is available here: https://github.com/mwoehlke-kitware/Slicer/tree/REBASE-2089-update-extensions

jcfr

jcfr

2014-06-30 14:52

administrator   ~0012115

ENH: Initial refactoring of extension manager UI

See http://viewvc.slicer.org/viewvc.cgi/Slicer4?view=revision&revision=23398

matthew-woehlke

matthew-woehlke

2014-07-23 13:41

developer   ~0012238

Current WIP: https://github.com/mwoehlke-kitware/Slicer/tree/2089-update-extensions

As of writing, the UI and downloading should be implemented; the only piece known missing is to actually install the update on restart.

jcfr

jcfr

2014-07-29 16:21

administrator   ~0012289

Fixed in r23497-23504

Related Changesets

Import 2017-06-07 23:51:09: master fc739771

2014-06-30 17:18:28

mwoehlke

Details Diff
ENH: Initial refactoring of extension manager UI

Refactor right corner area of extension manager into a .ui file, similar
to how the left corner area (navigation buttons) is already handled.
This allows us to have separate search widgets per tab (allowing for
independent search states, if/when support for searching installed
extensions is added), and also to add a 'configure' button (which we do)
that provides independent menus per tab.

The menus are created, but not yet functional. Icons (from the Public
Domain Tango theme) are also added. (The 'check for updates' icon uses
the theme pixmaps. Tango does not provide a 'configure' icon as such, so
the modified svg from which the pixmaps were generated is also being
committed.)

Issue 0002089
Issue 0002145

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23398 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTGUI/CMakeLists.txt Diff File
add - Base/QTGUI/Resources/Icons/Large/SlicerCheckForUpdates.png Diff File
add - Base/QTGUI/Resources/Icons/Large/SlicerConfigure.png Diff File
add - Base/QTGUI/Resources/Icons/Medium/SlicerCheckForUpdates.png Diff File
add - Base/QTGUI/Resources/Icons/Medium/SlicerConfigure.png Diff File
add - Base/QTGUI/Resources/Icons/Scalable/SlicerConfigure.svg Diff File
add - Base/QTGUI/Resources/Icons/Small/SlicerCheckForUpdates.png Diff File
add - Base/QTGUI/Resources/Icons/Small/SlicerConfigure.png Diff File
add - Base/QTGUI/Resources/Icons/XLarge/SlicerCheckForUpdates.png Diff File
add - Base/QTGUI/Resources/Icons/XLarge/SlicerConfigure.png Diff File
add - Base/QTGUI/Resources/Icons/XSmall/SlicerCheckForUpdates.png Diff File
add - Base/QTGUI/Resources/Icons/XSmall/SlicerConfigure.png Diff File
mod - Base/QTGUI/Resources/UI/qSlicerExtensionsActionsWidget.ui Diff File
mod - Base/QTGUI/Resources/UI/qSlicerExtensionsManagerWidget.ui Diff File
add - Base/QTGUI/Resources/UI/qSlicerExtensionsToolsWidget.ui Diff File
mod - Base/QTGUI/qSlicerExtensionsManagerWidget.cxx Diff File

Import 2017-06-07 23:51:09: master 3c9c4269

2014-07-29 19:23:56

mwoehlke

Details Diff
ENH: Remember if updates are automatic

Store if the user has enabled automatic extension updates in QSettings.

Issue 0002089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23497 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTGUI/qSlicerExtensionsManagerWidget.cxx Diff File

Import 2017-06-07 23:51:09: master fc04bd35

2014-07-29 19:23:57

mwoehlke

Details Diff
ENH: Adding API to check for extension updates

Add some initial API to manage scheduling extensions for update, similar
to how we schedule extensions for uninstall (as the implementation will
necessarily be similar). For now, the settings management should be
working; the rest (including a checkForUpdates() method) is mostly
placeholder that is needed to start implementing UI and underlying
logic.

Issue 0002089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23498 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTCore/qSlicerCoreApplication.cxx Diff File
mod - Base/QTCore/qSlicerExtensionsManagerModel.cxx Diff File
mod - Base/QTCore/qSlicerExtensionsManagerModel.h Diff File
mod - Base/QTGUI/qSlicerExtensionsManagerWidget.cxx Diff File
mod - Base/QTGUI/qSlicerExtensionsManagerWidget.h Diff File

Import 2017-06-07 23:51:09: master a816c1b3

2014-07-29 19:23:58

mwoehlke

Details Diff
ENH: Start adding logic to check for updates

Add logic to issue server API calls to check for updates to extensions,
and to manage the same. This is still missing anything to actually
download or apply said updates.

Issue 0002089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23499 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTCore/qSlicerExtensionsManagerModel.cxx Diff File
mod - Base/QTCore/qSlicerExtensionsManagerModel.h Diff File

Import 2017-06-07 23:51:09: master 4568f0d4

2014-07-29 19:23:59

mwoehlke

Details Diff
ENH: Download updates

Refactor update download logic, introducing a new 'task' class to
manager downloads, rather than trying everything through the network
manager's signals. Also, move the code to start such a task to a helper
function. Leverage these to hook up downloading of updates, now that
tasks can have different completion handlers assigned. Write update
archive file and scheduling information on update download completion.

Issue 0002089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23500 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTCore/CMakeLists.txt Diff File
add - Base/QTCore/qSlicerExtensionDownloadTask.cxx Diff File
add - Base/QTCore/qSlicerExtensionDownloadTask.h Diff File
mod - Base/QTCore/qSlicerExtensionsManagerModel.cxx Diff File
mod - Base/QTCore/qSlicerExtensionsManagerModel.h Diff File

Import 2017-06-07 23:51:09: master 8c588991

2014-07-29 19:24:02

mwoehlke

Details Diff
ENH: Hook up UI for updating extensions

Hook up update availability and download progress reporting in extension
model. Add UI to extension manager to report update availability and
allow requesting updates and canceling such requests. This brings update
management almost to full functionality, missing only to actually
install the update on restart.

Issue 0002089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23502 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTCore/qSlicerExtensionsManagerModel.cxx Diff File
mod - Base/QTCore/qSlicerExtensionsManagerModel.h Diff File
mod - Base/QTGUI/Resources/UI/qSlicerExtensionsButtonBox.ui Diff File
mod - Base/QTGUI/qSlicerExtensionsManageWidget.cxx Diff File
mod - Base/QTGUI/qSlicerExtensionsManageWidget.h Diff File

Import 2017-06-07 23:51:09: master 33660ef6

2014-07-29 19:24:03

mwoehlke

Details Diff
BUG: Improve UI update scheduling

Improve update handling to enable 'restart' button when appropriate due
to update-related actions. Disable updating of extensions scheduled to
be uninstalled (the model already does this, but having the button
enabled makes for a confusing user experience where clicking the update
button does nothing).

Issue 0002089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23503 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTGUI/qSlicerExtensionsManageWidget.cxx Diff File
mod - Base/QTGUI/qSlicerExtensionsManagerDialog.cxx Diff File

Import 2017-06-07 23:51:09: master a0e98f04

2014-07-29 19:24:04

mwoehlke

Details Diff
ENH: Implement installation of updates

Implement installation of updates to extensions (consisting of first
removing the old version, then installing the new version). Note that
this will attempt to install new dependencies as well. Also, change
handling of update downloads to additionally write the metadata for the
update (in addition to the archive), as we'll want it when we install
the update and need to persist it across a restart.

Issue 0002089

git-svn-id: http://svn.slicer.org/Slicer4/trunk@23504 3bd1e089-480b-0410-8dfb-8563597acbee
mod - Base/QTCore/qSlicerExtensionsManagerModel.cxx Diff File
mod - Base/QTCore/qSlicerExtensionsManagerModel.h Diff File

Issue History

Date Modified Username Field Change
2012-05-18 11:17 jcfr New Issue
2012-05-18 11:17 jcfr Status new => assigned
2012-05-18 11:17 jcfr Assigned To => jcfr
2012-05-18 11:17 jcfr Relationship added related to 0002088
2012-05-18 11:18 jcfr Description Updated
2012-05-18 11:21 jcfr Target Version => Slicer 4.2.0 AHM Summer 2012
2012-08-20 10:11 jcfr Target Version Slicer 4.2.0 - Feature freeze Sept 1st 2012 => Slicer 4.2.5
2012-08-21 09:40 jcfr Target Version Slicer 4.2.5 => Slicer 4.3.0
2013-08-30 13:57 jcfr Target Version Slicer 4.3.0 => Slicer 4.3.1
2013-09-24 11:14 jcfr Target Version Slicer 4.3.1 => Slicer 4.3.2
2014-03-06 10:15 nicole Target Version Slicer 4.3.2 => Slicer 4.4.0
2014-04-07 15:02 jcfr Assigned To jcfr => matthew-woehlke
2014-06-04 13:16 jcfr Target Version Slicer 4.4.0 => Slicer 4.5.0-1
2014-06-17 17:13 jcfr Note Added: 0012087
2014-06-30 14:52 jcfr Note Added: 0012115
2014-07-23 13:41 matthew-woehlke Note Added: 0012238
2014-07-29 16:21 jcfr Note Added: 0012289
2014-07-29 16:21 jcfr Status assigned => resolved
2014-07-29 16:21 jcfr Fixed in Version => Slicer 4.4.0
2014-07-29 16:21 jcfr Resolution open => fixed
2014-07-29 16:21 jcfr Target Version Slicer 4.5.0-1 => Slicer 4.4.0
2014-07-29 16:24 jcfr Relationship added related to 0003784
2017-06-10 08:51 Changeset attached => Slicer master a0e98f04
2017-06-10 08:51 Changeset attached => Slicer master 33660ef6
2017-06-10 08:51 Changeset attached => Slicer master 8c588991
2017-06-10 08:51 Changeset attached => Slicer master 4568f0d4
2017-06-10 08:51 Changeset attached => Slicer master a816c1b3
2017-06-10 08:51 Changeset attached => Slicer master fc04bd35
2017-06-10 08:51 Changeset attached => Slicer master 3c9c4269
2017-06-10 08:51 Changeset attached => Slicer master fc739771
2018-03-02 11:06 jcfr Status resolved => closed