Closed ghost closed 5 years ago
Awesome, congrats!!! Let me add the bug bounties, and give you the permissions - I'll do this at the beginning of next week. We must also add a sample app, etc.
Hi @jdubois , thanks a lot! I have already provided all that is needed (at least I think :) ... All it's explained in the README.md (where during the release phase I will update the Title with "RELEASED" instead of "IN DEVELOPMENT".. so in that are indicated all info, with a demo gif and an example app
Perfect, I'll have a look next week. Ping @jhipster/developers !!
Excuse my ignorance but why does generated project require maven?
@gmarziou on your machine you don't have to install maven, it is included in the generated project as wrapper (mvnw). As a normal jhipster requirement, you must have only java installed. The project contains a pom.xml because there are some profiles and command to build the server part with the client part (maven in this generator is a sort of "orchestrator"). However you can run the entire app with the normal npm scripts defined in the package.json. You can read the related README.md to understand more.
I don't think the Node.js or .NET blueprints should require Maven or Gradle at all.
On Sep 14, 2019, at 08:23, Angelo Manganiello notifications@github.com wrote:
@gmarziou on your machine you don't have to install maven on your machine, it is included in the generated project as wrapper (mvnw). As a normal jhipster requirement, you must have only java installed. The project contains a pom.xml because there are some profiles and command to build the server part with the client part (maven in this generator is a sort of "orchestrator"). However you can run the entire app with the normal npm scripts defined in the package.json. You can read the related README.md to understand more.
— You are receiving this because you are on a team that was mentioned. Reply to this email directly, view it on GitHub, or mute the thread.
Personally I am in favor of having a generated pom. I personally use either maven or gradle with the node plugin in all my node project to simplify CI setup. This allows to download the right node version which is a big annoyance. Of course you could do this with NVM as well which is a shell script solution to the same problem but it cannot fully wrap node like maven/gradle. Of course if people don't want this, it is very easy to remove a few files after generation.
I'm on same page with Matt, I tend to think that people wanting to use Nodejs blueprint might not expect a hybrid environment (java+node). IMHO, it should be an option and default should be 'no java', or maybe move it to a docker container.
Otherwise, I think we could realistically expect some flame wars or basic questions about how maven works (e.g. with proxies) or even worse about how to install java.
@gmarziou in fact I have put it for the same reasons that @PierreBesson has explained. It is compliant with the jhipster standard, so the developers have already confidence with maven structure.. but this pom has only profiles and maven-frontend-plugin to run frontend and/or server part. If you don't want to use maven, you can delete it after generation, otherwise you can hold it and use the standard npm scripts defined in the package.json. For the proxies there aren't problems : the generator adds the maven wrapper (mvnw) so that you mustn't have it on your machine configured, and in the last, I repeat it, the pom.xml has only profiles and the maven frontend plugin configured to run client and/or server part and install node versions (as jhipster standard).. then to install the blueprint and use jhipster however you have to have java...it's all clear?
It’s clear, and I think it’ll hurt marketing for the Node.js backend. If I was a Node.js developer and I started a new project with it, I wouldn’t want to see any Java-related artifacts in my project. I doubt there’s many Java developers that want to develop Node.js backends. If there’s Maven files present, that seems like the audience you’re trying to target.
On Sep 14, 2019, at 9:32 AM, Angelo Manganiello notifications@github.com wrote:
@gmarziou https://github.com/gmarziou in fact I have put it for the same reasons that @PierreBesson https://github.com/PierreBesson have explained. It is compliant with the jhipster standard, so the developers have already confidence with maven structure.. but this pom has only profiles and maven-frontend-plugin to run frontend and/or server part. If you want to use maven, you can delete it after generation, otherwise you can hold it and use the standard npm scripts defined in the package.json. For the proxies there aren't problem : the generator adds the maven wrapper (mvnw) so that you mustn't have it on your machine, and in the last, I repeat it the pom. has only profiles and the maven frontend plugin configured to run client and/or server part and install node versions (as jhipster standard).. it's all clear?
— You are receiving this because you are on a team that was mentioned. Reply to this email directly, view it on GitHub https://github.com/jhipster/generator-jhipster-nodejs/issues/38?email_source=notifications&email_token=AAAELZFDTEHTMTS2HVUHN2TQJT7YDA5CNFSM4IWWSJT2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD6W6A2Y#issuecomment-531488875, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAELZAI3AIR63JKF76GOZDQJT7YDANCNFSM4IWWSJTQ.
@mraible in the project java artifacts aren't generated, there is only a pom.xml that could help the CI/CD processes and "assembly" the full app. All the files generated are of typescript language. So maven it only a facility tool in this case, not a requirement for the development.
All the files generated are of typescript language
By the way, maybe you should mention typescript in the stack used in https://github.com/jhipster/generator-jhipster-nodejs/blob/master/README.md
So maven it only a facility tool in this case, not a requirement for the development.
This was not obvious for me when I read the README of the generated project: https://github.com/amanganiello90/jhipster-nodejs-sample-app#building-and-running
Just tried it and there are few things printed on screen that could confuse node developers but I don't know if a blueprint has control over these:
Besides JUnit and Jest, which testing frameworks would you like to use?
Run your Spring Boot application: ./mvnw clean package -Pdev (mvnw clean package -Pdev if using Windows Command Prompt)
Next, I tried to run it as instructed but I did not have java installed which I suppose could be the case for a node developer:
mvnw clean package -Pdev
Error: JAVA_HOME not found in your environment.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
All the files generated are of typescript language
By the way, maybe you should mention typescript in the stack used in https://github.com/jhipster/generator-jhipster-nodejs/blob/master/README.md
@gmarziou NestJS, as Angular, is already a framework written in typescript
So maven it only a facility tool in this case, not a requirement for the development.
This was not obvious for me when I read the README of the generated project: https://github.com/amanganiello90/jhipster-nodejs-sample-app#building-and-running
This mode run is a sort of "shortcut/facility" to run one shoot frontend/server app in a single process ( at the same manner of a spring boot execution). But if you want to use that command, you can run separately the npm scripts as explained in the server/README.md (it's indicated in the README.md linked from you)
Just tried it and there are few things printed on screen that could confuse node developers but I don't know if a blueprint has control over these:
Besides JUnit and Jest, which testing frameworks would you like to use?
Run your Spring Boot application: ./mvnw clean package -Pdev (mvnw clean package -Pdev if using Windows Command Prompt)
Next, I tried to run it as instructed but I did not have java installed which I suppose could be the case for a node developer:
mvnw clean package -Pdev Error: JAVA_HOME not found in your environment. Please set the JAVA_HOME variable in your environment to match the location of your Java installation.
For the test framework question, it's inherited from the general app generator that it's not allowed to override (as the applicationType and the app name) . This question does not generate nothing whatever response. If you know the way to delete that question, you are welcome to submitt the relative PR :)
After generation the blueprint prints on console the facility command to run the entire application compliant with the jhipster running standard. A jhipster developer is confident and can migrate easy to use this blueprint, while a nodeJS developer can consider that as a "custom command line interface" and run it without know what is maven. If the developer hasn't JAVA installed, can ignore it and run the app following the npm scripts steps (npm install, npm start and so on). The maven pom.xml is a facility to install the correct node version using the frontend maven plugin, as the normal jhispter generator. Similary, an angular developer, does not have to modify pom.xml or understand what is, he goes on to develop with the npm standards (in the same way of a spring boot application with the angular part, he didn't care of maven of java functionalities). If it is a problem, I can add a note in the README.md, and print on console this message: Run your app with this command: ./mvnw clean package -Pdev (mvnw clean package -Pdev if using Windows Command Prompt). If you does not have JAVA installed, read the related section under server/README.md
This question does not generate nothing whatever response. If you know the way to delete that question, you are welcome to submit the relative PR :)
I rather propose to change the texts in the main generator:
Besides JUnit and Jest, which testing frameworks would you like to use?
would become
Which additional testing frameworks would you like to use?
and
Run your Spring Boot application:
would become:
Run your backend application:
NestJS, as Angular, is already a framework written in typescript
According to their doc, it is built with and fully supports TypeScript (yet still enables developers to code in pure JavaScript). My point here is that the generator generates typescript.
This question does not generate nothing whatever response. If you know the way to delete that question, you are welcome to submit the relative PR :)
I rather propose to change the texts in the main generator:
Besides JUnit and Jest, which testing frameworks would you like to use?
would become
Which additional testing frameworks would you like to use?
and
Run your Spring Boot application:
would become:
Run your backend application:
Hi @gmarziou, thanks for the help :) however:
@gmarziou resolved all with #40 , you can view the new app committed here
@amanganiello90 did generator have font-end of react if it's not why don't you add it ?
Hi @ameinabdi , thanks for the question. Now the generator supports for the client only Angular. For more information about features enabled please refer to README.md, CHANGELOG.md and the sample app. This is a first version that I have completely developed by me with the helping of some gentlemen developers. I have prefered angular because I have some experience and confidence in this. If the generator will be of great support, we can provide in the ROADMAP new features as the react support. However, there are the default react templates inherited from jhipster. So you can choose react client as answer in the related question, but I have never tested the app generated. Any feedbacks for improvements are appreciated a lot.
Guys, Any news to prepare the release? An official repo for sample app, grants to publish the package , and so on. Thanks
Sorry @amanganiello90 I took too much time:
@amanganiello90 you should have received the invitation to our NPM org by email. Once you accept it, I'll add you to a specific team for this project.
Then I have a doubt on the process, because I think they improved it since the last time I did it. Here's what we used to do, but I hope it's better: you need to publish the package yourself, and then transfer it to me (login "jdubois"), so I can then put it under the JHipster org and give you again the permissions, through your team. Tell me if that's complex! I would advise that you release a first very early release, and call the package "generator-jhipster-nodejs". Then we iterate a bit (do a couple of "alpha" releases) before we do the real 1.0.0 release, once everything is properly done.
This is why I want to move to GitHub's registry, the NPM UX/UI is so awful!!
@jdubois thanks a lot! For me it's a pleasure, an honor to receive compliments from you! I have accepted the npm invite, my npm username is amanganiello90. So I have to publish the package from myself with a 1.0.0-alfa.1 version and notify you? thanks a lot.
@amanganiello90 c'mon, you're the one doing all the hard work :-) I have added you to the "nodejs-blueprint" team:
@jdubois very gentleman :) .. Do you refer to npm jhipster team? So,
Could you please also create and add me in a new git repo for the sample app, as jhipster-sample-app-nodejs, (so I can refer to it in the readme) Thanks again.
Oh @amanganiello90 what you refer to is the JHipster organization on NPM, and inside it there are several teams (it seems those are not public, I don't know why, maybe for privacy). So I created one specific team, which will have full permissions on the future generator-jhipster-nodejs package (but not on the other packages, of course).
I'm sure it will end up working well, as we already set this up several time, but the UI sucks so much that it's a bit hacky at first.
Oh @amanganiello90 what you refer to is the JHipster organization on NPM, and inside it there are several teams (it seems those are not public, I don't know why, maybe for privacy). So I created one specific team, which will have full permissions on the future generator-jhipster-nodejs package (but not on the other packages, of course).
I'm sure it will end up working well, as we already set this up several time, but the UI sucks so much that it's a bit hacky at first.
Okkkkk, I have also activated on npm 2FA auth:
@amanganiello90 in your readme you point to a sample application that returns a 404... It probably worked before, as I remember looking at your generated code. Anyway, the sample application should be under the JHipster org, let me create this for you! I will call it "jhipster-sample-app-nodejs".
@amanganiello90 in your readme you point to a sample application that returns a 404... It probably worked before, as I remember looking at your generated code. Anyway, the sample application should be under the JHipster org, let me create this for you! I will call it "jhipster-sample-app-nodejs".
Yes, today I moved the repo and I created a branch for the release with the correct url.. Perfect, I was waiting for the official repo :) thanks @jdubois
@jdubois I have just released the generator, and it is published now: https://www.npmjs.com/package/generator-jhipster-nodejs/v/1.0.0-alpha.2 . I have also transfered to you on npm. Thanks
$500 bug bounty claim: https://opencollective.com/generator-jhipster/expenses/10177
@amanganiello90 awesome! I just paid the bounty! I also moved the NPM package to the JHipster organization on NPM, and you should have full permissions on it. So that should all be OK, but the NPM UI is so broken that I hope everything's fine: don't hesitate to contact me on this!
@jdubois, thanks very very much! Yes, it's all OK. If in future I have problems to transfer new release packages in the npm jhipster, I will know it to you. Thanks a lot again for the advices and interest.
Hi all wonderful community, @jdubois, @deepu105 and @pascalgrimaud, as discussed in the private and public chats, I'm ready to release the first version of the generator with the tested and last features developed by me, indicated in the CHANGELOG. Thanks all for the attention and the interest :) .