I'm inspired by Conventional Commits, and would like to add some more structure elements for writing projects, e.g. documentations or personal or organizational knowledge management system. I'm thinking of these:
- title: for changes in project title
- structure: for changes in project folder structure
- fileA/B/C: for changes in an important file (to avoid to tediously create many submodules for tracking many individual files)
I'm also inspired by Semantic Versioning, and come up with an idea to semantic versioning the projects. Here is the idea:
Given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when root folder has significant changes
- MINOR version when 1st-level folders has significant changes
- PATCH version when 2st-level folders has significant changes
What is significance is up to you. For me, it may be adding or removing a file or folder. Renaming without changing the idea much may be denoted with a letter after (i.e. 3
→3a
→3b
). If your root folder's structure is already stable before you apply the versioning, you foresee that it will be stable in a far future, then you can skip the MAJOR version if you want.
This idea can be generalize to any hierarchical structure, not just limited to folder structure. For example, a hierarchical graph.
Is there anything I should notice when applying these ideas?
git tag -a v1.3 -m "tag label here"
. If you are new with Git, you can start with Learn Git Branching and Picturing Git: Conceptions and Misconceptions - BiTE Interactive. It really helps me.