What is the practical purpose of a changelog? For projects with serious adoption, it provides a way for end users to know what lies in store when upgrading or whether or not to upgrade, at all.
But, what about a regular OpenSource project? Of what benefit is a changelog? One interesting answer for me is that it helps me become better as an OpenSource maintainer. One technique which helped me leverage the power of CHANGELOG.md is emojilog.
Whatβs emojilog?
Emojilog involves writing your changelog using emojis. emojilog is well suited for conventional commits. Here is the legend:
π For features
π₯ For big features
π§ For fixes/tests/chores
ποΈ For artistic/visual changes
β¨ For stability/resiliancy changes
π For documentation
π©οΈ For deployment related changes
For releases which contain only one update, we write it on a single line.
2.0.1: π Added calc_rad function
For releases which includes multiple updates we add them on a new line.
2.2.0
π More feature
π More feature
2.1.0: π Added calc_rad function
This can of course be used as front emojis for commits as well.
How emojilog helps?
Letβs take the case of a project which implements emojilog: meteomoris.
As you read the changelog, you visually have an idea about the evolution of features. During which period there was an increase in activity. If recently, there havenβt been any features added, this might tell that the project is in maintenance mode. This might be a nice opportunity to volunteer as co-maintainer by submitting quality PRs.
One case where it really helped me was when i noticed that i misbumped the package. I might have forgotten about it or subconsciously did it but when i implemented emojilog, it became clear that something was amiss.
A big feature and the subsequent fixes shows that a bump was needed.
Upcoming benefit/s
If we have a changelog parser, we can extract insights about the project.
The standard is being worked on and feel free to propose changes.
Feel free to comment your feedback.