PoC electron and pgAdmin4

From: Joao De Almeida Pereira <jdealmeidapereira(at)pivotal(dot)io>
To: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: PoC electron and pgAdmin4
Date: 2018-02-23 20:14:15
Message-ID: CAE+jja=9-kt4=fd=6kTKQFsCdwyQUWnCQs8w4tYMSbTzOP8R-w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Hackers,
After the removal of the Webkit environment we gave a shot to add electron
as our runtime environment. We were able to do it with some degree of
success.
The links to get a version running with electron are:
Windows:
https://storage.googleapis.com/pgadmin-binaries/releases/pgAdmin%204%20Setup%203.0.0.exe

Mac:
https://storage.googleapis.com/pgadmin-binaries/releases/pgAdmin%204-3.0.0.dmg

Ubuntu:
https://storage.googleapis.com/pgadmin-binaries/releases/pgAdmin4_3.0.0_amd64.deb

RPM:
https://storage.googleapis.com/pgadmin-binaries/releases/pgAdmin4-3.0.0.x86_64.rpm

What did we accomplish:
- Use Electron as a runtime and packaging solution for the application
- Support opening new windows when the preferences ask for them
- Make the application generally work
- Use Chrome as a default browser for the application
- Building scripts for all platforms using `yarn`, please review Readme
- The packaged Python version is 3.6 to Mac and Linux, and 3.4 to Windows
- In our point of view it is a simpler way to generate the installers

Work in progress:
- No random port for the server, so you can only start 1 instance per
machine
- Tab support, there is no native support for tabs in Electron. It is
possible to do that, and eventually you will see a option in the menu to
create a new tab, but for this PoC we decided to disable the creation of
tabs. Tabs need to be implemented using HTML and cannot be ripped of from
the current window, like in Chrome
- Did not test in CentOS, but tested in Ubuntu and it is working (We tried
but the electron required GLIBC 2.25 that was not on the version of CentOS
that we had)
- In Linux despite the fact that we close the window, the application is
still running and need to be killed by hand
- We didn't test Debigger opening in new window
- Loading screen has no reference to pgAdmin
- No logging file for the runtime
- Windows we are using python 3.4 and using prior version of psycopg2
2.5.6 and pycrypto 2.6.1 (The version of psycopg2 is not the correct one,
this is because we couldn't find a precompile version of psycopg2)
- This is just a spike and the code looks pretty messy. This need to be
changed in order to make it more readable and have some tests around it

Please give it a try and let us know what you think about it. If you find
any problem let us know as well.
This is just a Proof Of Concept, where the majority of the application
should be running correctly but there might be some glitches,

You can find the code in:
https://github.com/greenplum-db/pgadmin4/tree/electron-over-master
Readme:
https://github.com/greenplum-db/pgadmin4/blob/electron-over-master/electron/README.md

Thanks
Joao

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Joao De Almeida Pereira 2018-02-23 21:57:43 [pgadmin4][patch] Table Statistics in GreenPlum #3059
Previous Message Joao De Almeida Pereira 2018-02-23 17:53:00 Re: [pgadmin4] Creating a new Node in ACI Tree