Re: [pgadmin][patch] Electron version 4.X - Mailing list pgadmin-hackers

From Dave Page
Subject Re: [pgadmin][patch] Electron version 4.X
Date
Msg-id CA+OCxoxEZi58oDRoccESWf2iJVft3=OKanqa4+n_vjkMafROPg@mail.gmail.com
Whole thread Raw
In response to [pgadmin][patch] Electron version 4.X  (Joao De Almeida Pereira <jdealmeidapereira@pivotal.io>)
Responses Re: [pgadmin][patch] Electron version 4.X
Re: [pgadmin][patch] Electron version 4.X
List pgadmin-hackers
Hi

On Mon, Jun 4, 2018 at 10:27 PM, Joao De Almeida Pereira <jdealmeidapereira@pivotal.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:

    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

    pgadmin-hackers by date:

    Previous
    From: Victoria Henry
    Date:
    Subject: Re: [pgAdmin4][patch] Moved 'Notifications' tab before 'QueryHistory' in Query Tool
    Next
    From: Victoria Henry
    Date:
    Subject: Re: [pgadmin4][Patch]: Test cases for the backup module