Bug 426997

Summary: Automatic upgrading
Product: [Applications] digikam Reporter: Tom de Geus <tom>
Component: Bundle-MacOSAssignee: Digikam Developers <digikam-bugs-null>
Status: RESOLVED FIXED    
Severity: wishlist CC: caulier.gilles, hackintoshhd, metzpinguin
Priority: NOR    
Version: 7.1.0   
Target Milestone: ---   
Platform: macOS (DMG)   
OS: macOS   
Latest Commit: Version Fixed In: 7.2.0
Sentry Crash Report:

Description Tom de Geus 2020-09-26 15:21:13 UTC
SUMMARY

It would be grate to have automatic upgrading (either by pop-up or by manual button).

Furthermore, it would be great to have upgrade instructions in the docs.
Comment 1 Maik Qualmann 2020-09-26 20:23:39 UTC
I will never program an automatic upgrade notification. I hate it when a program annoys me with an upgrade notification when it starts. We can talk about a manual function in the menu. An automatic upgrade similar to Firefox is an absolute no go for me.

Maik
Comment 2 Tom de Geus 2020-09-27 11:55:53 UTC
I button would be perfect!!

The automatic prompt was coming from the great failure of macOS of not having a package manager, leaving upgrading up to each and every app.
Comment 3 caulier.gilles 2021-01-03 14:32:39 UTC
Clementine audio player has a similar function not intrusive. A menu to active to check for update.

To check for stable update, web site git repository has a version release ID set in this file:

https://invent.kde.org/websites/digikam-org/-/blob/master/data/release.yml

From https://www.digikam.org/download/, we have links with versions:

<a title="Download digiKam 7.1.0 64-bit AppImage" href=https://download.kde.org/stable/digikam/7.1.0/digikam-7.1.0-x86-64.appimage.mirrorlist>64-bits</a>

<a title="Download digiKam 7.1.0 32-bit AppImage" href=https://download.kde.org/stable/digikam/7.1.0/digikam-7.1.0-i386.appimage.mirrorlist>32-bits</a>

<a title="Download digiKam 7.1.0 64-bit for Windows" href=https://download.kde.org/stable/digikam/7.1.0/digiKam-7.1.0-Win64.exe.mirrorlist>64-bits</a>

<a title="Download digiKam 7.1.0 32-bit for Windows" href=https://download.kde.org/stable/digikam/7.1.0/digiKam-7.1.0-Win32.exe.mirrorlist>32-bits</a>

<a title="Download digiKam 7.1.0 64-bit for macOS" href=https://download.kde.org/stable/digikam/7.1.0/digiKam-7.1.0-MacOS-x86-64.pkg.mirrorlist>64-bits</a>

Gilles Caulier
Comment 4 caulier.gilles 2021-01-04 13:45:18 UTC
Git commit e2cef397e4426343a91dafeff9b9cbad279d7a36 by Gilles Caulier.
Committed on 04/01/2021 at 13:44.
Pushed by cgilles into branch 'master'.

First step to get online release version from digikam.org web site

M  +1    -0    core/libs/widgets/CMakeLists.txt
A  +121  -0    core/libs/widgets/mainview/onlineversionchecker.cpp     [License: GPL (v2+)]
A  +70   -0    core/libs/widgets/mainview/onlineversionchecker.h     [License: GPL (v2+)]

https://invent.kde.org/graphics/digikam/commit/e2cef397e4426343a91dafeff9b9cbad279d7a36
Comment 5 caulier.gilles 2021-01-05 06:06:03 UTC
Git commit c245cc03ab7d00d5d034705b899ec2c2bf3d302b by Gilles Caulier.
Committed on 05/01/2021 at 06:02.
Pushed by cgilles into branch 'master'.

Online version checker ready to use from GUI.

M  +18   -21   core/libs/widgets/mainview/onlineversionchecker.cpp
M  +7    -9    core/libs/widgets/mainview/onlineversionchecker.h

https://invent.kde.org/graphics/digikam/commit/c245cc03ab7d00d5d034705b899ec2c2bf3d302b
Comment 6 caulier.gilles 2021-01-05 10:46:47 UTC
Git commit 80ea55e48f2f6d6f613dd88e9458cab65844e8a3 by Gilles Caulier.
Committed on 05/01/2021 at 10:45.
Pushed by cgilles into branch 'master'.

New Online Version dialog to process version check in backaground and report result to end user.
If a new version is available, digikam.org download page is open in a separated web browser.

M  +1    -0    core/libs/widgets/CMakeLists.txt
M  +29   -16   core/libs/widgets/mainview/onlineversionchecker.cpp
M  +6    -5    core/libs/widgets/mainview/onlineversionchecker.h
A  +126  -0    core/libs/widgets/mainview/onlineversiondlg.cpp     [License: GPL (v2+)]
C  +14   -23   core/libs/widgets/mainview/onlineversiondlg.h [from: core/libs/widgets/mainview/onlineversionchecker.h - 055% similarity]
M  +3    -6    core/tests/miscs/onlineversion.cpp

https://invent.kde.org/graphics/digikam/commit/80ea55e48f2f6d6f613dd88e9458cab65844e8a3
Comment 7 caulier.gilles 2021-01-05 13:34:19 UTC
Git commit 6430e8d5f3f1697f5236003719e20565326562c7 by Gilles Caulier.
Committed on 05/01/2021 at 13:32.
Pushed by cgilles into branch 'master'.

Add new Help menu option to check online if a new release is available

M  +2    -1    core/app/main/digikamui5.rc
M  +20   -9    core/libs/widgets/mainview/dxmlguiwindow.cpp
M  +1    -0    core/libs/widgets/mainview/dxmlguiwindow.h
M  +1    -5    core/libs/widgets/mainview/onlineversionchecker.h
M  +2    -1    core/showfoto/main/showfotoui5.rc
M  +3    -1    core/utilities/imageeditor/main/imageeditorui5.rc
M  +3    -1    core/utilities/lighttable/lighttablewindowui5.rc
M  +3    -1    core/utilities/queuemanager/main/queuemgrwindowui5.rc

https://invent.kde.org/graphics/digikam/commit/6430e8d5f3f1697f5236003719e20565326562c7
Comment 8 caulier.gilles 2021-01-05 15:39:15 UTC
Git commit 29fed1643e9801ecef3addfb6f0d427fbc9df884 by Gilles Caulier.
Committed on 05/01/2021 at 15:37.
Pushed by cgilles into branch 'master'.

Add Online Version Downloader class, to process download of release bundle. Not yet used.

M  +1    -0    core/libs/widgets/CMakeLists.txt
M  +3    -3    core/libs/widgets/mainview/onlineversiondlg.h
A  +140  -0    core/libs/widgets/mainview/onlineversiondwnl.cpp     [License: GPL (v2+)]
C  +16   -11   core/libs/widgets/mainview/onlineversiondwnl.h [from: core/libs/widgets/mainview/onlineversiondlg.h - 064% similarity]

https://invent.kde.org/graphics/digikam/commit/29fed1643e9801ecef3addfb6f0d427fbc9df884
Comment 9 caulier.gilles 2021-01-05 21:23:20 UTC
Git commit 5b36086422060307d73961f4c6c9ed7bf45d6ede by Gilles Caulier.
Committed on 05/01/2021 at 21:21.
Pushed by cgilles into branch 'master'.

Add new unit test to verify online version downloader

M  +103  -3    core/libs/widgets/mainview/onlineversiondwnl.cpp
M  +7    -2    core/libs/widgets/mainview/onlineversiondwnl.h
M  +15   -3    core/tests/miscs/CMakeLists.txt
C  +3    -3    core/tests/miscs/onlinecheck.cpp [from: core/tests/miscs/onlineversion.cpp - 085% similarity]
R  +20   -6    core/tests/miscs/onlinedownload.cpp [from: core/tests/miscs/onlineversion.cpp - 056% similarity]

https://invent.kde.org/graphics/digikam/commit/5b36086422060307d73961f4c6c9ed7bf45d6ede
Comment 10 caulier.gilles 2021-01-06 04:05:04 UTC
Git commit 4594d4aab7243c6636ad9501ab1678c30db259ab by Gilles Caulier.
Committed on 06/01/2021 at 04:02.
Pushed by cgilles into branch 'master'.

Fix message reported to end user and init unit test with right application propertiies

M  +5    -2    core/libs/widgets/mainview/onlineversiondlg.cpp
M  +19   -0    core/tests/miscs/onlinecheck.cpp

https://invent.kde.org/graphics/digikam/commit/4594d4aab7243c6636ad9501ab1678c30db259ab
Comment 11 Hackintosh HD 2021-01-06 17:20:23 UTC
(In reply to caulier.gilles from comment #3)

Just as a question, doesn't Clementine use the Sparkle Framework on macOS, https://sparkle-project.org/ ?

To me, from a user's perspective, the Sparkle Framwork was always the most convenient way to update applications automatically on macOS, as it supports both use cases: Users who would like to remain on a version they consider stable for production can do so by just a one-time click on "don't check" and will never be notified again (that would be Maik's approach from comment #1) while the rest of the user base can update semi-automatically.
Comment 12 caulier.gilles 2021-01-06 17:34:04 UTC
Yes Clementine use Sparkle framework, but it will work only with macOS.

We need something similar under Windows, so i coded myself the online version checker, dialog, and downloader.

For Linux, with AppImage, for the moment the way to install the bundles as unified meaner with a full integration in desktop is not clear, so Linux support for the online version checker is limited (as it point user to download page). But if later AppImage integration become better, this can be improved in digiKam side.

Gilles Caulier
Comment 13 caulier.gilles 2021-01-07 11:10:47 UTC
Git commit 9d795fbf6743989533032203a00ea8494968c1d3 by Gilles Caulier.
Committed on 07/01/2021 at 11:08.
Pushed by cgilles into branch 'master'.

Online Version Checker/Downloader is ready for production.
Under Linux, it check availablity of AppImage, download file, and propose to open it in file-manager.
Under macOs and Windows, it check availability of new installer, download file, and propose to close current digiKam/Showfoto session to install new version on the system.
FIXED-IN: 7.2.0

M  +38   -21   core/libs/onlineversion/onlineversionchecker.cpp
M  +5    -5    core/libs/onlineversion/onlineversionchecker.h
M  +187  -31   core/libs/onlineversion/onlineversiondlg.cpp
M  +12   -4    core/libs/onlineversion/onlineversiondlg.h
M  +15   -2    core/libs/onlineversion/onlineversiondwnl.cpp
M  +3    -0    core/libs/onlineversion/onlineversiondwnl.h
M  +2    -2    core/tests/miscs/onlinecheck.cpp

https://invent.kde.org/graphics/digikam/commit/9d795fbf6743989533032203a00ea8494968c1d3
Comment 14 caulier.gilles 2021-01-11 16:25:24 UTC
Git commit bb6f1d6ff9d37974bfc891ef984bdcc7d632a531 by Gilles Caulier.
Committed on 11/01/2021 at 16:21.
Pushed by cgilles into branch 'master'.

digiKam can be upgraded from Pre-Releases bundles if new option from Setup/Miscs pannel is enabled.
By default only Stable releases are checked for upgrade.
Take a care, following Pre-release can includes bugs and must not be used in production.

M  +8    -0    core/app/main/digikamapp.cpp
M  +1    -0    core/app/main/digikamapp.h
M  +1    -0    core/app/main/digikamapp_p.h
M  +191  -33   core/libs/onlineversion/onlineversionchecker.cpp
M  +14   -2    core/libs/onlineversion/onlineversionchecker.h
M  +119  -39   core/libs/onlineversion/onlineversiondlg.cpp
M  +2    -1    core/libs/onlineversion/onlineversiondlg.h
M  +41   -65   core/libs/onlineversion/onlineversiondwnl.cpp
M  +1    -1    core/libs/onlineversion/onlineversiondwnl.h
M  +0    -7    core/libs/widgets/mainview/dxmlguiwindow.cpp
M  +1    -1    core/libs/widgets/mainview/dxmlguiwindow.h
M  +8    -0    core/showfoto/main/showfoto.cpp
M  +2    -0    core/showfoto/main/showfoto.h
M  +1    -0    core/showfoto/main/showfoto_p.h
M  +5    -2    core/showfoto/setup/showfotosetupmisc.cpp
M  +10   -6    core/tests/miscs/onlinecheck.cpp
M  +35   -2    core/tests/miscs/onlinedownload.cpp
M  +8    -0    core/utilities/imageeditor/main/imagewindow.cpp
M  +1    -0    core/utilities/imageeditor/main/imagewindow.h
M  +1    -0    core/utilities/imageeditor/main/imagewindow_p.h
M  +9    -0    core/utilities/import/main/importui.cpp
M  +1    -0    core/utilities/import/main/importui.h
M  +1    -0    core/utilities/import/main/importui_p.h
M  +8    -0    core/utilities/lighttable/lighttablewindow.cpp
M  +1    -0    core/utilities/lighttable/lighttablewindow.h
M  +1    -0    core/utilities/lighttable/lighttablewindow_p.h
M  +8    -51   core/utilities/queuemanager/main/queuemgrwindow.cpp
M  +1    -0    core/utilities/queuemanager/main/queuemgrwindow.h
M  +47   -0    core/utilities/queuemanager/main/queuemgrwindow_p.h
M  +5    -2    core/utilities/setup/setupmisc.cpp

https://invent.kde.org/graphics/digikam/commit/bb6f1d6ff9d37974bfc891ef984bdcc7d632a531
Comment 15 caulier.gilles 2021-01-16 17:07:39 UTC
Git commit 4d67baa2559c6cbb747b072fbad58c183c38d6d6 by Gilles Caulier.
Committed on 16/01/2021 at 17:06.
Pushed by cgilles into branch 'master'.

Add new button to Online Version dialog to open Setup Misc page with Update application options

M  +8    -0    core/app/main/digikamapp.cpp
M  +28   -5    core/libs/onlineversion/onlineversiondlg.cpp
M  +5    -0    core/libs/onlineversion/onlineversiondlg.h
M  +8    -0    core/showfoto/main/showfoto.cpp
M  +34   -16   core/showfoto/setup/showfotosetup.cpp
M  +6    -0    core/showfoto/setup/showfotosetup.h
M  +8    -0    core/utilities/imageeditor/main/imagewindow.cpp
M  +8    -0    core/utilities/import/main/importui.cpp
M  +8    -0    core/utilities/lighttable/lighttablewindow.cpp
M  +8    -0    core/utilities/queuemanager/main/queuemgrwindow.cpp

https://invent.kde.org/graphics/digikam/commit/4d67baa2559c6cbb747b072fbad58c183c38d6d6
Comment 16 caulier.gilles 2021-01-17 09:35:51 UTC
Git commit 9e112164ebd4f3c23c901bdcff52706f1c73fc40 by Gilles Caulier.
Committed on 17/01/2021 at 09:34.
Pushed by cgilles into branch 'master'.

Now, digiKam allow to download bundles with debug symbols using new option in setup/misc dialog

M  +2    -1    core/app/main/digikamapp.cpp
M  +3    -0    core/libs/settings/applicationsettings.h
M  +10   -0    core/libs/settings/applicationsettings_miscs.cpp
M  +3    -0    core/libs/settings/applicationsettings_p.cpp
M  +2    -0    core/libs/settings/applicationsettings_p.h
M  +0    -1    core/showfoto/main/showfotosettings.cpp
M  +13   -1    core/showfoto/setup/showfotosetup.cpp
M  +30   -1    core/showfoto/setup/showfotosetupmisc.cpp
M  +1    -0    core/showfoto/setup/showfotosetupmisc.h
M  +2    -1    core/utilities/imageeditor/main/imagewindow.cpp
M  +2    -1    core/utilities/import/main/importui.cpp
M  +2    -1    core/utilities/lighttable/lighttablewindow.cpp
M  +2    -1    core/utilities/queuemanager/main/queuemgrwindow.cpp
M  +19   -2    core/utilities/setup/setupmisc.cpp

https://invent.kde.org/graphics/digikam/commit/9e112164ebd4f3c23c901bdcff52706f1c73fc40
Comment 17 caulier.gilles 2021-01-17 17:16:58 UTC
Git commit b1881165554cff106327a39cb5bd35e2e6299e05 by Gilles Caulier.
Committed on 17/01/2021 at 17:14.
Pushed by cgilles into branch 'master'.

Factoring dupplicate codes to open online version dialog
Add label in setup/miscs to show last check version date.
Add button to setup/miscs to perform a version check.

M  +1    -14   core/app/main/digikamapp.cpp
M  +0    -1    core/app/main/digikamapp_p.h
M  +18   -0    core/libs/onlineversion/onlineversionchecker.cpp
M  +5    -0    core/libs/onlineversion/onlineversionchecker.h
M  +3    -1    core/libs/onlineversion/onlineversiondlg.cpp
M  +1    -14   core/showfoto/main/showfoto.cpp
M  +0    -1    core/showfoto/main/showfoto_p.h
M  +22   -2    core/showfoto/setup/showfotosetup.cpp
M  +2    -0    core/showfoto/setup/showfotosetup.h
M  +21   -0    core/showfoto/setup/showfotosetupmisc.cpp
M  +1    -14   core/utilities/imageeditor/main/imagewindow.cpp
M  +0    -1    core/utilities/imageeditor/main/imagewindow_p.h
M  +1    -14   core/utilities/import/main/importui.cpp
M  +0    -1    core/utilities/import/main/importui_p.h
M  +1    -14   core/utilities/lighttable/lighttablewindow.cpp
M  +0    -1    core/utilities/lighttable/lighttablewindow_p.h
M  +1    -14   core/utilities/queuemanager/main/queuemgrwindow.cpp
M  +0    -2    core/utilities/queuemanager/main/queuemgrwindow_p.h
M  +20   -1    core/utilities/setup/setup.cpp
M  +2    -0    core/utilities/setup/setup.h
M  +21   -0    core/utilities/setup/setupmisc.cpp

https://invent.kde.org/graphics/digikam/commit/b1881165554cff106327a39cb5bd35e2e6299e05
Comment 18 caulier.gilles 2021-01-17 22:54:31 UTC
Git commit ce6b26781acb529ce3794aeb521b19a64d978306 by Gilles Caulier.
Committed on 17/01/2021 at 22:52.
Pushed by cgilles into branch 'master'.

Online version downloader now get the file checksums from remote server and verify if large file downloaded is valid

M  +55   -3    core/libs/onlineversion/onlineversiondwnl.cpp

https://invent.kde.org/graphics/digikam/commit/ce6b26781acb529ce3794aeb521b19a64d978306
Comment 19 caulier.gilles 2021-02-07 10:45:38 UTC
Git commit 5f5b5defede998d5a0eade989d0b6da83c36ad09 by Gilles Caulier.
Committed on 07/02/2021 at 10:31.
Pushed by cgilles into branch 'master'.

Online release Version checker : add expander view to show Releases Notes (NEWS file) for the version to download.
CCBUGS: 426997

M  +36   -8    core/libs/onlineversion/onlineversionchecker.cpp
M  +3    -0    core/libs/onlineversion/onlineversionchecker.h
M  +34   -3    core/libs/onlineversion/onlineversiondlg.cpp
M  +2    -0    core/libs/onlineversion/onlineversiondlg.h

https://invent.kde.org/graphics/digikam/commit/5f5b5defede998d5a0eade989d0b6da83c36ad09
Comment 20 caulier.gilles 2021-02-07 10:54:21 UTC
Screenshots of Online Version Checker Dialog:

For pre-releases (weekly builds): https://i.imgur.com/jyJEQXv.png
For official stable releases: https://i.imgur.com/IrZ8RfV.png

Gilles Caulier
Comment 21 Tom de Geus 2021-02-07 13:21:40 UTC
Awesome!