From cea1c621e0c05c9a90a693167fba9a4e8f42533a Mon Sep 17 00:00:00 2001
From: Paul Sokolovsky <pfalcon@users.sourceforge.net>
Date: Sat, 7 May 2016 22:30:52 +0300
Subject: [PATCH] CODECONVENTIONS.md: Describe git commit messages conventions.

---
 CODECONVENTIONS.md | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/CODECONVENTIONS.md b/CODECONVENTIONS.md
index 951adee91..fa90940cc 100644
--- a/CODECONVENTIONS.md
+++ b/CODECONVENTIONS.md
@@ -1,3 +1,31 @@
+Git commit conventions
+======================
+
+Each commit message should start with a directory or full file path
+prefix, so it was clear which part of codebase a commit affects. If
+a change affects one file, it's better to use path to a file. If it
+affects few files in a subdirectory, using subdirectory as a prefix
+is ok. For longish paths, it's acceptable to drop intermediate
+components, which still should provide good context of a change.
+It's also ok to drop file extensions.
+
+Besides prefix, first line of a commit message should describe a
+change clearly and to the point, and be a grammatical sentence with
+final full stop. First line should fit within 78 characters. Examples
+of good first line of commit messages:
+
+    py/objstr: Add splitlines() method.
+    py: Rename FOO to BAR.
+    docs/machine: Fix typo in reset() description.
+    ports: Switch to use lib/foo instead of duplicated code.
+
+After the first line, add an empty line and in following lines describe
+a change in a detail, if needed. Any change beyond 5 lines would likely
+require such detailed description.
+
+To get good practical examples of good commits and their messages, browse
+thry the `git log` of the project.
+
 Python code conventions
 =======================
 
-- 
GitLab