GSoC/2019/StatusReports/WeixuanXiao: Difference between revisions

From KDE Community Wiki
< GSoC‎ | 2019‎ | StatusReports
No edit summary
(37 intermediate revisions by the same user not shown)
Line 4: Line 4:
KDE Connect works well on Linux and is built with KDE Frameworks and Qt. There is already “Continuity” on macOS for iPhone and iPad running iOS. But there is no support, and there will never be official support for Android phone on macOS. It makes sense to use KDE Connect on macOS to give Android users a better experience.
KDE Connect works well on Linux and is built with KDE Frameworks and Qt. There is already “Continuity” on macOS for iPhone and iPad running iOS. But there is no support, and there will never be official support for Android phone on macOS. It makes sense to use KDE Connect on macOS to give Android users a better experience.


The work has two main parts.
The work has two main parts:
* Packaging KDE Connect on macOS
* Making plugins work on macOS


=== Packaging KDE Connect on macOS ===
== Progress ==
 
 
=== [Done] Before May 6 ===
* Keep investigating the causes of failure of interface boot and try to fix it√
* Finish a HOW-TO wiki for building current version of KDE Connect on macOS√
 
=== [Done] May 6 – May 26 (Before the official coding time) ===
* Keep track of development discussion on IRC, mailing list and telegram group to get deeper knowledge of KDE Connect and KDE Community√
* Fix nightly build of macOS building on KDE Connect Jenkins√
* Try to fix the failure of interface boot √
 
=== [Done] May 27 – June 16 (Official coding period starts, 3 weeks) ===
* Add vlc library blueprint of macOS version into Craft bin(I’ve still finished it, maybe for further using and for other project in KDE) √
* Fix the failure of interface boot by packaging it to a dmg(1 week, May 27 - June 2) √
* May 28 - June 1 Use dbus in Craft rather than installing dbus with Homebrew √
* Fix scripts of “package” option in Craft to build a dmg image (1 week and a half) √
* Package kdeconnect-indicator, kdeconnectd, kdeconnect-cli to DMG package (3 days) √
* June 1 - June 2 Fix dependencies of kdeconnect-indicator, kdeconnectd, kdeconnect-cli in DMG package √
* June 3 - June 9 Dbus integration (make a wrapper and make kdeconnect boot the dbus) √
* June 10 - June 17 Private DBus √
 
=== [Done] June 17  – June 28 ===
* Inhibit screensaver implemented by macOS native command (3 days)√
* Implement system volume plugin by coding a native plugin on macOS (4 days)√
 
=== [Done] June 24 MID TERM EVALUATION ===
 
Up to first evaluation, KDE Connect could be started without explicit configuration. User could use it as a normal application.
 
----
 
=== [Done] June 24 – July 21 (4 weeks) ===
* June 28 - July 7 Implement native notifications on macOS (1 week and a half)√
* [Delayed] July 8  - July 14 Make the sftp plugin work by adding a stfp browser(1 week)
* July 15  - July 17 Integrate KDE Connect with macOS finder extension, which allows users to send files directly from Finder√
* July 18  - July 21 Make a clipboard plugin work on macOS√
* The documentation should be written during the coding √


Details under construction...
=== [Done] July 22 MID TERM EVALUATION ===


=== Making plugins work on macOS ===
----


Details under construction...
=== July 22 – August 11 (2 weeks) ===
* Implement virtual input plugin by fixing X11 or by coding another backend for macOS (4 days)√
* Debug and fix share and receive plugin on both Android and macOS sides (2 days)√
* Make the sftp plugin work by adding a stfp browser
* 2 days for unit test of new added, macOS-specific codes


== Progress ==
=== August 12 – August 18 (1 week) ===
* Finish all documentation and clear up
* Release a production-ready install package of dmg format
 
----
 
=== Conclusion​ ===
* [Done] Milestone 1 (Bootstrap) and Milestone 2 (Basic package) will be done before evaluation 1, to make the application run normally without tedious configuration like now.


Coming soon
* [Done] Milestone 3 (Native system Functionalities) will be done for evaluation 2. Meanwhile, Milestone 4  (Plugin Functionalities) should be started on mid-July, before the evaluation 2.


== WIP ==
* [WIP] Milestone 4 (Plugin Functionalities) and Milestone 5 (Complete package) will be done for final evaluation. And it will be a full deliverable version which is product-ready.


Use a private dbus for KDE Connect on mac OS [https://invent.kde.org/wxiao/kdeconnect-kde/tree/macos-private-dbus macos-private-dbus branch]
== Work In Progress ==


Enable service on the private dbus for KDE Connect on mac OS [https://invent.kde.org/wxiao/kdeconnect-kde/tree/macos-dbus-service macos-dbus-service branch]
* Implement native notifications on macOS [https://github.com/Inokinoki/knotifications/tree/Inokinoki/macos-notification-center-backend working on writing tests]
* Make the sftp plugin work by adding a stfp browser
* Code sign for preventing KDE Connect from inhibiting by Gatekeeper on macOS [https://github.com/Inokinoki/kde-blog/releases/tag/20190814 an experimental release]


== Merged Branches ==
== Accepted changes ==


KDE Connect:
KDE Connect:
* Use a private dbus for KDE Connect on mac OS [https://invent.kde.org/wxiao/kdeconnect-kde/tree/macos-private-dbus macos-private-dbus branch]
* [https://invent.kde.org/kde/kdeconnect-kde/merge_requests/95 Allow kdeconnectd auto launch from kdeconnect-indicator on macOS]
* [https://invent.kde.org/kde/kdeconnect-kde/merge_requests/95 Allow kdeconnectd auto launch from kdeconnect-indicator on macOS]
* DBus wrapper for KDE Connect only dbus daemon on macOS: [https://invent.kde.org/kde/kdeconnect-kde/commit/5431073844a694f9186d7fc4f540b96e4b0a6e24 Add wrapper for macos dbus connection]
* DBus wrapper for KDE Connect only dbus daemon on macOS: [https://invent.kde.org/kde/kdeconnect-kde/commit/5431073844a694f9186d7fc4f540b96e4b0a6e24 Add wrapper for macos dbus connection]
* [https://invent.kde.org/kde/kdeconnect-kde/commit/17e4360c53c910f31272f24ab0c9c467042a4f06 Enable sms test only when SMSAPP_ENABLED set to ON]
* [https://invent.kde.org/kde/kdeconnect-kde/commit/17e4360c53c910f31272f24ab0c9c467042a4f06 Enable sms test only when SMSAPP_ENABLED set to ON]
* [https://invent.kde.org/kde/kdeconnect-kde/commit/58beafb2421a73acc1fdbaa9e328bc8a89485684 Fix macos build]
* [https://invent.kde.org/kde/kdeconnect-kde/commit/58beafb2421a73acc1fdbaa9e328bc8a89485684 Fix macos build]
* [https://invent.kde.org/kde/kdeconnect-kde/merge_requests/110 Screen saver inhibit plugin for macOS]
* [https://invent.kde.org/kde/kdeconnect-kde/merge_requests/117 System volume plugin for macOS]
* [https://invent.kde.org/kde/kdeconnect-kde/merge_requests/121 Clipboard sync plugin for macOS]
* [https://invent.kde.org/kde/kdeconnect-kde/merge_requests/122 Implementation of virtual input plugin by fixing X11 or by coding another backend for macOS]
* [https://invent.kde.org/wxiao/kde-connect-share-extension/tree/with-kdeconnect-cli Integrate KDE Connect with macOS finder extension, which allows users to send files directly from Finder]
* [https://invent.kde.org/kde/kdeconnect-kde/merge_requests/131 Hide icon and set HighRes feature]




Line 38: Line 98:
* [https://cgit.kde.org/craft-blueprints-kde.git/commit/?id=3161ec7a11bb50b59b8bec9f32b0467ac94b8d61 Fix kdeconnect-indicator bundle on macOS]
* [https://cgit.kde.org/craft-blueprints-kde.git/commit/?id=3161ec7a11bb50b59b8bec9f32b0467ac94b8d61 Fix kdeconnect-indicator bundle on macOS]
* [https://cgit.kde.org/craft-blueprints-kde.git/commit/?id=27c885dccdbd4139ee2a84cf0bf1e96d506e8510 Fix missing QtDBus lib for phonon-vlc building on macOS]
* [https://cgit.kde.org/craft-blueprints-kde.git/commit/?id=27c885dccdbd4139ee2a84cf0bf1e96d506e8510 Fix missing QtDBus lib for phonon-vlc building on macOS]
* [https://phabricator.kde.org/D22610 Copy smsapp and kdeconnect app into package for releasing]
* [https://phabricator.kde.org/D22644 Add kpeoplevcard blueprint]




Craft:
Craft:
* [https://cgit.kde.org/craft.git/commit/?id=a11fdfe43708d11c74ad77fe597887c4dbd2e6d4 Use macdeloyqt to fix all deps of exec in macOS package]
* [https://cgit.kde.org/craft.git/commit/?id=a11fdfe43708d11c74ad77fe597887c4dbd2e6d4 Use macdeloyqt to fix all deps of exec in macOS package]
* [https://phabricator.kde.org/D22558 Copy kioslave into package to fix "Debug and fix share and receive plugin on both Android and macOS sides"]
* [https://phabricator.kde.org/D22615 Add qml dirs definitions into MacOSDMGPackager to make qml app correctly deploy]
== Posts and Resources ==
Useful links:
* [https://community.kde.org/KDEConnect/Build_MacOS Build KDE Connect on macOS]
* [https://binary-factory.kde.org/view/MacOS/job/kdeconnect-kde_Nightly_macos/ Get KDE Connect nightly building for macOS on KDE Binary Factory]
Posts:
* [https://kde.inoki.cc/2019/07/18/KDE-Connect-macOS-plugin-notification/ Enable Notification of KDE Connect on macOS]
* [https://kde.inoki.cc/2019/07/16/KDE-Connect-macOS/ KDE Connect for macOS]
* [https://kde.inoki.cc/2019/05/26/Craft-packager/ Craft packager analysis]
* [https://kde.inoki.cc/2019/05/19/Craft-vlc/ Craft VLC fix]

Revision as of 21:01, 15 August 2019

KDE Connect for macOS port

KDE Connect works well on Linux and is built with KDE Frameworks and Qt. There is already “Continuity” on macOS for iPhone and iPad running iOS. But there is no support, and there will never be official support for Android phone on macOS. It makes sense to use KDE Connect on macOS to give Android users a better experience.

The work has two main parts:

  • Packaging KDE Connect on macOS
  • Making plugins work on macOS

Progress

[Done] Before May 6

  • Keep investigating the causes of failure of interface boot and try to fix it√
  • Finish a HOW-TO wiki for building current version of KDE Connect on macOS√

[Done] May 6 – May 26 (Before the official coding time)

  • Keep track of development discussion on IRC, mailing list and telegram group to get deeper knowledge of KDE Connect and KDE Community√
  • Fix nightly build of macOS building on KDE Connect Jenkins√
  • Try to fix the failure of interface boot √

[Done] May 27 – June 16 (Official coding period starts, 3 weeks)

  • Add vlc library blueprint of macOS version into Craft bin(I’ve still finished it, maybe for further using and for other project in KDE) √
  • Fix the failure of interface boot by packaging it to a dmg(1 week, May 27 - June 2) √
  • May 28 - June 1 Use dbus in Craft rather than installing dbus with Homebrew √
  • Fix scripts of “package” option in Craft to build a dmg image (1 week and a half) √
  • Package kdeconnect-indicator, kdeconnectd, kdeconnect-cli to DMG package (3 days) √
  • June 1 - June 2 Fix dependencies of kdeconnect-indicator, kdeconnectd, kdeconnect-cli in DMG package √
  • June 3 - June 9 Dbus integration (make a wrapper and make kdeconnect boot the dbus) √
  • June 10 - June 17 Private DBus √

[Done] June 17 – June 28

  • Inhibit screensaver implemented by macOS native command (3 days)√
  • Implement system volume plugin by coding a native plugin on macOS (4 days)√

[Done] June 24 MID TERM EVALUATION

Up to first evaluation, KDE Connect could be started without explicit configuration. User could use it as a normal application.


[Done] June 24 – July 21 (4 weeks)

  • June 28 - July 7 Implement native notifications on macOS (1 week and a half)√
  • [Delayed] July 8 - July 14 Make the sftp plugin work by adding a stfp browser(1 week)
  • July 15 - July 17 Integrate KDE Connect with macOS finder extension, which allows users to send files directly from Finder√
  • July 18 - July 21 Make a clipboard plugin work on macOS√
  • The documentation should be written during the coding √

[Done] July 22 MID TERM EVALUATION


July 22 – August 11 (2 weeks)

  • Implement virtual input plugin by fixing X11 or by coding another backend for macOS (4 days)√
  • Debug and fix share and receive plugin on both Android and macOS sides (2 days)√
  • Make the sftp plugin work by adding a stfp browser
  • 2 days for unit test of new added, macOS-specific codes

August 12 – August 18 (1 week)

  • Finish all documentation and clear up
  • Release a production-ready install package of dmg format

Conclusion​

  • [Done] Milestone 1 (Bootstrap) and Milestone 2 (Basic package) will be done before evaluation 1, to make the application run normally without tedious configuration like now.
  • [Done] Milestone 3 (Native system Functionalities) will be done for evaluation 2. Meanwhile, Milestone 4 (Plugin Functionalities) should be started on mid-July, before the evaluation 2.
  • [WIP] Milestone 4 (Plugin Functionalities) and Milestone 5 (Complete package) will be done for final evaluation. And it will be a full deliverable version which is product-ready.

Work In Progress

Accepted changes

KDE Connect:


Craft Blueprints:


Craft:

Posts and Resources

Useful links:


Posts: