Closed Vlad-Shcherbina closed 3 years ago
I'm inclined to remove the changelog. As can be seen, it is very easy to forget. And I question its value for a project that has as low activity as this one. (Instead, the commit log should be a fine substitute.)
I'm against removing the existing changelog. There are projects with pinned old dependencies, and not having a changelog in an obvious place (nobody would guess to look for it among deleted files in version history) would make it harder to assess if upgrading makes sense.
If you mean stop maintaining the changelog, sure. It's a cost-benefit thing, and your position makes sense. Consider adding a note at the top that trivial releases will not be mentioned there from now on.
What follows is explicitly just my subjective opinion, I'm not pushing for anything, feel free to ignore.
Yes. This isn't my first rodeo. I understand and employ your suggestions in a variety of contexts. I just can't do it for every single one of the dozens of crates that I maintain. It's too much work. In the case of byteorder, it evolves extremely slowly and is pretty unlikely to ever see another breaking change at this point. Combine that with the simplicity of byteorder itself, my feeling is that reading the commits is probably good enough. The generic advice prescribed by keepachangelog is something I agree with generally, but that doesn't mean it's actually a bad practice 100% of the time.
I'll noodle on this and, if I remember, make a decision when I do the next release.
It's a good idea to have a release checklist anyway (to avoid forgetting to publish to crates.io, to add git tag, to build documentation and check it for broken links, etc.), and "update the changelog" could be another entry in this checklist.
I automate this as much as possible. e.g., Scripts to deal with version numbers, crate pushes and git tags.
Then it could be echo "Remember the changelog!"
(or perhaps even checking if the changelog was modified since last release, but that's error-prone).
Ok I'm shutting up now.
Another option could be to use a solution like https://github.com/release-drafter/release-drafter.
The latest version on crates.io is 1.3.4 (Feb 7, 2020), but the CHANGELOG.md only lists 1.3.0 (Jan 19, 2019).
1.3.1 - internal changes 1.3.2 - adds ReadBytesExt::read_i8_into() + internal changes 1.3.3 - adds ByteOrder::write_i8_into() + internal 1.3.4 - trivial
Even if the change is trivial, it's worth mentioning in the changelog that it's trivial.