New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

React Support for client side #6044

Closed
deepu105 opened this Issue Jul 6, 2017 · 114 comments

Comments

@deepu105
Member

deepu105 commented Jul 6, 2017

This is the central ticket for our React support.
This will be an evolving ticket, I'll create a Project once we have identified TODO items clearly
Any TODO must be added/modified to this opening comment.

The below is the Framework choices made so far:

  • React written in Typescript
  • Redux + react-redux + Axios + Promise middleware + redux-thunk
  • React router v4
  • Bootstrap 4 + Reactstrap
  • Tslint + tslint-eslint + tslint-react
  • Lodash
  • Karma + Mocha + Chai + Enzyme for unit tests
  • Sass support
  • i18n custom with react-jhipster lib
  • Webpack set up close to our Angular setup

The below are the initial list of TODO:

  • Merge the generator-jhipster-react library into a new branch in the generator-jhipster repo (@deepu105)
  • Migrate to bootstrap from material UI (@sendilkumarn @deepu105)
  • Migrate to Typescript from ES6 + babel (@sendilkumarn @deepu105)
  • Find a solution for i18n so that our current files can be reused. If cannot find a lib write a plugin using counterpart adapting ngx-translate(@deepu105)
  • Add sample unit tests
  • Migrate entity sub generator
  • Implement a transform stream to strip i18n related stuff when its disabled
  • Cleanup structure and finish almost done pages if any (@deepu105)
  • add more travis builds for React(no i18n, sass, ws, Search, Oauth)
  • Add options to tempate for Auth, Sass, i18n etc
  • Migrate remaining account module pages
  • Supress React options for UAA
  • move reducers to feature folders
  • use import alias and align with new entity folder structure

Modules

  • Account: activate
  • Account: password
  • Account: register
  • Account: reset
  • Account: sessions
  • Account: settings
  • Admin: audits
  • Admin: configuration
  • Admin: docs
  • Admin: health
  • Admin: logs
  • Admin: metrics
  • Admin: tracker
  • Admin: gateway
  • Admin: user-management
  • Blocks: config
  • Blocks: handlers
  • Blocks: interceptors
  • Shared: alert
  • Shared: auth
  • Shared: form
  • Shared: language
  • Shared: login
  • Shared: profiles
  • Shared: util
  • shared:all
  • Home
  • Layouts:error
  • Layouts:navbar

Issues/Bugs

  • Error handling when authentication fails
  • Handling roles
  • No login errors when invalid password #6669
  • Changing password doesn't work #6670
  • Pagination componenet tries to paginate when there is no next page (needs unit tests in lib as well)
  • Entity dialog page creates lot of methods to handle relations, try to remove and simplify those

Test cases

Application

  • Default options with i18n
  • Default options without i18n
  • Default options with i18n prod profile
  • Default options without i18n prod profile
  • Default options regenerate existing app
  • Default options with SASS
  • Default options with --skip-user-management flag
  • Default options with --jhi-prefix flag
  • Default options with --skip-server flag
  • Default options with i18n for Gateway
  • Default options without i18n for Gateway
  • Default options with Protractor
  • Gradle build Default with i18n
  • Gradle build Default with i18n prod profile
  • With Search engine
  • With websocket
  • Session Auth
  • Oauth2 Auth
  • add new languages to app

Entity

  • With no pagination
  • With pagination
  • With Infinite scroll
  • With blob
  • With Image
  • With Text
  • Different field types
  • Different relationship types
  • Import from JDL

cc @jhipster/developers

@atomfrede

This comment has been minimized.

Show comment
Hide comment
@atomfrede

atomfrede Jul 6, 2017

Member

We are currently using React and Vue.js and are exploring an approach to write custom components once with preact and then use a thin wrapper to use the component both in react (or just use the preact version) and in vue. Maybe we should also think about something similar to make it possible to use another frontend if required (or for a module that provides vue instead of react).

Member

atomfrede commented Jul 6, 2017

We are currently using React and Vue.js and are exploring an approach to write custom components once with preact and then use a thin wrapper to use the component both in react (or just use the preact version) and in vue. Maybe we should also think about something similar to make it possible to use another frontend if required (or for a module that provides vue instead of react).

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 6, 2017

Member

In my personal experience using 2 frameworks whuch does same job only adds complexity and makes maintenance harder and implementation flaky. I would rather stick 2 just one framework. Evn using angular 1 and 2 together needed a lot of duct tape. So I would recommend to keep Vue out of question for now.

From point of Jhipster, what would be more beneficial would be to find a way to add alternative options simpler

Member

deepu105 commented Jul 6, 2017

In my personal experience using 2 frameworks whuch does same job only adds complexity and makes maintenance harder and implementation flaky. I would rather stick 2 just one framework. Evn using angular 1 and 2 together needed a lot of duct tape. So I would recommend to keep Vue out of question for now.

From point of Jhipster, what would be more beneficial would be to find a way to add alternative options simpler

@atomfrede

This comment has been minimized.

Show comment
Hide comment
@atomfrede

atomfrede Jul 6, 2017

Member

Absolutely! Supporting two frameworks in core generator is hell. When we find a way to write components (e.g. table component) once (in preact) and can use that component in different ui frameworks with little overhead (preact is 3kb) this would at least help to be able to add additional options (either in the main generator or as a module) as we would not need to rewrite everything in the new fraemwork, but agree, lets focus on react first.

Member

atomfrede commented Jul 6, 2017

Absolutely! Supporting two frameworks in core generator is hell. When we find a way to write components (e.g. table component) once (in preact) and can use that component in different ui frameworks with little overhead (preact is 3kb) this would at least help to be able to add additional options (either in the main generator or as a module) as we would not need to rewrite everything in the new fraemwork, but agree, lets focus on react first.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 7, 2017

Member

@sendilkumarn I see that you assigned items 2 & 3 to yourself, I have already done this on my company project which is based on JHipster-react so I'll do the base changes and then you can work on top of that.

Member

deepu105 commented Jul 7, 2017

@sendilkumarn I see that you assigned items 2 & 3 to yourself, I have already done this on my company project which is based on JHipster-react so I'll do the base changes and then you can work on top of that.

@sendilkumarn

This comment has been minimized.

Show comment
Hide comment
@sendilkumarn

sendilkumarn Jul 7, 2017

Contributor

Okay 👍

Contributor

sendilkumarn commented Jul 7, 2017

Okay 👍

@erikkemperman

This comment has been minimized.

Show comment
Hide comment
@erikkemperman

erikkemperman Jul 18, 2017

Member

Just wondering -- from the current package.json in this branch it seems this would be adopting FaceBook's react implementation, is that right? Have you guys considered the legal implications, given the controversial BSD+PATENTS attached to it? I am not a lawyer, but there's quite a bit of unease around their license. See, e.g.,
https://news.ycombinator.com/item?id=14779881
https://react-etc.net/entry/apache-foundation-bans-use-of-facebook-bsd-patents-licensed-libraries-like-react-js
Maybe it would be better to look at alternative implementations?

EDIT: Maybe keep an eye on this -- FB are aware that this is scaring a lot of folks: facebook/react#10191

Member

erikkemperman commented Jul 18, 2017

Just wondering -- from the current package.json in this branch it seems this would be adopting FaceBook's react implementation, is that right? Have you guys considered the legal implications, given the controversial BSD+PATENTS attached to it? I am not a lawyer, but there's quite a bit of unease around their license. See, e.g.,
https://news.ycombinator.com/item?id=14779881
https://react-etc.net/entry/apache-foundation-bans-use-of-facebook-bsd-patents-licensed-libraries-like-react-js
Maybe it would be better to look at alternative implementations?

EDIT: Maybe keep an eye on this -- FB are aware that this is scaring a lot of folks: facebook/react#10191

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 18, 2017

Member

@erikkemperman I'm aware of it. Technically we are not an Apache Foundation project and hence this doesn't affect us. I do understand the BDS + Patents license is slightly less permissive than APL2 (I'm not a lawyer) But in any case this shouldn't worry us, in the rarest ever possibility that someone encounters a legal issue becoz of the React licence, Never happened so far, it would be very very easy to switch to something like Preact or Inferno (which are 100% API compatible) which are MIT licenced. SO let's not worry much about this now. Also once React support is added it's too easy to add an option to choose between React or Preact so for me this is not an issue at all.

Member

deepu105 commented Jul 18, 2017

@erikkemperman I'm aware of it. Technically we are not an Apache Foundation project and hence this doesn't affect us. I do understand the BDS + Patents license is slightly less permissive than APL2 (I'm not a lawyer) But in any case this shouldn't worry us, in the rarest ever possibility that someone encounters a legal issue becoz of the React licence, Never happened so far, it would be very very easy to switch to something like Preact or Inferno (which are 100% API compatible) which are MIT licenced. SO let's not worry much about this now. Also once React support is added it's too easy to add an option to choose between React or Preact so for me this is not an issue at all.

@erikkemperman

This comment has been minimized.

Show comment
Hide comment
@erikkemperman

erikkemperman Jul 18, 2017

Member

@deepu105 Thanks for the quick response Deepu!

Yes, I know JH is not an ASF project, I was just curious if their reasoning would apply here as well. Apparently the fear is, roughly, that using React in your projects might allow FaceBook to co-opt all of your patents, related or not, because you give up the right to sue them for infringement.

It's probably not actually that bad, but still... ASF doesn't drop this bombshell lightly I imagine.

I just wanted to make sure this concern is on the radar, that is all.

Member

erikkemperman commented Jul 18, 2017

@deepu105 Thanks for the quick response Deepu!

Yes, I know JH is not an ASF project, I was just curious if their reasoning would apply here as well. Apparently the fear is, roughly, that using React in your projects might allow FaceBook to co-opt all of your patents, related or not, because you give up the right to sue them for infringement.

It's probably not actually that bad, but still... ASF doesn't drop this bombshell lightly I imagine.

I just wanted to make sure this concern is on the radar, that is all.

@jdubois

This comment has been minimized.

Show comment
Hide comment
@jdubois

jdubois Jul 18, 2017

Member

@erikkemperman yes of course, in fact I tweeted about the legal implication about 1 year ago, and since then I'm regularly attacked by React developers in France.

For me we have no issue at all here, but this needs a long explanation.

First let me detail the issue with React:

  • There are legal implications for people using React. Let's take the original example I used one year ago: you develop a software for a client, using React. That client gets bought by another company. That other company sues Facebook - and hence loses the right to use your software.
  • There are a lot of attacks/trolls/insults from the React community, and also a FAQ that tells there is no problem whatsoever. Just read my example above, it has been correct from the start, and it is still correct. Now I don't care being insulted by people with no legal background.
  • As it is often replied: that company suing Facebook is "bad". Yes, I agree, and that's why I did this specific example. It's not the software developer's role to tell that the company that is buying his client is bad, and "punish" them. Who do you think you are, Batman?
  • The whole point of OSS is about the license, and not strictly following the license is wrong from my point of view. Younger people probably don't know about this, but this kind of use case already happened in the past, for example there was one person who did a GPL project, and added a clause to forbid the South African police to use it. Same thing as my previous point: we're here for making software, we're not Batman.

Now let me detail the issues we have with the use of React in JHipster:

  • We're not directly using React: we generate an application that uses React. And anyway, we're not even a company, so I wonder which kind of issue we could have (and I'm not planning to sue Facebook, anyway). I think that on our side, we are safe. And in case of trouble, we'll just drop the React option, or put it inside a module. So no problem at all for the project itself.
  • There is indeed something that worries me: this means JHipster could not become an ASF project one day. This question arises from time to time, at the moment we have no plans of doing this - basically this is because they rise a lot of legal issues and paperwork, and nobody is ready to do that (I just don't have that much free time).
  • The real issue is for our users: but it's like any JHipster-generated project, that project is the user's project, and that's his own issue. Maybe he thinks that's fine for him, maybe his legal team says it's fine - anyway that's his project and he does whatever he wants with it. We already support Oracle and MS SQL Server, which are totally proprietary technologies - honestly the React clause is a total non-issue for us, at this point.
Member

jdubois commented Jul 18, 2017

@erikkemperman yes of course, in fact I tweeted about the legal implication about 1 year ago, and since then I'm regularly attacked by React developers in France.

For me we have no issue at all here, but this needs a long explanation.

First let me detail the issue with React:

  • There are legal implications for people using React. Let's take the original example I used one year ago: you develop a software for a client, using React. That client gets bought by another company. That other company sues Facebook - and hence loses the right to use your software.
  • There are a lot of attacks/trolls/insults from the React community, and also a FAQ that tells there is no problem whatsoever. Just read my example above, it has been correct from the start, and it is still correct. Now I don't care being insulted by people with no legal background.
  • As it is often replied: that company suing Facebook is "bad". Yes, I agree, and that's why I did this specific example. It's not the software developer's role to tell that the company that is buying his client is bad, and "punish" them. Who do you think you are, Batman?
  • The whole point of OSS is about the license, and not strictly following the license is wrong from my point of view. Younger people probably don't know about this, but this kind of use case already happened in the past, for example there was one person who did a GPL project, and added a clause to forbid the South African police to use it. Same thing as my previous point: we're here for making software, we're not Batman.

Now let me detail the issues we have with the use of React in JHipster:

  • We're not directly using React: we generate an application that uses React. And anyway, we're not even a company, so I wonder which kind of issue we could have (and I'm not planning to sue Facebook, anyway). I think that on our side, we are safe. And in case of trouble, we'll just drop the React option, or put it inside a module. So no problem at all for the project itself.
  • There is indeed something that worries me: this means JHipster could not become an ASF project one day. This question arises from time to time, at the moment we have no plans of doing this - basically this is because they rise a lot of legal issues and paperwork, and nobody is ready to do that (I just don't have that much free time).
  • The real issue is for our users: but it's like any JHipster-generated project, that project is the user's project, and that's his own issue. Maybe he thinks that's fine for him, maybe his legal team says it's fine - anyway that's his project and he does whatever he wants with it. We already support Oracle and MS SQL Server, which are totally proprietary technologies - honestly the React clause is a total non-issue for us, at this point.
@erikkemperman

This comment has been minimized.

Show comment
Hide comment
@erikkemperman

erikkemperman Jul 18, 2017

Member

I was just thinking of the users, actually -- myself included :-) Thanks for detailed response, good to hear you guys have thought about this.

Member

erikkemperman commented Jul 18, 2017

I was just thinking of the users, actually -- myself included :-) Thanks for detailed response, good to hear you guys have thought about this.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 18, 2017

Member

@jdubois we are anyway safe even for your last 3 points, If we encounter issue or if we go ASF we will just switch React with Preact which has MIT license but works the same way as React and works with all other libs, so the only code change would be to change the imports technically (It can be done by find replace) look at this for example ui-router/visualizer@f07f09c

Member

deepu105 commented Jul 18, 2017

@jdubois we are anyway safe even for your last 3 points, If we encounter issue or if we go ASF we will just switch React with Preact which has MIT license but works the same way as React and works with all other libs, so the only code change would be to change the imports technically (It can be done by find replace) look at this for example ui-router/visualizer@f07f09c

@sendilkumarn

This comment has been minimized.

Show comment
Hide comment
@sendilkumarn

sendilkumarn Jul 18, 2017

Contributor

Instead of switching to preact, why can't we start with preact 😜

@jdubois really detailed and well laid out response 👍 Thanks 😄

Contributor

sendilkumarn commented Jul 18, 2017

Instead of switching to preact, why can't we start with preact 😜

@jdubois really detailed and well laid out response 👍 Thanks 😄

@survivant

This comment has been minimized.

Show comment
Hide comment
@survivant

survivant Jul 18, 2017

Hello, little question. Why not use Material-ui ? I was planning to use it for Desktop application, and switch to material-ui-native for mobile (when possible). Could it be possible to have the choice in the command line ?

survivant commented Jul 18, 2017

Hello, little question. Why not use Material-ui ? I was planning to use it for Desktop application, and switch to material-ui-native for mobile (when possible). Could it be possible to have the choice in the command line ?

@sendilkumarn

This comment has been minimized.

Show comment
Hide comment
@sendilkumarn

sendilkumarn Jul 18, 2017

Contributor

@survivant we want to align more towards our current JHipster Angular UI which is based on Bootstrap.
Adding a choice to choose between material UI and bootstrap will make the project more cumbersome. So definitely no for now. May be you can add in a module for that.

Contributor

sendilkumarn commented Jul 18, 2017

@survivant we want to align more towards our current JHipster Angular UI which is based on Bootstrap.
Adding a choice to choose between material UI and bootstrap will make the project more cumbersome. So definitely no for now. May be you can add in a module for that.

@survivant

This comment has been minimized.

Show comment
Hide comment
@survivant

survivant Jul 18, 2017

@sendilkumarn make sense, I'll have to check how to create a module. Could be more complete that way, if I want to generate code for web and native applications.

survivant commented Jul 18, 2017

@sendilkumarn make sense, I'll have to check how to create a module. Could be more complete that way, if I want to generate code for web and native applications.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 18, 2017

Member

@sendilkumarn React is more popular and has more reach so lets start with it first, we will see about issue if we ever encounter one

Member

deepu105 commented Jul 18, 2017

@sendilkumarn React is more popular and has more reach so lets start with it first, we will see about issue if we ever encounter one

@survivant

This comment has been minimized.

Show comment
Hide comment
@survivant

survivant Jul 18, 2017

@deepu105 I'll like to play around with this branch. How can I generate app with the code in the branch ? I try to follow the documentation on : https://github.com/hipster-labs/generator-jhipster-react

but I obtain this error message

$ yo jhipster-react
Error jhipster-react

You don't seem to have a generator with the name “jhipster-react” installed.
But help is on the way:

You can see available generators via npm search yeoman-generator or via http://yeoman.io/generators/.
Install them with npm install generator-jhipster-react.

To see all your installed generators run yo without any arguments. Adding the --help option will also show subgenerators.

If yo cannot find the generator, run yo doctor to troubleshoot your system.

I'm not too familiar with npm

thanks, I hope to be able to help to test

survivant commented Jul 18, 2017

@deepu105 I'll like to play around with this branch. How can I generate app with the code in the branch ? I try to follow the documentation on : https://github.com/hipster-labs/generator-jhipster-react

but I obtain this error message

$ yo jhipster-react
Error jhipster-react

You don't seem to have a generator with the name “jhipster-react” installed.
But help is on the way:

You can see available generators via npm search yeoman-generator or via http://yeoman.io/generators/.
Install them with npm install generator-jhipster-react.

To see all your installed generators run yo without any arguments. Adding the --help option will also show subgenerators.

If yo cannot find the generator, run yo doctor to troubleshoot your system.

I'm not too familiar with npm

thanks, I hope to be able to help to test

@gmarziou

This comment has been minimized.

Show comment
Hide comment
@gmarziou

gmarziou Jul 19, 2017

Contributor

@survivant, these instructions are obsolete as react support is no longer a module but a sub generator of main generator.
Now you can follow https://github.com/jhipster/generator-jhipster/blob/jh-react/CONTRIBUTING.md#setup.

So it should be:

git clone https://github.com/jhipster/generator-jhipster
cd  generator-jhipster
git checkout jh-react
yarn install
yarn link

And to use in an app:

mkdir my_react_app
cd my_react_app
yarn link generator-jhipster
yo jhipster
Contributor

gmarziou commented Jul 19, 2017

@survivant, these instructions are obsolete as react support is no longer a module but a sub generator of main generator.
Now you can follow https://github.com/jhipster/generator-jhipster/blob/jh-react/CONTRIBUTING.md#setup.

So it should be:

git clone https://github.com/jhipster/generator-jhipster
cd  generator-jhipster
git checkout jh-react
yarn install
yarn link

And to use in an app:

mkdir my_react_app
cd my_react_app
yarn link generator-jhipster
yo jhipster
@survivant

This comment has been minimized.

Show comment
Hide comment
@survivant

survivant Jul 19, 2017

@gmarziou thanks. I'll start from there.

If I found issues, should I start to flag them ?

for now, it's not working. here the output
`C:\Data\workspace_perso\github-forks\jhipster-react-branch>yo jhipster

Welcome to the JHipster Generator v4.6.0
Documentation for creating an application: https://jhipster.github.io/creating-a
n-app/
Application files will be generated in folder: C:\Data\workspace_perso\github-fo
rks\jhipster-react-branch
WARNING! Failed to connect to "git://github.com"
1. Check your Internet connection.
2. If you are using an HTTP proxy, try this command: git co
nfig --global url."https://".insteadOf git://


JHipster update available: 4.6.2 (current: 4.6.0)

Run yarn global upgrade generator-jhipster to update.


? (1/16) Which type of application would you like to create? Monolithic appli
cation (recommended for simple projects)
? (2/16) What is the base name of your application? jhipster
? (3/16) What is your default Java package name? com.mycompany.myapp
? (4/16) Do you want to use the JHipster Registry to configure, monitor and sca
le your application? No
? (5/16) Which type of authentication would you like to use? JWT authenticati
on (stateless, with a token)
? (6/16) Which type of database would you like to use? SQL (H2, MySQL, MariaD
B, PostgreSQL, Oracle, MSSQL)
? (7/16) Which production database would you like to use? MySQL
? (8/16) Which development database would you like to use? H2 with disk-based
persistence
? (9/16) Do you want to use Hibernate 2nd level cache? No
? (10/16) Would you like to use Maven or Gradle for building the backend? Maven

? (11/16) Which other technologies would you like to use? Social login (Google,
Facebook, Twitter)
? (12/16) Which Framework would you like to use for the client? [BETA] React
? (13/16) Would you like to use the LibSass stylesheet preprocessor for your CS
S? Yes
? (14/16) Would you like to enable internationalization support? Yes
? Please choose the native language of the application English
? Please choose additional languages to install French
? (15/16) Besides JUnit and Karma, which testing frameworks would you like to u
se?
? (16/16) Would you like to install other generators from the JHipster Marketpl
ace? No

Installing languages: en, fr
events.js:160
throw er; // Unhandled 'error' event
^

TypeError: _this[method] is not a function
at blockTemplate.templates.forEach (C:\Data\workspace_perso\github-forks\gen
erator-jhipster\generators\generator-base.js:1933:42)
at Array.forEach (native)
at constructor.writeFilesToDisk (C:\Data\workspace_perso\github-forks\genera
tor-jhipster\generators\generator-base.js:1910:45)
at constructor.writeFiles (C:\Data\workspace_perso\github-forks\generator-jh
ipster\generators\client\files-react.js:409:10)
at constructor.writing (C:\Data\workspace_perso\github-forks\generator-jhips
ter\generators\client\index.js:366:36)
at Object. (C:\Data\workspace_perso\github-forks\generator-jhipst
er\node_modules\yeoman-generator\lib\index.js:417:23)
at C:\Data\workspace_perso\github-forks\generator-jhipster\node_modules\run-
async\index.js:25:25
at C:\Data\workspace_perso\github-forks\generator-jhipster\node_modules\run-
async\index.js:24:19
at C:\Data\workspace_perso\github-forks\generator-jhipster\node_modules\yeom
an-generator\lib\index.js:418:9
at runCallback (timers.js:672:20)

C:\Data\workspace_perso\github-forks\jhipster-react-branch>

survivant commented Jul 19, 2017

@gmarziou thanks. I'll start from there.

If I found issues, should I start to flag them ?

for now, it's not working. here the output
`C:\Data\workspace_perso\github-forks\jhipster-react-branch>yo jhipster

Welcome to the JHipster Generator v4.6.0
Documentation for creating an application: https://jhipster.github.io/creating-a
n-app/
Application files will be generated in folder: C:\Data\workspace_perso\github-fo
rks\jhipster-react-branch
WARNING! Failed to connect to "git://github.com"
1. Check your Internet connection.
2. If you are using an HTTP proxy, try this command: git co
nfig --global url."https://".insteadOf git://


JHipster update available: 4.6.2 (current: 4.6.0)

Run yarn global upgrade generator-jhipster to update.


? (1/16) Which type of application would you like to create? Monolithic appli
cation (recommended for simple projects)
? (2/16) What is the base name of your application? jhipster
? (3/16) What is your default Java package name? com.mycompany.myapp
? (4/16) Do you want to use the JHipster Registry to configure, monitor and sca
le your application? No
? (5/16) Which type of authentication would you like to use? JWT authenticati
on (stateless, with a token)
? (6/16) Which type of database would you like to use? SQL (H2, MySQL, MariaD
B, PostgreSQL, Oracle, MSSQL)
? (7/16) Which production database would you like to use? MySQL
? (8/16) Which development database would you like to use? H2 with disk-based
persistence
? (9/16) Do you want to use Hibernate 2nd level cache? No
? (10/16) Would you like to use Maven or Gradle for building the backend? Maven

? (11/16) Which other technologies would you like to use? Social login (Google,
Facebook, Twitter)
? (12/16) Which Framework would you like to use for the client? [BETA] React
? (13/16) Would you like to use the LibSass stylesheet preprocessor for your CS
S? Yes
? (14/16) Would you like to enable internationalization support? Yes
? Please choose the native language of the application English
? Please choose additional languages to install French
? (15/16) Besides JUnit and Karma, which testing frameworks would you like to u
se?
? (16/16) Would you like to install other generators from the JHipster Marketpl
ace? No

Installing languages: en, fr
events.js:160
throw er; // Unhandled 'error' event
^

TypeError: _this[method] is not a function
at blockTemplate.templates.forEach (C:\Data\workspace_perso\github-forks\gen
erator-jhipster\generators\generator-base.js:1933:42)
at Array.forEach (native)
at constructor.writeFilesToDisk (C:\Data\workspace_perso\github-forks\genera
tor-jhipster\generators\generator-base.js:1910:45)
at constructor.writeFiles (C:\Data\workspace_perso\github-forks\generator-jh
ipster\generators\client\files-react.js:409:10)
at constructor.writing (C:\Data\workspace_perso\github-forks\generator-jhips
ter\generators\client\index.js:366:36)
at Object. (C:\Data\workspace_perso\github-forks\generator-jhipst
er\node_modules\yeoman-generator\lib\index.js:417:23)
at C:\Data\workspace_perso\github-forks\generator-jhipster\node_modules\run-
async\index.js:25:25
at C:\Data\workspace_perso\github-forks\generator-jhipster\node_modules\run-
async\index.js:24:19
at C:\Data\workspace_perso\github-forks\generator-jhipster\node_modules\yeom
an-generator\lib\index.js:418:9
at runCallback (timers.js:672:20)

C:\Data\workspace_perso\github-forks\jhipster-react-branch>

@gmarziou

This comment has been minimized.

Show comment
Hide comment
@gmarziou

gmarziou Jul 19, 2017

Contributor

I got same error when I tried this morning with 2 languages too.
Maybe try without i18n first.

Contributor

gmarziou commented Jul 19, 2017

I got same error when I tried this morning with 2 languages too.
Maybe try without i18n first.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 19, 2017

Member

Yes i18n might not work, anyways I'm planning to rewrite to typescript and use bootstrap over the weekend, so next week I hope it can make some basic apps

Member

deepu105 commented Jul 19, 2017

Yes i18n might not work, anyways I'm planning to rewrite to typescript and use bootstrap over the weekend, so next week I hope it can make some basic apps

@andidev

This comment has been minimized.

Show comment
Hide comment
@andidev

andidev Jul 19, 2017

Member

I would suggest using redux saga with react redux instead of the Promise Middleware. Seems like a more cleaner approach. I'm no expert on react though.

Member

andidev commented Jul 19, 2017

I would suggest using redux saga with react redux instead of the Promise Middleware. Seems like a more cleaner approach. I'm no expert on react though.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 20, 2017

Member

I have looked at Saga and its an overkill for crud operations. Its useful if you have really complex side effects to manage. Also redux advices to start simple with promise and thunk and use saga or observable only when you have complex scenarios. Also you can always use multiple libs with redux on same app as all are middlewares. So you could use promise + thunk for simple use cases and when you have complex ones you could use saga or observable

Member

deepu105 commented Jul 20, 2017

I have looked at Saga and its an overkill for crud operations. Its useful if you have really complex side effects to manage. Also redux advices to start simple with promise and thunk and use saga or observable only when you have complex scenarios. Also you can always use multiple libs with redux on same app as all are middlewares. So you could use promise + thunk for simple use cases and when you have complex ones you could use saga or observable

@sendilkumarn

This comment has been minimized.

Show comment
Hide comment
@sendilkumarn

sendilkumarn Jul 20, 2017

Contributor

@deepu105 let me know once you have committed the code 👍 This is gonna be react-ful week 😝

Contributor

sendilkumarn commented Jul 20, 2017

@deepu105 let me know once you have committed the code 👍 This is gonna be react-ful week 😝

@sdoxsee

This comment has been minimized.

Show comment
Hide comment
@sdoxsee

sdoxsee Jul 21, 2017

Contributor

I'm brand new to react but have been playing with it this week and discovered create-react-app that, as I'm sure most of you are already familiar with, hides details (webpack, babel, etc) in a react-scripts dependency that is managed and updated. Feels like a spring boot dependency bom. I suppose with typescript we'd already have to "eject" but I do quite like delegating the auto updating of react app dependencies to the maintainers of this >30000 star project. If typescript isn't set in stone, it would be awesome if we could leverage the tool without ejecting. Do you think that would be possible or desirable? Again...I'm new...which is why I don't want to configure with tools that keep shifting....grunt, gulp, webpack... :) The convention sounds really attractive.

Refs:
- https://medium.com/@tuchk4/why-i-love-create-react-app-e63b1be689a3
- https://github.com/facebookincubator/create-react-app
- https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md

Update:
As for typescript, there's this fork https://github.com/wmonk/create-react-app-typescript that also seems to have the backing of Microsoft? https://github.com/Microsoft/TypeScript-React-Starter

Contributor

sdoxsee commented Jul 21, 2017

I'm brand new to react but have been playing with it this week and discovered create-react-app that, as I'm sure most of you are already familiar with, hides details (webpack, babel, etc) in a react-scripts dependency that is managed and updated. Feels like a spring boot dependency bom. I suppose with typescript we'd already have to "eject" but I do quite like delegating the auto updating of react app dependencies to the maintainers of this >30000 star project. If typescript isn't set in stone, it would be awesome if we could leverage the tool without ejecting. Do you think that would be possible or desirable? Again...I'm new...which is why I don't want to configure with tools that keep shifting....grunt, gulp, webpack... :) The convention sounds really attractive.

Refs:
- https://medium.com/@tuchk4/why-i-love-create-react-app-e63b1be689a3
- https://github.com/facebookincubator/create-react-app
- https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md

Update:
As for typescript, there's this fork https://github.com/wmonk/create-react-app-typescript that also seems to have the backing of Microsoft? https://github.com/Microsoft/TypeScript-React-Starter

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 21, 2017

Member
Member

deepu105 commented Jul 21, 2017

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 23, 2017

Member

@sendilkumarn I have committed initial version of TS + BS code. You need to enable sass to test it. I think there are some quirks with i18n and the header menu needs fixing, but feel free to hack on

Member

deepu105 commented Jul 23, 2017

@sendilkumarn I have committed initial version of TS + BS code. You need to enable sass to test it. I think there are some quirks with i18n and the header menu needs fixing, but feel free to hack on

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 23, 2017

Member

my test config

{
  "generator-jhipster": {
    "promptValues": {
      "packageName": "com.mycompany.myapp",
      "nativeLanguage": "en"
    },
    "jhipsterVersion": "4.6.2",
    "baseName": "jhReactTest",
    "packageName": "com.mycompany.myapp",
    "packageFolder": "com/mycompany/myapp",
    "serverPort": "8080",
    "authenticationType": "jwt",
    "hibernateCache": "ehcache",
    "clusteredHttpSession": false,
    "websocket": false,
    "databaseType": "sql",
    "devDatabaseType": "h2Disk",
    "prodDatabaseType": "mysql",
    "searchEngine": false,
    "messageBroker": false,
    "serviceDiscoveryType": false,
    "buildTool": "maven",
    "enableSocialSignIn": false,
    "jwtSecretKey": "788e69b63dbdc967046927b8e5855fda73e9027c",
    "clientFramework": "react",
    "useSass": false,
    "clientPackageManager": "yarn",
    "applicationType": "monolith",
    "testFrameworks": [],
    "jhiPrefix": "jhi",
    "enableTranslation": true,
    "nativeLanguage": "en",
    "languages": [
      "en"
    ]
  }
}
Member

deepu105 commented Jul 23, 2017

my test config

{
  "generator-jhipster": {
    "promptValues": {
      "packageName": "com.mycompany.myapp",
      "nativeLanguage": "en"
    },
    "jhipsterVersion": "4.6.2",
    "baseName": "jhReactTest",
    "packageName": "com.mycompany.myapp",
    "packageFolder": "com/mycompany/myapp",
    "serverPort": "8080",
    "authenticationType": "jwt",
    "hibernateCache": "ehcache",
    "clusteredHttpSession": false,
    "websocket": false,
    "databaseType": "sql",
    "devDatabaseType": "h2Disk",
    "prodDatabaseType": "mysql",
    "searchEngine": false,
    "messageBroker": false,
    "serviceDiscoveryType": false,
    "buildTool": "maven",
    "enableSocialSignIn": false,
    "jwtSecretKey": "788e69b63dbdc967046927b8e5855fda73e9027c",
    "clientFramework": "react",
    "useSass": false,
    "clientPackageManager": "yarn",
    "applicationType": "monolith",
    "testFrameworks": [],
    "jhiPrefix": "jhi",
    "enableTranslation": true,
    "nativeLanguage": "en",
    "languages": [
      "en"
    ]
  }
}
@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 23, 2017

Member

@sendilkumarn also its mostly not templated yet so other options needs to be templated in and i18n needs to be handled. I'll come up with a solution for i18n

Member

deepu105 commented Jul 23, 2017

@sendilkumarn also its mostly not templated yet so other options needs to be templated in and i18n needs to be handled. I'll come up with a solution for i18n

@pascalgrimaud

This comment has been minimized.

Show comment
Hide comment
@pascalgrimaud

pascalgrimaud Jul 23, 2017

Member

@deepu105 : soon holidays for me but, I will try to add:

Member

pascalgrimaud commented Jul 23, 2017

@deepu105 : soon holidays for me but, I will try to add:

@survivant

This comment has been minimized.

Show comment
Hide comment
@survivant

survivant Jul 24, 2017

I tried this morning, but I got this at the end

ERROR in ./src/main/webapp/app/index.tsx
Module not found: Error: Can't resolve './config/translation' in 'C:\Data\worksp
ace_perso\github-forks\test-branch-jhreact\src\main\webapp\app'
 @ ./src/main/webapp/app/index.tsx 13:20-51
 @ multi react-hot-loader/patch ./src/main/webapp/app/index

ERROR in ./src/main/webapp/app/app.tsx
Module not found: Error: Can't resolve './reducers/locale' in 'C:\Data\workspace
_perso\github-forks\test-branch-jhreact\src\main\webapp\app'

survivant commented Jul 24, 2017

I tried this morning, but I got this at the end

ERROR in ./src/main/webapp/app/index.tsx
Module not found: Error: Can't resolve './config/translation' in 'C:\Data\worksp
ace_perso\github-forks\test-branch-jhreact\src\main\webapp\app'
 @ ./src/main/webapp/app/index.tsx 13:20-51
 @ multi react-hot-loader/patch ./src/main/webapp/app/index

ERROR in ./src/main/webapp/app/app.tsx
Module not found: Error: Can't resolve './reducers/locale' in 'C:\Data\workspace
_perso\github-forks\test-branch-jhreact\src\main\webapp\app'
@sendilkumarn

This comment has been minimized.

Show comment
Hide comment
@sendilkumarn

sendilkumarn Jul 26, 2017

Contributor

@deepu105 I added few fixes there. Waiting for your i18n 😉

@survivant the errors that you have mentioned should disappear now.

Contributor

sendilkumarn commented Jul 26, 2017

@deepu105 I added few fixes there. Waiting for your i18n 😉

@survivant the errors that you have mentioned should disappear now.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 26, 2017

Member

@sendilkumarn great thanks. Feel free to take up the next task 😄

Member

deepu105 commented Jul 26, 2017

@sendilkumarn great thanks. Feel free to take up the next task 😄

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Jul 26, 2017

Member

I have sample unit tests, will commit those when I find time

Member

deepu105 commented Jul 26, 2017

I have sample unit tests, will commit those when I find time

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Aug 11, 2017

Member

Base configuration works now
image

Member

deepu105 commented Aug 11, 2017

Base configuration works now
image

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Mar 7, 2018

Member
Member

deepu105 commented Mar 7, 2018

@pascalgrimaud

This comment has been minimized.

Show comment
Hide comment
@pascalgrimaud

pascalgrimaud Mar 7, 2018

Member

I noticed some differences for indentation between Angular and React.
Angular uses 4 spaces and React uses 2 spaces.
Is it intended ?

Member

pascalgrimaud commented Mar 7, 2018

I noticed some differences for indentation between Angular and React.
Angular uses 4 spaces and React uses 2 spaces.
Is it intended ?

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Mar 7, 2018

Member
Member

deepu105 commented Mar 7, 2018

@jdubois

This comment has been minimized.

Show comment
Hide comment
@jdubois

jdubois Mar 22, 2018

Member

@deepu105 @agaspardcilia @chrisdns I think many of the TODOs are done here -> could you check them?

Member

jdubois commented Mar 22, 2018

@deepu105 @agaspardcilia @chrisdns I think many of the TODOs are done here -> could you check them?

@agaspardcilia

This comment has been minimized.

Show comment
Hide comment
@agaspardcilia

agaspardcilia Mar 22, 2018

Member

Yes, indeed.
Concerning Issues/Bugs,

  • No login errors when invalid password #6669
  • Changing password doesn't work #6670

are done. Maybe we could try to make everything notification use Toaster.

Entity support has been improved. Pretty much everything that is mentioned in the OP is done.
The only things that remains are:

  • With Infinite scroll, which is being done
  • With Text, that uses regular text field for now but should be done with a text area

Role management remain to be done though. And it's a pretty important feature.

Member

agaspardcilia commented Mar 22, 2018

Yes, indeed.
Concerning Issues/Bugs,

  • No login errors when invalid password #6669
  • Changing password doesn't work #6670

are done. Maybe we could try to make everything notification use Toaster.

Entity support has been improved. Pretty much everything that is mentioned in the OP is done.
The only things that remains are:

  • With Infinite scroll, which is being done
  • With Text, that uses regular text field for now but should be done with a text area

Role management remain to be done though. And it's a pretty important feature.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Mar 22, 2018

Member

@jdubois we are becoming more and more BETA ready, what would really help now is testing and finding issues. So if @jhipster/developers can help to test the combinations that are mentioned in the first post and mark the ones that are working and comment on issues that are found it would be super helpful.

Some things to note when testing:
We are not trying to replicate everything exactly as in Angular so there will be some minor differences and those are ok (for example notification).

Member

deepu105 commented Mar 22, 2018

@jdubois we are becoming more and more BETA ready, what would really help now is testing and finding issues. So if @jhipster/developers can help to test the combinations that are mentioned in the first post and mark the ones that are working and comment on issues that are found it would be super helpful.

Some things to note when testing:
We are not trying to replicate everything exactly as in Angular so there will be some minor differences and those are ok (for example notification).

@ahpearce

This comment has been minimized.

Show comment
Hide comment
@ahpearce

ahpearce Mar 22, 2018

I just received the following after generating with the --experimental and React...

Server and db are up and running, I run yarn start, and get some weird errors. I also get these errors in VSCode.

ERROR in [at-loader] ./src/main/webapp/app/shared/layout/header/header.tsx:49:13
    TS2459: Type 'Readonly<{ children?: ReactNode; }> & Readonly<{}>' has no property 'currentLocale' and no string index signature.

ERROR in [at-loader] ./src/main/webapp/app/shared/layout/header/header.tsx:49:28
    TS2459: Type 'Readonly<{ children?: ReactNode; }> & Readonly<{}>' has no property 'isAuthenticated' and no string index signature.

ERROR in [at-loader] ./src/test/javascript/spec/app/shared/layout/header.spec.tsx:19:17
    TS2339: Property 'isAuthenticated' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Header> & Readonly<{ children?: ReactNode; }> & Re...'.
webpack: Failed to compile.

I did notice one small oddity:

webpack output is served from /
Content not from webpack is served from ./target/www

Though I don't know if this is indicative of an issue... webpack being served from /?

ahpearce commented Mar 22, 2018

I just received the following after generating with the --experimental and React...

Server and db are up and running, I run yarn start, and get some weird errors. I also get these errors in VSCode.

ERROR in [at-loader] ./src/main/webapp/app/shared/layout/header/header.tsx:49:13
    TS2459: Type 'Readonly<{ children?: ReactNode; }> & Readonly<{}>' has no property 'currentLocale' and no string index signature.

ERROR in [at-loader] ./src/main/webapp/app/shared/layout/header/header.tsx:49:28
    TS2459: Type 'Readonly<{ children?: ReactNode; }> & Readonly<{}>' has no property 'isAuthenticated' and no string index signature.

ERROR in [at-loader] ./src/test/javascript/spec/app/shared/layout/header.spec.tsx:19:17
    TS2339: Property 'isAuthenticated' does not exist on type 'IntrinsicAttributes & IntrinsicClassAttributes<Header> & Readonly<{ children?: ReactNode; }> & Re...'.
webpack: Failed to compile.

I did notice one small oddity:

webpack output is served from /
Content not from webpack is served from ./target/www

Though I don't know if this is indicative of an issue... webpack being served from /?

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Mar 22, 2018

Member
Member

deepu105 commented Mar 22, 2018

@tradfursten

This comment has been minimized.

Show comment
Hide comment
@tradfursten

tradfursten Mar 25, 2018

I tried to use the react client and the project failed in the initial generation.

It produced a large stacktrace:

1871ms asset optimization
Hash: 8f0e578ce07b80753732
Version: webpack 3.8.1
Time: 21643ms
 7 assets
[./src/main/webapp/app/app.scss] ./src/main/webapp/app/app.scss 1.35 kB {1} [built]
       [] -> factory:992ms building:14ms = 1006ms
[./src/main/webapp/app/app.tsx] ./src/main/webapp/app/app.tsx 3.82 kB {1} [built]
       [] -> factory:70ms building:625ms dependencies:172ms = 867ms
[./src/main/webapp/app/config/axios-interceptor.ts] ./src/main/webapp/app/config/axios-interceptor.ts 2.2 kB {1} [built]
       [] -> factory:16ms building:308ms dependencies:2851ms = 3175ms
[./src/main/webapp/app/config/devtools.tsx] ./src/main/webapp/app/config/devtools.tsx 1.65 kB {1} [built]
       [] -> factory:73ms building:665ms dependencies:65ms = 803ms
[./src/main/webapp/app/config/error-middleware.ts] ./src/main/webapp/app/config/error-middleware.ts 2.47 kB {1} [built]
       [] -> factory:646ms building:157ms dependencies:2170ms = 2973ms
[./src/main/webapp/app/config/store.ts] ./src/main/webapp/app/config/store.ts 2.82 kB {1} [built]
       [] -> factory:16ms building:187ms dependencies:608ms = 811ms
[./src/main/webapp/app/config/translation.ts] ./src/main/webapp/app/config/translation.ts 2.86 kB {1} [built]
       [] -> factory:16ms building:260ms = 276ms
[./src/main/webapp/app/index.tsx] ./src/main/webapp/app/index.tsx 2.57 kB {1} [built]
       [] -> factory:75ms building:3821ms = 3896ms
[./src/main/webapp/app/reducers/action-type.util.ts] ./src/main/webapp/app/reducers/action-type.util.ts 1.45 kB {1} [built]
       [] -> factory:364ms building:279ms = 643ms
   [0] multi react-hot-loader/patch ./src/main/webapp/app/index 40 bytes {1} [built]
        factory:1ms building:1ms = 2ms
[./src/main/webapp/app/reducers/authentication.ts] ./src/main/webapp/app/reducers/authentication.ts 8.63 kB {1} [built]
       [] -> factory:17ms building:487ms dependencies:2672ms = 3176ms
[./src/main/webapp/app/reducers/index.ts] ./src/main/webapp/app/reducers/index.ts 1.85 kB {1} [built]
       [] -> factory:1689ms building:704ms dependencies:5ms = 2398ms
[./src/main/webapp/app/reducers/locale.ts] ./src/main/webapp/app/reducers/locale.ts 1.63 kB {1} [built]
       [] -> factory:574ms building:267ms = 841ms
[./src/main/webapp/app/routes.tsx] ./src/main/webapp/app/routes.tsx 2.22 kB {1} [built]
       [] -> factory:255ms building:294ms dependencies:1932ms = 2481ms
[./src/main/webapp/i18n/sv .json$] ./src/main/webapp/i18n/sv nonrecursive .json$ 505 bytes {1} [built]
       [] -> factory:487ms building:28ms = 515ms
    + 1714 hidden modules

ERROR in [at-loader] ./node_modules/@types/react-router/node_modules/@types/react/index.d.ts:3757:13 
    TS2403: Subsequent variable declarations must have the same type.  Variable 'a' must be of type 'DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>', but here has type 'DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>'.

ERROR in [at-loader] ./node_modules/@types/react-router/node_modules/@types/react/index.d.ts:3758:13 
    TS2403: Subsequent variable declarations must have the same type.  Variable 'abbr' must be of type 'DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>', but here has type 'DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>'.

and in the end errors like:

ERROR in [at-loader] ./src/main/webapp/app/modules/administration/user-management/index.tsx:18:7 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/modules/administration/user-management/user-management.tsx:68:11 
    TS2605: JSX element type 'Link' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/modules/home/home.tsx:56:19 
    TS2605: JSX element type 'Link' is not a constructor function for JSX elements.
  Types of property 'render' are incompatible.
    Type '() => ReactNode' is not assignable to type '{ (): string | number | false | Element | ReactPortal | Element[]; (): ReactNode; (): ReactNode; ...'.
      Type 'ReactNode' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.
        Type 'true' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.

ERROR in [at-loader] ./src/main/webapp/app/modules/login/login.tsx:50:14 
    TS2605: JSX element type 'Redirect' is not a constructor function for JSX elements.
  Types of property 'render' are incompatible.
    Type '() => ReactNode' is not assignable to type '{ (): string | number | false | Element | ReactPortal | Element[]; (): ReactNode; (): ReactNode; ...'.
      Type 'ReactNode' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.
        Type 'true' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.

ERROR in [at-loader] ./src/main/webapp/app/modules/login/logout.tsx:21:9 
    TS2605: JSX element type 'Redirect' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/routes.tsx:14:5 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.
  Types of property 'render' are incompatible.
    Type '() => ReactNode' is not assignable to type '{ (): string | number | false | Element | ReactPortal | Element[]; (): ReactNode; (): ReactNode; ...'.
      Type 'ReactNode' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.
        Type 'true' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.

ERROR in [at-loader] ./src/main/webapp/app/routes.tsx:15:5 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/routes.tsx:16:5 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/routes.tsx:19:5 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.
error Command failed with exit code 2.
error Command failed with exit code 1.
error Command failed with exit code 1.

I'm using version 4.14.1 and the experimental flag.

tradfursten commented Mar 25, 2018

I tried to use the react client and the project failed in the initial generation.

It produced a large stacktrace:

1871ms asset optimization
Hash: 8f0e578ce07b80753732
Version: webpack 3.8.1
Time: 21643ms
 7 assets
[./src/main/webapp/app/app.scss] ./src/main/webapp/app/app.scss 1.35 kB {1} [built]
       [] -> factory:992ms building:14ms = 1006ms
[./src/main/webapp/app/app.tsx] ./src/main/webapp/app/app.tsx 3.82 kB {1} [built]
       [] -> factory:70ms building:625ms dependencies:172ms = 867ms
[./src/main/webapp/app/config/axios-interceptor.ts] ./src/main/webapp/app/config/axios-interceptor.ts 2.2 kB {1} [built]
       [] -> factory:16ms building:308ms dependencies:2851ms = 3175ms
[./src/main/webapp/app/config/devtools.tsx] ./src/main/webapp/app/config/devtools.tsx 1.65 kB {1} [built]
       [] -> factory:73ms building:665ms dependencies:65ms = 803ms
[./src/main/webapp/app/config/error-middleware.ts] ./src/main/webapp/app/config/error-middleware.ts 2.47 kB {1} [built]
       [] -> factory:646ms building:157ms dependencies:2170ms = 2973ms
[./src/main/webapp/app/config/store.ts] ./src/main/webapp/app/config/store.ts 2.82 kB {1} [built]
       [] -> factory:16ms building:187ms dependencies:608ms = 811ms
[./src/main/webapp/app/config/translation.ts] ./src/main/webapp/app/config/translation.ts 2.86 kB {1} [built]
       [] -> factory:16ms building:260ms = 276ms
[./src/main/webapp/app/index.tsx] ./src/main/webapp/app/index.tsx 2.57 kB {1} [built]
       [] -> factory:75ms building:3821ms = 3896ms
[./src/main/webapp/app/reducers/action-type.util.ts] ./src/main/webapp/app/reducers/action-type.util.ts 1.45 kB {1} [built]
       [] -> factory:364ms building:279ms = 643ms
   [0] multi react-hot-loader/patch ./src/main/webapp/app/index 40 bytes {1} [built]
        factory:1ms building:1ms = 2ms
[./src/main/webapp/app/reducers/authentication.ts] ./src/main/webapp/app/reducers/authentication.ts 8.63 kB {1} [built]
       [] -> factory:17ms building:487ms dependencies:2672ms = 3176ms
[./src/main/webapp/app/reducers/index.ts] ./src/main/webapp/app/reducers/index.ts 1.85 kB {1} [built]
       [] -> factory:1689ms building:704ms dependencies:5ms = 2398ms
[./src/main/webapp/app/reducers/locale.ts] ./src/main/webapp/app/reducers/locale.ts 1.63 kB {1} [built]
       [] -> factory:574ms building:267ms = 841ms
[./src/main/webapp/app/routes.tsx] ./src/main/webapp/app/routes.tsx 2.22 kB {1} [built]
       [] -> factory:255ms building:294ms dependencies:1932ms = 2481ms
[./src/main/webapp/i18n/sv .json$] ./src/main/webapp/i18n/sv nonrecursive .json$ 505 bytes {1} [built]
       [] -> factory:487ms building:28ms = 515ms
    + 1714 hidden modules

ERROR in [at-loader] ./node_modules/@types/react-router/node_modules/@types/react/index.d.ts:3757:13 
    TS2403: Subsequent variable declarations must have the same type.  Variable 'a' must be of type 'DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>', but here has type 'DetailedHTMLProps<AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>'.

ERROR in [at-loader] ./node_modules/@types/react-router/node_modules/@types/react/index.d.ts:3758:13 
    TS2403: Subsequent variable declarations must have the same type.  Variable 'abbr' must be of type 'DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>', but here has type 'DetailedHTMLProps<HTMLAttributes<HTMLElement>, HTMLElement>'.

and in the end errors like:

ERROR in [at-loader] ./src/main/webapp/app/modules/administration/user-management/index.tsx:18:7 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/modules/administration/user-management/user-management.tsx:68:11 
    TS2605: JSX element type 'Link' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/modules/home/home.tsx:56:19 
    TS2605: JSX element type 'Link' is not a constructor function for JSX elements.
  Types of property 'render' are incompatible.
    Type '() => ReactNode' is not assignable to type '{ (): string | number | false | Element | ReactPortal | Element[]; (): ReactNode; (): ReactNode; ...'.
      Type 'ReactNode' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.
        Type 'true' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.

ERROR in [at-loader] ./src/main/webapp/app/modules/login/login.tsx:50:14 
    TS2605: JSX element type 'Redirect' is not a constructor function for JSX elements.
  Types of property 'render' are incompatible.
    Type '() => ReactNode' is not assignable to type '{ (): string | number | false | Element | ReactPortal | Element[]; (): ReactNode; (): ReactNode; ...'.
      Type 'ReactNode' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.
        Type 'true' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.

ERROR in [at-loader] ./src/main/webapp/app/modules/login/logout.tsx:21:9 
    TS2605: JSX element type 'Redirect' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/routes.tsx:14:5 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.
  Types of property 'render' are incompatible.
    Type '() => ReactNode' is not assignable to type '{ (): string | number | false | Element | ReactPortal | Element[]; (): ReactNode; (): ReactNode; ...'.
      Type 'ReactNode' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.
        Type 'true' is not assignable to type 'string | number | false | Element | ReactPortal | Element[]'.

ERROR in [at-loader] ./src/main/webapp/app/routes.tsx:15:5 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/routes.tsx:16:5 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.

ERROR in [at-loader] ./src/main/webapp/app/routes.tsx:19:5 
    TS2605: JSX element type 'Route<RouteProps>' is not a constructor function for JSX elements.
error Command failed with exit code 2.
error Command failed with exit code 1.
error Command failed with exit code 1.

I'm using version 4.14.1 and the experimental flag.

@gmarziou

This comment has been minimized.

Show comment
Hide comment
@gmarziou

gmarziou Mar 25, 2018

Contributor

@tradfursten 4.14.1 is obsolete for React code, the latest code is on master branch. Either wait for JHipster 5 beta release that should be released soon or use master (see https://stackoverflow.com/questions/48898465/jhipster-5-availability/48899481)

Contributor

gmarziou commented Mar 25, 2018

@tradfursten 4.14.1 is obsolete for React code, the latest code is on master branch. Either wait for JHipster 5 beta release that should be released soon or use master (see https://stackoverflow.com/questions/48898465/jhipster-5-availability/48899481)

@DontSeeSharp

This comment has been minimized.

Show comment
Hide comment
@DontSeeSharp

DontSeeSharp Mar 30, 2018

Using Jhipster 4.14.1 with --experimental for React.

How to implement the social login buttons? The "tip" I found on jHipster doc is for angular. Could not find any information for React.

DontSeeSharp commented Mar 30, 2018

Using Jhipster 4.14.1 with --experimental for React.

How to implement the social login buttons? The "tip" I found on jHipster doc is for angular. Could not find any information for React.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Mar 30, 2018

Member
Member

deepu105 commented Mar 30, 2018

@tianlinzx

This comment has been minimized.

Show comment
Hide comment
@tianlinzx

tianlinzx Mar 31, 2018

@gmarziou BTW, when will JHipster5-Beta be released ?

tianlinzx commented Mar 31, 2018

@gmarziou BTW, when will JHipster5-Beta be released ?

@gmarziou

This comment has been minimized.

Show comment
Hide comment
@gmarziou

gmarziou Mar 31, 2018

Contributor

Easy one: when it's ready 😉 In April probably

Contributor

gmarziou commented Mar 31, 2018

Easy one: when it's ready 😉 In April probably

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Apr 1, 2018

Member

@jhipster/developers the React client should be much more stable and feature complete now, please test and report any issue found here

Member

deepu105 commented Apr 1, 2018

@jhipster/developers the React client should be much more stable and feature complete now, please test and report any issue found here

@pascalgrimaud

This comment has been minimized.

Show comment
Hide comment
@pascalgrimaud

pascalgrimaud Apr 1, 2018

Member

Here some React builds: https://travis-ci.org/hipster-labs/jhipster-travis-build/builds/359716846
There are some configurations which didn't work yet.

Member

pascalgrimaud commented Apr 1, 2018

Here some React builds: https://travis-ci.org/hipster-labs/jhipster-travis-build/builds/359716846
There are some configurations which didn't work yet.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Apr 1, 2018

Member

#7392 should fix many of the issues

Member

deepu105 commented Apr 1, 2018

#7392 should fix many of the issues

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Apr 10, 2018

Member

@agaspardcilia @chrisdns can you guys check the issue/bug items that are not ticked yet? Also can you guys test the combinations mentioned in the original comment and update any issues found?

Member

deepu105 commented Apr 10, 2018

@agaspardcilia @chrisdns can you guys check the issue/bug items that are not ticked yet? Also can you guys test the combinations mentioned in the original comment and update any issues found?

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Apr 10, 2018

Member

Also we need to add some protractor tests. The skeleton files are already there, it needs some cleanup and fixes. Also needs template for entity. We can reuse them from Angular with some slight modifications

Member

deepu105 commented Apr 10, 2018

Also we need to add some protractor tests. The skeleton files are already there, it needs some cleanup and fixes. Also needs template for entity. We can reuse them from Angular with some slight modifications

@agaspardcilia

This comment has been minimized.

Show comment
Hide comment
@agaspardcilia

agaspardcilia Apr 10, 2018

Member

@deepu105, @chrisdns did almost every Protractor tests, he called in sick today so it should be PRd tomorrow.

Member

agaspardcilia commented Apr 10, 2018

@deepu105, @chrisdns did almost every Protractor tests, he called in sick today so it should be PRd tomorrow.

@jdubois

This comment has been minimized.

Show comment
Hide comment
@jdubois

jdubois Apr 10, 2018

Member

Awesome! BTW we'll all need to meet next week at Devoxx :-)

Member

jdubois commented Apr 10, 2018

Awesome! BTW we'll all need to meet next week at Devoxx :-)

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Apr 10, 2018

Member
Member

deepu105 commented Apr 10, 2018

@vishal423

This comment has been minimized.

Show comment
Hide comment
@vishal423

vishal423 Apr 10, 2018

Contributor

I was looking at admin module codebase to see how react and redux are integrated, and noted that we don't fully leverage cache/store. I am not sure if this already got discussed and reasoning to make n/w calls instead of lookup from redux store (which already have same data).

Contributor

vishal423 commented Apr 10, 2018

I was looking at admin module codebase to see how react and redux are integrated, and noted that we don't fully leverage cache/store. I am not sure if this already got discussed and reasoning to make n/w calls instead of lookup from redux store (which already have same data).

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Apr 10, 2018

Member

@vishal423 nope there was no discussions. we cant always read only from Redux as the data might be outdated due to changes in the backend by other people. I did want to normalize the store data model so that getAll and get fetches data from the same place

Member

deepu105 commented Apr 10, 2018

@vishal423 nope there was no discussions. we cant always read only from Redux as the data might be outdated due to changes in the backend by other people. I did want to normalize the store data model so that getAll and get fetches data from the same place

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Apr 10, 2018

Member

@vishal423 i'm happy to discuss it now if you want :)

Member

deepu105 commented Apr 10, 2018

@vishal423 i'm happy to discuss it now if you want :)

@agaspardcilia

This comment has been minimized.

Show comment
Hide comment
@agaspardcilia

agaspardcilia Apr 11, 2018

Member

@deepu105 I tried to see what was done or not here is the result:

Modules

  • Blocks: config
  • Blocks: hanlders
  • Shared: util

I honestly have no idea what you meant with these, so I guess it's more an Angular direct conversion.

  • Shared: profiles
    A PR has been submitted about that.
  • Layouts:error
    The current notification middleware is handleling X-<appname>-error headers. There's still some error alert duplication ie: login error. We could just use X-<appname>-error most of the time to notify stuff but it would mean that we need to change some things in the back-end which could creates problems with Angular. So I guess we need to remove every regular Alerts and make Toaster mandatory when it comes to notifications.

Issues/Bugs

  • Error handling when authentication fails
    Same as Layouts:error.
  • Pagination component tries to paginate when there is no next page (needs unit tests in lib as well)
    Fixed
  • Entity dialog page creates lot of methods to handle relations, try to remove and simplify those
    Not done.

Test cases

Application
  • Default options with i18n
  • Default options without i18n
  • Default options with i18n prod profile
    Works but the administration menu shouldn't contains Database and API Docs.
  • Default options without i18n prod profile
    Same issue with the administration menu.
  • Default options regenerate existing app
  • Default options with SASS
  • Default options with --skip-user-management flag
  • Default options with --jhi-prefix flag
    Works but I'm not sure to know what it's suppose to do though
  • Default options with --skip-server flag
    Some TS errors with login not being exported from authentication but it's prolly normal since there's no server after all.
  • Default options with i18n for Gateway
  • Default options without i18n for Gateway
    Some TS errors.
  • Default options with Protractor
    Implementation in progress.
  • Gradle build Default with i18n
  • Gradle build Default with i18n prod profile
  • With Search engine
  • With websocket
  • Session Auth
  • Oauth2 Auth
    Some TS errors in tests, it has been broke recently by my last reducer test PR.
  • add new languages to app
    i18n files are added but nothing else is updated. Probably has something to do with needles.

Every configuration described above has been tested without entity (except Elastic search).

Entity

I believe everything is working concerning entities.

Member

agaspardcilia commented Apr 11, 2018

@deepu105 I tried to see what was done or not here is the result:

Modules

  • Blocks: config
  • Blocks: hanlders
  • Shared: util

I honestly have no idea what you meant with these, so I guess it's more an Angular direct conversion.

  • Shared: profiles
    A PR has been submitted about that.
  • Layouts:error
    The current notification middleware is handleling X-<appname>-error headers. There's still some error alert duplication ie: login error. We could just use X-<appname>-error most of the time to notify stuff but it would mean that we need to change some things in the back-end which could creates problems with Angular. So I guess we need to remove every regular Alerts and make Toaster mandatory when it comes to notifications.

Issues/Bugs

  • Error handling when authentication fails
    Same as Layouts:error.
  • Pagination component tries to paginate when there is no next page (needs unit tests in lib as well)
    Fixed
  • Entity dialog page creates lot of methods to handle relations, try to remove and simplify those
    Not done.

Test cases

Application
  • Default options with i18n
  • Default options without i18n
  • Default options with i18n prod profile
    Works but the administration menu shouldn't contains Database and API Docs.
  • Default options without i18n prod profile
    Same issue with the administration menu.
  • Default options regenerate existing app
  • Default options with SASS
  • Default options with --skip-user-management flag
  • Default options with --jhi-prefix flag
    Works but I'm not sure to know what it's suppose to do though
  • Default options with --skip-server flag
    Some TS errors with login not being exported from authentication but it's prolly normal since there's no server after all.
  • Default options with i18n for Gateway
  • Default options without i18n for Gateway
    Some TS errors.
  • Default options with Protractor
    Implementation in progress.
  • Gradle build Default with i18n
  • Gradle build Default with i18n prod profile
  • With Search engine
  • With websocket
  • Session Auth
  • Oauth2 Auth
    Some TS errors in tests, it has been broke recently by my last reducer test PR.
  • add new languages to app
    i18n files are added but nothing else is updated. Probably has something to do with needles.

Every configuration described above has been tested without entity (except Elastic search).

Entity

I believe everything is working concerning entities.

@vishal423

This comment has been minimized.

Show comment
Hide comment
@vishal423

vishal423 Apr 11, 2018

Contributor

@deepu105 , stale data is always an issue with cache. Caching would also be tricky with server side pagination that goes over records not in cache. I can see following options:

  1. Let user do explicit refresh (F5), in which case store needs to be re-populated.
  2. Provide explicit refresh button on list page along with last sync time. User can explicitly refresh if interested.
  3. Implicitly invalidate cached data after configurable duration (say 5 mins) so that next call goes to server instead served from cache.
  • Pagination/sort/search queries still needs to go to server to ensure they are across all records.
  • Exception should invalidate cache to ensure latest data is fetched from server.

If we think stale data would be major issue, then, I agree to limit to view(id)/update/delete operation at moment as list page should fetch latest data.

Contributor

vishal423 commented Apr 11, 2018

@deepu105 , stale data is always an issue with cache. Caching would also be tricky with server side pagination that goes over records not in cache. I can see following options:

  1. Let user do explicit refresh (F5), in which case store needs to be re-populated.
  2. Provide explicit refresh button on list page along with last sync time. User can explicitly refresh if interested.
  3. Implicitly invalidate cached data after configurable duration (say 5 mins) so that next call goes to server instead served from cache.
  • Pagination/sort/search queries still needs to go to server to ensure they are across all records.
  • Exception should invalidate cache to ensure latest data is fetched from server.

If we think stale data would be major issue, then, I agree to limit to view(id)/update/delete operation at moment as list page should fetch latest data.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Apr 11, 2018

Member

@vishal423 yes there are many ways to workaround, but they all have issues which are not acceptable for user experience and data integrity.
If you fetch stale data for write operation you will end up overwriting any new data on the server which is not acceptable, so IMO it's not worth the trouble as the majority of the use cases would want the latest data all the time. If someone has a system which rarely writes data then this can help them and in that case, I would say they need to implement this themselves

Member

deepu105 commented Apr 11, 2018

@vishal423 yes there are many ways to workaround, but they all have issues which are not acceptable for user experience and data integrity.
If you fetch stale data for write operation you will end up overwriting any new data on the server which is not acceptable, so IMO it's not worth the trouble as the majority of the use cases would want the latest data all the time. If someone has a system which rarely writes data then this can help them and in that case, I would say they need to implement this themselves

@vishal423

This comment has been minimized.

Show comment
Hide comment
@vishal423

vishal423 Apr 11, 2018

Contributor

@deepu105, I still feel we could at least do this for view, update and delete operations as the requested user data would already be in cache (fetched during list page rendering). To further safeguard against stale data, we could store last synced timestamp in store and if that's greater than configurable limit, fetch from server, otherwise, serve from cache. If end users are interested in no stale data, then, this allowed limit can be changed to zero and that should ensure sync from server. Those who like to leverage cache for better performance can tune this configuration appropriately.

Contributor

vishal423 commented Apr 11, 2018

@deepu105, I still feel we could at least do this for view, update and delete operations as the requested user data would already be in cache (fetched during list page rendering). To further safeguard against stale data, we could store last synced timestamp in store and if that's greater than configurable limit, fetch from server, otherwise, serve from cache. If end users are interested in no stale data, then, this allowed limit can be changed to zero and that should ensure sync from server. Those who like to leverage cache for better performance can tune this configuration appropriately.

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 Apr 12, 2018

Member

@vishal423 unfortunately, I don't agree. Its really important to fetch latest data before an update operation. In a real world app with multiple users this will be a huge issue and IMO client side caching is a bad practice for CRUD applications. We already have server side caching and if you really need this its easy to add an Axios middleware to cache the requests. Client side caching will only work for PWA apps which are intended to be offline and for apps which has very less update operations. I would suggest you add this as a Tip so that those who are interested can make use of it.

Member

deepu105 commented Apr 12, 2018

@vishal423 unfortunately, I don't agree. Its really important to fetch latest data before an update operation. In a real world app with multiple users this will be a huge issue and IMO client side caching is a bad practice for CRUD applications. We already have server side caching and if you really need this its easy to add an Axios middleware to cache the requests. Client side caching will only work for PWA apps which are intended to be offline and for apps which has very less update operations. I would suggest you add this as a Tip so that those who are interested can make use of it.

@pascalgrimaud

This comment has been minimized.

Show comment
Hide comment
@pascalgrimaud

pascalgrimaud Apr 19, 2018

Member

Still one failed build left: react with OAuth2
https://travis-ci.org/hipster-labs/jhipster-travis-build/jobs/368013327

Hope we can fix it before the next release

Member

pascalgrimaud commented Apr 19, 2018

Still one failed build left: react with OAuth2
https://travis-ci.org/hipster-labs/jhipster-travis-build/jobs/368013327

Hope we can fix it before the next release

@mraible

This comment has been minimized.

Show comment
Hide comment
@mraible

mraible Apr 19, 2018

Contributor

Here's the error from above:

ERROR in /home/travis/app/src/main/webapp/app/entities/test-root/bank-account-my-suffix/bank-account-my-suffix-update.tsx
(11,26): Cannot find module 'app/modules/administration/user-management/user-management.reducer'.

I'm looking into it now.

Contributor

mraible commented Apr 19, 2018

Here's the error from above:

ERROR in /home/travis/app/src/main/webapp/app/entities/test-root/bank-account-my-suffix/bank-account-my-suffix-update.tsx
(11,26): Cannot find module 'app/modules/administration/user-management/user-management.reducer'.

I'm looking into it now.

@chrisdns

This comment has been minimized.

Show comment
Hide comment
@chrisdns

chrisdns Apr 19, 2018

Contributor

@mraible @pascalgrimaud I have fixed this issue I am about to PR it soon.
PR: #7506

Contributor

chrisdns commented Apr 19, 2018

@mraible @pascalgrimaud I have fixed this issue I am about to PR it soon.
PR: #7506

@jdubois

This comment has been minimized.

Show comment
Hide comment
@jdubois

jdubois Apr 30, 2018

Member

For me this is all done, at least the development stream is done and if there are some bugs or missing features they should be some specific tickets, as otherwise it's impossible to follow here.
@deepu105 are you OK to close this?

Member

jdubois commented Apr 30, 2018

For me this is all done, at least the development stream is done and if there are some bugs or missing features they should be some specific tickets, as otherwise it's impossible to follow here.
@deepu105 are you OK to close this?

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 May 1, 2018

Member

I'll close this after checking some stuff

Member

deepu105 commented May 1, 2018

I'll close this after checking some stuff

@jdubois

This comment has been minimized.

Show comment
Hide comment
@jdubois

jdubois May 18, 2018

Member

@agaspardcilia @chrisdns could you check the boxes that have been completed here? I'd like to have this closed, as support is now merged - then we could do smaller tickets, one per missing feature

Member

jdubois commented May 18, 2018

@agaspardcilia @chrisdns could you check the boxes that have been completed here? I'd like to have this closed, as support is now merged - then we could do smaller tickets, one per missing feature

@deepu105

This comment has been minimized.

Show comment
Hide comment
@deepu105

deepu105 May 21, 2018

Member

I'm closing this even though some of the checkboxes are not checked. The reason is as below

  1. Most major features are done and works
  2. The small items missed can be fixed as and when someone reports it(means when need arises)
  3. There will be improvements here always anyway
Member

deepu105 commented May 21, 2018

I'm closing this even though some of the checkboxes are not checked. The reason is as below

  1. Most major features are done and works
  2. The small items missed can be fixed as and when someone reports it(means when need arises)
  3. There will be improvements here always anyway

@deepu105 deepu105 closed this May 21, 2018

JHipster 5 automation moved this from In progress to Done May 21, 2018

@jdubois jdubois added this to the 5.0.0-beta.2 milestone Jun 11, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment