D25743: Expose IndexerState enum to QML

2020-12-21 Thread Justin Zobel
justinzobel added a comment.


  Can we please continue this over on Gitlab?

REPOSITORY
  R293 Baloo

BRANCH
  master

REVISION DETAIL
  https://phabricator.kde.org/D25743

To: davidedmundson, #baloo, ngraham
Cc: justinzobel, bruns, broulik, kde-frameworks-devel, ngraham, #baloo, 
hurikhan77, lots0logs, LeGast00n, cblack, fbampaloukas, domson, ashaposhnikov, 
michaelh, spoorun, abrahams


KDE CI: Frameworks » plasma-framework » kf5-qt5 SUSEQt5.15 - Build # 279 - Still Unstable!

2020-12-21 Thread CI System
BUILD UNSTABLE
 Build URL
https://build.kde.org/job/Frameworks/job/plasma-framework/job/kf5-qt5%20SUSEQt5.15/279/
 Project:
kf5-qt5 SUSEQt5.15
 Date of build:
Mon, 21 Dec 2020 19:23:50 +
 Build duration:
5 min 58 sec and counting
   BUILD ARTIFACTS
  abi-compatibility-results.yamlacc/KF5Plasma-5.78.0.xmlacc/KF5PlasmaQuick-5.78.0.xmlcompat_reports/KF5Plasma_compat_report.htmllogs/KF5Plasma/5.78.0/log.txt
   JUnit Tests
  Name: (root) Failed: 0 test(s), Passed: 1 test(s), Skipped: 0 test(s), Total: 1 test(s)Name: projectroot Failed: 1 test(s), Passed: 10 test(s), Skipped: 0 test(s), Total: 11 test(s)Failed: projectroot.autotests.plasma_themetest
   Cobertura Report
  
   Project Coverage Summary
  
   Name
  PackagesFilesClassesLinesConditionalsCobertura Coverage Report44%
(8/18)36%
(49/136)36%
(49/136)34%
(4662/13649)26%
(2300/8819)Coverage Breakdown by Package
Name
   FilesClassesLinesConditionalsautotests92%
(11/12)92%
(11/12)94%
(872/928)48%
(378/784)src.declarativeimports.calendar0%
(0/6)0%
(0/6)0%
(0/485)0%
(0/201)src.declarativeimports.core47%
(8/17)47%
(8/17)34%
(810/2400)27%
(378/1421)src.declarativeimports.plasmacomponents0%
(0/6)0%
(0/6)0%
(0/523)0%
(0/195)src.declarativeimports.plasmaextracomponents0%
(0/4)0%
(0/4)0%
(0/43)0%
(0/16)src.declarativeimports.platformcomponents0%
(0/3)0%
(0/3)0%
(0/61)0%
(0/14)src.declarativeimports.platformcomponents.utils0%
(0/2)0%
(0/2)0%
(0/14)0%
(0/2)src.plasma41%
(11/27)41%
(11/27)42%
(1594/3780)34%
(894/2653)src.plasma.packagestructure43%
(3/7)43%
(3/7)36%
(49/137)42%
(5/12)src.plasma.private45%
(9/20)45%
(9/20)47%
(768/1625)37%
(355/951)src.plasma.scripting33%
(1/3)33%
(1/3)12%
(20/173)7%
(7/105)src.plasmapkg0%
(0/1)0%
(0/1)0%
(0/45)0%
(0/40)src.plasmaquick38%
(5/13)38%
(5/13)27%
(518/1920)18%
(278/1511)src.plasmaquick.private50%
(1/2)50%
(1/2)29%
(31/106)36%
(5/14)src.scriptengines.qml.plasmoid0%
(0/8)0%
(0/8)0%
(0/1254)0%
(0/882)tests.dpi0%
(0/2)0%
(0/2)0%
(0/21)0%

KDE CI: Frameworks » plasma-framework » kf5-qt5 SUSEQt5.14 - Build # 27 - Still Unstable!

2020-12-21 Thread CI System
BUILD UNSTABLE
 Build URL
https://build.kde.org/job/Frameworks/job/plasma-framework/job/kf5-qt5%20SUSEQt5.14/27/
 Project:
kf5-qt5 SUSEQt5.14
 Date of build:
Mon, 21 Dec 2020 19:23:46 +
 Build duration:
5 min 33 sec and counting
   BUILD ARTIFACTS
  abi-compatibility-results.yamlacc/KF5Plasma-5.78.0.xmlacc/KF5PlasmaQuick-5.78.0.xmlcompat_reports/KF5Plasma_compat_report.htmllogs/KF5Plasma/5.78.0/log.txt
   JUnit Tests
  Name: (root) Failed: 0 test(s), Passed: 1 test(s), Skipped: 0 test(s), Total: 1 test(s)Name: projectroot Failed: 1 test(s), Passed: 10 test(s), Skipped: 0 test(s), Total: 11 test(s)Failed: projectroot.autotests.plasma_themetest
   Cobertura Report
  
   Project Coverage Summary
  
   Name
  PackagesFilesClassesLinesConditionalsCobertura Coverage Report44%
(8/18)36%
(49/136)36%
(49/136)34%
(4663/13649)26%
(2300/8819)Coverage Breakdown by Package
Name
   FilesClassesLinesConditionalsautotests92%
(11/12)92%
(11/12)94%
(873/928)48%
(378/784)src.declarativeimports.calendar0%
(0/6)0%
(0/6)0%
(0/485)0%
(0/201)src.declarativeimports.core47%
(8/17)47%
(8/17)34%
(810/2400)27%
(378/1421)src.declarativeimports.plasmacomponents0%
(0/6)0%
(0/6)0%
(0/523)0%
(0/195)src.declarativeimports.plasmaextracomponents0%
(0/4)0%
(0/4)0%
(0/43)0%
(0/16)src.declarativeimports.platformcomponents0%
(0/3)0%
(0/3)0%
(0/61)0%
(0/14)src.declarativeimports.platformcomponents.utils0%
(0/2)0%
(0/2)0%
(0/14)0%
(0/2)src.plasma41%
(11/27)41%
(11/27)42%
(1594/3780)34%
(894/2653)src.plasma.packagestructure43%
(3/7)43%
(3/7)36%
(49/137)42%
(5/12)src.plasma.private45%
(9/20)45%
(9/20)47%
(768/1625)37%
(355/951)src.plasma.scripting33%
(1/3)33%
(1/3)12%
(20/173)7%
(7/105)src.plasmapkg0%
(0/1)0%
(0/1)0%
(0/45)0%
(0/40)src.plasmaquick38%
(5/13)38%
(5/13)27%
(518/1920)18%
(278/1511)src.plasmaquick.private50%
(1/2)50%
(1/2)29%
(31/106)36%
(5/14)src.scriptengines.qml.plasmoid0%
(0/8)0%
(0/8)0%
(0/1254)0%
(0/882)tests.dpi0%
(0/2)0%
(0/2)0%
(0/21)0%

KDE CI: Frameworks » plasma-framework » kf5-qt5 FreeBSDQt5.15 - Build # 277 - Still Unstable!

2020-12-21 Thread CI System
BUILD UNSTABLE
 Build URL
https://build.kde.org/job/Frameworks/job/plasma-framework/job/kf5-qt5%20FreeBSDQt5.15/277/
 Project:
kf5-qt5 FreeBSDQt5.15
 Date of build:
Mon, 21 Dec 2020 19:24:30 +
 Build duration:
2 min 9 sec and counting
   JUnit Tests
  Name: projectroot Failed: 1 test(s), Passed: 10 test(s), Skipped: 0 test(s), Total: 11 test(s)Failed: projectroot.autotests.plasma_themetest

KDE CI: Frameworks » plasma-framework » kf5-qt5 FreeBSDQt5.15 - Build # 276 - Still Unstable!

2020-12-21 Thread CI System
BUILD UNSTABLE
 Build URL
https://build.kde.org/job/Frameworks/job/plasma-framework/job/kf5-qt5%20FreeBSDQt5.15/276/
 Project:
kf5-qt5 FreeBSDQt5.15
 Date of build:
Mon, 21 Dec 2020 19:16:54 +
 Build duration:
7 min 31 sec and counting
   JUnit Tests
  Name: projectroot Failed: 1 test(s), Passed: 10 test(s), Skipped: 0 test(s), Total: 11 test(s)Failed: projectroot.autotests.plasma_themetest

KDE CI: Frameworks » plasma-framework » kf5-qt5 SUSEQt5.15 - Build # 278 - Still Unstable!

2020-12-21 Thread CI System
BUILD UNSTABLE
 Build URL
https://build.kde.org/job/Frameworks/job/plasma-framework/job/kf5-qt5%20SUSEQt5.15/278/
 Project:
kf5-qt5 SUSEQt5.15
 Date of build:
Mon, 21 Dec 2020 19:16:54 +
 Build duration:
6 min 55 sec and counting
   BUILD ARTIFACTS
  abi-compatibility-results.yamlacc/KF5Plasma-5.78.0.xmlacc/KF5PlasmaQuick-5.78.0.xmlcompat_reports/KF5Plasma_compat_report.htmllogs/KF5Plasma/5.78.0/log.txt
   JUnit Tests
  Name: (root) Failed: 0 test(s), Passed: 1 test(s), Skipped: 0 test(s), Total: 1 test(s)Name: projectroot Failed: 1 test(s), Passed: 10 test(s), Skipped: 0 test(s), Total: 11 test(s)Failed: projectroot.autotests.plasma_themetest
   Cobertura Report
  
   Project Coverage Summary
  
   Name
  PackagesFilesClassesLinesConditionalsCobertura Coverage Report44%
(8/18)36%
(49/136)36%
(49/136)34%
(4663/13649)26%
(2300/8819)Coverage Breakdown by Package
Name
   FilesClassesLinesConditionalsautotests92%
(11/12)92%
(11/12)94%
(873/928)48%
(378/784)src.declarativeimports.calendar0%
(0/6)0%
(0/6)0%
(0/485)0%
(0/201)src.declarativeimports.core47%
(8/17)47%
(8/17)34%
(810/2400)27%
(378/1421)src.declarativeimports.plasmacomponents0%
(0/6)0%
(0/6)0%
(0/523)0%
(0/195)src.declarativeimports.plasmaextracomponents0%
(0/4)0%
(0/4)0%
(0/43)0%
(0/16)src.declarativeimports.platformcomponents0%
(0/3)0%
(0/3)0%
(0/61)0%
(0/14)src.declarativeimports.platformcomponents.utils0%
(0/2)0%
(0/2)0%
(0/14)0%
(0/2)src.plasma41%
(11/27)41%
(11/27)42%
(1594/3780)34%
(894/2653)src.plasma.packagestructure43%
(3/7)43%
(3/7)36%
(49/137)42%
(5/12)src.plasma.private45%
(9/20)45%
(9/20)47%
(768/1625)37%
(355/951)src.plasma.scripting33%
(1/3)33%
(1/3)12%
(20/173)7%
(7/105)src.plasmapkg0%
(0/1)0%
(0/1)0%
(0/45)0%
(0/40)src.plasmaquick38%
(5/13)38%
(5/13)27%
(518/1920)18%
(278/1511)src.plasmaquick.private50%
(1/2)50%
(1/2)29%
(31/106)36%
(5/14)src.scriptengines.qml.plasmoid0%
(0/8)0%
(0/8)0%
(0/1254)0%
(0/882)tests.dpi0%
(0/2)0%
(0/2)0%
(0/21)0%

KDE CI: Frameworks » plasma-framework » kf5-qt5 SUSEQt5.14 - Build # 26 - Still Unstable!

2020-12-21 Thread CI System
BUILD UNSTABLE
 Build URL
https://build.kde.org/job/Frameworks/job/plasma-framework/job/kf5-qt5%20SUSEQt5.14/26/
 Project:
kf5-qt5 SUSEQt5.14
 Date of build:
Mon, 21 Dec 2020 19:16:54 +
 Build duration:
6 min 51 sec and counting
   BUILD ARTIFACTS
  abi-compatibility-results.yamlacc/KF5Plasma-5.78.0.xmlacc/KF5PlasmaQuick-5.78.0.xmlcompat_reports/KF5Plasma_compat_report.htmllogs/KF5Plasma/5.78.0/log.txt
   JUnit Tests
  Name: (root) Failed: 0 test(s), Passed: 1 test(s), Skipped: 0 test(s), Total: 1 test(s)Name: projectroot Failed: 1 test(s), Passed: 10 test(s), Skipped: 0 test(s), Total: 11 test(s)Failed: projectroot.autotests.plasma_themetest
   Cobertura Report
  
   Project Coverage Summary
  
   Name
  PackagesFilesClassesLinesConditionalsCobertura Coverage Report44%
(8/18)36%
(49/136)36%
(49/136)34%
(4663/13649)26%
(2300/8819)Coverage Breakdown by Package
Name
   FilesClassesLinesConditionalsautotests92%
(11/12)92%
(11/12)94%
(873/928)48%
(378/784)src.declarativeimports.calendar0%
(0/6)0%
(0/6)0%
(0/485)0%
(0/201)src.declarativeimports.core47%
(8/17)47%
(8/17)34%
(810/2400)27%
(378/1421)src.declarativeimports.plasmacomponents0%
(0/6)0%
(0/6)0%
(0/523)0%
(0/195)src.declarativeimports.plasmaextracomponents0%
(0/4)0%
(0/4)0%
(0/43)0%
(0/16)src.declarativeimports.platformcomponents0%
(0/3)0%
(0/3)0%
(0/61)0%
(0/14)src.declarativeimports.platformcomponents.utils0%
(0/2)0%
(0/2)0%
(0/14)0%
(0/2)src.plasma41%
(11/27)41%
(11/27)42%
(1594/3780)34%
(894/2653)src.plasma.packagestructure43%
(3/7)43%
(3/7)36%
(49/137)42%
(5/12)src.plasma.private45%
(9/20)45%
(9/20)47%
(768/1625)37%
(355/951)src.plasma.scripting33%
(1/3)33%
(1/3)12%
(20/173)7%
(7/105)src.plasmapkg0%
(0/1)0%
(0/1)0%
(0/45)0%
(0/40)src.plasmaquick38%
(5/13)38%
(5/13)27%
(518/1920)18%
(278/1511)src.plasmaquick.private50%
(1/2)50%
(1/2)29%
(31/106)36%
(5/14)src.scriptengines.qml.plasmoid0%
(0/8)0%
(0/8)0%
(0/1254)0%
(0/882)tests.dpi0%
(0/2)0%
(0/2)0%
(0/21)0%

KDE CI: Frameworks » plasma-framework » kf5-qt5 WindowsMSVCQt5.15 - Build # 113 - Still Failing!

2020-12-21 Thread CI System
BUILD FAILURE
 Build URL
https://build.kde.org/job/Frameworks/job/plasma-framework/job/kf5-qt5%20WindowsMSVCQt5.15/113/
 Project:
kf5-qt5 WindowsMSVCQt5.15
 Date of build:
Mon, 21 Dec 2020 19:16:54 +
 Build duration:
1 min 32 sec and counting
   CONSOLE OUTPUT
  [...truncated 4515 lines...][2020-12-21T19:17:52.753Z] ./package/contents/ui[2020-12-21T19:17:52.753Z] ./package/contents/ui/main.qml[2020-12-21T19:17:52.753Z] ./package/metadata.desktop[2020-12-21T19:17:52.753Z] ./plugin[2020-12-21T19:17:52.753Z] ./plugin/%{APPNAMELC}plugin.cpp[2020-12-21T19:17:52.753Z] ./plugin/%{APPNAMELC}plugin.h[2020-12-21T19:17:52.753Z] ./plugin/CMakeLists.txt[2020-12-21T19:17:52.753Z] ./plugin/qmldir[2020-12-21T19:17:52.753Z] ./qml-plasmoid-with-qml-extension.kdevtemplate[2020-12-21T19:17:52.753Z] ./README[2020-12-21T19:17:53.051Z] [275/469] Generating plasma-wallpaper-with-qml-extension.tar.bz2[2020-12-21T19:17:53.051Z] .[2020-12-21T19:17:53.051Z] ./CMakeLists.txt[2020-12-21T19:17:53.051Z] ./LICENSES[2020-12-21T19:17:53.051Z] ./LICENSES/LGPL-2.1-or-later.txt[2020-12-21T19:17:53.051Z] ./Messages.sh[2020-12-21T19:17:53.051Z] ./package[2020-12-21T19:17:53.051Z] ./package/contents[2020-12-21T19:17:53.051Z] ./package/contents/config[2020-12-21T19:17:53.051Z] ./package/contents/config/main.xml[2020-12-21T19:17:53.051Z] ./package/contents/ui[2020-12-21T19:17:53.051Z] ./package/contents/ui/config.qml[2020-12-21T19:17:53.051Z] ./package/contents/ui/main.qml[2020-12-21T19:17:53.051Z] ./package/metadata.desktop[2020-12-21T19:17:53.051Z] ./plasma-wallpaper-with-qml-extension.kdevtemplate[2020-12-21T19:17:53.051Z] ./plugin[2020-12-21T19:17:53.051Z] ./plugin/%{APPNAMELC}plugin.cpp[2020-12-21T19:17:53.051Z] ./plugin/%{APPNAMELC}plugin.h[2020-12-21T19:17:53.051Z] ./plugin/CMakeLists.txt[2020-12-21T19:17:53.051Z] ./plugin/qmldir[2020-12-21T19:17:53.051Z] ./README[2020-12-21T19:17:53.051Z] [276/469] Building CXX object src\plasmapkg\CMakeFiles\plasmapkg2.dir\plasmapkg2_autogen\mocs_compilation.cpp.obj[2020-12-21T19:17:57.945Z] [277/469] Building CXX object src\plasmapkg\CMakeFiles\plasmapkg2.dir\main.cpp.obj[2020-12-21T19:17:57.945Z] [278/469] Generating src/plasma/KF5Plasma.qch, src/plasma/KF5Plasma.tags[2020-12-21T19:18:07.160Z] [279/469] Automatic MOC for target platformcomponentsplugin[2020-12-21T19:18:07.160Z] [280/469] Linking CXX executable bin\plasmapkg2.exe[2020-12-21T19:18:07.160Z] [281/469] Automatic MOC for target calendarplugin[2020-12-21T19:18:16.113Z] [282/469] Building CXX object src\declarativeimports\platformcomponents\CMakeFiles\platformcomponentsplugin.dir\platformcomponentsplugin_autogen\mocs_compilation.cpp.obj[2020-12-21T19:18:16.397Z] [283/469] Building CXX object src\declarativeimports\calendar\CMakeFiles\calendarplugin.dir\calendardata.cpp.obj[2020-12-21T19:18:16.397Z] [284/469] Building CXX object src\declarativeimports\calendar\CMakeFiles\calendarplugin.dir\eventdatadecorator.cpp.obj[2020-12-21T19:18:16.397Z] [285/469] Automatic MOC for target KF5Plasma[2020-12-21T19:18:16.665Z] [286/469] Building CXX object src\declarativeimports\platformcomponents\CMakeFiles\platformcomponentsplugin.dir\application.cpp.obj[2020-12-21T19:18:16.665Z] [287/469] Generating libplasma-theme-global.h, libplasma-theme-global.cpp[2020-12-21T19:18:16.665Z] [288/469] Building CXX object src\declarativeimports\calendar\CMakeFiles\calendarplugin.dir\calendarplugin_autogen\mocs_compilation.cpp.obj[2020-12-21T19:18:16.665Z] [289/469] Building CXX object src\declarativeimports\platformcomponents\CMakeFiles\platformcomponentsplugin.dir\icondialog.cpp.obj[2020-12-21T19:18:16.665Z] [290/469] Building CXX object src\declarativeimports\calendar\CMakeFiles\calendarplugin.dir\eventpluginsmanager.cpp.obj[2020-12-21T19:18:16.665Z] [291/469] Building CXX object src\declarativeimports\calendar\CMakeFiles\calendarplugin.dir\calendar.cpp.obj[2020-12-21T19:18:16.926Z] [292/469] Building CXX object src\declarativeimports\calendar\CMakeFiles\calendarplugin.dir\daysmodel.cpp.obj[2020-12-21T19:18:18.383Z] [293/469] Building CXX object src\declarativeimports\platformcomponents\CMakeFiles\platformcomponentsplugin.dir\platformextensionplugin.cpp.obj[2020-12-21T19:18:18.670Z] [294/469] Building CXX object src\declarativeimports\calendar\CMakeFiles\calendarplugin.dir\calendarplugin.cpp.obj[2020-12-21T19:18:18.972Z] [295/469] Building CXX object src\plasma\CMakeFiles\KF5Plasma.dir\packagestructure.cpp.obj[2020-12-21T19:18:19.281Z] [296/469] Building CXX object src\plasma\CMakeFiles\KF5Plasma.dir\datacontainer.cpp.obj[2020-12-21T19:18:19.281Z] [297/469] Building CXX object src\plasma\CMakeFiles\KF5Plasma.dir\KF5Plasma_autogen\mocs_compilation.cpp.obj[2020-12-21T19:18:19.281Z] [298/469] Building CXX object src\plasma\CMakeFiles\KF5Plasma.dir\package.cpp.obj[2020-12-21T19:18:19.281Z] [299/469] Building CXX object src\plasma\CMakeFiles\KF5Plasma.dir\private\datacontainer_p.cpp.obj[2020-12-21T19:18:20.337Z] [300/469] Building 

Re: KDE review for KWeatherCore

2020-12-21 Thread Albert Astals Cid
El dilluns, 21 de desembre de 2020, a les 7:16:09 CET, hanyoung va escriure:
> KWeatherCore: https://invent.kde.org/libraries/kweathercore is a library for 
> querying weather forecast data.
> During the development of KWeather, we found the need to have a weather 
> library.
> KWeatherCore is the result of extracting weather data fetching code from 
> KWeather.
> I think having a dedicated weather library can serve the following propose:
> - simplify the KWeather code
> - easier to develop a weather daemon
> - potentially less code duplication across KDE

There's quite some things that need improvement:
 * You don't have d-pointer in most of the public classes
 * You have quite some code inline in the .h which makes keeping BC harder
 * You return const Q* & which is not usual in Qt classes

locationquerytest is unstable https://paste.debian.net/1177864/

You have a script that extracts translations to libkweather5 but then you do 
-DTRANSLATION_DOMAIN=\"kweathercore5\"

Cheers,
  Albert

> 
> Many of you may have already seen my previous email to kde-devel mailing list.
> Thank you for your constructive suggestions. Here are something I want to 
> clarify:
> 
> > I would also propose to consider doing a demon instead, so different
> > programs/processes all interested in weather forecast data could share the
> > data
>   The end goal is a daemon indeed, but we want to build the daemon upon the 
> library. This would give us flexibility
>  in the future if we don't want a daemon. At least KWeather and other 
> projects can still benefit from the code.
> 
> > but we want to make sure we don't end up with two things.
>   I admit there are some overlapped functionalities. But KWeatherCore isn't 
> designed as a weather data provider as Weather DataEngine.
>   Instead, it's trying to be the building block of weather related 
> applications. KWeatherCore saves you the hassle of
>   dealing with APIs, getting locations and converting timezone. You can build 
> a daemon with it, or you can
>   use it in your applications. For example, KItinerary and KWeather use the 
> same weather API, but don't share code.
>   That means two code base to maintain. Regarding the dynamic nature of 
> online APIs, it's better to have one library,
>   so other applications don't need to be worried about their APIs being 
> depraved, and they aren't able to update it in time.
> 
>   Though not currently implemented, KWeatherCore does intend to have weather 
> alerts added. We hope it can be done in this Sok
>   https://community.kde.org/SoK/Ideas/2021#KWeather
>   With this bit added, then the work on weather daemon can be started.
> 
> Regards,
> Han Young
> 
> 






Re: KDE review for KWeatherCore

2020-12-21 Thread Jacky Alcine
Would it be possible for KweatherCore to lean on location services like 
Geoclue? (And/if should we be working on a KDE GUI for Geoclue to help with 
this? That way Kweather could only be dealing with resolving weather info)

On Sunday, December 20, 2020 10:16:09 PM PST hanyoung wrote:
> KWeatherCore: https://invent.kde.org/libraries/kweathercore is a library for
> querying weather forecast data. During the development of KWeather, we
> found the need to have a weather library. KWeatherCore is the result of
> extracting weather data fetching code from KWeather. I think having a
> dedicated weather library can serve the following propose: - simplify the
> KWeather code
> - easier to develop a weather daemon
> - potentially less code duplication across KDE
> 
> Many of you may have already seen my previous email to kde-devel mailing
> list.
> Thank you for your constructive suggestions. Here are something I want to 
clarify:
> > I would also propose to consider doing a demon instead, so different
> > programs/processes all interested in weather forecast data could share the
> > data
> 
>   The end goal is a daemon indeed, but we want to build the daemon upon the
> library. This would give us flexibility in the future if we don't want a
> daemon. At least KWeather and other projects can still benefit from the
> code.
> > but we want to make sure we don't end up with two things.
> 
>   I admit there are some overlapped functionalities. But KWeatherCore isn't
> designed as a weather data provider as Weather DataEngine. Instead, it's
> trying to be the building block of weather related applications.
> KWeatherCore saves you the hassle of dealing with APIs, getting locations
> and converting timezone. You can build a daemon with it, or you can use it
> in your applications. For example, KItinerary and KWeather use the same
> weather API, but don't share code. That means two code base to maintain.
> Regarding the dynamic nature of online APIs, it's better to have one
> library, so other applications don't need to be worried about their APIs
> being depraved, and they aren't able to update it in time.
> 
>   Though not currently implemented, KWeatherCore does intend to have weather
> alerts added. We hope it can be done in this Sok
> https://community.kde.org/SoK/Ideas/2021#KWeather
>   With this bit added, then the work on weather daemon can be started.
> 
> Regards,
> Han Young


signature.asc
Description: This is a digitally signed message part.


D23842: [KCompletion] Port away from deprecated methods in Qt 5.14

2020-12-21 Thread Friedrich W. H. Kossebau
kossebau added inline comments.

INLINE COMMENTS

> kcombobox.cpp:363
> +connect(d->klineEdit, ::completionBoxActivated,
> +this, QOverload QString&>::of(::textActivated));
> +#endif

Why the `QOverload::of()` with `::textActivated`? 
Accidental copy?
After all the purpose of the new signals is to get rid of the overloading, no?

REPOSITORY
  R284 KCompletion

REVISION DETAIL
  https://phabricator.kde.org/D23842

To: dfaure, cfeck, dhaumann, aacid, vkrause
Cc: kossebau, broulik, kde-frameworks-devel, LeGast00n, cblack, michaelh, 
ngraham, bruns


Re: KDE review for KWeatherCore

2020-12-21 Thread Friedrich W. H. Kossebau
Am Montag, 21. Dezember 2020, 15:45:22 CET schrieb Nicolas Fella:
> On 12/21/20 3:19 PM, Friedrich W. H. Kossebau wrote:
> > My idea/proposal there is that the library internally makes use of that
> > demon. So code which uses KWeatherCore does not need to know that
> > implementation-wise there is a demon (which might also need to be a
> > build-time option, think app bundles who do not like separate demon
> > processes).
> > So the demon would not use KWeatherCore, but be a(n optional) backend part
> > of it.
> 
> Please keep in mind that having such a daemon would be challenging to
> impossible to implement on Android and possibly other platforms as well.

That's what I tried to hint at with "(which might also need to be a build-time 
option, think app bundles who do not like separate demon processes)."

> Let's not overengineer the wheel without having to and focus on use
> cases relevant for our current apps and less on hypothetical use cases.

A demon is not overengineered for this purpose IMHO, and I had thought quite a 
bit how to overhaul the Plasma weather dataengine to make it sanely reusable 
as system-wide service, just never got to the editor to implement things.
But those who do the code decide and can apply their favourite architectures 
and whatever makes reaching a working product for them faster :)

Cheers
Friedrich




Re: KDE review for KWeatherCore

2020-12-21 Thread Nicolas Fella



On 12/21/20 3:19 PM, Friedrich W. H. Kossebau wrote:

Am Montag, 21. Dezember 2020, 07:16:09 CET schrieb hanyoung:

KWeatherCore: https://invent.kde.org/libraries/kweathercore is a library for
querying weather forecast data. During the development of KWeather, we
found the need to have a weather library. KWeatherCore is the result of
extracting weather data fetching code from KWeather. I think having a
dedicated weather library can serve the following propose: - simplify the
KWeather code
- easier to develop a weather daemon
- potentially less code duplication across KDE

Many of you may have already seen my previous email to kde-devel mailing
list.
Thank you for your constructive suggestions. Here are something I want to

clarify:

I would also propose to consider doing a demon instead, so different
programs/processes all interested in weather forecast data could share the
data

   The end goal is a daemon indeed, but we want to build the daemon upon the
library. This would give us flexibility in the future if we don't want a
daemon. At least KWeather and other projects can still benefit from the
code.

My idea/proposal there is that the library internally makes use of that demon.
So code which uses KWeatherCore does not need to know that implementation-wise
there is a demon (which might also need to be a build-time option, think app
bundles who do not like separate demon processes).
So the demon would not use KWeatherCore, but be a(n optional) backend part of
it.


Please keep in mind that having such a daemon would be challenging to
impossible to implement on Android and possibly other platforms as well.

Let's not overengineer the wheel without having to and focus on use
cases relevant for our current apps and less on hypothetical use cases.

Cheers

Nico



Re: KDE review for KWeatherCore

2020-12-21 Thread Friedrich W. H. Kossebau
Am Montag, 21. Dezember 2020, 07:16:09 CET schrieb hanyoung:
> KWeatherCore: https://invent.kde.org/libraries/kweathercore is a library for
> querying weather forecast data. During the development of KWeather, we
> found the need to have a weather library. KWeatherCore is the result of
> extracting weather data fetching code from KWeather. I think having a
> dedicated weather library can serve the following propose: - simplify the
> KWeather code
> - easier to develop a weather daemon
> - potentially less code duplication across KDE
> 
> Many of you may have already seen my previous email to kde-devel mailing
> list.
> Thank you for your constructive suggestions. Here are something I want to 
clarify:
> > I would also propose to consider doing a demon instead, so different
> > programs/processes all interested in weather forecast data could share the
> > data
> 
>   The end goal is a daemon indeed, but we want to build the daemon upon the
> library. This would give us flexibility in the future if we don't want a
> daemon. At least KWeather and other projects can still benefit from the
> code.

My idea/proposal there is that the library internally makes use of that demon. 
So code which uses KWeatherCore does not need to know that implementation-wise 
there is a demon (which might also need to be a build-time option, think app 
bundles who do not like separate demon processes).
So the demon would not use KWeatherCore, but be a(n optional) backend part of 
it.

To give you more ideas: I would also envision there could be proxy servers one 
day. Think of big organizations with lots of devices at same location due to 
lots of people in same buildings, so interested in the same local weather 
data, like schools, office-heavy companies, they could have a single proxy 
server and all clients would just use that proxy, saving the weather/
environment service provider some bandwidth, also adding some privacy layer 
onto the provider. If KWeatherCore would be prepared to handle that scenario 
in one way or the other, even better.

> > but we want to make sure we don't end up with two things.
>   I admit there are some overlapped functionalities. But KWeatherCore isn't
> designed as a weather data provider as Weather DataEngine. Instead, it's
> trying to be the building block of weather related applications.

Consider a DataEngine to be some kind of Plasma-specific type of library, as 
in, as shared logic module, just with a normalized API. This technology though 
failed to stay in developers' hearts, and these days is deprecated and instead 
all DataEngines are turned into plain C++ libraries with specific API.
The Plasma weather dataengine from plasma-workspace/dataengines/weather might 
have already been turned into a library similar to kweathercore, just that the 
last maintainer (me) was attracted by other even more interesting stuff and 
no-one had picked up so far. See also https://phabricator.kde.org/T13349

Looking at the current API of KWeatherCore, e.g. 
KWeatherCore::WeatherForecastSource, I think the Plasma Weather DataEngine and 
KWeatherCore are very much overlapping, other than the one being a Plasma 
"library" and the other a normal C++ library.
With KWeatherCore now thankfully being created by yours, the weather data 
related features of the weather dataengine would be ideally merged into 
KWeatherCore, so that the weather dataengine itself can then be deprecated and 
all existing weather DataEngine consumers (like kdeplasma-addons/applets/
weather or some on https://store.kde.org/browse/cat/424) could be ported to 
something based on KWeatherCore (I guess there would be some kind of KWeather 
qml plugin then for these, next to the KWeatherCore library itself).

You will find the normalized data model used by the DataEngine here in the 
class documentation, which then would ideally be merged into the normalized 
data model of KWeatherCore, so the existing applets would not need that much 
porting but get data close to what they are using now:
https://invent.kde.org/plasma/plasma-workspace/-/blob/master/dataengines/
weather/ions/ion.h
(that normalized data model BTW lacks support for sub-day-granularity for 
forecasts (like day & night as available with the Canadian service, resulting 
in bad hack and resulting display in the Plasma applets when using that 
service), so with room for improvements itself)

The weather dataengine also has a plugin mechanism (using DataEngines again 
for some perhaps random reason, just ignore that) to allow adding support for 
further weather data provider services by 3rd-party. Such an extension feature 
would be also nice to have with KWeatherCore. Some more info also here:
https://frinring.wordpress.com/2016/04/02/plasma-weather-widget-code-template-available-to-add-your-favorite-weather-data-provider/

Then as Volker already pointed out in good detail, using non-KDE service 
providers on the internet comes with lots of traps, related to privacy and 
terms of usage 

KDE CI: Frameworks » purpose » kf5-qt5 SUSEQt5.15 - Build # 55 - Fixed!

2020-12-21 Thread CI System
BUILD SUCCESS
 Build URL
https://build.kde.org/job/Frameworks/job/purpose/job/kf5-qt5%20SUSEQt5.15/55/
 Project:
kf5-qt5 SUSEQt5.15
 Date of build:
Mon, 21 Dec 2020 14:13:13 +
 Build duration:
4 min 17 sec and counting
   BUILD ARTIFACTS
  abi-compatibility-results.yamlacc/KF5Purpose-5.78.0.xmlcompat_reports/KF5Purpose_compat_report.htmllogs/KF5Purpose/5.78.0/log.txt
   JUnit Tests
  Name: (root) Failed: 0 test(s), Passed: 1 test(s), Skipped: 0 test(s), Total: 1 test(s)Name: projectroot Failed: 0 test(s), Passed: 2 test(s), Skipped: 0 test(s), Total: 2 test(s)
   Cobertura Report
  
   Project Coverage Summary
  
   Name
  PackagesFilesClassesLinesConditionalsCobertura Coverage Report23%
(5/22)31%
(15/48)31%
(15/48)24%
(493/2095)19%
(179/953)Coverage Breakdown by Package
Name
   FilesClassesLinesConditionalsautotests100%
(2/2)100%
(2/2)98%
(148/151)59%
(54/92)src100%
(9/9)100%
(9/9)68%
(261/384)49%
(96/197)src.externalprocess0%
(0/2)0%
(0/2)0%
(0/136)0%
(0/98)src.fileitemactionplugin0%
(0/1)0%
(0/1)0%
(0/25)0%
(0/18)src.plugins.bluetooth0%
(0/1)0%
(0/1)0%
(0/32)0%
(0/8)src.plugins.email0%
(0/1)0%
(0/1)0%
(0/65)0%
(0/24)src.plugins.imgur0%
(0/2)0%
(0/2)0%
(0/184)0%
(0/63)src.plugins.kdeconnect0%
(0/1)0%
(0/1)0%
(0/31)0%
(0/6)src.plugins.kdeconnect_sms0%
(0/1)0%
(0/1)0%
(0/16)0%
(0/2)src.plugins.ktp-sendfile0%
(0/1)0%
(0/1)0%
(0/28)0%
(0/6)src.plugins.pastebin0%
(0/1)0%
(0/1)0%
(0/54)0%
(0/23)src.plugins.phabricator0%
(0/3)0%
(0/3)0%
(0/219)0%
(0/74)src.plugins.phabricator.quick0%
(0/5)0%
(0/5)0%
(0/93)0%
(0/48)src.plugins.phabricator.tests0%
(0/1)0%
(0/1)0%
(0/60)0%
(0/22)src.plugins.reviewboard0%
(0/3)0%
(0/3)0%
(0/229)0%
(0/70)src.plugins.reviewboard.quick0%
(0/7)0%
(0/7)0%
(0/154)0%
(0/80)src.plugins.saveas100%
(1/1)100%
(1/1)57%
(29/51)61%

KDE CI: Frameworks » purpose » kf5-qt5 SUSEQt5.14 - Build # 9 - Fixed!

2020-12-21 Thread CI System
BUILD SUCCESS
 Build URL
https://build.kde.org/job/Frameworks/job/purpose/job/kf5-qt5%20SUSEQt5.14/9/
 Project:
kf5-qt5 SUSEQt5.14
 Date of build:
Mon, 21 Dec 2020 14:13:13 +
 Build duration:
2 min 39 sec and counting
   BUILD ARTIFACTS
  abi-compatibility-results.yamlacc/KF5Purpose-5.78.0.xmlcompat_reports/KF5Purpose_compat_report.htmllogs/KF5Purpose/5.78.0/log.txt
   JUnit Tests
  Name: (root) Failed: 0 test(s), Passed: 1 test(s), Skipped: 0 test(s), Total: 1 test(s)Name: projectroot Failed: 0 test(s), Passed: 2 test(s), Skipped: 0 test(s), Total: 2 test(s)
   Cobertura Report
  
   Project Coverage Summary
  
   Name
  PackagesFilesClassesLinesConditionalsCobertura Coverage Report23%
(5/22)31%
(15/48)31%
(15/48)24%
(493/2095)19%
(177/953)Coverage Breakdown by Package
Name
   FilesClassesLinesConditionalsautotests100%
(2/2)100%
(2/2)98%
(148/151)57%
(52/92)src100%
(9/9)100%
(9/9)68%
(261/384)49%
(96/197)src.externalprocess0%
(0/2)0%
(0/2)0%
(0/136)0%
(0/98)src.fileitemactionplugin0%
(0/1)0%
(0/1)0%
(0/25)0%
(0/18)src.plugins.bluetooth0%
(0/1)0%
(0/1)0%
(0/32)0%
(0/8)src.plugins.email0%
(0/1)0%
(0/1)0%
(0/65)0%
(0/24)src.plugins.imgur0%
(0/2)0%
(0/2)0%
(0/184)0%
(0/63)src.plugins.kdeconnect0%
(0/1)0%
(0/1)0%
(0/31)0%
(0/6)src.plugins.kdeconnect_sms0%
(0/1)0%
(0/1)0%
(0/16)0%
(0/2)src.plugins.ktp-sendfile0%
(0/1)0%
(0/1)0%
(0/28)0%
(0/6)src.plugins.pastebin0%
(0/1)0%
(0/1)0%
(0/54)0%
(0/23)src.plugins.phabricator0%
(0/3)0%
(0/3)0%
(0/219)0%
(0/74)src.plugins.phabricator.quick0%
(0/5)0%
(0/5)0%
(0/93)0%
(0/48)src.plugins.phabricator.tests0%
(0/1)0%
(0/1)0%
(0/60)0%
(0/22)src.plugins.reviewboard0%
(0/3)0%
(0/3)0%
(0/229)0%
(0/70)src.plugins.reviewboard.quick0%
(0/7)0%
(0/7)0%
(0/154)0%
(0/80)src.plugins.saveas100%
(1/1)100%
(1/1)57%
(29/51)61%

KDE CI: Frameworks » purpose » kf5-qt5 FreeBSDQt5.15 - Build # 51 - Fixed!

2020-12-21 Thread CI System
BUILD SUCCESS
 Build URL
https://build.kde.org/job/Frameworks/job/purpose/job/kf5-qt5%20FreeBSDQt5.15/51/
 Project:
kf5-qt5 FreeBSDQt5.15
 Date of build:
Mon, 21 Dec 2020 14:13:13 +
 Build duration:
1 min 37 sec and counting
   JUnit Tests
  Name: projectroot Failed: 0 test(s), Passed: 2 test(s), Skipped: 0 test(s), Total: 2 test(s)

Re: KDE review for KWeatherCore

2020-12-21 Thread Volker Krause
Having implemented the weather support for Itinerary, rebasing that onto a 
more comprehensive framework would indeed be welcome :)

I haven't looked too deeply at the implementation or the API yet, most of the 
feedback below is based on things learned when implementing this for 
Itinerary.

## api.met.no license and ToS compliance

The data is coming from the Norwegian Meteorological Institute, CC-licensed 
and with an API that doesn't require authentication, well documented and with 
a mailinglist for service changes and roadmap/disruption announcements. As far 
as implementing Open Data by organizations/public administration goes this is 
exemplary and unfortunately quite rare.

So at the very least we should follow their license and terms of services as 
close as possible, in letter and in spirit. Not all of that can be ensured by 
the library, some of this needs to be handled by the application. In the 
latter case those requirements need to be clearly documented though.

In particular I remember implementing the following aspects:

(1) add a point of contact to the User-Agent header, in case your client 
misbehaves. I only see this done in one place, https://invent.kde.org/
libraries/kweathercore/-/blob/master/src/weatherforecastsource.cpp#L52, which 
looks suspiciously like a verbatim copy from Itinerary, without even adjusting 
the contact address.

(2) Request throttling. The ToS seem to have been changed in wording since I 
last looked at this, but the requirement is still similar: Ensure we don't run 
unnecessary many queries. The Itinerary implementation uses a random interval 
between 120-150 minutes as lower bound, based on previous suggestions in the 
ToS.

The already suggested daemon is one way to ensure this globally, however I'm 
very reluctant to suggest a daemon for this, considering the deployment issues 
this causes for e.g. Flatpak or APKs. Itinerary uses a simple file cache and 
file mtimes, something like this should also hold up in a multi-process setup 
with a bit of extra care I think.

(3) Attribution, as required by the CC-BY license. This has to happen in the 
UI, but as a library user I need to know about this requirement, so this needs 
prominent mention in the docs I'd say.

See https://api.met.no/doc/TermsOfService for more details.


I also see other services used there I'm not familiar with, are we complying 
with their licenses and terms of services?


## Privacy considerations

(1) Requested geo coordinates are passed to the online API as-is, ie. this is 
potentially leaking a high-resolution position of the user to the outside. We 
can't avoid this entirely obviously, but we can reduce the impact by reducing 
the coordinate resolution. 

Itinerary uses 1/10th of a degree for this, which unless you get close to the 
poles are areas of a few kilometers in size, ie. rather than leaking your home 
address it's only leaking your home town.

(2) What does the sunrise API offer beyond the existing sunrise API we have in 
KF5::Holidays? The latter has the advantage of doing the entire calculation 
locally.

See https://api.kde.org/frameworks/kholidays/html/
namespaceKHolidays_1_1SunRiseSet.html

(3) Similarly, we do have a full offline implementation for timezone lookup by 
geo coordinates here: https://api.kde.org/kdepim/kitinerary/html/
namespaceKItinerary_1_1KnowledgeDb.html#ac409f468badee3c05438695009d7c67f

(4) There are http: only requests send to api.geonames.org it seems.


Similarly as with the compliance point, some of this can be argued to be the 
job of the using application. It would seem safer though is the library would 
try  to avoid mistakes to begin with.


## Other observations

(1) The license seems to be GPL-2.0-or-later, which is incompatible with the 
Frameworks license policy. See https://community.kde.org/Policies/
Licensing_Policy

(2) The result types (DailyForecast, HourlyForecast, etc) might benefit from 
being Q_GADGETs and having Q_PROPERTYs added, so they can be directly consumed 
by QML?

(3) binary compatibility measures seem to be missing in a number of places: 
https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B


Regards,
Volker

On Montag, 21. Dezember 2020 07:16:09 CET hanyoung wrote:
> KWeatherCore: https://invent.kde.org/libraries/kweathercore is a library for
> querying weather forecast data. During the development of KWeather, we
> found the need to have a weather library. KWeatherCore is the result of
> extracting weather data fetching code from KWeather. I think having a
> dedicated weather library can serve the following propose: - simplify the
> KWeather code
> - easier to develop a weather daemon
> - potentially less code duplication across KDE
> 
> Many of you may have already seen my previous email to kde-devel mailing
> list.
> Thank you for your constructive suggestions. Here are something I want to 
clarify:
> > I would also propose to consider doing a demon instead, so different
> > 

KDE review for KWeatherCore

2020-12-21 Thread hanyoung
KWeatherCore: https://invent.kde.org/libraries/kweathercore is a library for 
querying weather forecast data.
During the development of KWeather, we found the need to have a weather library.
KWeatherCore is the result of extracting weather data fetching code from 
KWeather.
I think having a dedicated weather library can serve the following propose:
- simplify the KWeather code
- easier to develop a weather daemon
- potentially less code duplication across KDE

Many of you may have already seen my previous email to kde-devel mailing list.
Thank you for your constructive suggestions. Here are something I want to 
clarify:

> I would also propose to consider doing a demon instead, so different
> programs/processes all interested in weather forecast data could share the
> data
  The end goal is a daemon indeed, but we want to build the daemon upon the 
library. This would give us flexibility
 in the future if we don't want a daemon. At least KWeather and other projects 
can still benefit from the code.

> but we want to make sure we don't end up with two things.
  I admit there are some overlapped functionalities. But KWeatherCore isn't 
designed as a weather data provider as Weather DataEngine.
  Instead, it's trying to be the building block of weather related 
applications. KWeatherCore saves you the hassle of
  dealing with APIs, getting locations and converting timezone. You can build a 
daemon with it, or you can
  use it in your applications. For example, KItinerary and KWeather use the 
same weather API, but don't share code.
  That means two code base to maintain. Regarding the dynamic nature of online 
APIs, it's better to have one library,
  so other applications don't need to be worried about their APIs being 
depraved, and they aren't able to update it in time.

  Though not currently implemented, KWeatherCore does intend to have weather 
alerts added. We hope it can be done in this Sok
  https://community.kde.org/SoK/Ideas/2021#KWeather
  With this bit added, then the work on weather daemon can be started.

Regards,
Han Young