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

From: Joao Pedro De Almeida Pereira <jdealmeidapereira(at)pivotal(dot)io>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: Matthew Kleiman <mkleiman(at)pivotal(dot)io>, Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgAdmin4] [PATCH] History Tab rewrite in React
Date: 2017-05-30 18:31:07
Message-ID: CAE+jjakmryMDovhh+OMsw=FSTj5W62CuhbdQS4WpjcLSs9jO4g@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

>
> 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 <dpage(at)pgadmin(dot)org> wrote:

> Hi
>
> On Tue, May 30, 2017 at 2:47 PM, Matthew Kleiman <mkleiman(at)pivotal(dot)io>
> 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
>

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Joao Pedro De Almeida Pereira 2017-05-30 19:49:40 Re: [pgAdmin4][PATCH] Improvements to Query Results Grid User Experience
Previous Message Murtuza Zabuawala 2017-05-30 16:20:28 Re: [pgAdmin4][Patch] Add property in trigger node to display if trigger is enabled or not