# Contributing Guide
> [!NOTE]
> You must follow the [Code of Conduct](./CODE_OF_CONDUCT.md).
I happily welcome your contributions!
Before you contribute,
I would recommend reading this guideline for a better development experience.
- [💬 Commit Message](#-commit-message)
- [🎋 Pull Requests Branch](#-pull-requests-branch)
- [❓ Pull Requests Title](#-pull-requests-title)
- [🪵 Commit Log](#-commit-log)
## 💬 Commit Message
I recommend you to follow [Conventional Commits] with this format.
```commit message
type(scope): Description
Body
```
[Conventional Commits]: https://www.conventionalcommits.org
## 🎋 Pull Requests Branch
I use the [`dev`] branch for the temporary merging.
When it's time to release, I'll merge the [`dev`] branch into the [`main`] branch.
For this reason, please fork the [`dev`] branch and open a PR to it.
[`main`]: https://github.com/5ouma/opml-generator/tree/main
[`dev`]: https://github.com/5ouma/opml-generator/tree/dev
```mermaid
flowchart LR
subgraph PR Branches
feature1
feature2
feature3
end
subgraph Origin Branches
dev
main
end
feature1 & feature2 & feature3 -- Squash Merge --> dev
dev -- Merge --> main
```
## ❓ Pull Requests Title
You don't need to add any prefixes like `feature` or `bug fix`
to the Pull Requests title.
I can recognize what kind of PR it is from labels.
Please give a clear title.
## 🪵 Commit Log
I do squash merge to the dev branch to keep the commit history clean.
When merging your Pull Request, I'll add the Conventional Commits type and scope.