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

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Joao De Almeida Pereira <jdealmeidapereira(at)pivotal(dot)io>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgadmin][patch] Electron version 4.X
Date: 2018-06-05 16:27:59
Message-ID: CA+OCxoxEZi58oDRoccESWf2iJVft3=OKanqa4+n_vjkMafROPg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

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.

- 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-packager/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-packager/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-packager/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-packager/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-packager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/Resources/app/web/pgadmin/browser/templates/browser/js/endpoints.js
/var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-packager/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/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-packager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/Resources/app/web/pgadmin/browser/templates/browser/js/messages.js
/var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-packager/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/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-packager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/Resources/app/web/pgadmin/browser/templates/browser/js/utils.js
/var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-packager/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-packager/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-packager/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-packager/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-packager/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-packager/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-packager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/Resources/app/web/pgadmin/templates/base.html
/var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-packager/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-packager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/Resources/app/web/pgadmin/tools/templates/js/translations.js
/var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-packager/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-packager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/Resources/app/web/pgadmin/tools/user_management/templates/user_management/js/current_user.js
/var/folders/c6/pwf0k2d509s2xx6vh0h633vm0000gn/T/electron-packager/darwin-x64/pgAdmin-darwin-x64/Electron.app/Contents/Resources/app/web/pgadmin/tools/user_management/templates/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/pwf0k2d509s2xx6vh0h633vm0000gn/T/tmp.cTDTnGt3/electron/node_modules/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/pwf0k2d509s2xx6vh0h633vm0000gn/T/tmp.cTDTnGt3/electron/node_modules/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

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Victoria Henry 2018-06-05 23:43:39 Re: [pgadmin4][Patch]: Test cases for the backup module
Previous Message Victoria Henry 2018-06-05 13:34:33 Re: [pgAdmin4][patch] Moved 'Notifications' tab before 'Query History' in Query Tool