jhipster / generator-jhipster

JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures.
https://www.jhipster.tech
Apache License 2.0
21.48k stars 4.02k forks source link

v8 stable release. #23449

Closed mshima closed 11 months ago

mshima commented 1 year ago
Overview of the feature request

Track v8 blocking issues.

TODO:

Breaking changes:

Migrate blueprints and check/implement individual requirements:

Motivation for or Use Case
Related issues or PR
deepu105 commented 1 year ago

I don't think we have to wait for all blueprints to migrate as they can migrate at their own pace

nicolas63 commented 1 year ago

I have create the issue on the jhipter-dotnet blueprint but i need your help to migrate

mshima commented 1 year ago

I have create the issue on the jhipter-dotnet blueprint but i need your help to migrate

I’ve started the migration.

mraible commented 1 year ago

@mshima I appreciate all the work you're doing to make JHipster 8.0 happen. Please let me know if there's anything I can do to help!

mshima commented 1 year ago

@mraible some help updating heroku generator would be great. We should target heroku for 8.1.

With micronaut (java) and dotnetcore (2 client generators and a server) been updated. I would say we should go ahead and release a RC as soon as possible and final a week later.

I will take a look at ci-cd generator and nodejs and ionic blueprints this weekend.

I hope to have a simultaneous release for every migrated blueprint.

deepu105 commented 12 months ago

I can do and RC release this weekend. Let me know if I should wait for any ticket to be merged

On Fri, 29 Sept 2023, 6:17 pm Marcelo Shima, @.***> wrote:

@mraible https://github.com/mraible some help updating heroku generator would be great. We should target heroku for 8.1.

With micronaut (java) and dotnetcore (2 client generators and a server) been updated. I would say we should go ahead and release a RC as soon as possible and final a week later.

I will take a look at ci-cd generator and nodejs and ionic blueprints this weekend.

I hope to have a simultaneous release for every migrated blueprint.

— Reply to this email directly, view it on GitHub https://github.com/jhipster/generator-jhipster/issues/23449#issuecomment-1741161446, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIOKF7LL3VWT7CSEX3EWQ3X43YDBANCNFSM6AAAAAA4QQDERM . You are receiving this because you were mentioned.Message ID: @.***>

mshima commented 11 months ago

@deepu105 any news about a new release?

deepu105 commented 11 months ago

I waiting for confirmation. I can do the RC release tomorrow.

On Fri, 13 Oct 2023, 1:21 pm Marcelo Shima, @.***> wrote:

@deepu105 https://github.com/deepu105 any news about a new release?

— Reply to this email directly, view it on GitHub https://github.com/jhipster/generator-jhipster/issues/23449#issuecomment-1761349711, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIOKFZJTYNITOQLQWCP5LDX7EP3NANCNFSM6AAAAAA4QQDERM . You are receiving this because you were mentioned.Message ID: @.***>

mshima commented 11 months ago

Please go ahead.

deepu105 commented 11 months ago

Its underway. Should be out today if everything goes well or latest tomorrow

On Fri, 13 Oct 2023, 11:53 pm Marcelo Shima, @.***> wrote:

Please go ahead.

— Reply to this email directly, view it on GitHub https://github.com/jhipster/generator-jhipster/issues/23449#issuecomment-1762286814, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIOKFY2D6HMP6KTTESUZ43X7GZ5NANCNFSM6AAAAAA4QQDERM . You are receiving this because you were mentioned.Message ID: @.***>

deepu105 commented 11 months ago

RC released

deepu105 commented 11 months ago

I can do the final release next weekend

mraible commented 11 months ago

I hope to work on the Heroku sub-generator this week and improve the Ionic blueprint to support file uploads on the web. Neither of these should hold up an RC release.

mshima commented 11 months ago

https://github.com/jhipster/generator-jhipster/issues/23868 should to be considered before final. We can keep yeoman-generator v6 or move to v7.

mraible commented 11 months ago

I created issues for the blueprints that didn't have v8 upgrade issues. These do not be updated before releasing v8.

mraible commented 11 months ago

We should make sure test coverage is above 80% before releasing. We're currently failing our quality gate.

deepu105 commented 11 months ago

So I guess we have below task to complete for v8 final

mraible commented 11 months ago

@deepu105 Yes, I agree. I added links to the issues that exist. Maybe we should move these up to the description so they're not lost. @mshima Do you have any more to add?

mshima commented 11 months ago

I think https://github.com/jhipster/generator-jhipster/issues/23883 is a blocker. It’s probably in jhipster-bom.

The sonar quality gate is red due to coverage on new code, not overall. Not a blocking IMO.

mraible commented 11 months ago

I agree that Sonar can be disregarded. It'd be cool if the report was from scratch each time rather than incremental.

Does the Spring dependency issue happen with a brand-new Spring Boot project? If not, it's probably related to our BOM vs Spring Boot’s.

mshima commented 11 months ago

It’s probably in jhipster-bom.

mraible commented 11 months ago

@mshima I tried creating a new micro frontends architecture using:

jhipster jdl reactive-mf.jdl --monorepository --workspaces

It gives me a bunch of warnings. Do I need to update the reactive-mf.jdl file to add a custom id?

WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
mraible commented 11 months ago

I might've fixed https://github.com/jhipster/generator-jhipster/issues/23883. If it works, can you create a release this week, @deepu105?

mshima commented 11 months ago

@mshima I tried creating a new micro frontends architecture using:

jhipster jdl reactive-mf.jdl --monorepository --workspaces

It gives me a bunch of warnings. Do I need to update the reactive-mf.jdl file to add a custom id?

WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict

@mraible fixed in https://github.com/jhipster/generator-jhipster/pull/24046.

mraible commented 11 months ago

👀 Our quality gate is looking good!

Screenshot 2023-10-30 at 8 20 54 PM

@mshima @DanielFran Do we need anything else before releasing 8.0?

DanielFran commented 11 months ago

@mraible I believe everything is done.

We still have this PR to remove AngularJS locale configuration but we do not have anything to replace that could manage i18n. But I do not think this is blocking the release.

And I realised that today Neo4J is broken: https://github.com/hipster-labs/jhipster-daily-builds/actions/runs/6702088203

DanielFran commented 11 months ago

@mshima Is this https://github.com/jhipster/generator-jhipster/issues/24028 blocking the release?

mshima commented 11 months ago

@mshima Is this #24028 blocking the release?

It's a quite annoying bug, not sure how much the user is affected. Are you planning to cut the release?

mshima commented 11 months ago

@mshima Is this #24028 blocking the release?

This is actually jhipster v7 behavior, since we used to delegate to the local generator-jhipster.

DanielFran commented 11 months ago

@mshima Is this #24028 blocking the release?

It's a quite annoying bug, not sure how much the user is affected. Are you planning to cut the release?

I believe it was supposed to create the final version now, not a new RC version

mshima commented 11 months ago

@mshima Is this #24028 blocking the release?

It's a quite annoying bug, not sure how much the user is affected. Are you planning to cut the release?

I believe it was supposed to create the final version now, not a new RC version

Yes, there are huge changes to the core since the RC, but I think it's ok to go final. I want to know if you are planning to release in the middle of this week.

mraible commented 11 months ago

@mshima What's your preference? As the primary contributor to 8.0, we're happy to follow your advice.

@deepu105 Can you do a release today or tomorrow if everyone approves? It might be fun to release on Halloween! 👻🎃

mshima commented 11 months ago

One last PR https://github.com/jhipster/generator-jhipster/pull/24067.

MarkingYang commented 11 months ago

您好,我最近学业繁忙,无法亲自回复您的邮件。晚间查看后,会尽快给您回复。

mraible commented 11 months ago

@mshima I'm testing this blog post and when I run jhipster jdl microservices.jdl, it still has warnings:

WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict
WARNING! Microservice entities should have a custom id to make sure gateway and microservice types won't conflict

Here's the JDL:

application {
  config {
    baseName gateway
    packageName com.okta.developer.gateway
    applicationType gateway
    authenticationType oauth2
    buildTool gradle
    clientFramework vue
    prodDatabaseType postgresql
    serviceDiscoveryType consul
    testFrameworks [cypress]
  }
  entities Blog, Post, Tag, Product
}

application {
  config {
    baseName blog
    packageName com.okta.developer.blog
    applicationType microservice
    authenticationType oauth2
    buildTool gradle
    databaseType neo4j
    enableHibernateCache false
    serverPort 8081
    serviceDiscoveryType consul
  }
  entities Blog, Post, Tag
}

application {
  config {
    baseName store
    packageName com.okta.developer.store
    applicationType microservice
    authenticationType oauth2
    buildTool gradle
    databaseType mongodb
    enableHibernateCache false
    serverPort 8082
    serviceDiscoveryType consul
  }
  entities Product
}

entity Blog {
  name String required minlength(3)
  handle String required minlength(2)
}

entity Post {
  title String required
  content TextBlob required
  date Instant required
}

entity Tag {
  name String required minlength(2)
}

entity Product {
  title String required
  price BigDecimal required min(0)
  image ImageBlob
}

relationship ManyToOne {
  Blog{user(login)} to User with builtInEntity
  Post{blog(name)} to Blog
}

relationship ManyToMany {
  Post{tag(name)} to Tag{post}
}

paginate Post, Tag with infinite-scroll
paginate Product with pagination

microservice Product with store
microservice Blog, Post, Tag with blog

deployment {
  deploymentType docker-compose
  appsFolders [gateway, blog, store]
  dockerRepositoryName "mraible"
}

The rest of the tutorial works, there's just this these warnings at the beginning.

mshima commented 11 months ago

@mraible some context of this warning is at https://github.com/jhipster/generator-jhipster/pull/23850

At the PR we started relying on the frontend type to do some conversions and failed due to id different types related to different databases (gateway uses postgres with Long ids, microservice uses cassandra with UUID ids).

We used to carry on databaseType at the entity level, but this is quite hackish and hard to maintain, and we are decoupling jdl from business. As alternative, we are advising the user to specify the entity's id type which looks much more reliable and cleaner than carrying databaseType around at entity level.

deepu105 commented 11 months ago

I'll do the release sometime this week

On Wed, 1 Nov 2023, 11:03 am Marcelo Shima, @.***> wrote:

@mraible https://github.com/mraible some context of this warning is at

23850 https://github.com/jhipster/generator-jhipster/pull/23850

At the PR we started relying on the frontend type to do some conversions and failed due to id different types related to different databases (gateway uses postgres with Long ids, microservice uses cassandra with UUID ids).

We used to carry on databaseType at the entity level, but this is quite hackish and hard to maintain, and we are decoupling jdl from business. As alternative, we are advising the user to specify the entity's id type which looks much more reliable and cleaner than carrying databaseType around at entity level.

— Reply to this email directly, view it on GitHub https://github.com/jhipster/generator-jhipster/issues/23449#issuecomment-1788700934, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIOKF4D4R6EJSYNJ4C6GU3YCINANAVCNFSM6AAAAAA4QQDEROVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTOOBYG4YDAOJTGQ . You are receiving this because you were mentioned.Message ID: @.***>

mraible commented 11 months ago

As alternative, we are advising the user to specify the entity's id type which looks much more reliable and cleaner than carrying databaseType around at entity level.

How do I change my JDL to get rid of this warning?

mshima commented 11 months ago

As alternative, we are advising the user to specify the entity's id type which looks much more reliable and cleaner than carrying databaseType around at entity level.

How do I change my JDL to get rid of this warning?

Neo4J and MongoDB default primary keys are String and there is no entity served in Gateway. Add id String field to every entity.

mraible commented 11 months ago

I can confirm that adding id String to the JDL makes the warning go away. Here's the commit with the update. Is required necessary for primary keys?

mshima commented 11 months ago

I can confirm that adding id String to the JDL makes the warning go away. Here's the commit with the update. Is required necessary for primary keys?

No, the id should imply required. Maybe you want to add the Id annotation @Id id String I think is prettier.

mraible commented 11 months ago

OK, updated in https://github.com/oktadev/okta-blog/pull/1366/commits/9f4f171f2676fedcf6bd499582a646b5ceebf41b.

In the generated Java classes, I noticed the biggest difference is removing required results in @NotNull being removed:

-    @NotNull
     @Id
     private String id;
mshima commented 4 months ago

@DanielFran bounty claimed https://opencollective.com/generator-jhipster/expenses/203358.

DanielFran commented 4 months ago

@mshima approved