Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dFvN0-0001it-Fh for pgadmin-hackers@arkaria.postgresql.org; Wed, 31 May 2017 04:36:30 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dFvMz-0005mh-RB for pgadmin-hackers@arkaria.postgresql.org; Wed, 31 May 2017 04:36:29 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dFvMy-0005iz-NP for pgadmin-hackers@postgresql.org; Wed, 31 May 2017 04:36:29 +0000 Received: from mail-wm0-x236.google.com ([2a00:1450:400c:c09::236]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dFvMv-0000PM-1I for pgadmin-hackers@postgresql.org; Wed, 31 May 2017 04:36:27 +0000 Received: by mail-wm0-x236.google.com with SMTP id e127so6208395wmg.1 for ; Tue, 30 May 2017 21:36:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=vCKf3aYvdITnYJRqwZKeqd+BPlqNrCTKGryNzZtNDuA=; b=hHlid/47UCbfWbeL6NrrH2kwIihGd14xCcrnyNmoSbIkyG9qR3cGy/Cxc3CkBnqbZr DzOfdu4sWZt+ej4uNJplYAPCyOqrtoMzWPVbZma2Wa73wfv+X6vwADhbp0dovpvD4pod eqhwOmyp99yFQ1R2IRwWxbs2J5flEvDNc1CSHOqNgHINYOcm8fElWTW57wcH2v1WT3MR z6YTnJwjhShtRXzn475y/SOd30webl/iRqI7NC/U3ULfhX5Ql1bh61wKV7PZuYmoV21Y k0BUnt6zzsy1YsNN1R3A7HUItrbboBn5ZoBxhOY64xdzO5hFJe7RIF0MMV+qqx8yqgmo HQTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=vCKf3aYvdITnYJRqwZKeqd+BPlqNrCTKGryNzZtNDuA=; b=kWyT+BPscSOFevYOiOFKKex1/iTtrIdGG0PtcMz7XpzA9yDD+WW32bBPT3+WyLrdUK jiwAAeDIA5+BL/MyXyqIttJ1PEa3M5ZWMhZRf6YdQ/O9XEZ/kB0hyvK0SZ8s9o04XiAF ol88UiR7nuZFtoN2gM8qsR58hKhrQ2Qio05kJYQhtt5wnOurCdbW7sUvAaXznCMVoGHF K3Vdi/gJFf33gug+CNsb2yOci0iq8qJBOnjXFv9G4tzuGFvcie68F3ydvKFUIGmzf7sg RhP+YhVt0GXztziJASymqQTZTvbGwp6LVESBgwrXy15w6Gb5T6vR/s18FfUkqvWXTlLF uENg== X-Gm-Message-State: AODbwcDAciudS5mA5lTv35ogqTmctSFspbvGXpOOT32YXYH06b0UUWhr xiNfPS3/hZUvHBRDpIEpn95hIaY/vS0w X-Received: by 10.28.138.73 with SMTP id m70mr3497099wmd.99.1496205383416; Tue, 30 May 2017 21:36:23 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.19.138 with HTTP; Tue, 30 May 2017 21:35:52 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Wed, 31 May 2017 10:05:52 +0530 Message-ID: Subject: Re: [pgAdmin4] [PATCH] History Tab rewrite in React To: Joao Pedro De Almeida Pereira Cc: Dave Page , Matthew Kleiman , Murtuza Zabuawala , pgadmin-hackers Content-Type: multipart/alternative; boundary="001a1144493663efe50550ca7657" X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1144493663efe50550ca7657 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, May 31, 2017 at 12:01 AM, Joao Pedro De Almeida Pereira < jdealmeidapereira@pivotal.io> 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 o= r > 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", =E2=80=8B =E2=80=8B "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.j= s) > ESLint (adds ESLint library via yarn, creates .eslintrc config file, an= d > 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 wrote: > >> Hi >> >> On Tue, May 30, 2017 at 2:47 PM, Matthew Kleiman >> 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 >> > > --001a1144493663efe50550ca7657 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
On = Wed, May 31, 2017 at 12:01 AM, Joao Pedro De Almeida Pereira <j= dealmeidapereira@pivotal.io> wrote:
The m= otivation is simple - we want a solution that works for the whole
app, can handle debug vs. release executi= on, pluggable modules, and
insta= llations in read-only directories.
With the = current configuration of Grunt, all the requirements you mention are availa= ble.
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 cur= rently 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 nee= d 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 co= mmand every time the application run:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadm= in/static/js/selection/*.js regression/javascript/**/*.jsx regression/= javascript/**/*.js *.js=C2=A0&& yarn run webpack -- --config webpac= k.config.js && python web/pgAdmin4

And t= o run the jasmine tests:

yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection= /*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.j= s=C2=A0&&=C2=A0yarn run = karma start

And to run the featu= re tests:

yarn r= un eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js= regression/javascript/**/*.jsx regression/javascript/**/*.js *.js=C2=A0&am= p;& yarn run webpack=C2=A0-- --config=C2=A0webpa= ck.config.js && python runtests.py
Is this a solution that is acceptable?=C2=A0
<= /blockquote>

As per my know= ledge, 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 fi= les, it has to be used with either Grunt or Gulp to execute tasks.

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

scripts: {
=C2=A0"= ;task-name1": "yarn run eslint filename",
=E2=80=8B =E2=80=8B<= /div>"task-name2": "yarn run karma start", so on...}

and run them using following command:
npm run task-name1
=C2=A0

However; this patch is suppose= d 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 diff= erent commits:
1 - Add React and all the tools needed to work wit= h it, this includes Grunt, Webpack and ESLint
2 - Change the hist= ory tab

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

Thank= s
Joao & Matt=C2=A0

On Tue, May 30, 2017 at 10:10 AM, Dave Page <dpage@pgadmin.org>= ; wrote:
Hi

On Tue, May 30, 2017 at 2:47 PM, Matthew Kleiman <mkleiman@pivotal.io> wrote:
> Hi Dave,
>
> We are currently using the Grunt taskrunner to run the fo= llowing 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 inste= ad 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 who= le
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<= br> 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


--001a1144493663efe50550ca7657--