# TSN Commit Guideline v1.0
The Sirio Network Commit Guideline is an **"in the works"** and __not yet finalized commit style__ used primary in TSN Projects.
It aims to follow similarly the style of TSN's programming conventions. The TSNCG is extremely simple at this time and isn't too much supposed to be taken seriously until it has been properly refined.
The goal of the TSNCG is to give significantly more space to the commit message while still providing enough context at a glance of the first characters of a commit.
#### *Last Revision: 27/10/2025*
## Breakdown of Each Part
Each commit is separated in different "parts" all attempting to be visually simple to understand once you've read the guideline, while
### Commit Type
The commit type is a **1 character-long capital letter** that defines what the commit does.
The commit type can be of the following:
- **"`B`"** ("Bug Fix")
- Fixes a known or potential bug in the codebase.
- **"`C`"** ("Chore")
- This commit changes the codebase to adapt to something new such as a breaking dependency update or a general annoyance that can't be classified as a bug.
- **"`F`"** ("Feature")
- Adds new features to the codebase.
- **"`R`"** ("Refactor")
- A major change to the codebase to attempt to improve either its readability, efficiency or speed.
### Break Type
The break type is a **1 character-long special character** that denotes whenever the commit introduces breaking changes or not.
This can either be the character **"`¤`"** which defines that the commit is **non-breaking**, or the character **"`§`"** which alerts that the commit will breaking things.
### Component Name
This part of the commit is simply which relevant part of the codebase is affected by the commit.
The component names **"`REPO`"** and **"`WIKI`"** are reserved for affecting the whole repository and affecting the Wiki pages of the repository respectively.
Do not hesitate to separate bigger "ideas" / folders with a simple **"`/`"**.
### Drop-in change / Break Fixing
There may be a situation where a commit exclusively fixes breaking changes without introducing them, this part of the commit attempts to communicate whenever the commit is a simple drop-in replacement that doesn't require to modify other semi-related files or if the commit needs to modify a multitude of files in order to fix or add a new feature to the codebase.
For a simple drop-in change affecting only the relevant direct files, a singular **"`|`"** is used, otherwise two **"`||`"** are used.
### Referred Issue (Optional)
In the case where a commit resolves a known issue, the issue can be referred in this part.
The format is simply **"`#[Issue Number] <<`"**.
### Commit Message
Finally the last part of the commit is quite simply a small description of what the commit attempts to achieve.
Please try to be as concise as possible and write in a *"search engine-like keywords"* way (avoid sentences).
## Template / Example
```
[Type of Commit][¤: Non-breaking / §: Breaking][Component Name] [|: Drop-in Change / ||: Requires dependant modifications] [(Not Required) "#[Issue Number] <<"] [Commit Message]
"F¤TSNWE/Guideline | Add Commit Guideline"
"B¤MCore/Permissions || #15 << Security Vulnerability"
"C§REPO | Update to TSNA v5.2.0"
```