Hi On Tue, Jun 12, 2018 at 8:04 PM, Victoria Henry <vhe...@pivotal.io> wrote:
> Hi Hackers, > > Attached is a revised patch with the following changes: > > - updated the README > - moved the build scripts to the pkg folder > - storing the out files in dist/arch/ > - fix the mac build so it no longer stalls on loading > > > > Here is a link to the updated mac binary: > https://storage.googleapis.com/pgadmin-binaries/pgAdmin- > 4.0.5-dev.darwin.zip > Looks good! I've pushed your most recent patch along with some minor tweaks to a new "electron" branch. The changes were: - Use "pgAdmin" on menus - Update the .gitignore file - Remove the existing runtime - add "macos-alias" to the package.json file I've also created a rough TODO list at https://redmine.postgresql.org/projects/pgadmin4/wiki/Electron_TODO_list to keep an eye on outstanding items. Please add anything you have. I intend to spend time on this as and when I can. Thanks! > > > Let us know what you think. > > Sincerely, > > Victoria && Joao > > On Mon, Jun 11, 2018 at 11:35 AM Dave Page <dp...@pgadmin.org> wrote: > >> Hi >> >> On Fri, Jun 8, 2018 at 3:49 PM, Victoria Henry <vhe...@pivotal.io> wrote: >> >>> >>> >>> On Tue, Jun 5, 2018 at 12:28 PM Dave Page <dp...@pgadmin.org> wrote: >>> >>>> Hi >>>> >>>> On Mon, Jun 4, 2018 at 10:27 PM, Joao De Almeida Pereira < >>>> jdealmeidapere...@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. >>>> >>> Sure, you can create a dev branch and push this patch to it. >>> >>> Great. So here's my initial feedback: >>>> >>>> - The Mac build you provided doesn't work for me. It hangs on the >>>> loading screen. >>>> >>> Could we get some more information about the machine? Using the python >>> from the venv directory, are you able to run the app directly? >>> >>> cd /Applications/pgAdmin.app/Contents/Resources/app/ >>> venv/bin/python web/pgAdmin4.py >>> >>> >>> Do you get and error? >>> We are setting PGADMIN_PORT, PGADMIN_KEY and SERVER_MODE environment >>> variables prior to starting it. >>> >> >> Yes, I get: >> >> piranha:app dpage$ venv/bin/python web/pgAdmin4.py >> >> Could not find platform independent libraries <prefix> >> >> Could not find platform dependent libraries <exec_prefix> >> >> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>] >> >> Fatal Python error: Py_Initialize: unable to load the file system codec >> >> ModuleNotFoundError: No module named 'encodings' >> >> >> Current thread 0x00007fffe86993c0 (most recent call first): >> >> Abort trap: 6 >> >> >> >> >>> >>> >>>> >>>> >>> - 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. >>>> >>> This change only makes sense in the Electron context. Neverthless fell >>> free to add it to master if you think it is relevant. >>> >>> >>>> - 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. >>>> >>> Since we don't use MacPorts, we cannot provide installation instructions. >>> >> >> I wasn't asking you to provide MacPort instructions; I can do that. I was >> saying that the basic outline of the instructions should be agnostic to the >> package tools the user might choose; e.g. >> >> - Install python >> - Create a virtual environment using the --copies option called venv >> - Move the virtual environment to ... >> >> We can then include examples of how to do that with brew, macports etc. >> >> >>> >>> >>>> - I'm not sure what this is intended to do: "git checkout electron". >>>> Clearly that isn't correct. >>>> >>> That was the name of our development branch. It can be removed. >>> >> >> OK. >> >> >>> >>> >>>> >>>> - 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. >>>> >>> For Windows, we are using 2.7 because of external library compilation >>> issues. Let us know if you are able to get around this or how to make >>> this work. >>> >> >> There are a couple of tricks if you're using Python 3.6. First, to >> compile Pycrypto you need to do something like: >> >> >> - set VCINSTALLDIR=C:\Program Files (x86)\Microsoft Visual Studio >> 14.0\VC >> - set CL=-FI"%VCINSTALLDIR%\INCLUDE\stdint.h" >> - (https://stackoverflow.com/questions/41843266/microsoft- >> windows-python-3-6-pycrypto-installation-error >> >> <https://stackoverflow.com/questions/41843266/microsoft-windows-python-3-6-pycrypto-installation-error> >> ) >> >> Beforehand. Then, edit Lib\site-packages\Crypto\Random\OSRNG\nt.py" and >> modify " *import winrandom*" to "*from . import winrandom*". >> >> As a sidenote, I use the VC++ 2015 Build Tools compiler from Microsoft, >> without installing any SDKs or Visual Studio. >> >> >>> >>> >>>> - 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. >>>> >>> That sounds reasonable. >>> >>> >>>> - 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; >>>> >>>> -----------------------------^ >>>> >>> We were also seeing these errors but they don't have any impact on the >>> compilation and should be addressed in the future (not in this patch) >>> >>> >>>> >>>> ⠇ 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' >>>> >>> This may be related to using MacPorts or the way you installed the >>> dependencies. There was a bug with Electron and Node 10 so we had to use >>> to Node 8 with Yarn. >>> >> >> I'm using Node 8 as well. Let's figure out your build first and ensure we >> can get that working everywhere, then I'll try to figure out how to >> reproduce it. >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > -- Dave Page Blog: http://pgsnake.blogspot.com Twitter: @pgsnake EnterpriseDB UK: http://www.enterprisedb.com The Enterprise PostgreSQL Company