[pgAdmin4] [PATCH] History Tab rewrite in React

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
45 messages Options
123
Reply | Threaded
Open this post in threaded view
|

[pgAdmin4] [PATCH] History Tab rewrite in React

Matthew Kleiman
Hi Hackers!

Don't panic, this patch is for AFTER 1.5 release. ;-)


0001-Bring-React-into-the-codebase.patch is an infrastructural change. This patch brings in the React.js library and all of the tools that are needed for us to use React code in this project. It includes a webpack bundler to package and minify our javascript, a js linter to help keep the javascript code clean, and the Grunt taskrunner to manage these tasks.

0002-Creates-query-history-list.patch replaces the existing history tab with a React-based history component. The current patch brings us to feature-parity with the current application. However, we plan on continuing work on the History tab as we discussed. This is the smallest digestible chunk of work that we could send as a committable patch after 1.5 is cut.

Next Steps for History Tab
We are continuing to improve the user experience of the history tab. We have a series of stories lined up that lead us towards a further redesigned history tab. As we add the right hand panel and each query metadata item to it, we will be removing each query metadata item from the list view accordingly. 

Here is the design from one of the later stories:
Inline image 1

Regards,
Shruti & Matt



--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

0001-Bring-React-into-the-codebase.patch (395K) Download Attachment
0002-Creates-query-history-list.patch (64K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Murtuza Zabuawala
Hi Matt,

I'm on macOS(10.10.5) & not able to run pgAdmin4 through console/terminal (with virtual environment activated), earlier it used to work properly but after applying given two patches it started throwing error.

After applying the patch

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python web/pgAdmin4.py

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

/Library/Frameworks/Python.framework/Versions/3.5/Resources/Python.app/Contents/MacOS/Python: can't open file 'web/pgAdmin4.py': [Errno 2] No such file or directory

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python --version

Python 3.5.0

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python web/pgAdmin4.py

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

/Library/Frameworks/Python.framework/Versions/3.5/Resources/Python.app/Contents/MacOS/Python: can't open file 'web/pgAdmin4.py': [Errno 2] No such file or directory

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4


 And when I removed the patch and try again then it started properly. 

After removing the patch

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ git pull

Already up-to-date.

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python web/pgAdmin4.py

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.


Let me know if I missed anything here.


--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Tue, May 16, 2017 at 3:07 AM, Matthew Kleiman <[hidden email]> wrote:
Hi Hackers!

Don't panic, this patch is for AFTER 1.5 release. ;-)


0001-Bring-React-into-the-codebase.patch is an infrastructural change. This patch brings in the React.js library and all of the tools that are needed for us to use React code in this project. It includes a webpack bundler to package and minify our javascript, a js linter to help keep the javascript code clean, and the Grunt taskrunner to manage these tasks.

0002-Creates-query-history-list.patch replaces the existing history tab with a React-based history component. The current patch brings us to feature-parity with the current application. However, we plan on continuing work on the History tab as we discussed. This is the smallest digestible chunk of work that we could send as a committable patch after 1.5 is cut.

Next Steps for History Tab
We are continuing to improve the user experience of the history tab. We have a series of stories lined up that lead us towards a further redesigned history tab. As we add the right hand panel and each query metadata item to it, we will be removing each query metadata item from the list view accordingly. 

Here is the design from one of the later stories:
Inline image 1

Regards,
Shruti & Matt



--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers


Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Dave Page-7
On my machine it aborts with:

2017-05-18 09:45:14,516: ERROR pgadmin: Unable to generate javascript
2017-05-18 09:45:14,516: ERROR pgadmin: To run the app ensure that grunt is installed globally and that yarn install command runs successfully
Traceback (most recent call last):
  File "pgadmin4.py", line 64, in <module>
    raise Exception("No generated javascript, aborting")
Exception: No generated javascript, aborting

I installed grunt both locally and globally, but it didn't help.

On Thu, May 18, 2017 at 7:13 AM, Murtuza Zabuawala <[hidden email]> wrote:
Hi Matt,

I'm on macOS(10.10.5) & not able to run pgAdmin4 through console/terminal (with virtual environment activated), earlier it used to work properly but after applying given two patches it started throwing error.

After applying the patch

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python web/pgAdmin4.py

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

/Library/Frameworks/Python.framework/Versions/3.5/Resources/Python.app/Contents/MacOS/Python: can't open file 'web/pgAdmin4.py': [Errno 2] No such file or directory

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python --version

Python 3.5.0

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python web/pgAdmin4.py

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

/Library/Frameworks/Python.framework/Versions/3.5/Resources/Python.app/Contents/MacOS/Python: can't open file 'web/pgAdmin4.py': [Errno 2] No such file or directory

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4


 And when I removed the patch and try again then it started properly. 

After removing the patch

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ git pull

Already up-to-date.

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python web/pgAdmin4.py

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.


Let me know if I missed anything here.


--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Tue, May 16, 2017 at 3:07 AM, Matthew Kleiman <[hidden email]> wrote:
Hi Hackers!

Don't panic, this patch is for AFTER 1.5 release. ;-)


0001-Bring-React-into-the-codebase.patch is an infrastructural change. This patch brings in the React.js library and all of the tools that are needed for us to use React code in this project. It includes a webpack bundler to package and minify our javascript, a js linter to help keep the javascript code clean, and the Grunt taskrunner to manage these tasks.

0002-Creates-query-history-list.patch replaces the existing history tab with a React-based history component. The current patch brings us to feature-parity with the current application. However, we plan on continuing work on the History tab as we discussed. This is the smallest digestible chunk of work that we could send as a committable patch after 1.5 is cut.

Next Steps for History Tab
We are continuing to improve the user experience of the history tab. We have a series of stories lined up that lead us towards a further redesigned history tab. As we add the right hand panel and each query metadata item to it, we will be removing each query metadata item from the list view accordingly. 

Here is the design from one of the later stories:
Inline image 1

Regards,
Shruti & Matt



--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers





--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Murtuza Zabuawala

Go to 'pgadmin4/web' directory

Try running,

run 'yarn install'

(if you have installed globally)
then run 'grunt' 
OR
run './node_modules/grunt-cli/bin/grunt'


Then run pgAdmin4

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Thu, May 18, 2017 at 2:18 PM, Dave Page <[hidden email]> wrote:
On my machine it aborts with:

2017-05-18 09:45:14,516: ERROR pgadmin: Unable to generate javascript
2017-05-18 09:45:14,516: ERROR pgadmin: To run the app ensure that grunt is installed globally and that yarn install command runs successfully
Traceback (most recent call last):
  File "pgadmin4.py", line 64, in <module>
    raise Exception("No generated javascript, aborting")
Exception: No generated javascript, aborting

I installed grunt both locally and globally, but it didn't help.

On Thu, May 18, 2017 at 7:13 AM, Murtuza Zabuawala <[hidden email]> wrote:
Hi Matt,

I'm on macOS(10.10.5) & not able to run pgAdmin4 through console/terminal (with virtual environment activated), earlier it used to work properly but after applying given two patches it started throwing error.

After applying the patch

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python web/pgAdmin4.py

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

/Library/Frameworks/Python.framework/Versions/3.5/Resources/Python.app/Contents/MacOS/Python: can't open file 'web/pgAdmin4.py': [Errno 2] No such file or directory

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python --version

Python 3.5.0

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python web/pgAdmin4.py

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

/Library/Frameworks/Python.framework/Versions/3.5/Resources/Python.app/Contents/MacOS/Python: can't open file 'web/pgAdmin4.py': [Errno 2] No such file or directory

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4


 And when I removed the patch and try again then it started properly. 

After removing the patch

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ git pull

Already up-to-date.

(venv_pg4) murtuza@Laptop217:~/Documents/projects/pgadmin4$ python web/pgAdmin4.py

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.

Starting pgAdmin 4. Please navigate to http://0.0.0.0:5050 in your browser.


Let me know if I missed anything here.


--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


On Tue, May 16, 2017 at 3:07 AM, Matthew Kleiman <[hidden email]> wrote:
Hi Hackers!

Don't panic, this patch is for AFTER 1.5 release. ;-)


0001-Bring-React-into-the-codebase.patch is an infrastructural change. This patch brings in the React.js library and all of the tools that are needed for us to use React code in this project. It includes a webpack bundler to package and minify our javascript, a js linter to help keep the javascript code clean, and the Grunt taskrunner to manage these tasks.

0002-Creates-query-history-list.patch replaces the existing history tab with a React-based history component. The current patch brings us to feature-parity with the current application. However, we plan on continuing work on the History tab as we discussed. This is the smallest digestible chunk of work that we could send as a committable patch after 1.5 is cut.

Next Steps for History Tab
We are continuing to improve the user experience of the history tab. We have a series of stories lined up that lead us towards a further redesigned history tab. As we add the right hand panel and each query metadata item to it, we will be removing each query metadata item from the list view accordingly. 

Here is the design from one of the later stories:
Inline image 1

Regards,
Shruti & Matt



--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers





--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Dave Page-7
Hi

On Thu, May 18, 2017 at 9:56 AM, Murtuza Zabuawala <[hidden email]> wrote:

Go to 'pgadmin4/web' directory

Try running,

run 'yarn install'

(if you have installed globally)
then run 'grunt' 
OR
run './node_modules/grunt-cli/bin/grunt'


Then run pgAdmin4

OK, that worked - though pgAdmin now takes a lot longer to start up, which is a problem.

The Jasmine tests now fail:

(pgadmin4)piranha:web dpage$ yarn run karma start --single-run
yarn run v0.24.4
$ "/Users/dpage/git/pgadmin4/web/node_modules/.bin/karma" start
18 05 2017 10:22:01.182:ERROR [plugin]: Error during loading "karma-phantomjs-launcher" plugin:
  Path must be a string. Received null

webpack: Compiled successfully.
webpack: Compiling...
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
(node:12214) DeprecationWarning: loaderUtils.parseQuery() received a non-string value which can be problematic, see https://github.com/webpack/loader-utils/issues/56
parseQuery() will be replaced with getOptions() in the next major version of loader-utils.
18 05 2017 10:22:07.281:WARN [karma]: No captured browser, open http://localhost:9876/

webpack: Compiled successfully.
18 05 2017 10:22:07.294:ERROR [karma]: Found 1 load error
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. 



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Matthew Kleiman
Dave,

Can you try running grunt tests on the command line? 

The tests task will run the eslint and karma grunt tasks, which should automatically webpack the React components before running the jasmine tests in karma.

If it still fails, send us the output of that.

Thanks,
Matt

On Thu, May 18, 2017 at 5:31 AM Dave Page <[hidden email]> wrote:
Hi

On Thu, May 18, 2017 at 9:56 AM, Murtuza Zabuawala <[hidden email]> wrote:

Go to 'pgadmin4/web' directory

Try running,

run 'yarn install'

(if you have installed globally)
then run 'grunt' 
OR
run './node_modules/grunt-cli/bin/grunt'


Then run pgAdmin4

OK, that worked - though pgAdmin now takes a lot longer to start up, which is a problem.

The Jasmine tests now fail:

(pgadmin4)piranha:web dpage$ yarn run karma start --single-run
yarn run v0.24.4
$ "/Users/dpage/git/pgadmin4/web/node_modules/.bin/karma" start
18 05 2017 10:22:01.182:ERROR [plugin]: Error during loading "karma-phantomjs-launcher" plugin:
  Path must be a string. Received null

webpack: Compiled successfully.
webpack: Compiling...
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
webpack: wait until bundle finished: 
(node:12214) DeprecationWarning: loaderUtils.parseQuery() received a non-string value which can be problematic, see https://github.com/webpack/loader-utils/issues/56
parseQuery() will be replaced with getOptions() in the next major version of loader-utils.
18 05 2017 10:22:07.281:WARN [karma]: No captured browser, open http://localhost:9876/

webpack: Compiled successfully.
18 05 2017 10:22:07.294:ERROR [karma]: Found 1 load error
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command. 



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Dave Page-7
On Thu, May 18, 2017 at 4:37 PM, Matthew Kleiman <[hidden email]> wrote:
> Dave,
>
> Can you try running grunt tests on the command line?
>
> The tests task will run the eslint and karma grunt tasks, which should
> automatically webpack the React components before running the jasmine tests
> in karma.
>
> If it still fails, send us the output of that.

(pgadmin4)piranha:web dpage$ grunt tests
Running "eslint:target" (eslint) task

Running "karma:unit" (karma) task
19 05 2017 15:26:13.366:ERROR [plugin]: Error during loading
"karma-phantomjs-launcher" plugin:
  Path must be a string. Received null

webpack: Compiled successfully.
webpack: Compiling...
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
(node:66274) DeprecationWarning: loaderUtils.parseQuery() received a
non-string value which can be problematic, see
https://github.com/webpack/loader-utils/issues/56
parseQuery() will be replaced with getOptions() in the next major
version of loader-utils.
19 05 2017 15:26:18.887:WARN [karma]: No captured browser, open
http://localhost:9876/

webpack: Compiled successfully.
19 05 2017 15:26:18.895:ERROR [karma]: Found 1 load error
Warning: Task "karma:unit" failed. Use --force to continue.

Aborted due to warnings.


:-(

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Joao De Almeida Pereira
Okay

Can you try removing web/node_modules and web/yarn.lock, and running
$ yarn install
$ grunt tests

We think this might be due to a bad version of phantomjs-prebuilt.

If that still fails, can you try running grunt as "yarn run grunt tests"?

Joao and George

On Fri, May 19, 2017 at 10:27 AM, Dave Page <[hidden email]> wrote:
On Thu, May 18, 2017 at 4:37 PM, Matthew Kleiman <[hidden email]> wrote:
> Dave,
>
> Can you try running grunt tests on the command line?
>
> The tests task will run the eslint and karma grunt tasks, which should
> automatically webpack the React components before running the jasmine tests
> in karma.
>
> If it still fails, send us the output of that.

(pgadmin4)piranha:web dpage$ grunt tests
Running "eslint:target" (eslint) task

Running "karma:unit" (karma) task
19 05 2017 15:26:13.366:ERROR [plugin]: Error during loading
"karma-phantomjs-launcher" plugin:
  Path must be a string. Received null

webpack: Compiled successfully.
webpack: Compiling...
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
(node:66274) DeprecationWarning: loaderUtils.parseQuery() received a
non-string value which can be problematic, see
https://github.com/webpack/loader-utils/issues/56
parseQuery() will be replaced with getOptions() in the next major
version of loader-utils.
19 05 2017 15:26:18.887:WARN [karma]: No captured browser, open
http://localhost:9876/

webpack: Compiled successfully.
19 05 2017 15:26:18.895:ERROR [karma]: Found 1 load error
Warning: Task "karma:unit" failed. Use --force to continue.

Aborted due to warnings.


:-(

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Dave Page-7
On Tue, May 23, 2017 at 12:12 PM, Joao Pedro De Almeida Pereira
<[hidden email]> wrote:
> Okay
>
> Can you try removing web/node_modules and web/yarn.lock, and running
> $ yarn install
> $ grunt tests
>
> We think this might be due to a bad version of phantomjs-prebuilt.
>
> If that still fails, can you try running grunt as "yarn run grunt tests"?

I'm on a different machine now, and here grunt just seems to never
exit when it's doing anything. For example, I ran this a few minutes
ago, it finished in seconds and has been sitting here ever since:

(pgadmin4)snake:web dpage$ grunt tests
Running "eslint:target" (eslint) task

Running "karma:unit" (karma) task

webpack: Compiled successfully.
webpack: Compiling...
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
(node:4902) DeprecationWarning: loaderUtils.parseQuery() received a
non-string value which can be problematic, see
https://github.com/webpack/loader-utils/issues/56
parseQuery() will be replaced with getOptions() in the next major
version of loader-utils.
23 05 2017 16:41:54.549:WARN [karma]: No captured browser, open
http://localhost:9876/

webpack: Compiled successfully.
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 87 of 88 (skipped 1)
SUCCESS (1.353 secs / 1.328 secs)

I'm quite unimpressed with it so far :-(

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Matthew Kleiman
Hi Dave,

This one is our bad! We didn't create a grunt task to run the tests only once, as you would in CI. grunt tests currently runs the tests and continues to watch for changes, running the tests again each time the source code is modified. We will create a task that is suitable to run in CI.

In the meantime, if you have any free time during the day today and would like to schedule a sync call with us, that would help us to tighten the feedback loop.

Thanks,
Joao & Matt

On Tue, May 23, 2017 at 4:44 PM, Dave Page <[hidden email]> wrote:
On Tue, May 23, 2017 at 12:12 PM, Joao Pedro De Almeida Pereira
<[hidden email]> wrote:
> Okay
>
> Can you try removing web/node_modules and web/yarn.lock, and running
> $ yarn install
> $ grunt tests
>
> We think this might be due to a bad version of phantomjs-prebuilt.
>
> If that still fails, can you try running grunt as "yarn run grunt tests"?

I'm on a different machine now, and here grunt just seems to never
exit when it's doing anything. For example, I ran this a few minutes
ago, it finished in seconds and has been sitting here ever since:

(pgadmin4)snake:web dpage$ grunt tests
Running "eslint:target" (eslint) task

Running "karma:unit" (karma) task

webpack: Compiled successfully.
webpack: Compiling...
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
(node:4902) DeprecationWarning: loaderUtils.parseQuery() received a
non-string value which can be problematic, see
https://github.com/webpack/loader-utils/issues/56
parseQuery() will be replaced with getOptions() in the next major
version of loader-utils.
23 05 2017 16:41:54.549:WARN [karma]: No captured browser, open
http://localhost:9876/

webpack: Compiled successfully.
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 87 of 88 (skipped 1)
SUCCESS (1.353 secs / 1.328 secs)

I'm quite unimpressed with it so far :-(

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Joao De Almeida Pereira
Hi Hackers!

Please find attached the two patches, now including a new grunt task to run the tests only once that can be used in CI.  For development, use grunt test, for ci or to run tests only once, use grunt test-ci.  This is documented in the README file.

Also note, these patches were generated using git diff as per https://www.pgadmin.org/docs/pgadmin4/dev/submitting_patches.html. Sorry for any inconvenience from generating a patch in an alternate manner earlier.

Thanks,
Joao & Matt

On Wed, May 24, 2017 at 9:36 AM, Matthew Kleiman <[hidden email]> wrote:
Hi Dave,

This one is our bad! We didn't create a grunt task to run the tests only once, as you would in CI. grunt tests currently runs the tests and continues to watch for changes, running the tests again each time the source code is modified. We will create a task that is suitable to run in CI.

In the meantime, if you have any free time during the day today and would like to schedule a sync call with us, that would help us to tighten the feedback loop.

Thanks,
Joao & Matt

On Tue, May 23, 2017 at 4:44 PM, Dave Page <[hidden email]> wrote:
On Tue, May 23, 2017 at 12:12 PM, Joao Pedro De Almeida Pereira
<[hidden email]> wrote:
> Okay
>
> Can you try removing web/node_modules and web/yarn.lock, and running
> $ yarn install
> $ grunt tests
>
> We think this might be due to a bad version of phantomjs-prebuilt.
>
> If that still fails, can you try running grunt as "yarn run grunt tests"?

I'm on a different machine now, and here grunt just seems to never
exit when it's doing anything. For example, I ran this a few minutes
ago, it finished in seconds and has been sitting here ever since:

(pgadmin4)snake:web dpage$ grunt tests
Running "eslint:target" (eslint) task

Running "karma:unit" (karma) task

webpack: Compiled successfully.
webpack: Compiling...
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
webpack: wait until bundle finished:
(node:4902) DeprecationWarning: loaderUtils.parseQuery() received a
non-string value which can be problematic, see
https://github.com/webpack/loader-utils/issues/56
parseQuery() will be replaced with getOptions() in the next major
version of loader-utils.
23 05 2017 16:41:54.549:WARN [karma]: No captured browser, open
http://localhost:9876/

webpack: Compiled successfully.
PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 87 of 88 (skipped 1)
SUCCESS (1.353 secs / 1.328 secs)

I'm quite unimpressed with it so far :-(

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company




--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

0001-Bring-React-into-the-codebase.diff (149K) Download Attachment
0002-Creates-query-history-list.diff (54K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Dave Page-7
Hi

That fixed the JS tests, however, the feature tests are completely
broken now - the browser fails to load the app, so they just timeout:

======================================================================
ERROR: runTest (pgadmin.feature_tests.connect_to_server_feature_test.ConnectsToServerFeatureTest)
Test database connection
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.copy_selected_query_results_feature_test.CopySelectedQueryResultsFeatureTest)
Test Copying Query Results
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.pg_datatype_validation_test.PGDataypeFeatureTest)
Test checks for PG data-types output
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.query_tool_journey_test.QueryToolJourneyTest)
Tests the path through the query tool
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.table_ddl_feature_test.TableDdlFeatureTest)
Test table DDL generation
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.xss_checks_panels_and_query_tool_test.CheckForXssFeatureTest)
Test XSS check for panels and query tool
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.xss_checks_pgadmin_debugger_test.CheckDebuggerForXssFeatureTest)
Tests to check if Debugger is vulnerable to XSS
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


----------------------------------------------------------------------
Ran 166 tests in 113.200s

FAILED (errors=7, skipped=16)

=============Running the test cases for 'PostgreSQL 9.6'=============
runTest (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_add.CastsAddTestCase)
Check Cast Node ... 2017-05-26 16:27:56,754: ERROR pgadmin: 'Mock'
object does not support item assignment
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
line 774, in connect
    server_types=ServerType.types()
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
line 309, in connect
    os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
TypeError: 'Mock' object does not support item assignment
FAIL
ERROR
runTest (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_delete.CastsDeleteTestCase)
Check Cast Node ... 2017-05-26 16:27:56,840: ERROR pgadmin: 'Mock'
object does not support item assignment
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
line 774, in connect
    server_types=ServerType.types()
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
line 309, in connect
    os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
TypeError: 'Mock' object does not support item assignment
FAIL
ERROR
runTest (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_get.CastsGetTestCase)
Check Cast Node ... Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/casts/tests/utils.py",
line 51, in create_cast
    " FUNCTION AS IMPLICIT" % (source_type, target_type))
ProgrammingError: cast from type money to type bigint already exists

2017-05-26 16:27:56,960: ERROR pgadmin: 'Mock' object does not support
item assignment
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
line 774, in connect
    server_types=ServerType.types()
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
line 309, in connect
    os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
TypeError: 'Mock' object does not support item assignment
FAIL
ERROR
runTest (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_put.CastsPutTestCase)
Check Cast Node ... 2017-05-26 16:27:57,060: ERROR pgadmin: 'Mock'
object does not support item assignment
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
line 774, in connect
    server_types=ServerType.types()
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
line 309, in connect
    os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
TypeError: 'Mock' object does not support item assignment
FAIL
ERROR

On Wed, May 24, 2017 at 10:22 AM, Joao Pedro De Almeida Pereira
<[hidden email]> wrote:

> Hi Hackers!
>
> Please find attached the two patches, now including a new grunt task to run
> the tests only once that can be used in CI.  For development, use grunt
> test, for ci or to run tests only once, use grunt test-ci.  This is
> documented in the README file.
>
> Also note, these patches were generated using git diff as per
> https://www.pgadmin.org/docs/pgadmin4/dev/submitting_patches.html. Sorry for
> any inconvenience from generating a patch in an alternate manner earlier.
>
> Thanks,
> Joao & Matt
>
> On Wed, May 24, 2017 at 9:36 AM, Matthew Kleiman <[hidden email]>
> wrote:
>>
>> Hi Dave,
>>
>> This one is our bad! We didn't create a grunt task to run the tests only
>> once, as you would in CI. grunt tests currently runs the tests and continues
>> to watch for changes, running the tests again each time the source code is
>> modified. We will create a task that is suitable to run in CI.
>>
>> In the meantime, if you have any free time during the day today and would
>> like to schedule a sync call with us, that would help us to tighten the
>> feedback loop.
>>
>> Thanks,
>> Joao & Matt
>>
>> On Tue, May 23, 2017 at 4:44 PM, Dave Page <[hidden email]> wrote:
>>>
>>> On Tue, May 23, 2017 at 12:12 PM, Joao Pedro De Almeida Pereira
>>> <[hidden email]> wrote:
>>> > Okay
>>> >
>>> > Can you try removing web/node_modules and web/yarn.lock, and running
>>> > $ yarn install
>>> > $ grunt tests
>>> >
>>> > We think this might be due to a bad version of phantomjs-prebuilt.
>>> >
>>> > If that still fails, can you try running grunt as "yarn run grunt
>>> > tests"?
>>>
>>> I'm on a different machine now, and here grunt just seems to never
>>> exit when it's doing anything. For example, I ran this a few minutes
>>> ago, it finished in seconds and has been sitting here ever since:
>>>
>>> (pgadmin4)snake:web dpage$ grunt tests
>>> Running "eslint:target" (eslint) task
>>>
>>> Running "karma:unit" (karma) task
>>>
>>> webpack: Compiled successfully.
>>> webpack: Compiling...
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> (node:4902) DeprecationWarning: loaderUtils.parseQuery() received a
>>> non-string value which can be problematic, see
>>> https://github.com/webpack/loader-utils/issues/56
>>> parseQuery() will be replaced with getOptions() in the next major
>>> version of loader-utils.
>>> 23 05 2017 16:41:54.549:WARN [karma]: No captured browser, open
>>> http://localhost:9876/
>>>
>>> webpack: Compiled successfully.
>>> PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 87 of 88 (skipped 1)
>>> SUCCESS (1.353 secs / 1.328 secs)
>>>
>>> I'm quite unimpressed with it so far :-(
>>>
>>> --
>>> 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


--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

George Gelashvili
okay

We recreated the patches over new master.
Please apply the patches attached after "feature test timeouts" is merged into master, as that should resolve "waiting for app to start"

Thanks!
George and Joao

On Fri, May 26, 2017 at 4:39 PM, Dave Page <[hidden email]> wrote:
Hi

That fixed the JS tests, however, the feature tests are completely
broken now - the browser fails to load the app, so they just timeout:

======================================================================
ERROR: runTest (pgadmin.feature_tests.connect_to_server_feature_test.ConnectsToServerFeatureTest)
Test database connection
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.copy_selected_query_results_feature_test.CopySelectedQueryResultsFeatureTest)
Test Copying Query Results
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.pg_datatype_validation_test.PGDataypeFeatureTest)
Test checks for PG data-types output
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.query_tool_journey_test.QueryToolJourneyTest)
Tests the path through the query tool
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.table_ddl_feature_test.TableDdlFeatureTest)
Test table DDL generation
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.xss_checks_panels_and_query_tool_test.CheckForXssFeatureTest)
Test XSS check for panels and query tool
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


======================================================================
ERROR: runTest (pgadmin.feature_tests.xss_checks_pgadmin_debugger_test.CheckDebuggerForXssFeatureTest)
Tests to check if Debugger is vulnerable to XSS
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
line 36, in setUp
    self.page.wait_for_app()
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 187, in wait_for_app
    self._wait_for("app to start", page_shows_app)
  File "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
line 191, in _wait_for
    "Timed out waiting for " + waiting_for_message)
  File "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
line 80, in until
    raise TimeoutException(message, screen, stacktrace)
TimeoutException: Message: Timed out waiting for app to start


----------------------------------------------------------------------
Ran 166 tests in 113.200s

FAILED (errors=7, skipped=16)

=============Running the test cases for 'PostgreSQL 9.6'=============
runTest (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_add.CastsAddTestCase)
Check Cast Node ... 2017-05-26 16:27:56,754: ERROR pgadmin: 'Mock'
object does not support item assignment
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
line 774, in connect
    server_types=ServerType.types()
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
line 309, in connect
    os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
TypeError: 'Mock' object does not support item assignment
FAIL
ERROR
runTest (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_delete.CastsDeleteTestCase)
Check Cast Node ... 2017-05-26 16:27:56,840: ERROR pgadmin: 'Mock'
object does not support item assignment
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
line 774, in connect
    server_types=ServerType.types()
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
line 309, in connect
    os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
TypeError: 'Mock' object does not support item assignment
FAIL
ERROR
runTest (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_get.CastsGetTestCase)
Check Cast Node ... Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/casts/tests/utils.py",
line 51, in create_cast
    " FUNCTION AS IMPLICIT" % (source_type, target_type))
ProgrammingError: cast from type money to type bigint already exists

2017-05-26 16:27:56,960: ERROR pgadmin: 'Mock' object does not support
item assignment
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
line 774, in connect
    server_types=ServerType.types()
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
line 309, in connect
    os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
TypeError: 'Mock' object does not support item assignment
FAIL
ERROR
runTest (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_put.CastsPutTestCase)
Check Cast Node ... 2017-05-26 16:27:57,060: ERROR pgadmin: 'Mock'
object does not support item assignment
Traceback (most recent call last):
  File "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
line 774, in connect
    server_types=ServerType.types()
  File "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
line 309, in connect
    os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
TypeError: 'Mock' object does not support item assignment
FAIL
ERROR

On Wed, May 24, 2017 at 10:22 AM, Joao Pedro De Almeida Pereira
<[hidden email]> wrote:
> Hi Hackers!
>
> Please find attached the two patches, now including a new grunt task to run
> the tests only once that can be used in CI.  For development, use grunt
> test, for ci or to run tests only once, use grunt test-ci.  This is
> documented in the README file.
>
> Also note, these patches were generated using git diff as per
> https://www.pgadmin.org/docs/pgadmin4/dev/submitting_patches.html. Sorry for
> any inconvenience from generating a patch in an alternate manner earlier.
>
> Thanks,
> Joao & Matt
>
> On Wed, May 24, 2017 at 9:36 AM, Matthew Kleiman <[hidden email]>
> wrote:
>>
>> Hi Dave,
>>
>> This one is our bad! We didn't create a grunt task to run the tests only
>> once, as you would in CI. grunt tests currently runs the tests and continues
>> to watch for changes, running the tests again each time the source code is
>> modified. We will create a task that is suitable to run in CI.
>>
>> In the meantime, if you have any free time during the day today and would
>> like to schedule a sync call with us, that would help us to tighten the
>> feedback loop.
>>
>> Thanks,
>> Joao & Matt
>>
>> On Tue, May 23, 2017 at 4:44 PM, Dave Page <[hidden email]> wrote:
>>>
>>> On Tue, May 23, 2017 at 12:12 PM, Joao Pedro De Almeida Pereira
>>> <[hidden email]> wrote:
>>> > Okay
>>> >
>>> > Can you try removing web/node_modules and web/yarn.lock, and running
>>> > $ yarn install
>>> > $ grunt tests
>>> >
>>> > We think this might be due to a bad version of phantomjs-prebuilt.
>>> >
>>> > If that still fails, can you try running grunt as "yarn run grunt
>>> > tests"?
>>>
>>> I'm on a different machine now, and here grunt just seems to never
>>> exit when it's doing anything. For example, I ran this a few minutes
>>> ago, it finished in seconds and has been sitting here ever since:
>>>
>>> (pgadmin4)snake:web dpage$ grunt tests
>>> Running "eslint:target" (eslint) task
>>>
>>> Running "karma:unit" (karma) task
>>>
>>> webpack: Compiled successfully.
>>> webpack: Compiling...
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> webpack: wait until bundle finished:
>>> (node:4902) DeprecationWarning: loaderUtils.parseQuery() received a
>>> non-string value which can be problematic, see
>>> https://github.com/webpack/loader-utils/issues/56
>>> parseQuery() will be replaced with getOptions() in the next major
>>> version of loader-utils.
>>> 23 05 2017 16:41:54.549:WARN [karma]: No captured browser, open
>>> http://localhost:9876/
>>>
>>> webpack: Compiled successfully.
>>> PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 87 of 88 (skipped 1)
>>> SUCCESS (1.353 secs / 1.328 secs)
>>>
>>> I'm quite unimpressed with it so far :-(
>>>
>>> --
>>> 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


--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers



--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers

0001-Bring-React-into-the-codebase.diff (390K) Download Attachment
0002-Creates-query-history-list.diff (67K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Dave Page-7
Sorry guys - can you please remove the Grunt part of this until we've
decided whether or not we want to use it at all? (see the thread
discussing optimisation with Surinder).

For now, let's just drop the required packages into the vendor
directory. I'm happy to have that populated by yarn to avoid having
vendor code in the tree moving forwards.

On Fri, May 26, 2017 at 6:30 PM, George Gelashvili
<[hidden email]> wrote:

> okay
>
> We recreated the patches over new master.
> Please apply the patches attached after "feature test timeouts" is merged
> into master, as that should resolve "waiting for app to start"
>
> Thanks!
> George and Joao
>
> On Fri, May 26, 2017 at 4:39 PM, Dave Page <[hidden email]> wrote:
>>
>> Hi
>>
>> That fixed the JS tests, however, the feature tests are completely
>> broken now - the browser fails to load the app, so they just timeout:
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.connect_to_server_feature_test.ConnectsToServerFeatureTest)
>> Test database connection
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.copy_selected_query_results_feature_test.CopySelectedQueryResultsFeatureTest)
>> Test Copying Query Results
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.pg_datatype_validation_test.PGDataypeFeatureTest)
>> Test checks for PG data-types output
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.query_tool_journey_test.QueryToolJourneyTest)
>> Tests the path through the query tool
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.table_ddl_feature_test.TableDdlFeatureTest)
>> Test table DDL generation
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.xss_checks_panels_and_query_tool_test.CheckForXssFeatureTest)
>> Test XSS check for panels and query tool
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.xss_checks_pgadmin_debugger_test.CheckDebuggerForXssFeatureTest)
>> Tests to check if Debugger is vulnerable to XSS
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ----------------------------------------------------------------------
>> Ran 166 tests in 113.200s
>>
>> FAILED (errors=7, skipped=16)
>>
>> =============Running the test cases for 'PostgreSQL 9.6'=============
>> runTest
>> (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_add.CastsAddTestCase)
>> Check Cast Node ... 2017-05-26 16:27:56,754: ERROR pgadmin: 'Mock'
>> object does not support item assignment
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
>> line 774, in connect
>>     server_types=ServerType.types()
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
>> line 309, in connect
>>     os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
>> TypeError: 'Mock' object does not support item assignment
>> FAIL
>> ERROR
>> runTest
>> (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_delete.CastsDeleteTestCase)
>> Check Cast Node ... 2017-05-26 16:27:56,840: ERROR pgadmin: 'Mock'
>> object does not support item assignment
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
>> line 774, in connect
>>     server_types=ServerType.types()
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
>> line 309, in connect
>>     os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
>> TypeError: 'Mock' object does not support item assignment
>> FAIL
>> ERROR
>> runTest
>> (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_get.CastsGetTestCase)
>> Check Cast Node ... Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/casts/tests/utils.py",
>> line 51, in create_cast
>>     " FUNCTION AS IMPLICIT" % (source_type, target_type))
>> ProgrammingError: cast from type money to type bigint already exists
>>
>> 2017-05-26 16:27:56,960: ERROR pgadmin: 'Mock' object does not support
>> item assignment
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
>> line 774, in connect
>>     server_types=ServerType.types()
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
>> line 309, in connect
>>     os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
>> TypeError: 'Mock' object does not support item assignment
>> FAIL
>> ERROR
>> runTest
>> (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_put.CastsPutTestCase)
>> Check Cast Node ... 2017-05-26 16:27:57,060: ERROR pgadmin: 'Mock'
>> object does not support item assignment
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
>> line 774, in connect
>>     server_types=ServerType.types()
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
>> line 309, in connect
>>     os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
>> TypeError: 'Mock' object does not support item assignment
>> FAIL
>> ERROR
>>
>> On Wed, May 24, 2017 at 10:22 AM, Joao Pedro De Almeida Pereira
>> <[hidden email]> wrote:
>> > Hi Hackers!
>> >
>> > Please find attached the two patches, now including a new grunt task to
>> > run
>> > the tests only once that can be used in CI.  For development, use grunt
>> > test, for ci or to run tests only once, use grunt test-ci.  This is
>> > documented in the README file.
>> >
>> > Also note, these patches were generated using git diff as per
>> > https://www.pgadmin.org/docs/pgadmin4/dev/submitting_patches.html. Sorry
>> > for
>> > any inconvenience from generating a patch in an alternate manner
>> > earlier.
>> >
>> > Thanks,
>> > Joao & Matt
>> >
>> > On Wed, May 24, 2017 at 9:36 AM, Matthew Kleiman <[hidden email]>
>> > wrote:
>> >>
>> >> Hi Dave,
>> >>
>> >> This one is our bad! We didn't create a grunt task to run the tests
>> >> only
>> >> once, as you would in CI. grunt tests currently runs the tests and
>> >> continues
>> >> to watch for changes, running the tests again each time the source code
>> >> is
>> >> modified. We will create a task that is suitable to run in CI.
>> >>
>> >> In the meantime, if you have any free time during the day today and
>> >> would
>> >> like to schedule a sync call with us, that would help us to tighten the
>> >> feedback loop.
>> >>
>> >> Thanks,
>> >> Joao & Matt
>> >>
>> >> On Tue, May 23, 2017 at 4:44 PM, Dave Page <[hidden email]> wrote:
>> >>>
>> >>> On Tue, May 23, 2017 at 12:12 PM, Joao Pedro De Almeida Pereira
>> >>> <[hidden email]> wrote:
>> >>> > Okay
>> >>> >
>> >>> > Can you try removing web/node_modules and web/yarn.lock, and running
>> >>> > $ yarn install
>> >>> > $ grunt tests
>> >>> >
>> >>> > We think this might be due to a bad version of phantomjs-prebuilt.
>> >>> >
>> >>> > If that still fails, can you try running grunt as "yarn run grunt
>> >>> > tests"?
>> >>>
>> >>> I'm on a different machine now, and here grunt just seems to never
>> >>> exit when it's doing anything. For example, I ran this a few minutes
>> >>> ago, it finished in seconds and has been sitting here ever since:
>> >>>
>> >>> (pgadmin4)snake:web dpage$ grunt tests
>> >>> Running "eslint:target" (eslint) task
>> >>>
>> >>> Running "karma:unit" (karma) task
>> >>>
>> >>> webpack: Compiled successfully.
>> >>> webpack: Compiling...
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> (node:4902) DeprecationWarning: loaderUtils.parseQuery() received a
>> >>> non-string value which can be problematic, see
>> >>> https://github.com/webpack/loader-utils/issues/56
>> >>> parseQuery() will be replaced with getOptions() in the next major
>> >>> version of loader-utils.
>> >>> 23 05 2017 16:41:54.549:WARN [karma]: No captured browser, open
>> >>> http://localhost:9876/
>> >>>
>> >>> webpack: Compiled successfully.
>> >>> PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 87 of 88 (skipped 1)
>> >>> SUCCESS (1.353 secs / 1.328 secs)
>> >>>
>> >>> I'm quite unimpressed with it so far :-(
>> >>>
>> >>> --
>> >>> 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
>>
>>
>> --
>> Sent via pgadmin-hackers mailing list ([hidden email])
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgadmin-hackers
>
>



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Matthew Kleiman
Hi Dave,

We are currently using the Grunt taskrunner to run the following tasks:
  • lint the javascript code 
  • start javascript tests 
  • invoke webpack to transpile and bundle js and jsx files
  • minify javascript 
In order to remove Grunt from the application, we will need some other tool to execute these listed tasks.

There are other tools available, like Gulp.js, that we could use instead of Grunt. We would like to understand your motivation for removing Grunt so we can find a better solution.

Thanks,
Joao & Matt


On Sun, May 28, 2017 at 8:21 PM, Dave Page <[hidden email]> wrote:
Sorry guys - can you please remove the Grunt part of this until we've
decided whether or not we want to use it at all? (see the thread
discussing optimisation with Surinder).

For now, let's just drop the required packages into the vendor
directory. I'm happy to have that populated by yarn to avoid having
vendor code in the tree moving forwards.

On Fri, May 26, 2017 at 6:30 PM, George Gelashvili
<[hidden email]> wrote:
> okay
>
> We recreated the patches over new master.
> Please apply the patches attached after "feature test timeouts" is merged
> into master, as that should resolve "waiting for app to start"
>
> Thanks!
> George and Joao
>
> On Fri, May 26, 2017 at 4:39 PM, Dave Page <[hidden email]> wrote:
>>
>> Hi
>>
>> That fixed the JS tests, however, the feature tests are completely
>> broken now - the browser fails to load the app, so they just timeout:
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.connect_to_server_feature_test.ConnectsToServerFeatureTest)
>> Test database connection
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.copy_selected_query_results_feature_test.CopySelectedQueryResultsFeatureTest)
>> Test Copying Query Results
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.pg_datatype_validation_test.PGDataypeFeatureTest)
>> Test checks for PG data-types output
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.query_tool_journey_test.QueryToolJourneyTest)
>> Tests the path through the query tool
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.table_ddl_feature_test.TableDdlFeatureTest)
>> Test table DDL generation
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.xss_checks_panels_and_query_tool_test.CheckForXssFeatureTest)
>> Test XSS check for panels and query tool
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ======================================================================
>> ERROR: runTest
>> (pgadmin.feature_tests.xss_checks_pgadmin_debugger_test.CheckDebuggerForXssFeatureTest)
>> Tests to check if Debugger is vulnerable to XSS
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/base_feature_test.py",
>> line 36, in setUp
>>     self.page.wait_for_app()
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 187, in wait_for_app
>>     self._wait_for("app to start", page_shows_app)
>>   File
>> "/Users/dpage/git/pgadmin4/web/regression/feature_utils/pgadmin_page.py",
>> line 191, in _wait_for
>>     "Timed out waiting for " + waiting_for_message)
>>   File
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/selenium/webdriver/support/wait.py",
>> line 80, in until
>>     raise TimeoutException(message, screen, stacktrace)
>> TimeoutException: Message: Timed out waiting for app to start
>>
>>
>> ----------------------------------------------------------------------
>> Ran 166 tests in 113.200s
>>
>> FAILED (errors=7, skipped=16)
>>
>> =============Running the test cases for 'PostgreSQL 9.6'=============
>> runTest
>> (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_add.CastsAddTestCase)
>> Check Cast Node ... 2017-05-26 16:27:56,754: ERROR pgadmin: 'Mock'
>> object does not support item assignment
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
>> line 774, in connect
>>     server_types=ServerType.types()
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
>> line 309, in connect
>>     os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
>> TypeError: 'Mock' object does not support item assignment
>> FAIL
>> ERROR
>> runTest
>> (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_delete.CastsDeleteTestCase)
>> Check Cast Node ... 2017-05-26 16:27:56,840: ERROR pgadmin: 'Mock'
>> object does not support item assignment
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
>> line 774, in connect
>>     server_types=ServerType.types()
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
>> line 309, in connect
>>     os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
>> TypeError: 'Mock' object does not support item assignment
>> FAIL
>> ERROR
>> runTest
>> (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_get.CastsGetTestCase)
>> Check Cast Node ... Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/casts/tests/utils.py",
>> line 51, in create_cast
>>     " FUNCTION AS IMPLICIT" % (source_type, target_type))
>> ProgrammingError: cast from type money to type bigint already exists
>>
>> 2017-05-26 16:27:56,960: ERROR pgadmin: 'Mock' object does not support
>> item assignment
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
>> line 774, in connect
>>     server_types=ServerType.types()
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
>> line 309, in connect
>>     os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
>> TypeError: 'Mock' object does not support item assignment
>> FAIL
>> ERROR
>> runTest
>> (pgadmin.browser.server_groups.servers.databases.casts.tests.test_cast_put.CastsPutTestCase)
>> Check Cast Node ... 2017-05-26 16:27:57,060: ERROR pgadmin: 'Mock'
>> object does not support item assignment
>> Traceback (most recent call last):
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/browser/server_groups/servers/__init__.py",
>> line 774, in connect
>>     server_types=ServerType.types()
>>   File
>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
>> line 309, in connect
>>     os.environ['PGAPPNAME'] = '{0} - {1}'.format(config.APP_NAME, conn_id)
>> TypeError: 'Mock' object does not support item assignment
>> FAIL
>> ERROR
>>
>> On Wed, May 24, 2017 at 10:22 AM, Joao Pedro De Almeida Pereira
>> <[hidden email]> wrote:
>> > Hi Hackers!
>> >
>> > Please find attached the two patches, now including a new grunt task to
>> > run
>> > the tests only once that can be used in CI.  For development, use grunt
>> > test, for ci or to run tests only once, use grunt test-ci.  This is
>> > documented in the README file.
>> >
>> > Also note, these patches were generated using git diff as per
>> > https://www.pgadmin.org/docs/pgadmin4/dev/submitting_patches.html. Sorry
>> > for
>> > any inconvenience from generating a patch in an alternate manner
>> > earlier.
>> >
>> > Thanks,
>> > Joao & Matt
>> >
>> > On Wed, May 24, 2017 at 9:36 AM, Matthew Kleiman <[hidden email]>
>> > wrote:
>> >>
>> >> Hi Dave,
>> >>
>> >> This one is our bad! We didn't create a grunt task to run the tests
>> >> only
>> >> once, as you would in CI. grunt tests currently runs the tests and
>> >> continues
>> >> to watch for changes, running the tests again each time the source code
>> >> is
>> >> modified. We will create a task that is suitable to run in CI.
>> >>
>> >> In the meantime, if you have any free time during the day today and
>> >> would
>> >> like to schedule a sync call with us, that would help us to tighten the
>> >> feedback loop.
>> >>
>> >> Thanks,
>> >> Joao & Matt
>> >>
>> >> On Tue, May 23, 2017 at 4:44 PM, Dave Page <[hidden email]> wrote:
>> >>>
>> >>> On Tue, May 23, 2017 at 12:12 PM, Joao Pedro De Almeida Pereira
>> >>> <[hidden email]> wrote:
>> >>> > Okay
>> >>> >
>> >>> > Can you try removing web/node_modules and web/yarn.lock, and running
>> >>> > $ yarn install
>> >>> > $ grunt tests
>> >>> >
>> >>> > We think this might be due to a bad version of phantomjs-prebuilt.
>> >>> >
>> >>> > If that still fails, can you try running grunt as "yarn run grunt
>> >>> > tests"?
>> >>>
>> >>> I'm on a different machine now, and here grunt just seems to never
>> >>> exit when it's doing anything. For example, I ran this a few minutes
>> >>> ago, it finished in seconds and has been sitting here ever since:
>> >>>
>> >>> (pgadmin4)snake:web dpage$ grunt tests
>> >>> Running "eslint:target" (eslint) task
>> >>>
>> >>> Running "karma:unit" (karma) task
>> >>>
>> >>> webpack: Compiled successfully.
>> >>> webpack: Compiling...
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> webpack: wait until bundle finished:
>> >>> (node:4902) DeprecationWarning: loaderUtils.parseQuery() received a
>> >>> non-string value which can be problematic, see
>> >>> https://github.com/webpack/loader-utils/issues/56
>> >>> parseQuery() will be replaced with getOptions() in the next major
>> >>> version of loader-utils.
>> >>> 23 05 2017 16:41:54.549:WARN [karma]: No captured browser, open
>> >>> http://localhost:9876/
>> >>>
>> >>> webpack: Compiled successfully.
>> >>> PhantomJS 2.1.1 (Mac OS X 0.0.0): Executed 87 of 88 (skipped 1)
>> >>> SUCCESS (1.353 secs / 1.328 secs)
>> >>>
>> >>> I'm quite unimpressed with it so far :-(
>> >>>
>> >>> --
>> >>> 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
>>
>>
>> --
>> Sent via pgadmin-hackers mailing list ([hidden email])
>> To make changes to your subscription:
>> http://www.postgresql.org/mailpref/pgadmin-hackers
>
>



--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Dave Page-7
Hi

On Tue, May 30, 2017 at 2:47 PM, Matthew Kleiman <[hidden email]> wrote:

> Hi Dave,
>
> We are currently using the Grunt taskrunner to run the following tasks:
>
> lint the javascript code
> start javascript tests
> invoke webpack to transpile and bundle js and jsx files
> minify javascript
>
> In order to remove Grunt from the application, we will need some other tool
> to execute these listed tasks.
>
> There are other tools available, like Gulp.js, that we could use instead of
> Grunt. We would like to understand your motivation for removing Grunt so we
> can find a better solution.

The motivation is simple - we want a solution that works for the whole
app, can handle debug vs. release execution, pluggable modules, and
installations in read-only directories.

Per the other thread on the subject (that Joao suggested continuing
discussion on), Surinder is currently looking into flask-webpack. I
spent some time playing with grunt and some other options last week.

However; this patch is supposed to be about the history tab rewrite.
Whatever solution we use for webpacking/transpiling/linting/minifying
etc, it should be a standalone change as it's decidedly non-trivial.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


--
Sent via pgadmin-hackers mailing list ([hidden email])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-hackers
Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Joao De Almeida Pereira
The motivation is simple - we want a solution that works for the whole
app, can handle debug vs. release execution, pluggable modules, and
installations in read-only directories.
With the current configuration of Grunt, all the requirements you mention are available.
The tasks on Grunt should only be run under development or before we are creating the installer.

The installer should pick up only the bundled Javascript and should install it in the correct folders, this way there is no need to rewrite or process files in read-only directories of the end user machine.

Per the other thread on the subject (that Joao suggested continuing
discussion on), Surinder is currently looking into flask-webpack. I
spent some time playing with grunt and some other options last week.
We should continue the discussion about flask-webpack or Grunt or any other Build system in the other thread, but we need to have some decision because this patch needs a build system.
If we remove Grunt from this patch we will need to execute the following command every time the application run:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run webpack -- --config webpack.config.js && python web/pgAdmin4

And to run the jasmine tests:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run karma start

And to run the feature tests:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run webpack -- --config webpack.config.js && python runtests.py

Is this a solution that is acceptable? 

However; this patch is supposed to be about the history tab rewrite.
Whatever solution we use for webpacking/transpiling/linting/minifying
etc, it should be a standalone change as it's decidedly non-trivial.
We split this patch into 2 different commits:
1 - Add React and all the tools needed to work with it, this includes Grunt, Webpack and ESLint
2 - Change the history tab

Do you want a single commit for each of the following? 
  React (just adds the React library via yarn)
  Webpack (adds Webpack library via yarn and creates the webpack.config.js)
  ESLint (adds ESLint library via yarn, creates .eslintrc config file, and corrects all lint errors that previously existed)
  Grunt (adds Grunt library via yarn and creates Gruntfile.js config, creating a pipeline of the previous three libraries/tasks)
  Our change to History

Thanks
Joao & Matt 

On Tue, May 30, 2017 at 10:10 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 30, 2017 at 2:47 PM, Matthew Kleiman <[hidden email]> wrote:
> Hi Dave,
>
> We are currently using the Grunt taskrunner to run the following tasks:
>
> lint the javascript code
> start javascript tests
> invoke webpack to transpile and bundle js and jsx files
> minify javascript
>
> In order to remove Grunt from the application, we will need some other tool
> to execute these listed tasks.
>
> There are other tools available, like Gulp.js, that we could use instead of
> Grunt. We would like to understand your motivation for removing Grunt so we
> can find a better solution.

The motivation is simple - we want a solution that works for the whole
app, can handle debug vs. release execution, pluggable modules, and
installations in read-only directories.

Per the other thread on the subject (that Joao suggested continuing
discussion on), Surinder is currently looking into flask-webpack. I
spent some time playing with grunt and some other options last week.

However; this patch is supposed to be about the history tab rewrite.
Whatever solution we use for webpacking/transpiling/linting/minifying
etc, it should be a standalone change as it's decidedly non-trivial.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Surinder Kumar
On Wed, May 31, 2017 at 12:01 AM, Joao Pedro De Almeida Pereira <[hidden email]> wrote:
The motivation is simple - we want a solution that works for the whole
app, can handle debug vs. release execution, pluggable modules, and
installations in read-only directories.
With the current configuration of Grunt, all the requirements you mention are available.
The tasks on Grunt should only be run under development or before we are creating the installer.


The installer should pick up only the bundled Javascript and should install it in the correct folders, this way there is no need to rewrite or process files in read-only directories of the end user machine.

Per the other thread on the subject (that Joao suggested continuing
discussion on), Surinder is currently looking into flask-webpack. I
spent some time playing with grunt and some other options last week.
We should continue the discussion about flask-webpack or Grunt or any other Build system in the other thread, but we need to have some decision because this patch needs a build system.
If we remove Grunt from this patch we will need to execute the following command every time the application run:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run webpack -- --config webpack.config.js && python web/pgAdmin4

And to run the jasmine tests:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run karma start

And to run the feature tests:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run webpack -- --config webpack.config.js && python runtests.py

Is this a solution that is acceptable? 

As per my knowledge, Grunt can run the tasks and bundle the JS and CSS files (using r.js which is not preferred). But Webpack can not do both. It can only bundle files, it has to be used with either Grunt or Gulp to execute tasks.

Is it possible to run the task listed above by configuring them in "scripts" in package.json file and running concurrently ?

scripts: {
 "task-name1": "yarn run eslint filename",
​ ​
"task-name2": "yarn run karma start", so on...
}

and run them using following command:
npm run task-name1
 

However; this patch is supposed to be about the history tab rewrite.
Whatever solution we use for webpacking/transpiling/linting/minifying
etc, it should be a standalone change as it's decidedly non-trivial.
We split this patch into 2 different commits:
1 - Add React and all the tools needed to work with it, this includes Grunt, Webpack and ESLint
2 - Change the history tab

Do you want a single commit for each of the following? 
  React (just adds the React library via yarn)
  Webpack (adds Webpack library via yarn and creates the webpack.config.js)
  ESLint (adds ESLint library via yarn, creates .eslintrc config file, and corrects all lint errors that previously existed)
  Grunt (adds Grunt library via yarn and creates Gruntfile.js config, creating a pipeline of the previous three libraries/tasks)
  Our change to History

Thanks
Joao & Matt 

On Tue, May 30, 2017 at 10:10 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 30, 2017 at 2:47 PM, Matthew Kleiman <[hidden email]> wrote:
> Hi Dave,
>
> We are currently using the Grunt taskrunner to run the following tasks:
>
> lint the javascript code
> start javascript tests
> invoke webpack to transpile and bundle js and jsx files
> minify javascript
>
> In order to remove Grunt from the application, we will need some other tool
> to execute these listed tasks.
>
> There are other tools available, like Gulp.js, that we could use instead of
> Grunt. We would like to understand your motivation for removing Grunt so we
> can find a better solution.

The motivation is simple - we want a solution that works for the whole
app, can handle debug vs. release execution, pluggable modules, and
installations in read-only directories.

Per the other thread on the subject (that Joao suggested continuing
discussion on), Surinder is currently looking into flask-webpack. I
spent some time playing with grunt and some other options last week.

However; this patch is supposed to be about the history tab rewrite.
Whatever solution we use for webpacking/transpiling/linting/minifying
etc, it should be a standalone change as it's decidedly non-trivial.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company


Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Matthew Kleiman
Hey Surinder,

Is it possible to run the task listed above by configuring them in "scripts" in package.json file and running concurrently ?

That would be cleaner than what we proposed. We could use the yarn run feature to do just what you are suggesting. It works the same as in npm.
Something like the following:
In package.json - 
"scripts": {
  "linter": "eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js"
}


To call it on the command line -
yarn run linter

- Matt

On Wed, May 31, 2017 at 12:35 AM, Surinder Kumar <[hidden email]> wrote:
On Wed, May 31, 2017 at 12:01 AM, Joao Pedro De Almeida Pereira <[hidden email]> wrote:
The motivation is simple - we want a solution that works for the whole
app, can handle debug vs. release execution, pluggable modules, and
installations in read-only directories.
With the current configuration of Grunt, all the requirements you mention are available.
The tasks on Grunt should only be run under development or before we are creating the installer.


The installer should pick up only the bundled Javascript and should install it in the correct folders, this way there is no need to rewrite or process files in read-only directories of the end user machine.

Per the other thread on the subject (that Joao suggested continuing
discussion on), Surinder is currently looking into flask-webpack. I
spent some time playing with grunt and some other options last week.
We should continue the discussion about flask-webpack or Grunt or any other Build system in the other thread, but we need to have some decision because this patch needs a build system.
If we remove Grunt from this patch we will need to execute the following command every time the application run:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run webpack -- --config webpack.config.js && python web/pgAdmin4

And to run the jasmine tests:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run karma start

And to run the feature tests:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run webpack -- --config webpack.config.js && python runtests.py

Is this a solution that is acceptable? 

As per my knowledge, Grunt can run the tasks and bundle the JS and CSS files (using r.js which is not preferred). But Webpack can not do both. It can only bundle files, it has to be used with either Grunt or Gulp to execute tasks.

Is it possible to run the task listed above by configuring them in "scripts" in package.json file and running concurrently ?

scripts: {
 "task-name1": "yarn run eslint filename",
​ ​
"task-name2": "yarn run karma start", so on...
}

and run them using following command:
npm run task-name1
 

However; this patch is supposed to be about the history tab rewrite.
Whatever solution we use for webpacking/transpiling/linting/minifying
etc, it should be a standalone change as it's decidedly non-trivial.
We split this patch into 2 different commits:
1 - Add React and all the tools needed to work with it, this includes Grunt, Webpack and ESLint
2 - Change the history tab

Do you want a single commit for each of the following? 
  React (just adds the React library via yarn)
  Webpack (adds Webpack library via yarn and creates the webpack.config.js)
  ESLint (adds ESLint library via yarn, creates .eslintrc config file, and corrects all lint errors that previously existed)
  Grunt (adds Grunt library via yarn and creates Gruntfile.js config, creating a pipeline of the previous three libraries/tasks)
  Our change to History

Thanks
Joao & Matt 

On Tue, May 30, 2017 at 10:10 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 30, 2017 at 2:47 PM, Matthew Kleiman <[hidden email]> wrote:
> Hi Dave,
>
> We are currently using the Grunt taskrunner to run the following tasks:
>
> lint the javascript code
> start javascript tests
> invoke webpack to transpile and bundle js and jsx files
> minify javascript
>
> In order to remove Grunt from the application, we will need some other tool
> to execute these listed tasks.
>
> There are other tools available, like Gulp.js, that we could use instead of
> Grunt. We would like to understand your motivation for removing Grunt so we
> can find a better solution.

The motivation is simple - we want a solution that works for the whole
app, can handle debug vs. release execution, pluggable modules, and
installations in read-only directories.

Per the other thread on the subject (that Joao suggested continuing
discussion on), Surinder is currently looking into flask-webpack. I
spent some time playing with grunt and some other options last week.

However; this patch is supposed to be about the history tab rewrite.
Whatever solution we use for webpacking/transpiling/linting/minifying
etc, it should be a standalone change as it's decidedly non-trivial.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company



Reply | Threaded
Open this post in threaded view
|

Re: [pgAdmin4] [PATCH] History Tab rewrite in React

Surinder Kumar
Hi

Review comments:

1) First patch contains changes related to copy row feature which is already in process in another thread. Any reason to add those changes in this patch as this patch is meant to contain infrastructure changes ?

2) Can the changes related to FeatureTest or Jasmine test be separated out in another patch?


Thanks,
Surinder


On Thu, Jun 1, 2017 at 1:59 AM, Matthew Kleiman <[hidden email]> wrote:
Hey Surinder,

Is it possible to run the task listed above by configuring them in "scripts" in package.json file and running concurrently ?

That would be cleaner than what we proposed. We could use the yarn run feature to do just what you are suggesting. It works the same as in npm.
Something like the following:
In package.json - 
"scripts": {
  "linter": "eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js"
}


To call it on the command line -
yarn run linter

- Matt

On Wed, May 31, 2017 at 12:35 AM, Surinder Kumar <[hidden email]> wrote:
On Wed, May 31, 2017 at 12:01 AM, Joao Pedro De Almeida Pereira <[hidden email]> wrote:
The motivation is simple - we want a solution that works for the whole
app, can handle debug vs. release execution, pluggable modules, and
installations in read-only directories.
With the current configuration of Grunt, all the requirements you mention are available.
The tasks on Grunt should only be run under development or before we are creating the installer.


The installer should pick up only the bundled Javascript and should install it in the correct folders, this way there is no need to rewrite or process files in read-only directories of the end user machine.

Per the other thread on the subject (that Joao suggested continuing
discussion on), Surinder is currently looking into flask-webpack. I
spent some time playing with grunt and some other options last week.
We should continue the discussion about flask-webpack or Grunt or any other Build system in the other thread, but we need to have some decision because this patch needs a build system.
If we remove Grunt from this patch we will need to execute the following command every time the application run:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run webpack -- --config webpack.config.js && python web/pgAdmin4

And to run the jasmine tests:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run karma start

And to run the feature tests:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js && yarn run webpack -- --config webpack.config.js && python runtests.py

Is this a solution that is acceptable? 

As per my knowledge, Grunt can run the tasks and bundle the JS and CSS files (using r.js which is not preferred). But Webpack can not do both. It can only bundle files, it has to be used with either Grunt or Gulp to execute tasks.

Is it possible to run the task listed above by configuring them in "scripts" in package.json file and running concurrently ?

scripts: {
 "task-name1": "yarn run eslint filename",
​ ​
"task-name2": "yarn run karma start", so on...
}

and run them using following command:
npm run task-name1
 

However; this patch is supposed to be about the history tab rewrite.
Whatever solution we use for webpacking/transpiling/linting/minifying
etc, it should be a standalone change as it's decidedly non-trivial.
We split this patch into 2 different commits:
1 - Add React and all the tools needed to work with it, this includes Grunt, Webpack and ESLint
2 - Change the history tab

Do you want a single commit for each of the following? 
  React (just adds the React library via yarn)
  Webpack (adds Webpack library via yarn and creates the webpack.config.js)
  ESLint (adds ESLint library via yarn, creates .eslintrc config file, and corrects all lint errors that previously existed)
  Grunt (adds Grunt library via yarn and creates Gruntfile.js config, creating a pipeline of the previous three libraries/tasks)
  Our change to History

Thanks
Joao & Matt 

On Tue, May 30, 2017 at 10:10 AM, Dave Page <[hidden email]> wrote:
Hi

On Tue, May 30, 2017 at 2:47 PM, Matthew Kleiman <[hidden email]> wrote:
> Hi Dave,
>
> We are currently using the Grunt taskrunner to run the following tasks:
>
> lint the javascript code
> start javascript tests
> invoke webpack to transpile and bundle js and jsx files
> minify javascript
>
> In order to remove Grunt from the application, we will need some other tool
> to execute these listed tasks.
>
> There are other tools available, like Gulp.js, that we could use instead of
> Grunt. We would like to understand your motivation for removing Grunt so we
> can find a better solution.

The motivation is simple - we want a solution that works for the whole
app, can handle debug vs. release execution, pluggable modules, and
installations in read-only directories.

Per the other thread on the subject (that Joao suggested continuing
discussion on), Surinder is currently looking into flask-webpack. I
spent some time playing with grunt and some other options last week.

However; this patch is supposed to be about the history tab rewrite.
Whatever solution we use for webpacking/transpiling/linting/minifying
etc, it should be a standalone change as it's decidedly non-trivial.

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company




123
Previous Thread Next Thread