# JOSAST naming convention 

## Application / Module / Web application

 An **Application** is an executable jar. Two types of application can be produce

 * Command line application 
 * Graphic application 
 
 A **Module** is a library jar. A module address a functionality. An application is an integration of modules. 
 
 A **Web Application** is jar / war used for a web service.
 
### naming convention 
 
| type                     | Rule                         | 
| :-----------------------:| :---------------------------:| 
| Application Command line | **Application***name***cli** | 
| Application HMI          | **Application**Name          |
| Module                   | **Module**Name               |
| Web Application          | **Web**Name                  |
 
 
## package naming convention

The package naming convention is the following : 

 **org.josast.***name*.*...*
 The *name* is the module name 
 
## Semantic Commit Messages


Format: `<type>(<scope>): <subject>`

`<scope>` is optional


- `feat`: (new feature for the user, not a new feature for build script)
- `fix`: (bug fix for the user, not a fix to a build script)
- `docs`: (changes to the documentation)
- `style`: (formatting, missing semi colons, etc; no production code change)
- `refactor`: (refactoring production code, eg. renaming a variable)
- `test`: (adding missing tests, refactoring tests; no production code change)
- `chore`: (updating grunt tasks etc; no production code change)

References:

- https://www.conventionalcommits.org/
- https://seesparkbox.com/foundry/semantic_commit_messages
- http://karma-runner.github.io/1.0/dev/git-commit-msg.html
