What's changed
JHipster 9.3.0 goes all-in on Spring Boot 4! Support for Spring Boot 4 first arrived in 9.0.0, and this release completes the migration: Spring Boot 3 and Jackson 2 support are gone, and every generated application now runs on Spring Boot 4.1. Josh Long asked us about this back in July, so consider this our answer. 😄
Beyond the backend, Angular apps move to Angular 22, React apps now build with Vite, and backend integration tests use Testcontainers ServiceConnection across the board.
🌟 Highlights
🍃 Spring Boot 4
- Generated applications are now Spring Boot 4 only, with Spring Boot 3 support dropped and Jackson 2 support removed; Spring Boot itself moves to 4.1.1
- Relational databases with WebFlux (R2DBC) and Couchbase finished their migration from Spring Boot 3 to 4.1
- Integration tests now use Testcontainers ServiceConnection for relational databases, Couchbase, Elasticsearch, Neo4j, Cassandra, MongoDB, and Kafka
- SecurityUtils no longer returns anonymousUser and LoggingAspect gains reactive support
🖥️ Frontend
- Angular apps are generated with Angular 22, which enables OnPush change detection and strictTemplates by default, plus a broader migration to signals
- React apps now build with Vite instead of webpack
- Angular's webpack module federation migrated to @module-federation/enhanced, monoliths and gateways now load entities through module federation, and user management screens are generated from the shared entity templates
- Notable fixes include static resource loading on deep client-side routes, OAuth2 post-login redirects hijacked by websocket polling, embedded many-to-one relationships in React and Vue, and blank parent columns in Vue entity lists
📦 Toolchain updates
- Build tooling moved to Node.js 24.20.0, npm 12, and Gradle 9.7.1
- GraalVM native image support got a PropertyFilter resolution fix and generated CI/CD pipelines gained GraalVM workflow support
📊 By the numbers
- 669 closed issues and pull requests since 9.2.0 (full list)
- 7 human contributors helped ship this release
- Toolchain updates include Spring Boot 4.1.1, Angular 22, Node.js 24.20.0, npm 12, and Gradle 9.7.1
🔧 More changes
🔧 Core generator, testing, and code quality
- ci: run npm install in generator workflow (#34727) @mshima
- Vue: Blank Parent column in Child entity list for both one-to-one and many-to-one relationships (#34628) @qmonmert
- spring-boot: reactive support in LoggingAspect (#34673) @mshima
- chore(deps): update node.js to v24.20.0 (#34678) @renovate[bot]
- Review: set skipLibCheck option to false (#34674) @qmonmert
- chore(deps): update dependency graalvm-reachability-metadata to v1.0.12 (#34647) @renovate[bot]
- internal: fix build-cache (#34644) @mshima
- spring-boot: drop Spring Boot 3 support (#34625) @mshima
- spring-boot: re-enabled ng-gradle-couchbase-search (#34618) @mshima
- spring-boot: drop Jackson 2 support from Spring Boot 4 based applicat… (#34617) @mshima
- GraalVM support is failing with: Cannot resolve PropertyFilter with id 'lazyPropertyFilter' (#34610) @qmonmert
- spring-boot: migrate cassandra testcontainer to ServiceConnection (#34616) @mshima
- spring-boot: try to fix couchbase daily builds (#34615) @mshima
- spring-boot: bump to v4.1.1 (#34614) @mshima
- spring-boot: fix test on windows. (#34613) @mshima
- spring-cloud: use ServiceConnection in Kafka Testcontainer (#34601) @mshima
- spring-boot: use ServiceConnection in Couchbase testcontainer (#34596) @mshima
- spring-cache: use DynamicPropertyRegistrar (#34595) @mshima
- spring-boot: use ServiceConnection in elasticsearch (#34594) @mshima
- spring-boot: rework relational DatabaseTestcontainer config to use ServiceConnection (#34593) @mshima
- spring-boot: use ServiceConnection in Neo4J Testcontainer (#32077) @mshima
- ci-cd: graalvm workflow adjusts (#34588) @mshima
- spring-boot: use r2dbc-mariadb driver (#34586) @mshima
- ci-cd: add graalvmSupport support (#34587) @mshima
- gradle: remove wrapper-validation-action action (#34585) @mshima
- generate-sample: glob jdl files from the project folder (#34583) @mshima
- ci-cd: don't ask for prompts if defaults is passed (#34582) @mshima
- ci-cd: do not make wrapper executable, it was fixed ages ago (#34581) @mshima
- ci-cd: support e2e in workspaces (#34580) @mshima
- spring-boot: fix typos in the template comments (#34545) @qmonmert
- spring-boot: simplify the redundant template conditions (#34544) @qmonmert
- spring-boot: replace printStackTrace with proper logging (#34543) @qmonmert
- Java: remove semicolon (#34542) @qmonmert
- gradle: rework npmSetup/nodeSetup tasks (#34531) @mshima
- spring-boot: prevent SecurityUtils from returning anonymousUser (#34529) @yhao3
- ci: make cypress video recording conditional based on pull request label (#34501) @mshima
- Swap package names for JWT and OAuth2 (#34500) @mshima
- Update dependency graalvm-reachability-metadata to v1.0.10 (#34487) @renovate[bot]
- Java: Remove unused import (#34453) @qmonmert
- Java: use the application package in CRLFLogConverterTest (#34452) @qmonmert
- Java: Fix some typos (#34451) @qmonmert
- Java: use Java 21 idioms (#34448) @qmonmert
- Java: drop a debug println (#34447) @qmonmert
- Java: remove unused imports (#34446) @qmonmert
- ci: check if crlf is correctly generated in CI (#34393) @mshima
- chore(deps): update node.js to v24.19.0 (#34392) @renovate[bot]
- Use toEqual() on Sets instead of size/has assertions (#34391) @qmonmert
- chore(deps): update dependency graalvm-reachability-metadata to v1.0.9 (#34389) @renovate[bot]
- Generator: drop an empty test (#34380) @qmonmert
- Generator: move assertions out of before hooks (#34379) @qmonmert
- Generator: Remove duplicated code (#34378) @qmonmert
- Generator: fix test names (#34377) @qmonmert
- Generator: use toHaveBeenCalledWith() instead of inspecting mock.calls (#34376) @qmonmert
- Generator: use toBeDefined() instead of not.toBeUndefined() (#34375) @qmonmert
- Generator: use toContain() instead of asserting on includes() (#34374) @qmonmert
- Generator: the most specific assertion should be used (#34372) @qmonmert
- Generator: simplify some tests (#34373) @qmonmert
- Generator: use toHaveLength() instead of asserting on .length (#34370) @qmonmert
- Sonar: Add at least one assertion to this test case (#34345) @qmonmert
- Sonar: Default type parameters should be omitted (#34334) @qmonmert
- Update Node.js to v24.18.1 (#34333) @renovate[bot]
- Sonar: Mergeable 'if' statements should be combined (#34314) @qmonmert
- Remove duplicated code (#34296) @qmonmert
- Fix some typos (#34295) @qmonmert
- fix EUREKA_SERVER_RENEWAL_THRESHOLD_UPDATE_INTERVAL_MS env var name (#34294) @qmonmert
- fix(config-hardening): strip template literals until a pass makes no change (#34293) @dkx955
- Update dependency graalvm-reachability-metadata to v1.0.8 (#34287) @renovate[bot]
- ESLint: enable no-import-type-side-effects (#34290) @qmonmert
- Remove useless async (#34271) @qmonmert
- Use Array.at(-1) to read the last element (#34263) @qmonmert
- fix daily builds failure (#34261) @mshima
- chore: only run docker publlish workflow on jhipster repository (#34232) @mshima
- chore: add creationTimestamp to windows samples (#34231) @mshima
- cypress: fix regression in npm12 when clientRoot is not the applicati… (#34230) @mshima, @qmonmert
- fix(oauth2): stop websocket polling request hijacking post-login redirect (#34131) @nabsei
- fix regression using npm12 with cypress and workspaces (#34227) @mshima
- adjust generate-blueprint for npm12 (#34217) @mshima
- ci-cd: fix generation due to missing generator composing (#34215) @mshima
- Update dependency graalvm-reachability-metadata to v1.0.7 (#34198) @renovate[bot]
- Sonar: Methods with @transactional should specify rollback behavior for checked exceptions (#34175) @qmonmert
- Sonar: Use @service instead of @component (#34174) @qmonmert
- Fix incorrect title and broken link in generator READMEs (#34164) @qmonmert
- Fix some typos (#34162) @qmonmert
- Simplify redundant assignments (#34151) @qmonmert
- Remove redundant ternary (#34136) @qmonmert
- Simplify code (#34111) @qmonmert
- Remove redundant generic argument (#34096) @qmonmert
- chore(deps): update dependency graalvm-reachability-metadata to v1.0.6 (#34107) @renovate[bot]
- Cypress/Sonar: Do not call Array#push() multiple times (#34089) @qmonmert
🖥️ Frontend
- Angular: bind aria-expanded to the navbar collapse state (#34744) @qmonmert
- Angular: set the page title through the Title service (#34742) @qmonmert
- Angular: drop useless non-null assertions in delete dialogs (#34741) @qmonmert
- Angular: don't import FormsModule in entity lists without a search engine (#34738) @qmonmert
- Angular: remove dead Bootstrap 4 data-toggle/data-target attributes (#34737) @qmonmert
- Angular: fix titles for entity routes (#34736) @qmonmert
- Angular: fix target attribute (#34735) @qmonmert
- Drop disallow rules already covered by /api/account (#34734) @qmonmert
- Vue: Update timeout (#34732) @qmonmert
- Vue: Drop redundant v-b-modal directive on the delete button (#34731) @qmonmert
- Vue: remove stray b-link attribute (#34730) @qmonmert
- internal: enable eslint no-negated-condition rule (#34726) @mshima
- internal: apply no-negated-condition rule (#34728) @mshima
- angular: use shared entities templates to generate UserManagement (#32516) @mshima
- internal: update eslint-plugin-ejs-templates to v0.5.0 (#34725) @mshima
- Vue: correct no-validate typo to novalidate on the form (#34722) @qmonmert
- Vue: not exposing alertService to the details template (#34721) @qmonmert
- Fix french translations (#34720) @qmonmert
- Vue: fix label for attribute (#34719) @qmonmert
- vue: adjust build config (#34690) @mshima
- angular: reimplement user-management string array authorities as a co… (#34688) @mshima
- Vitest: fix missing imports (#34717) @qmonmert
- React: Make the 404 page reachable (#34692) @qmonmert
- Drop dead IE compatibility markup (#34691) @qmonmert
- Vite: remove backslash (#34689) @qmonmert
- angular: use module-federation to load monolith and gateway entities (#34681) @mshima
- angular: emit the swagger-ui assets from the esbuild plugin (#34682) @mshima
- angular: use static positioning for navbar dropdowns to avoid horizontal scroll in Safari (#34687) @mshima
- react: migrate to vite (#34656) @mshima
- client: add email validator to angular (#34679) @mshima
- angular: remove build-plugins/package.json (#34680) @mshima
- client: do not skip user-management test, fix angular, react and vue pages (#34677) @mshima
- angular: expose shared application modules through barrels (#34671) @mshima
- angular: esbuild plugins usable by native federation and vitest (#34670) @mshima
- vue: fix dev-server random failures (#34658) @mshima
- angular: migrate user-management details to shared templates (#34623) @mshima
- generate-blueprint: set skipLibCheck option to false (#33638) @mshima
- angular: migrate user-management list to shared templates (#34654) @mshima
- react: improve user-management (#34653) @mshima
- angular: fix cassandra daily builds (#34645) @mshima
- Fix: Embedded ManyToOne relationships are broken in vue and react frontends (#34621) @qmonmert
- angular: use shared entity services templates to generate user-manage… (#34608) @mshima
- [Angular] Cypress test doesn't pass using oauth2 and dev-server (#34609) @qmonmert
- angular: replace ApplicationConfigService with url constant (#34602) @mshima
- spring-boot: migrate r2dbc to Spring Boot 4 (#31848) @mshima
- angular: convert ngOnInit to signals (#32447) @mshima
- Simplify the redundant template ternaries (#34551) @qmonmert
- cypress: remove unused imports and shorthand (#34584) @mshima
- Fix: bump @faker-js/faker from 10.5.0 to 10.6.0 (#34576) @qmonmert
- Vue: Bump bootstrap-vue-next from 0.45.10 to 0.46.3 (#34570) @qmonmert
- angular: remove string from event-manager (#31719) @mshima
- Angular: remove unused code (#34555) @qmonmert
- Angular: remove duplicate httpMock.verify (#34554) @qmonmert
- Angular: fix misleading title on test (#34553) @qmonmert
- Templates: Simplify the redundant conditions (#34550) @qmonmert
- react: use literal versions in npm overrides (#34549) @yhao3
- Fix static resource loading on deep client-side routes (#31667) @yhao3, @qmonmert
- Angular: mark the remaining signal members as readonly (#34535) @qmonmert
- Angular: simplify convertMillisecondsToDuration (#34534) @qmonmert
- angular: add axios to devDependencies (#34536) @mshima
- Angular: avoid the double signal read (#34533) @qmonmert
- Angular: drop the duplicated Thread fixtures (#34530) @qmonmert
- Angular: fix the describe name (#34524) @qmonmert
- Angular: merge the consecutive beforeEach (#34525) @qmonmert
- spring-boot: fix missing webapp in the gradle prod jar (#34526) @qmonmert
- Update Spring Boot to v4.1.0 (#34149) @mshima
- Angular: drop the redundant keydown.enter (#34517) @qmonmert
- Angular: clean up some templates (#34518) @qmonmert
- Angular: fix typos (#34519) @qmonmert
- Vue: fix the misleading describe names in the spec templates (#34520) @qmonmert
- vue: refactor account store to use
setupsyntax andstoreToRefsf… (#34502) @mshima - Vue: drop the always-true v-if (#34503) @qmonmert
- Vue: drop the invalid target attribute on the iframe (#34504) @qmonmert
- Vue: use the existing i18n keys for the thread state labels (#34499) @qmonmert
- Vue: add the missing badge class on the configuration values (#34498) @qmonmert
- Vue: drop useless href (#34496) @qmonmert
- Vue: wrap the logs table rows in the missing tbody (#34494) @qmonmert
- Vue: drop the duplicated entity name in the detail page heading (#34493) @qmonmert
- React: use globalThis.scrollY instead of the deprecated pageYOffset alias (#34492) @qmonmert
- React: import useEffect (#34467) @qmonmert
- React: fix spacing and missing semicolons in templates (#34466) @qmonmert
- React: harmonize the test names in spec templates (#34465) @qmonmert
- React: add the missing license header to templates (#34464) @qmonmert
- React: render the app directly instead of through the leftover HMR in direction (#34463) @qmonmert
- React: fix typo (#34462) @qmonmert
- React: type the NavDropdown props (#34461) @qmonmert
- React: define the missing w-40/w-60 helpers used by the configuration table (#34460) @qmonmert
- Angular: fix bootswatch theme build failure from broken google fonts import (#34450) @Gaalbu
- React: drop useless comments (#34456) @qmonmert
- React: translate the gateway page heading (#34455) @qmonmert
- React: remove unused imports (#34454) @qmonmert
- Angular: use form-label consistently in the login form (#34445) @qmonmert
- Angular: remove useless ng-container (#34444) @qmonmert
- Angular: drop always-true condition (#34443) @qmonmert
- Angular: drop the redundant null guard on the languages constant (#34442) @qmonmert
- Angular: use @let in metrics blocks (#34434) @qmonmert
- Angular: fix the broken aria-describedby target on the user management list (#34433) @qmonmert
- Angular: fix bad ID (#34432) @qmonmert
- Angular: fix the never-displayed invalid email message on the register form (#34431) @qmonmert
- Angular: merge the nested @if on account() in the home template (#34430) @qmonmert
- angular: adjusts to monolith with module-federation. (#34426) @mshima
- Add missing license header to templates (#34421) @qmonmert
- Vue: Remove unused imports from templates (#34420) @qmonmert
- React: Remove unused imports from templates (#34419) @qmonmert
- Angular: Clean up dead code in templates (#34418) @qmonmert
- Angular: remove unused code (#34413) @qmonmert
- Use the vi alias consistently across client spec templates (#34412) @qmonmert
- React: Inline two pointless aliases in spec templates (#34408) @qmonmert
- Simplify redundant toMatchObject(expect.objectContaining(...)) assertions (#34407) @qmonmert
- Angular: Drop a dead EJS guard in auth-jwt.service.spec (#34406) @qmonmert
- Angular: Assert on the viewChild signal value, not on the signal (#34405) @qmonmert
- Angular: Drop no-op inject([]) wrappers in entity specs (#34404) @qmonmert
- Client: add missing license header to spec templates (#34396) @qmonmert
- Angular: Drop the unused routerState object in main.spec.ts (#34397) @qmonmert
- Client: drop imports that no longer have any reference (#34395) @qmonmert
- Client: Fix misleading test names in spec templates (#34394) @qmonmert
- Fix Windows build + Bump some deps for Angular and React (#34390) @qmonmert
- fix Angular alert signal synchronization (#34347) @OmarHawk
- Angular: the most specific assertion should be used (#34368) @qmonmert
- Vue: exporting mutable 'let' binding, use 'const' instead (#34363) @qmonmert
- Vue: Re-exports should use 'export...from' syntax (#34362) @qmonmert
- Vue: the most specific assertion should be used (#34361) @qmonmert
- Vue: Mergeable 'if' statements should be combined (#34360) @qmonmert
- Vue: If statements should not be the only statement in else blocks (#34359) @qmonmert
- Vue: Prefer class field declaration over 'this' assignment in constructor for static values (#34358) @qmonmert
- Vue: Type assertions should use 'as' (#34357) @qmonmert
- Vue: Test titles should be unique within the same suite (#34356) @qmonmert
- Vue: Braces and parentheses should be used consistently with arrow functions (#34355) @qmonmert
- Vue: Non-null assertions should not be used (#34354) @qmonmert
- Vue: Default type parameters should be omitted (#34351) @qmonmert
- Vue: the most specific assertion should be used (#34350) @qmonmert
- React: the most specific assertion should be used (#34348) @qmonmert
- React: complete assertions in reducer specs (#34346) @qmonmert
- Sonar: Object literal shorthand syntax should be used (#34344) @qmonmert
- Sonar/Angular: Rename function (#34335) @qmonmert
- internal: convert autoCrlf to a runtime option (#34264) @mshima
- internal: add the removeNeedles property to the bootstrap generator (#34311) @mshima
- Sonar: Remove curly braces andd 'return' from this arrow function body (#34316) @qmonmert
- fix(vue): remove duplicated tests (#34313) @qmonmert
- Fix some typos (#34312) @qmonmert
- ESLint: enable logical-assignment-operators lint rule (#34265) @qmonmert
- Use optional chaining in client templates (#34258) @qmonmert
- Angular: only import TranslatePipe in entity templates when actually used (#34244) @qmonmert
- angular: fix ngx-cookie-service condition (#34253) @mshima
- Angular 22: strictTemplates is now enabled by default (#34233) @qmonmert
- Remove redundant non-capturing groups in translate regexes (#34130) @qmonmert
- NPM 12.0.0 (#34076) @qmonmert
- Angular: remove isPresent operator in favor of inferred type predicates (#34199) @qmonmert
- TypeScript: Remove ignoreDeprecations from tsconfig (#34192) @qmonmert
- Angular: Avoid the any type (#34191) @qmonmert
- Angular 22: ChangeDetectionStrategy.OnPush is now the default (#34190) @qmonmert
- Angular 22: drop redundant non-null assertions (#34189) @qmonmert
- Angular 22: New @service decorator (#34188) @qmonmert
- angular: update Angular to v22 (#34057) @mshima
- Fix some typos (#34163) @qmonmert
- angular: fix prettier issue on windows (#34132) @mshima
- Fix some typos (#34152) @qmonmert
- [Vue] Fix bump Pinia, Vue-router (#34147) @qmonmert
- Simplify redundant character (#34113) @qmonmert
- Merge duplicated code (#34135) @qmonmert
- Use #test-support subpath import in tests (#34110) @qmonmert
- Sonar (#34092) @qmonmert
- Unexpected 'await of a non-Promise (non-'Thenable') value (#34097) @qmonmert
- Use #testing subpath import in tests (#34095) @qmonmert
- Fix some typos (#34094) @qmonmert
- Fix some typos (#34093) @qmonmert
- Angular/Vitest: remove unnecessary 'as any' (#34086) @qmonmert
🐾 JDL/Internals/Blueprints
- angular: use shared entities templates to generate UserManagement (#32516) @mshima
- angular: reimplement user-management string array authorities as a co… (#34688) @mshima
- Fix autoCrlf outside a git repository (#34675) @qmonmert
- client: add email validator to angular (#34679) @mshima
- angular: migrate user-management list to shared templates (#34654) @mshima
- chore: fix test slowness (#34641) @mshima
- angular: use shared entity services templates to generate user-manage… (#34608) @mshima
- bootstrap: run eslint transform on the destination root (#34589) @mshima
- Fix: bump @faker-js/faker from 10.5.0 to 10.6.0 (#34576) @qmonmert
- Simplify redundant toMatchObject(expect.objectContaining(...)) assertions (#34407) @qmonmert
- Generator: use toBeInstanceOf() instead of typeof/instanceof checks (#34371) @qmonmert
- Generator: the most specific assertion should be used (#34369) @qmonmert
- bootstrap: refactor commit pipeline and add Git config handling (#34343) @mshima
- internal: adjust generator behavior for uniqueGlobally feature and improve removeNeedles support (#34332) @mshima
- internal: convert autoCrlf to a runtime option (#34264) @mshima
- internal: add the removeNeedles property to the bootstrap generator (#34311) @mshima
- internal: add prettierJava property to bootstrap generator (#34310) @mshima
- Fix some typos (#34308) @qmonmert
- ESLint: enable logical-assignment-operators lint rule (#34265) @qmonmert
- ESLint: apply typescript-eslint recommended and stylistic configs (#34270) @qmonmert
- Use import.meta.dirname instead of fileURLToPath (#34260) @qmonmert
- Use optional chaining in generator sources (#34259) @qmonmert
- Fix: Bump execa from 9.6.1 to 10.0.0 (#34187) @qmonmert
- Fix some typos (#34163) @qmonmert
- Fix some typos (#34152) @qmonmert
- Assignment could be replaced with operator assignment (#34112) @qmonmert
- Sonar (#34092) @qmonmert
- Use #testing subpath import in tests (#34095) @qmonmert
- Fix some typos (#34094) @qmonmert
- Fix some typos (#34093) @qmonmert
🪶 Maven
- spring-boot: migrate Couchbase to Spring Boot 4 (#34622) @mshima
- mongodb: use ServiceConnection (#31980) @mshima
- XMLBuilder is deprecated (#34315) @qmonmert
🐘 Gradle
- chore(deps): update gradle to v9.7.1 (#34597) @renovate[bot]
- gradle: fix integration test not finding tests (#34532) @mshima
- Fix: update dependency graalvm-reachability-metadata to v1.0.11 (#34577) @qmonmert
- gradle: bundle webapp into intermediate folder (#34527) @mshima
- spring-boot: fix missing webapp in the gradle prod jar (#34526) @qmonmert
- spring-boot: add archiveFileName for e2e in gradle (#34497) @mshima
- spring-boot: improve support to snapshot repository (#34495) @mshima
- Update Gradle to v9.7.0 (#34429) @renovate[bot]
- Use toSorted() instead of copying before sort (#34262) @qmonmert
- Assignment could be replaced with operator assignment (#34112) @qmonmert
- Use #testing subpath import in tests (#34095) @qmonmert
📦 Dependency updates
- internal: enable eslint no-negated-condition rule (#34726) @mshima
- internal: update eslint-plugin-ejs-templates to v0.5.0 (#34725) @mshima
- Revert "build(deps): bump @yeoman/adapter from 4.0.2 to 5.0.0" (#34709) @mshima
- react: migrate to vite (#34656) @mshima
- generate-blueprint: set skipLibCheck option to false (#33638) @mshima
- chore: fix test slowness (#34641) @mshima
- Bump transitional dependencies (#34619) @github-actions[bot], @jhipster-bot
- Fix: bump @faker-js/faker from 10.5.0 to 10.6.0 (#34576) @qmonmert
- Vue: Bump bootstrap-vue-next from 0.45.10 to 0.46.3 (#34570) @qmonmert
- Bump transitional dependencies (#34547) @github-actions[bot], @jhipster-bot
- angular: add axios to devDependencies (#34536) @mshima
- Bump transitional dependencies (#34449) @github-actions[bot], @jhipster-bot
- Fix Windows build + Bump some deps for Angular and React (#34390) @qmonmert
- Bump transitional dependencies (#34352) @github-actions[bot], @jhipster-bot
- internal: convert autoCrlf to a runtime option (#34264) @mshima
- XMLBuilder is deprecated (#34315) @qmonmert
- Fix: bump eslint from 10.7.0 to 10.8.0 (#34257) @qmonmert
- Bump transitional dependencies (#34256) @github-actions[bot], @jhipster-bot
- chore: use max-old-space-size in tsc command (#34216) @mshima
- NPM 12.0.0 (#34076) @qmonmert
- Fix: Bump execa from 9.6.1 to 10.0.0 (#34187) @qmonmert
- Bump transitional dependencies (#34185) @github-actions[bot], @jhipster-bot
- angular: update Angular to v22 (#34057) @mshima
- angular: fix prettier issue on windows (#34132) @mshima
- [Vue] Fix bump Pinia, Vue-router (#34147) @qmonmert
- Bump transitional dependencies (#34088) @github-actions[bot], @jhipster-bot
📦 Install
npm install -g generator-jhipster@9.3.0Refer to the upgrade instructions for upgrading existing applications.
🙏 Contributors
Thanks to everyone who contributed to this release!