This is not only about Laminas but rather it’s about general workflow for open-source projects. And I think past and present Zend and Laminas contributors might have valuable insights to share.
As one of the maintainer of PhpSpreadsheet project, I’ve been struggling with changelogs. More specifically on how to handle changelogs when merging a PR. As a user I love reading a well crafted changelog, but as a maintainer it can be very time consuming for something that might seems (technically) trivial.
For PhpSpreadsheet we’ve been asking contributors to edit the changelog themselves as part of the PR. However it does not work that well for various reasons. Mostly because either contributors don’t take the time to do it at all, or because maintainers take too long to merge, and the the CHANGELOG will conflict on merge. Or worse it will not conflict, but be incorrectly merged into an already released version.
So I end up spending a lot of time adding or merging changelogs, and I was wondering how others do it ?
I believe Zend used to have an automated tool at some point, to extract changelogs from the commits. But it seems to have been abandoned for Laminas ? (or maybe way before that ?)
How can Laminas handle changelog in an effective manner and not do a lot of manual work ?
In your experience wouldn’t an automated tool be more efficient ? But then that would probably add constraint about commit message format ?
Did any of you experience with something like what Angular does ? The result is pretty cool, though it brings strict commit message rules. Would you be aware of something similar in PHP ecosystem ?
In the way we do it for PhpSpreadsheet, I see the following advantages:
- changelog entry is in the same commit as the actual change, so easy to navigate git history
- commit can be technical while changelog is kept a little bit more user-friendly
But the obvious downside is that I spent a lot of time handling those and not coding something useful…
tl;dr what is your experience and recommendation to write/generate changelogs ?