summaryrefslogtreecommitdiff
path: root/COMMIT.MD
diff options
context:
space:
mode:
Diffstat (limited to 'COMMIT.MD')
-rw-r--r--COMMIT.MD178
1 files changed, 178 insertions, 0 deletions
diff --git a/COMMIT.MD b/COMMIT.MD
new file mode 100644
index 0000000..20d8f6c
--- /dev/null
+++ b/COMMIT.MD
@@ -0,0 +1,178 @@
+# Commit Message Guide
+
+BSDOS follows the Conventional Commits specification.
+
+## Format
+
+```
+<type>(<scope>): <short description>
+```
+
+Examples:
+
+```
+feat(kernel): implement scheduler initialization
+fix(vfs): resolve inode reference leak
+docs(readme): update project goals
+refactor(mm): simplify page allocator
+test(libc): add string function tests
+build(toolchain): update compiler flags
+chore(ci): add formatting workflow
+```
+
+---
+
+## Commit Types
+
+### feat
+
+A new feature.
+
+```
+feat(kernel): add process scheduler
+feat(net): implement UDP sockets
+```
+
+### fix
+
+A bug fix.
+
+```
+fix(vm): prevent page table corruption
+fix(fs): correct FAT directory parsing
+```
+
+### docs
+
+Documentation only.
+
+```
+docs(readme): add build instructions
+docs(api): document syscall interface
+```
+
+### style
+
+Formatting changes only.
+
+```
+style(kernel): format scheduler source
+```
+
+### refactor
+
+Code improvements without changing behavior.
+
+```
+refactor(vfs): simplify path resolution
+```
+
+### perf
+
+Performance improvements.
+
+```
+perf(mm): optimize slab allocator lookup
+```
+
+### test
+
+Adding or improving tests.
+
+```
+test(kernel): add scheduler unit tests
+```
+
+### build
+
+Changes affecting the build system or dependencies.
+
+```
+build(toolchain): support Clang 19
+build(make): improve release target
+```
+
+### ci
+
+Continuous Integration changes.
+
+```
+ci(github): add build workflow
+```
+
+### chore
+
+Miscellaneous maintenance.
+
+```
+chore: update .gitignore
+chore: bump version number
+```
+
+### revert
+
+Reverting a previous commit.
+
+```
+revert: feat(kernel): add scheduler initialization
+```
+
+---
+
+## Common Scopes
+
+```
+kernel
+boot
+arch
+x86
+amd64
+arm64
+mm
+vm
+vfs
+fs
+net
+ipc
+proc
+sched
+drivers
+pci
+usb
+acpi
+libc
+userland
+shell
+build
+toolchain
+docs
+tests
+ci
+```
+
+---
+
+## Rules
+
+- Use the imperative mood.
+- Keep the subject under ~72 characters.
+- Do not end the subject with a period.
+- Make one logical change per commit.
+- Reference issues in the commit body when applicable.
+
+Good:
+
+```
+feat(kernel): add round-robin scheduler
+fix(vfs): prevent null pointer dereference
+docs(readme): document coding standards
+```
+
+Bad:
+
+```
+fixed stuff
+update
+changes
+misc fixes
+``` \ No newline at end of file