Skip to content
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

cli and bootstrap improvements. #21080

Closed
12 tasks done
mshima opened this issue Feb 11, 2023 · 4 comments · Fixed by #23418
Closed
12 tasks done

cli and bootstrap improvements. #21080

mshima opened this issue Feb 11, 2023 · 4 comments · Fixed by #23418
Labels
area: enhancement 🔧 $$ bug-bounty $$ https://www.jhipster.tech/bug-bounties/ theme: cli theme: jhipster-internals v8 $200 https://www.jhipster.tech/bug-bounties/
Milestone

Comments

@mshima
Copy link
Member

mshima commented Feb 11, 2023

Overview of the feature request

There is a series of cleanups and improvements to cli and bootstrap.

  • improve generation speed ng(x)-default takes 4m30s to generate at v7. Due to Major regression on ng-default sample generation. #20782, it was possible to reduce to 1m20s optimizing mem-fs-editor usage.
  • drop fork usage and convert to await/async Rework cli support #21048
  • replace yeoman-generator's in constructor option definition with a custom made definition and parsing More cli rework #21077
  • apply new option definition at main generators
  • optimize transforms (requires mem-fs, yeoman-environment and yeoman-generator) improvements.
  • modularize @GeneratedByJHipster transform.
  • check the possibility of converting frontend translations transforms
  • convert jdl command into a generator. simplified implementation and adds blueprint support.
  • integrate import-jdl into jdl command.
  • don’t look for jhipster at local dir and require the standard npx jhipster to run the locally installed jhipster.
  • move options load from the constructor to the initializing priority at main generators
Motivation for or Use Case

Improve user experience.

Related issues or PR
  • Checking this box is mandatory (this is just to show you read everything)
@DanielFran
Copy link
Member

@mshima Anything missing here or all have been done?

@mshima
Copy link
Member Author

mshima commented Sep 5, 2023

@DanielFran yes, the description missing items.

this.option('defaults', {
description: 'Execute jhipster with default config',
type: Boolean,
});
this.option('base-name', {
description: 'Application base name',
type: String,
});
this.option('application-type', {
description: 'Application type to generate',
type: String,
});
this.option('client-framework', {
description: 'Provide client framework for the application',
type: String,
});
// This adds support for a `--skip-client` flag
this.option('skip-client', {
description: 'Skip the client-side application generation',
type: Boolean,
});
// This adds support for a `--skip-server` flag
this.option('skip-server', {
description: 'Skip the server-side application generation',
type: Boolean,
});
// This adds support for a `--skip-commit-hook` flag
this.option('skip-commit-hook', {
description: 'Skip adding husky commit hooks',
type: Boolean,
});
// This adds support for a `--skip-user-management` flag
this.option('skip-user-management', {
description: 'Skip the user management module during app generation',
type: Boolean,
});
// This adds support for a `--skip-check-length-of-identifier` flag
this.option('skip-check-length-of-identifier', {
description: 'Skip check the length of the identifier, only for recent Oracle databases that support 30+ characters metadata',
type: Boolean,
});
// This adds support for a `--skip-fake-data` flag
this.option('skip-fake-data', {
description: 'Skip generation of fake data for development',
type: Boolean,
});
// This adds support for a `--jhi-prefix` flag
this.option('jhi-prefix', {
description: 'Add prefix before services, controllers and states name',
type: String,
});
// This adds support for a `--entity-suffix` flag
this.option('entity-suffix', {
description: 'Add suffix after entities name',
type: String,
});
// This adds support for a `--dto-suffix` flag
this.option('dto-suffix', {
description: 'Add suffix after dtos name',
type: String,
});
// This adds support for a `--auth` flag
this.option('auth', {
description: 'Provide authentication type for the application when skipping server side generation',
type: String,
});
// This adds support for a `--db` flag
this.option('db', {
description: 'Provide DB name for the application when skipping server side generation',
type: String,
});
// This adds support for a `--build` flag
this.option('build', {
description: 'Provide build tool for the application when skipping server side generation',
type: String,
});
// This adds support for a `--websocket` flag
this.option('websocket', {
description: 'Provide websocket option for the application when skipping server side generation',
type: String,
});
// This adds support for a `--search-engine` flag
this.option('search-engine', {
description: 'Provide search engine for the application when skipping server side generation',
type: String,
});
// NOTE: Deprecated!!! Use --blueprints instead
this.option('blueprint', {
description: 'DEPRECATED: Specify a generator blueprint to use for the sub generators',
type: String,
});
// This adds support for a `--blueprints` flag which can be used to specify one or more blueprints to use for generation
this.option('blueprints', {
description:
'A comma separated list of one or more generator blueprints to use for the sub generators, e.g. --blueprints kotlin,vuejs',
type: String,
});
this.option('incremental-changelog', {
description: 'Creates incremental database changelogs',
type: Boolean,
});
this.option('recreate-initial-changelog', {
description: 'Recreate the initial database changelog based on the current config',
type: Boolean,
});
this.option('legacy-db-names', {
description: 'Generate database names with jhipster 6 compatibility.',
type: Boolean,
});
this.option('ignore-errors', {
description: "Don't fail on prettier errors.",
type: Boolean,
});
this.option('native-language', {
alias: 'n',
description: 'Set application native language',
type: String,
required: false,
});
this.option('enable-translation', {
description: 'Enable translation',
type: Boolean,
required: false,
});
this.option('language', {
alias: 'l',
description: 'Language to be added to application (existing languages are not removed)',
type: Array,
});
this.option('pk-type', {
description: 'Default primary key type (beta)',
type: String,
});
this.option('client-package-manager', {
description: 'Force an unsupported client package manager',
type: String,
});
this.option('cypress-coverage', {
description: 'Enable Cypress code coverage report generation',
type: Boolean,
});
this.option('cypress-audit', {
description: 'Enable cypress-audit/lighthouse report generation',
type: Boolean,
});
this.option('microfrontend', {
description: 'Force generation of experimental microfrontend support',
type: Boolean,
});
this.option('test-frameworks', {
description: 'Test frameworks to be generated',
type: Array,
});
this.option('reactive', {
description: 'Generate a reactive backend',
type: Boolean,
});
this.option('enable-swagger-codegen', {
description: 'API first development using OpenAPI-generator',
type: Boolean,
});
this.option('cache-provider', {
description: 'Cache provider',
type: String,
});
this.option('enable-hibernate-cache', {
description: 'Enable hibernate cache',
type: Boolean,
});

and others

I’ve started the change.

@mshima
Copy link
Member Author

mshima commented Nov 8, 2023

@DanielFran
Copy link
Member

@mshima approved

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: enhancement 🔧 $$ bug-bounty $$ https://www.jhipster.tech/bug-bounties/ theme: cli theme: jhipster-internals v8 $200 https://www.jhipster.tech/bug-bounties/
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants