Re: [pgadmin][patch] Electron version 4.X

From: Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: Joao De Almeida Pereira <jdealmeidapereira(at)pivotal(dot)io>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgadmin][patch] Electron version 4.X
Date: 2018-06-06 16:58:03
Message-ID: CAKKotZTmnLfs7agFdhxUw5R+xNgsksktH5t9eraiz6=oY1Fncw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Joao,

Awesome job, I tried windows build & it is running very smooth on my Win10
VM,

It took some time when I ran it for the first time (I think because it ran
"update.exe") but it was quick when opened second time onwards (taking ~6-7
secs to display the main window).

The main thing I noticed is that it's not resource-hungry like other
electron apps I have used earlier,
- Resouce consumption with Dashboard
CPU: ~20%
RAM: ~300mb

- Resouce consumption without Dashboard
CPU: ~5%
RAM: ~300mb

Which is much lighter than I expected :)

I'll also try it on my physical machine running Win7 and update the thread
if I find any issue.

On Tue, Jun 5, 2018 at 9:57 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:

> Hi
>
> On Mon, Jun 4, 2018 at 10:27 PM, Joao De Almeida Pereira <
> jdealmeidapereira(at)pivotal(dot)io> wrote:
>
>> Hi Hackers,
>>
>> Attached you can find the patch that introduces electron to our code base.
>>
> Cool. FYI, I'd like to get this into rough shape and then push it to a dev
> branch for fine-tuning. I think it'll be easier to work that way.
>
>
>> What do we provide with this patch:
>>
>> - Start the pgAdmin server from Electron
>> - When starting pgAdmin, the user is shown a window that tells them
>> that pgAdmin is loading.
>> - Once the server has started, the loading window disappears and
>> opens pgAdmin in a window
>> - Desktop user has the ability to open up new windows to work in.
>> - When you close pgAdmin it properly shuts everything down.
>> - Stop using copy of web folder for development
>>
>> I'm not sure what you mean by that last point?
>
>
>>
>> - `
>> This is the initial patch for people to start paying around with the
>> electron version. There might be things that are not working.
>> What we know:
>> - Logging is not working on windows
>> - We are not packaging any pg_* executables
>> - Consistent/Centralized versioning between Electron and pgAdmin
>> Server
>>
>> OK.
>
>>
>>
>> We generated builds for:
>>
>> - MacOs: https://storage.googleapis.com/pgadmin-binaries/pgAdmin-4.0.
>> 4%2Bdev.darwin.zip
>> - Ubuntu/Debian 64 bit: https://storage.googleapis.com
>> /pgadmin-binaries/pgAdmin_4.0.4~dev_amd64.linux.zip
>> <https://storage.googleapis.com/pgadmin-binaries/pgAdmin_4.0.4~dev_amd64.linux.zip>
>> - Windows 64 Bit: https://storage.googleapis.com
>> /pgadmin-binaries/pgAdmin-4.0.5-dev-windows.zip
>> <https://storage.googleapis.com/pgadmin-binaries/pgAdmin-4.0.5-dev-windows.zip>
>> - Runtime code is still present
>> - Didn’t update the make scripts
>>
>> We added some instructions on how to build these 3 binaries in
>> electron/Readme.md
>>
> Great. So here's my initial feedback:
>
> - The Mac build you provided doesn't work for me. It hangs on the loading
> screen.
>
> - A number of the changes are related to the naming of requirejs. I'd be
> inclined to pull that out into a separate patch and get it committed to
> master ASAP.
>
> - I think the build instructions need to be more generic (particularly on
> macOS). For example, I do not use HomeBrew (largely due to some nasty
> security issues they had in the past). I was able to mostly port the
> instructions and build script over to work using MacPorts (without PyEnv)
> which actually turned out to be somewhat more simple than what's there now.
>
> - I'm not sure what this is intended to do: "git checkout electron".
> Clearly that isn't correct.
>
> - All new builds should be using Python 3.6. We need to deprecate 2.7 as
> there are some Unicode related issues that cannot be fixed in it.
>

​+1

>
> - The Linux build isn't a Linux build in the general sense - it's a Debian
> build and should be named as such (and if we're including that, we should
> have a Redhat version - though that needn't hold up the current work).
> Sidenote: I'm not sure that either the APT or YUM PostgreSQL projects will
> accept a package built in this way as they're somewhat picky about
> following platform packaging rules which would mean using the
> system-installed Python. I think this is a sane way to go myself, but
> that's just my view.
>
> - I would like to see the new build code adapted to follow the existing
> conventions as much as reasonable, to avoid having to change build systems
> or other processes/procedures that folks use. For example, build scripts
> should be under pkg/, completed packages left in dist/, build staging done
> in xxx-build directories rather than elsewhere.
>
> - It may be a result of my use of MacPorts, but I'm getting the following
> failure building:
>
> yarn run v1.3.2
> $ electron-forge make --platfrom=darwin --arch=x64 --targets=dmg
> ✔ Checking your system
> ✔ Resolving Forge Config
> We need to package your application before we can make it
> ✔ Preparing to Package Application for arch: x64
> ⠼ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/venv/lib/python3.6/site-packages/setuptools/command/launcher
> manifest.xml
> Compiling /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/venv/lib/python3.6/site-packages/setuptools/command/launcher
> manifest.xml resulted in a MIME type of application/xml, which we don't
> know how to handle
> ⠋ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/browser/server_groups/servers/
> templates/servers/supported_servers.js
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/browser/server_groups/servers/
> templates/servers/supported_servers.js: Unexpected token (6:7)
> ⠦ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/browser/templates/browser/js/endpoints.js
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/browser/templates/browser/js/endpoints.js:
> Unexpected token (5:6)
> Failed to compile file: /var/folders/c6/pwf0k2d509s2xx
> 6vh0h633vm0000gn/T/electron-packager/darwin-x64/pgAdmin-darw
> in-x64/Electron.app/Contents/Resources/app/web/pgadmin/
> browser/templates/browser/js/messages.js
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/browser/templates/browser/js/messages.js:
> Unexpected token (37:1)
> Failed to compile file: /var/folders/c6/pwf0k2d509s2xx
> 6vh0h633vm0000gn/T/electron-packager/darwin-x64/pgAdmin-darw
> in-x64/Electron.app/Contents/Resources/app/web/pgadmin/
> browser/templates/browser/js/utils.js
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/browser/templates/browser/js/utils.js:
> Unexpected token (28:23)
> ⠋ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/misc/file_manager/templates/
> file_manager/js/languages/en.js
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/misc/file_manager/templates/
> file_manager/js/languages/en.js: Unexpected token, expected ; (2:29)
> ⠋ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/static/scss/_alert.scss
> Error: Undefined variable: "$color-green-3".
> on line 29 of /stdin
> >> background: $color-green-3;
>
> --------------^
>
> ⠙ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/static/scss/_alertify.overrides.scss
> Error: ".ajs-message.ajs-error.ajs-visible" failed to @extend ".bg-red-1".
> The selector ".bg-red-1" was not found.
> Use "@extend .bg-red-1 !optional" if the extend should be able to
> fail.
> on line 164 of /stdin
> >> @extend .bg-red-1;
>
> ----------^
>
> ⠴ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/static/scss/sqleditor/_history.scss
> Error: Undefined variable: "$color-gray-3".
> on line 4 of /stdin
> >> border-bottom: 1px solid $color-gray-3;
>
> -----------------------------^
>
> ⠇ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/templates/base.html
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/templates/base.html:inline_1.js: Unexpected
> token (2:13)
> ⠴ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/tools/templates/js/translations.js
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/tools/templates/js/translations.js: Unexpected
> token (2:10)
> ⠦ Compiling ApplicationFailed to compile file:
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/tools/user_management/template
> s/user_management/js/current_user.js
> /var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-pa
> ckager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/
> Resources/app/web/pgadmin/tools/user_management/template
> s/user_management/js/current_user.js: Unexpected token (3:15)
> ✔ Compiling Application
> ✔ Preparing native dependencies
> ✔ Packaging Application
> Making for the following targets:
> ⠋ Making for target: dmg - On platform: darwin - For arch: x64
> An unhandled exception has occurred inside Forge:
> Cannot find module 'macos-alias'
> Error: Cannot find module 'macos-alias'
> at Function.Module._resolveFilename (module.js:547:15)
> at Function.Module._load (module.js:474:25)
> at Module.require (module.js:596:17)
> at require (internal/module.js:11:18)
> at Object.<anonymous> (/private/var/folders/c6/pwf0k
> 2d509s2xx6vh0h633vm0000gn/T/tmp.cTDTnGt3/electron/node_modul
> es/ds-store/index.js:2:13)
> at Module._compile (module.js:652:30)
> at Object.Module._extensions..js (module.js:663:10)
> at Module.load (module.js:565:32)
> at tryModuleLoad (module.js:505:12)
> at Function.Module._load (module.js:497:3)
> at Module.require (module.js:596:17)
> at require (internal/module.js:11:18)
> at Object.<anonymous> (/private/var/folders/c6/pwf0k
> 2d509s2xx6vh0h633vm0000gn/T/tmp.cTDTnGt3/electron/node_modul
> es/appdmg/lib/appdmg.js:5:15)
> at Module._compile (module.js:652:30)
> at Object.Module._extensions..js (module.js:663:10)
> at Module.load (module.js:565:32)
> error Command failed with exit code 1.
> info Visit https://yarnpkg.com/en/docs/cli/run for documentation about
> this command.
>
>
> Thanks for working on this!
>
> --
> Dave Page
> Blog: http://pgsnake.blogspot.com
> Twitter: @pgsnake
>
> EnterpriseDB UK: http://www.enterprisedb.com
> The Enterprise PostgreSQL Company
>

Regards,
Murtuza

In response to

Browse pgadmin-hackers by date

  From Date Subject
Next Message Murtuza Zabuawala 2018-06-06 17:04:04 [pgAdmin4][RM#3404] Graphical explain plan do not display text under the node
Previous Message Victoria Henry 2018-06-06 15:25:13 Re: [pgadmin4][patch] Initial patch to decouple from ACI Tree