Le 19/09/2011 08:15, Frank Lanitz a écrit :
Hi folks,
Another episode from topic improving plugins by Frank ;)
In last time I saw a lot of changes going in into plugins without having a ChageLog entry set.
Its not always useful in every case but its a nice thing for users of trunk and also stable releases to have a middle view between NEWS-file which is in most cases only a very short compilation of changes and the very, very verbose svn/git log view. So I'm bagging you to have in mind updating your ChangeLog and when every updating po-files or something else inside geany-plugins/trunk/geany-plugins/po I make it mandatory ;)
Oh no, I planned to start (again [1]) a discussion about *removing* ChangeLog committing :D (OK, I though about Geany itself, not GP)
I'll start it right now then, if you don't mind.
Introduction ------------
My POV on ChangeLogs is that they are from the old days, the time nobody used VCS, so it was a VCS log. Nowadays with VCS, I think a ChangeLog only causes useless efforts -- especially if combined with a DVCS, with which you got the full history locally [2].
So, I think we should get rid of a versioned ChangeLog.
What's the ChangeLog's problems? --------------------------------
Here are a few points (not really sorted) I see against versioned ChangeLogs, why I don't really like them:
1) They causes VCS conflicts. When doing a perfectly linear development, it's not a so big deal -- only two concurrent commits could require somebody to fix a conflict --, but when merging branches it is far less straightforward.
2) They needs to be maintained, as Frank just said. I feel this as a useless additional effort since we have the VCS commit, moreover since both will look quite the same in practice.
3) Some people argue that ChangeLogs don't hold all the information a VCS log would hold, and are less clobbered with uninteresting changes. While I might agree that a plain VCS log might contain more entries than a ChangeLog for the same tree, I also think that the ChangeLog is *far* less useable that the VCS log. Why? Because using the VCS, one can filter by directories, files, commits, branches, etc., many things that are very hard, if not impossible, to do with a ChangeLog. So I thing that even if the VCS log might contain a few uninteresting entries for some ChangeLog readers, it is so easier to filter the ones to show I don't think it is a real concern.
4) Who actually reads ChangeLog that couldn't do the same with VCS log? OK, SVN is a pain to use when it comes to play with the history because it's laggy, but imagine you were using a DVCS like, say, Git, where navigating the history is instantaneous. I mean, who is interested by ChangeLog's content actually?
4.1) Developers? I think they better use VCS log, it's more complete and as I already said, I think it's more flexible (VCS have log, blame, bisect, show, diff, etc.). 4.2) Users? I think either NEWS is complete enough, or ChangeLog is clobbered with useless information (like date, authors, modified files, etc.).
5) It's a versioned file that records changes... sounds weird, doesn't it?
What format a ChangeLog should actually have, if any? -----------------------------------------------------
If it is meant for power users for whom the NEWS is not complete enough (4.2), I think that we should then just make it a more complete version of NEWS, e.g. a list of changes but without dates, authors and files (maybe that's Release Notes?).
It would then either be built like NEWS, e.g. manually soon before release, or somewhat automated (see below).
However, if we just want ChangeLog to be the VCS history for the non-VCS situations like tarballs, I think that generating it from VCS log is good enough.
Could ChangeLog be auto-generated? ----------------------------------
I think the answer is "yes".
If ChangeLog is a VCS log for tarballs, it's very easy to generate it, many scripts already exists for various VCS (e.g. I know GLib does it, for a concrete example).
If ChangeLog is a filtered version of the VCS' log (with either format we want), we could imagine we annotate commits so that we could automatically filter them for inclusion in the generated ChangeLog. E.g. in a git-style pseudo-header [3], something like:
changelog-entry: [true|false]
or something. If we choose something like this, we probably could even setup commit hooks to check that the header is present to make sure we don't forget it by accident.
Such generated ChangeLog might even only contain the commit summary (e.g. the first line in a good Git-style commit) if we think the whole message might not be useful.
Conclusion ----------
I know I already started a thread on a very close topic about a year ago [1], but I think it might be interesting to ask again since we're supposed to change a little the Geany's commit workflow with a VCS change, so it's the right time I guess. And maybe some people have changed their mind? :D
Honestly the part that really frightens me is the conflicts if we adopt a merge-based (or any non-linear) workflow.
So, this is it. I'm waiting for any POVs, remarks, flamewars, insults, etc. you find appropriate :)
Regards, Colomban
[1] http://lists.uvena.de/pipermail/geany-devel/2010-November/003401.html [2] and we're supposed to witch to Git after the release, and it's a DVCS :) [3] which, like most pseudo-headers like signed-of-by, acked-by, etc are actually commit's footers...
Hi,
On Mon, 19 Sep 2011 17:45:04 +0200 Colomban Wendling lists.ban@herbesfolles.org wrote:
Le 19/09/2011 08:15, Frank Lanitz a écrit :
Hi folks,
Another episode from topic improving plugins by Frank ;)
In last time I saw a lot of changes going in into plugins without having a ChageLog entry set.
Its not always useful in every case but its a nice thing for users of trunk and also stable releases to have a middle view between NEWS-file which is in most cases only a very short compilation of changes and the very, very verbose svn/git log view. So I'm bagging you to have in mind updating your ChangeLog and when every updating po-files or something else inside geany-plugins/trunk/geany-plugins/po I make it mandatory ;)
Oh no, I planned to start (again [1]) a discussion about *removing* ChangeLog committing :D (OK, I though about Geany itself, not GP)
I'll start it right now then, if you don't mind.
I'm open to start a discussion about ChangeLog for post svn times as with correct merging its really not much of a benefit (even there are some).
BUT: As we are currently on svn and build system for geany-plugins is expecting a ChangeLog I disagree to do this discussion for 0.21 release of plugins. So discussion is having no impact onto upcoming release :)
Cheers, Frank
Le 19/09/2011 17:55, Frank Lanitz a écrit :
Hi,
On Mon, 19 Sep 2011 17:45:04 +0200 Colomban Wendling lists.ban@herbesfolles.org wrote:
Le 19/09/2011 08:15, Frank Lanitz a écrit :
Hi folks,
Another episode from topic improving plugins by Frank ;)
In last time I saw a lot of changes going in into plugins without having a ChageLog entry set.
Its not always useful in every case but its a nice thing for users of trunk and also stable releases to have a middle view between NEWS-file which is in most cases only a very short compilation of changes and the very, very verbose svn/git log view. So I'm bagging you to have in mind updating your ChangeLog and when every updating po-files or something else inside geany-plugins/trunk/geany-plugins/po I make it mandatory ;)
Oh no, I planned to start (again [1]) a discussion about *removing* ChangeLog committing :D (OK, I though about Geany itself, not GP)
I'll start it right now then, if you don't mind.
I'm open to start a discussion about ChangeLog for post svn times as with correct merging its really not much of a benefit (even there are some).
BUT: As we are currently on svn and build system for geany-plugins is expecting a ChangeLog I disagree to do this discussion for 0.21 release of plugins. So discussion is having no impact onto upcoming release :)
Agreed, I should have made clear I was speaking about post-0.21. It would be stupid anyway to change any policy less than one month before a release IMHO.
Regards, Colomban
On Mon, Sep 19, 2011 at 18:33, Colomban Wendling lists.ban@herbesfolles.org wrote:
Le 19/09/2011 17:55, Frank Lanitz a écrit :
Hi,
On Mon, 19 Sep 2011 17:45:04 +0200 Colomban Wendling lists.ban@herbesfolles.org wrote:
Le 19/09/2011 08:15, Frank Lanitz a écrit :
Hi folks,
Another episode from topic improving plugins by Frank ;)
In last time I saw a lot of changes going in into plugins without having a ChageLog entry set.
Its not always useful in every case but its a nice thing for users of trunk and also stable releases to have a middle view between NEWS-file which is in most cases only a very short compilation of changes and the very, very verbose svn/git log view. So I'm bagging you to have in mind updating your ChangeLog and when every updating po-files or something else inside geany-plugins/trunk/geany-plugins/po I make it mandatory ;)
Oh no, I planned to start (again [1]) a discussion about *removing* ChangeLog committing :D (OK, I though about Geany itself, not GP)
I'll start it right now then, if you don't mind.
I'm open to start a discussion about ChangeLog for post svn times as with correct merging its really not much of a benefit (even there are some).
BUT: As we are currently on svn and build system for geany-plugins is expecting a ChangeLog I disagree to do this discussion for 0.21 release of plugins. So discussion is having no impact onto upcoming release :)
Agreed, I should have made clear I was speaking about post-0.21. It would be stupid anyway to change any policy less than one month before a release IMHO.
I definitely agree manual updating ChangeLog files isn't worth the effort (moreover, it's a really boring work). So I agree they should be generated automatically after the git switch. The recommended way for Gnome programs and libraries is here:
http://live.gnome.org/Git/ChangeLog
I've also never read the ChangeLog file apart from noticing the changes when browsing through VCS history. A side effect of not updating the ChangeLog file is that it will make the history cleaner too.
Cheers,
Jiri
[...]
Oh no, I planned to start (again [1]) a discussion about *removing* ChangeLog committing :D (OK, I though about Geany itself, not GP)
I'll start it right now then, if you don't mind.
I'm open to start a discussion about ChangeLog for post svn times as with correct merging its really not much of a benefit (even there are some).
Does that mean post svn we won't have tarballs? Or that they don't have any list of changes? Or that the changelogs in tarballs are auto generated?
Cheers Lex
BUT: As we are currently on svn and build system for geany-plugins is expecting a ChangeLog I disagree to do this discussion for 0.21 release of plugins. So discussion is having no impact onto upcoming release :)
Cheers, Frank -- http://frank.uvena.de/en/
Geany-devel mailing list Geany-devel@uvena.de https://lists.uvena.de/cgi-bin/mailman/listinfo/geany-devel
Le 20/09/2011 00:18, Lex Trotman a écrit :
[...]
Oh no, I planned to start (again [1]) a discussion about *removing* ChangeLog committing :D (OK, I though about Geany itself, not GP)
I'll start it right now then, if you don't mind.
I'm open to start a discussion about ChangeLog for post svn times as with correct merging its really not much of a benefit (even there are some).
Does that mean post svn we won't have tarballs? Or that they don't have any list of changes? Or that the changelogs in tarballs are auto generated?
I'd see them autogenerated from VCS log upon `make dist`.
Cheers, Colomban
Am 20.09.2011 00:18, schrieb Lex Trotman:
[...]
Oh no, I planned to start (again [1]) a discussion about *removing* ChangeLog committing :D (OK, I though about Geany itself, not GP)
I'll start it right now then, if you don't mind.
I'm open to start a discussion about ChangeLog for post svn times as with correct merging its really not much of a benefit (even there are some).
Does that mean post svn we won't have tarballs? Or that they don't have any list of changes? Or that the changelogs in tarballs are auto generated?
It wasn't my intention to go into some special direction with my post. Just wanted to make clear its post 0.21, not now.
Cheers, Frank
On Mon, 19 Sep 2011 17:45:04 +0200, Colomban wrote:
Hi guys,
[skip ChangeLog, maybe use something auto-generated]
while I was sticking long time to our ChangeLog format and workflow, in the meantime I think we could indeed drop it, that is, drop it in the (D)VCS. Just auto-generate it for releases to be included in tarballs as there is no way for users to query the (D)VCS. I wouldn't even filter the commit messages in any way, just generate a fancy ChangeLog from them. This only means we need to take care about using sane commit messages but we did this before already, I'd say.
When/After switching to GIT, this all should become easier.
So, this is it. I'm waiting for any POVs, remarks, flamewars, insults, etc. you find appropriate :)
Insults? Tempting...
:D.
Regards, Enrico