https://github.com/ibm-developer/generator-ibm-java/tree/develop/generator-java/generators/liberty
This is a yeoman generator that produces MicroProfile / Java EE projects.
The generator works by taking the answers that the user has supplied, either via the CLI or a UI, and then maps that to a folder under the templates directory. All files are processed using Handlebars to insert the configuration specified by the user.
This is a sub generator and is intended to work with the main Java code generator. This generator is listed as a dependency in the package.json which means that it will be installed automatically. Follow the build instructions on the Java generator then additionally
- Fork or clone this repository locally.
- Change into the
generator-liberty
directory (where the package.json file is) - Run
npm link
- this will configure your local node installation to resolve this generator from the local file system rather than the NPM registry.
You will now be able to make changes locally and have them picked up when you run the main Java generator.
In order to publish changes, you will need to fork the repository or ask to join the ibm-developer
org and branch off the develop
branch.
Make sure to follow the conventional commit specification before contributing. To help you with commit a commit template is provide.
Run config.sh
to initialize the commit template to your .git/config
or you can use
Once you are finished with your changes, run npm test
to make sure all tests pass.
Do a pull request against develop
and make sure the build passes. A team member will review and merge your pull request.
Once merged to develop
a team member will merge to master
and a pull request will be created against master
to update the version. After the autogenerated
pull request has been merged to master
the version will be bumped and published to npm.
You can publish a prelease by following the same process except you will need to add a prerelease
property with the tagname as the value in the generator-java/package.json
. Standard-version will handle how the prereleases are done. For more information on this review the following table showing you what to expect.
Current Version | Commit Type | Tag Name | Next Version |
---|---|---|---|
1.0.0 | fix | alpha | 1.0.1-alpha.0 |
1.0.1-alpha.0 | fix | alpha | 1.0.1-alpha.1 |
1.0.1-alpha.0 | feat | alpha | 1.1.0-alpha.0 |
1.0.0 | feat | alpha | 1.1.0-alpha.0 |
1.0.1-alpha.0 | fix /w BREAKING CHANGE | alpha | 1.0.1-alpha.1 |
1.0.1-alpha.0 | feat /w BREAKING CHANGE | alpha | 1.0.1-alpha.1 |