Code, Frameworks & Tools
Services to open for newcomers
Versions
Backend
Java & Mave version managment with sdkman
Sdkman can help to manage the version of different tools.
cat .sdkmanrc
# Enable auto-env through the sdkman_auto_env config
# Add key=value pairs of SDKs to use below
java=21.0.4-oracle
maven=3.9.8 # Ajoute apres
Switching to the required version can be automated:
cat $HOME/.sdkman/etc/config
sdkman_auto_env=true
To install skdman :
curl -s "https://get.sdkman.io" | bash
To run skdman (you need to restart your terminal after the installation) :
sdk env install
To run a Spring Boot project :
./mvnw spring-boot:run
Node version managment with nvm
Nvm can help to manage node.js version.
Switching to the target version can be automated by adding this snippet in .bashrc file.
autoload_nvmrc() {
local nvmrc_path=$(nvm_find_nvmrc)
if [ -n "$nvmrc_path" ]; then
local nvmrc_node_version=$(cat "$nvmrc_path")
# If the current Node version is different from the one in .nvmrc, switch versions
if [ "$(nvm version)" != "$nvmrc_node_version" ]; then
nvm use
fi
fi
}
PROMPT_COMMAND="autoload_nvmrc; $PROMPT_COMMAND"
Git webfflow
The selected git flow is GitHub Flow.
Versioning (SemVer)
The versioning strategy is Semantic Versioning.
Given a version number MAJOR.MINOR.PATCH, increment the:
MAJOR version when you make incompatible API changes
MINOR version when you add functionality in a backward compatible manner
PATCH version when you make backward compatible bug fixes
Conventional commits
The commit messages should respect the Conventional Commits specification.
This specification defines at least 2 types of messages, feat, fix and the notion of Breaking change.
This allow to automate the SemVer management:
fix -> patch
feat -> minor
Breaking change -> major
Commitlint & husky
In order to facilitate the commit with command line, commitlint can be used in conjunction to husky (client side git hooks).