This is one of big points that I consider very important in maintaining a source code, being public or in your company. As the LabVIEW Community grows with open source code, it is important to know this software engineering trick. Let’s have some discussion about it.
I could enumerate many things here, but there is a website dedicated only for this – https://keepachangelog.com/ – and there you can read all good points of keeping a changelog in the root folder of your project.
Whatever, I write beautiful commit messages
For those people I would say… Have you tried to read your commit logs? Maybe. Now I ask…Will I read your commit logs? Not a chance, too much work to extract an information that could be easier on the eyes.
When not to keep?
I have two main reasons why you would not maintain a changelog:
- You don’t care about who is looking your code, it is not public, and I don’t intend to share.
- You don’t know what I am talking about, and you are just curious about the blog.
For the first one, yes, you are allowed to do this, but don’t forget: you are not irreplaceable, and your future you is another person as well. Don’t tell me that you grabbed a code for a year ago and I understood it right away.
For the second one, thanks for passing by and you are always welcome.
Personal reasons to keep
One of my personal reasons is that using a changelog has helped me to keep track of how far I’m going in a feature branch (requirement) or bugfix. When there are too many lines in one version, then probably it is time to do the merge request and open a new feature branch.
It is nice to check on the Changelog and see when a feature was introduced or when a bug was fixed. It is real fast, no matter whose code is this.
Another thing is about communication: in time we start changing how to write changelogs, because the public may be different from those you are used to, and it is nice to understand the project through a good look in the Readme and in the Changelog.
Also, it helps me with semantic versioning, as both of them are tightly coupled.