From aa630f35a354ba0e4620a81b86f1c05b0ce3b104 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Sun, 22 Sep 2024 20:34:21 -0300 Subject: [PATCH 1/9] generate-blueprint: don't write blueprint template files on force --- generators/generate-blueprint/files.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/generate-blueprint/files.ts b/generators/generate-blueprint/files.ts index a4e1b967e482..d955417cb2c5 100644 --- a/generators/generate-blueprint/files.ts +++ b/generators/generate-blueprint/files.ts @@ -88,7 +88,7 @@ export const generatorFiles = asWriteFilesSection({ path: 'generators/generator', to: ctx => `${ctx.application.blueprintsPath}${ctx.generator}`, condition(ctx) { - return ((this as any).options.force || !ctx.written) && ctx.priorities.find(priority => priority.name === 'writing'); + return !ctx.written && ctx.priorities.find(priority => priority.name === 'writing'); }, transform: false, templates: [ From a6bd81045bca622b970690b6c0ec8b084f77b08d Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 26 Sep 2024 08:44:16 -0300 Subject: [PATCH 2/9] generate-blueprint: use humanizedBaseName --- generators/generate-blueprint/templates/cli/cli.cjs.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generators/generate-blueprint/templates/cli/cli.cjs.ejs b/generators/generate-blueprint/templates/cli/cli.cjs.ejs index 7d955918471d..1dcb44c1e1b4 100755 --- a/generators/generate-blueprint/templates/cli/cli.cjs.ejs +++ b/generators/generate-blueprint/templates/cli/cli.cjs.ejs @@ -23,7 +23,7 @@ const blueprint = packageFolderName.startsWith('jhipster-') ? `generator-${packa [blueprint]: version, }, printBlueprintLogo: () => { - console.log('===================== JHipster <%= baseName %> ====================='); + console.log('===================== JHipster <%= humanizedBaseName %> ====================='); console.log(''); }, lookups: [{ packagePaths: [packagePath] }], From 672e8c589bdf342acda21569ea5717258b65a0f2 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 26 Sep 2024 09:13:09 -0300 Subject: [PATCH 3/9] generate-blueprint: add caret config --- generators/generate-blueprint/command.ts | 7 ++++++ generators/generate-blueprint/generator.ts | 26 +++++++++------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/generators/generate-blueprint/command.ts b/generators/generate-blueprint/command.ts index 4ede3d2dd6d3..bfed7cb39f1b 100644 --- a/generators/generate-blueprint/command.ts +++ b/generators/generate-blueprint/command.ts @@ -33,6 +33,13 @@ import { const command = { configs: { + caret: { + cli: { + description: 'Use caret in package.json engines', + type: Boolean, + }, + scope: 'storage', + }, recreatePackageLock: { description: 'Recreate package lock', cli: { diff --git a/generators/generate-blueprint/generator.ts b/generators/generate-blueprint/generator.ts index 5d38eacb50f4..148cae668d2a 100644 --- a/generators/generate-blueprint/generator.ts +++ b/generators/generate-blueprint/generator.ts @@ -354,26 +354,22 @@ export default class extends BaseGenerator { addGeneratorJHipsterDependency() { if (this.jhipsterConfig[LOCAL_BLUEPRINT_OPTION]) return; const { packagejs } = this.application; + const exactDependency = { + 'generator-jhipster': `${packagejs.version}`, + }; + const caretDependency = { + 'generator-jhipster': `^${packagejs.version}`, + }; if (this.jhipsterConfig.dynamic) { this.packageJson.merge({ - devDependencies: { - 'generator-jhipster': `${packagejs.version}`, - }, - peerDependencies: { - 'generator-jhipster': `^${packagejs.version}`, - }, - engines: { - 'generator-jhipster': `^${packagejs.version}`, - }, + devDependencies: exactDependency, + peerDependencies: caretDependency, + engines: caretDependency, }); } else { this.packageJson.merge({ - dependencies: { - 'generator-jhipster': `${packagejs.version}`, - }, - engines: { - 'generator-jhipster': `${packagejs.version}`, - }, + dependencies: exactDependency, + engines: this.jhipsterConfig.caret ? caretDependency : exactDependency, }); } }, From 9abec6d47d3fde9e8be9edd7b2218f3661c3bebf Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 26 Sep 2024 09:34:27 -0300 Subject: [PATCH 4/9] generate-blueprint: add cli-customizations.cjs --- .../generate-blueprint/__snapshots__/generator.spec.ts.snap | 6 ++++++ generators/generate-blueprint/files.ts | 1 + .../templates/cli/cli-customizations.cjs.ejs | 2 ++ generators/generate-blueprint/templates/cli/cli.cjs.ejs | 1 + 4 files changed, 10 insertions(+) create mode 100644 generators/generate-blueprint/templates/cli/cli-customizations.cjs.ejs diff --git a/generators/generate-blueprint/__snapshots__/generator.spec.ts.snap b/generators/generate-blueprint/__snapshots__/generator.spec.ts.snap index e67175312ead..7a5521ffb139 100644 --- a/generators/generate-blueprint/__snapshots__/generator.spec.ts.snap +++ b/generators/generate-blueprint/__snapshots__/generator.spec.ts.snap @@ -26,6 +26,9 @@ exports[`generator - generate-blueprint with all option should match snapshot 1` "README.md": { "stateCleared": "modified", }, + "cli/cli-customizations.cjs": { + "stateCleared": "modified", + }, "cli/cli.cjs": { "stateCleared": "modified", }, @@ -889,6 +892,9 @@ exports[`generator - generate-blueprint with default config should write files a "README.md": { "stateCleared": "modified", }, + "cli/cli-customizations.cjs": { + "stateCleared": "modified", + }, "cli/cli.cjs": { "stateCleared": "modified", }, diff --git a/generators/generate-blueprint/files.ts b/generators/generate-blueprint/files.ts index d955417cb2c5..ae3951cde27b 100644 --- a/generators/generate-blueprint/files.ts +++ b/generators/generate-blueprint/files.ts @@ -36,6 +36,7 @@ export const files = asWriteFilesSection({ '.blueprint/generate-sample/index.mjs', // Always write cli for devBlueprint usage 'cli/cli.cjs', + { sourceFile: 'cli/cli-customizations.cjs', override: false }, ], }, { diff --git a/generators/generate-blueprint/templates/cli/cli-customizations.cjs.ejs b/generators/generate-blueprint/templates/cli/cli-customizations.cjs.ejs new file mode 100644 index 000000000000..20a8a77ad8b9 --- /dev/null +++ b/generators/generate-blueprint/templates/cli/cli-customizations.cjs.ejs @@ -0,0 +1,2 @@ +// This file will not be overwritten by generate-blueprint +module.exports = {}; diff --git a/generators/generate-blueprint/templates/cli/cli.cjs.ejs b/generators/generate-blueprint/templates/cli/cli.cjs.ejs index 1dcb44c1e1b4..9f06eee6e866 100755 --- a/generators/generate-blueprint/templates/cli/cli.cjs.ejs +++ b/generators/generate-blueprint/templates/cli/cli.cjs.ejs @@ -27,6 +27,7 @@ const blueprint = packageFolderName.startsWith('jhipster-') ? `generator-${packa console.log(''); }, lookups: [{ packagePaths: [packagePath] }], + ...require('./cli-customizations.cjs'), }).catch(done); process.on('unhandledRejection', up => { From 8a2428935159df523d9d211f0185f548646493e1 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 26 Sep 2024 10:15:19 -0300 Subject: [PATCH 5/9] generate-blueprint: adjust skipWorkflows --- generators/generate-blueprint/files.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/generators/generate-blueprint/files.ts b/generators/generate-blueprint/files.ts index ae3951cde27b..a80f107d63fa 100644 --- a/generators/generate-blueprint/files.ts +++ b/generators/generate-blueprint/files.ts @@ -40,15 +40,17 @@ export const files = asWriteFilesSection({ ], }, { - condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION] && ctx.githubWorkflows && !ctx.skipWorkflows, + condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION] && ctx.githubWorkflows, templates: [ '.blueprint/github-build-matrix/build-matrix.mjs', '.blueprint/github-build-matrix/generator.mjs', '.blueprint/github-build-matrix/index.mjs', - '.github/workflows/build-cache.yml', - '.github/workflows/samples.yml', ], }, + { + condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION] && ctx.githubWorkflows && !ctx.skipWorkflows, + templates: ['.github/workflows/build-cache.yml', '.github/workflows/samples.yml'], + }, { condition: ctx => !ctx[LOCAL_BLUEPRINT_OPTION] && !ctx.sampleWritten, templates: ['.blueprint/generate-sample/templates/samples/sample.jdl'], From 88e913b9dff5629cfa70858fad14d1a18adf5fda Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 26 Sep 2024 10:18:07 -0300 Subject: [PATCH 6/9] generate-blueprint: readme adjusts --- .../generate-blueprint/templates/README.md.ejs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/generators/generate-blueprint/templates/README.md.ejs b/generators/generate-blueprint/templates/README.md.ejs index 10e4f399a1f8..5e48313df6c3 100644 --- a/generators/generate-blueprint/templates/README.md.ejs +++ b/generators/generate-blueprint/templates/README.md.ejs @@ -46,13 +46,23 @@ npm install -g generator-jhipster-<%= baseName %> To use this blueprint, run the below command -```bash <%_ if (cli) { _%> +```bash <%= cliName %> + <%_ if (caret) { _%> +``` + +or + +```bash +jhipster --blueprints <%= baseName %> +``` + <%_ } _%> <%_ } else { _%> +```bash jhipster --blueprints <%= baseName %> -<%_ } _%> ``` +<%_ } _%> You can look for updated <%= baseName %> blueprint specific options by running From e95e6bc749dcb87a054720de8048156b6949363b Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 26 Sep 2024 10:47:10 -0300 Subject: [PATCH 7/9] cli: allow async printLogo --- cli/program.mts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cli/program.mts b/cli/program.mts index 2dd13813eb98..33ca7800e992 100644 --- a/cli/program.mts +++ b/cli/program.mts @@ -54,9 +54,9 @@ type BuildCommands = { loadCommand?: (key: string) => Promise<(...args: any[]) => Promise>; defaultCommand?: string; entrypointGenerator?: string; - printLogo?: () => void; silent?: boolean; - printBlueprintLogo?: () => void; + printLogo?: () => void | Promise; + printBlueprintLogo?: () => void | Promise; createEnvBuilder: (options?: BaseEnvironmentOptions) => Promise; }; @@ -270,8 +270,8 @@ export const buildCommands = ({ } if (!silent) { - printLogo(); - printBlueprintLogo(); + await printLogo(); + await printBlueprintLogo(); } const command = this; From b2e86f0ce01747ae81a36bea14feb3a73e471eaf Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 26 Sep 2024 10:47:49 -0300 Subject: [PATCH 8/9] update snapshot --- generators/app/__snapshots__/generator.spec.ts.snap | 3 +++ 1 file changed, 3 insertions(+) diff --git a/generators/app/__snapshots__/generator.spec.ts.snap b/generators/app/__snapshots__/generator.spec.ts.snap index a677a28062b3..028fe024f6bb 100644 --- a/generators/app/__snapshots__/generator.spec.ts.snap +++ b/generators/app/__snapshots__/generator.spec.ts.snap @@ -252,6 +252,7 @@ exports[`generator - app with default config should match snapshot 1`] = ` "cacheProviderRedis": false, "camelizedBaseName": "jhipster", "capitalizedBaseName": "Jhipster", + "caret": undefined, "cjsExtension": ".cjs", "clientDistDir": "target/classes/static/", "clientFramework": "angular", @@ -891,6 +892,7 @@ exports[`generator - app with gateway should match snapshot 1`] = ` "cacheProviderRedis": false, "camelizedBaseName": "jhipster", "capitalizedBaseName": "Jhipster", + "caret": undefined, "cjsExtension": ".cjs", "clientDistDir": "target/classes/static/", "clientFramework": "angular", @@ -1525,6 +1527,7 @@ exports[`generator - app with microservice should match snapshot 1`] = ` "cacheProviderRedis": false, "camelizedBaseName": "jhipster", "capitalizedBaseName": "Jhipster", + "caret": undefined, "cjsExtension": ".cjs", "clientDistDir": "target/classes/static/", "clientFramework": "no", From 92a3cdaeaa10b65cd20367e13e2b83650f044e79 Mon Sep 17 00:00:00 2001 From: Marcelo Shima Date: Thu, 26 Sep 2024 12:27:36 -0300 Subject: [PATCH 9/9] Update .yo-rc.json --- .../default/.yo-rc.json | 24 +++++++------------ 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/test-integration/generate-blueprint-samples/default/.yo-rc.json b/test-integration/generate-blueprint-samples/default/.yo-rc.json index 0d3f90185a58..bfaeb4234aa2 100755 --- a/test-integration/generate-blueprint-samples/default/.yo-rc.json +++ b/test-integration/generate-blueprint-samples/default/.yo-rc.json @@ -26,8 +26,7 @@ "install", "end" ], - "sbs": false, - "written": true + "sbs": false }, "common": { "command": false, @@ -50,8 +49,7 @@ "install", "end" ], - "sbs": false, - "written": true + "sbs": false }, "cypress": { "command": false, @@ -74,8 +72,7 @@ "install", "end" ], - "sbs": false, - "written": true + "sbs": false }, "server": { "command": false, @@ -98,8 +95,7 @@ "install", "end" ], - "sbs": false, - "written": true + "sbs": false }, "jdl": { "command": true, @@ -126,8 +122,7 @@ "postInstall", "end" ], - "sbs": false, - "written": true + "sbs": false }, "spring-data-relational": { "command": true, @@ -154,8 +149,7 @@ "postInstall", "end" ], - "sbs": false, - "written": true + "sbs": false }, "languages": { "command": true, @@ -182,8 +176,7 @@ "postInstall", "end" ], - "sbs": false, - "written": true + "sbs": false }, "angular": { "command": true, @@ -210,8 +203,7 @@ "postInstall", "end" ], - "sbs": false, - "written": true + "sbs": false } }, "jhipsterVersion": "7.5.0",