Re: Showstopper desktop runtime issue

Поиск
Список
Период
Сортировка
От Joao De Almeida Pereira
Тема Re: Showstopper desktop runtime issue
Дата
Msg-id CAE+jjakNKHxb4vpz6-aHu0_U9c0A1jvjQ8Nn=JMcLtM9jjnqbQ@mail.gmail.com
обсуждение исходный текст
Ответ на Re: Showstopper desktop runtime issue  (Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com>)
Ответы Re: Showstopper desktop runtime issue  (Dave Page <dpage@pgadmin.org>)
Re: Showstopper desktop runtime issue  (Magnus Hagander <magnus@hagander.net>)
Список pgadmin-hackers
Hello Hackers,
Here is our take on the 3 options present:
1) QtWebkit and QtWebEngine

Pros:
- Webkit is a mature technology that as been around for some time
- Apparently the Fork of Webkit we were using as been catching up
Cons:
- We are using a Fork
- It is to far behind of the today browsers and the competition keep evolving making it even harder for them to catch up
- Problems with the environment from the past, lagginess, lack of support

2) Rework runtime to find a running PGAdmin and attach to it

Pros:
- We already made the big move from Webkit to this version
- Add smarts to the application to do not run itself if it is already running, or kill the currently running application 

Cons:
- More C++ code thrown around
- Add more dependency on our QT application
- Have specific code for Gnome, not even a OS version but a window manager

3) Electron

Pros:
- Full Javascript runtime, no more C++ code to handle
- Self packaging for all the environments
Cons:
- No fully supported on Linux based OS with old libstdc++, (This might solve the problem: https://github.com/mattermost/desktop/issues/312)
- CPU/RAM high utilization (Found a issues around and the majority of them have solutions like CSS animations running or settings on the created windows)
- Electron does not support tabs by default, only HTML tabs

After combing through these options with some pros and cons  here are my thoughts:
1) This options was always cluncky from the beginning, the fact that we are working with a browser that is currently 26k commits behind Webkit:master is concerning. So I do not believe this is a viable option. As a personal opinion is we need to release fast, then we should go with what we have now and not go back to this option.
2) This option is not very appealing to me, because we would be pilling code into the QT portion of the application, that I hope we remove in the future, that currently is untested to solve a problem caused by a Window Manager......
I would be more in favor of creating a Application Indicator that would support 2 actions, Kill running pgAdmins and launch the browser to access them. There is a lot of interesting websites that talk about this, and how to develop. I had to download one to have a docker indicator..... But as I said in a previous thread, I believe that this should be a 3rd party application and not a first class citizen on pgAdmin, as the majority of the ones that I found are.
3) Electron can to play, first when we though about removing QTWebkit, because it always packs a browser with it and also and there is a very big Open Source Community being it. It came back again when when we saw that we were ready to ditch the browser. (As a personal note I dislike applications that I install in my machine and pop browser open to do anything, this is a personal issue that I would like to see if it was shared by others that was why we decided to park Electron for a second time. Because if our users are ok with it there is no need to add extra complexity to the product)
The most interesting thing about the cons that I found in Electron there is an issue open for them and a bunch of different solutions to try to handle it, or even advises on how to handle it. This option also allow us to focus less on browser compatibility as the main target of our development will become Chromium which is the base of browsers like UC Browser, Vivaldi, Opera, Google Chrome.

As you could see from my long long email, I am biased towards options 3, not because I started the push for it, but because I believe it is the right step for this product. This being said, I think that releasing now with this current issue is Ok as a first step to somewhere.

Thanks
Joao

On Thu, Mar 22, 2018 at 6:48 AM Murtuza Zabuawala <murtuza.zabuawala@enterprisedb.com> wrote:
On Thu, Mar 22, 2018 at 3:19 PM, Dave Page <dpage@pgadmin.org> wrote:
All,

As you know, the 3.0 release is currently on hold as we discovered late yesterday that the re-vamped desktop runtime will not run on Gnome 3.26 and later. This is because the GTK project, and later Gnome, have removed support for the System Tray on which the new runtime relies. 

They have replaced it with a notification mechanism, however this doesn't really meet our needs as what we want is a place (the tray icon) to attach a menu to control the pgAdmin server; we don't really use notifications as such.

I see a number of possible ways around this:

1) Return to the previous runtime. I think this is at best a short-term solution, as the re-visited Annulen version of the QtWebKit seems to be getting little attention at the moment, and this would re-introduce many known bugs caused by WebKit.
​I would not prefer going back after seeing QtWebkit & QtWebEngine issues in the past.​
 

2) Re-work the current runtime code to remove the tray icon, and utilise desktop/start menu items to signal the running instance to show the logs, configure the server, exit etc. This should work, but will be kinda klunky.
​+1​
 

3) Put effort into polishing Joao's Electron based runtime. This might be a good long term solution as it would remove the need to have any C++ code of our own, and might allow us to use Electron's update mechanism to do software updates. The downsides are that we would lose support for dockable tabs (new windows only), and it wouldn't work on CentOS/RHEL 6 which we currently support.
​This is a good alternative but there are some downside of Electron,
- It takes longer to start application
- High cpu & ram usage (I have used Slack, Atom & VSCode all of them used Electron)


Thoughts and comments please folks? How do we want to proceed? I'm currently leaning towards 2 for v3, and possibly moving to 3 in the long term.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

В списке pgadmin-hackers по дате отправления:

Предыдущее
От: Dave Page
Дата:
Сообщение: Re: Little patch for Runtime build from Top Level Directory($PGADMIN_SRC)MakeFile
Следующее
От: Dave Page
Дата:
Сообщение: Re: Showstopper desktop runtime issue