1 |
Following up on the recent discussions about ChangeLogs, and what should |
2 |
be in there, versus what not, this email tries to describe the pros and |
3 |
cons of the frequently mentioned generation of ChangeLogs from the VCS |
4 |
we use. |
5 |
|
6 |
I would like the council to discuss the generation of ChangeLogs from |
7 |
the VCS in the next meeting for which this message is in time. I prefer |
8 |
the council to decide upon whether or not generation of ChangeLogs is |
9 |
desirable for Gentoo or not. In this email, I will try to describe the |
10 |
pros and cons, but I invite anyone else to contribute/discuss ideas. |
11 |
|
12 |
I start from the assumption that generation of ChangeLogs is NOT limited |
13 |
to any VCS. Hence, I use generated ChangeLogs from CVS using my own |
14 |
script attached to this email. The packages I used were chosen |
15 |
semi-randomly, but absolutely not for who committed to them. Any |
16 |
examples taken are by no means meant as personal attack to the |
17 |
developers involved. |
18 |
|
19 |
Simple pros I see mentioned: |
20 |
- no more need for echangelog + repoman commit (identical message) |
21 |
- no discussion on what to include or not (everything is in there) |
22 |
|
23 |
Simple cons I see mentioned: |
24 |
- useless information on removals of ebuilds/files |
25 |
- useless information on whitespace changes |
26 |
- inability to edit ChangeLog entries (typos, bug refs, etc.) |
27 |
|
28 |
I'll ignore any technical cons regarding resources necessary to |
29 |
generate, retain exact original format, etc. |
30 |
|
31 |
Next thing, I compare original ChangeLogs to those generated. I'll |
32 |
highlight some differences that can be noticed. I attached all |
33 |
generated ChangeLogs to this email. I apologise for the "Bob the |
34 |
Builder" names, I was simply too lazy to map all devs to their real |
35 |
names. I'll report on my observations here first, such that the |
36 |
remainder of this email is just the differences in the ChangeLogs. |
37 |
|
38 |
1) it appears echangelog messages more than just a couple of times |
39 |
differ from the repoman commit messages; sometimes useful information |
40 |
is lost when just using the VCS logs |
41 |
2) typo fixing on VCS-generated logs is sometimes necessary, but |
42 |
probably impossible |
43 |
3) dates and new ebuilds generated from VCS are always correct, |
44 |
ChangeLog editting/echangelog -> commit delays can cause |
45 |
inconsitencies |
46 |
4) package moves might lose all history for essentially the same files |
47 |
5) entries for all commits show up, including those that weren't |
48 |
originally tracked in ChangeLog for some reason |
49 |
|
50 |
If a move to VCS-generated ChangeLogs is to be made, it appears the |
51 |
council has to decide that the following is desirable: |
52 |
- a commit message is supposed to be always right/correct |
53 |
- since the commit message is right, either |
54 |
- repoman commit runs echangelog, or |
55 |
- ChangeLogs are generated on current CVS as well |
56 |
- any typos and incorrect refs, bugs, messages, etc. are accepted as |
57 |
drawback of the system that does not compare to its advantages |
58 |
- it is accepted that all current information in the ChangeLogs gets |
59 |
lost in favour of the VCS commit messages |
60 |
- there is no point in discussing what should be in or out of a |
61 |
ChangeLog, since by definition, "everything" is in (and tools should |
62 |
effectuate so ASAP) |
63 |
|
64 |
If the council deems a separate ChangeLog file useful, they decide that: |
65 |
- ChangeLog messages can (and sometimes should) be different from commit |
66 |
messages, as they are intended as information for users |
67 |
- editting ChangeLog messages is necessary to emit the most correct |
68 |
information to our users at all times |
69 |
- a clear policy is necessary on what is going in the ChangeLog and what |
70 |
not (like the current "common sense" discussions going on and the |
71 |
updated devmanual) |
72 |
- basically nothing changes, and the whole idea of generating ChangeLogs |
73 |
from VCS is no longer a point of discussion |
74 |
|
75 |
|
76 |
If I missed anything, please discuss. |
77 |
The remainder of this email is just diffs with comments inline. |
78 |
|
79 |
dev-vcs/git: |
80 |
> --- ChangeLog 2011-05-31 08:47:22.000000000 +0200 |
81 |
> +++ ChangeLog.2 2011-06-02 09:47:58.177234000 +0200 |
82 |
> @@ -1,12 +1,12 @@ |
83 |
> # ChangeLog for dev-vcs/git |
84 |
> # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 |
85 |
> -# $Header: /var/cvsroot/gentoo-x86/dev-vcs/git/ChangeLog,v 1.95 2011/05/31 06:4 |
86 |
> 7:22 grobian Exp $ |
87 |
> +# $Header: this/file/is/a/generated/ChangeLog,v 1.1 2011/06/02 09:47:14 cvsps2changelog Exp $ |
88 |
|
89 |
The $Header line is likely going to be useless, and probably is best |
90 |
removed. Is there something useful that can be substituted here? |
91 |
|
92 |
> -*git-1.7.3.2 (22 Oct 2010) |
93 |
> + 22 Oct 2010; Bob the Builder <mduft@g.o> git-1.7.3.2.ebuild, |
94 |
> + -files/git-1.6.6.1-interix6.patch, -files/git-1.7.1-interix.patch, |
95 |
> + +files/git-1.7.3.2-interix.patch: |
96 |
> + added new (better :)) patch, removed obsolete ones. |
97 |
> |
98 |
> - 22 Oct 2010; Markus Duft <mduft@g.o> git-1.7.3.2.ebuild, |
99 |
> - +files/git-1.7.3.2-interix.patch, |
100 |
> - -files/git-1.6.6.1-interix6.patch, |
101 |
> - -files/git-1.7.1-interix.patch: |
102 |
> - removed obsolete patches, added a new one instead. the new patch matches |
103 |
> - more the spirit of upstream, and has been submitted there. |
104 |
> +*git-1.7.3.2 (22 Oct 2010) |
105 |
> |
106 |
> - 11 Nov 2010; Sebastian Pipping <sping@g.o> git-9999.ebuild: |
107 |
> - Make live ebuild depend on asciidoc and xmlto independent of flag "doc" |
108 |
> - (bug #343063) |
109 |
> + 11 Nov 2010; Bob the Builder <sping@g.o> git-9999.ebuild: |
110 |
> + dev-vcs/git: Fix dependencies of live ebuild (bug #343063) |
111 |
|
112 |
(Slightly) different commit messages show up. In this case, the |
113 |
echangelog message was more explanatory than the commit message. More |
114 |
trivial, but not always innocent ones: |
115 |
|
116 |
> 08 Jan 2011; Robin H. Johnson <robbat2@g.o> git-1.7.3.4-r1.ebuild: |
117 |
> - Backport bug #350330 automagic CVS to stable ebuild. |
118 |
> + Backport bug #350330 automagic perl to stable ebuild. |
119 |
> |
120 |
> 07 Jan 2011; Robin H. Johnson <robbat2@g.o> git-1.7.3.5-r1.ebuild, |
121 |
> +files/git-1.7.3.5-optional-cvs.patch: |
122 |
> - Bug #350330: Avoid automagic CVS. |
123 |
> + Bug #350330: Avoid automagic CVS. Need to port to 1.7.4 still. |
124 |
> |
125 |
> 07 Jan 2011; Robin H. Johnson <robbat2@g.o> +git-1.7.4_rc1-r1.ebuild, |
126 |
> git-9999.ebuild: |
127 |
> - Port the 1.7.3.5-r1 Prefix USE=python code to newer ebuilds since Prefix team |
128 |
> - has tested. |
129 |
> + Port the 1.7.3.5-r1 Prefix USE=python code to newer ebuilds since Prefix |
130 |
> + team ha tested. |
131 |
|
132 |
It appears there were some typos here, and were fixed later to CVS. |
133 |
There is no way to fix this. CVS allows editing commit messages, but |
134 |
that's disabled for obvious reasons. I'm not sure about git, but from |
135 |
what I've read, it becomes difficult (if not impossible) as soon as the |
136 |
commit has been pushed. |
137 |
|
138 |
> -*git-1.7.5.2 (30 May 2011) |
139 |
> +*git-1.7.5.3 (30 May 2011) |
140 |
> |
141 |
> 30 May 2011; Robin H. Johnson <robbat2@g.o> +git-1.7.5.3.ebuild, |
142 |
> git-9999.ebuild: |
143 |
|
144 |
A clear advantage of the generated ChangeLog; it gets the version right |
145 |
even after long outstanding bumps. |
146 |
|
147 |
> +*git-1.7.5_rc1 (07 Apr 2011) |
148 |
> +*git-1.7.4.4 (07 Apr 2011) |
149 |
|
150 |
Similar, but with dates. This may be a timezone problem, though. |
151 |
|
152 |
> + 08 Jan 2011; Bob the Builder <arfrever@g.o> git-1.7.3.5-r2.ebuild, |
153 |
> + git-1.7.4_rc1-r2.ebuild, git-9999.ebuild: |
154 |
> + Use $(PYTHON -a). EPYTHON is internal variable. |
155 |
> + |
156 |
> + 28 Dec 2010; Bob the Builder <mr_bones_@g.o> git-1.7.3.2-r1.ebuild, |
157 |
> + git-1.7.3.2.ebuild, git-1.7.3.3.ebuild, git-1.7.3.4-r1.ebuild, |
158 |
> + git-1.7.3.4.ebuild: |
159 |
> + whitespace |
160 |
|
161 |
Another advantage, "missing" entries are inserted in the generated ChangeLog. |
162 |
|
163 |
dev-php/magickwand (a pkgmoved package): |
164 |
> --- ChangeLog 2011-04-10 19:37:54.000000000 +0200 |
165 |
> +++ ChangeLog.2 2011-06-02 10:32:41.290731000 +0200 |
166 |
> @@ -1,65 +1,10 @@ |
167 |
> -# ChangeLog for dev-php5/magickwand |
168 |
> -# Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 |
169 |
> -# $Header: /var/cvsroot/gentoo-x86/dev-php/magickwand/ChangeLog,v 1.1 2011/04/10 17:37:54 olemarkus Exp $ |
170 |
> - |
171 |
> -*magickwand-1.0.8-r1 (03 Nov 2010) |
172 |
> - |
173 |
> - 03 Nov 2010; Matti Bickel <mabi@g.o> +magickwand-1.0.8-r1.ebuild: |
174 |
> - create minor slotting compatible version |
175 |
> - |
176 |
> -*magickwand-1.0.8 (12 Apr 2010) |
177 |
> - |
178 |
> - 12 Apr 2010; <mabi@g.o> -magickwand-1.0.6.ebuild, |
179 |
> - -magickwand-1.0.7.ebuild, +magickwand-1.0.8.ebuild: |
180 |
> - version bump (bug #279836), older versions do not work with newer |
181 |
> - imagemagick |
182 |
> - |
183 |
> - 20 Mar 2009; Jorge Manuel B. S. Vicetto <jmbsvicetto@g.o> |
184 |
> - metadata.xml: |
185 |
> - Removing anant as a maintainer since he was retired. |
186 |
> - |
187 |
> - 12 Jun 2008; Christian Hoffmann <hoffie@g.o> |
188 |
> - files/imagemagick-pre-6.3.8-compat.patch: |
189 |
> - updated patch by Martin von Gagern <Martin.vGagern@×××.net> (bug 215671), |
190 |
> - previous version missed some MagickWand-config calls. magickwand-1.0.7 |
191 |
> - should now really build with <imagemagick-6.3.8 |
192 |
> - |
193 |
> - 09 Jun 2008; Christian Hoffmann <hoffie@g.o> |
194 |
> - +files/imagemagick-pre-6.3.8-compat.patch, magickwand-1.0.7.ebuild: |
195 |
> - adding patch by Martin von Gagern <Martin.vGagern@×××.net> (bug 215671) to |
196 |
> - allow for building against <imagemagick-6.3.8 again and adjust *DEPEND |
197 |
> - accordingly |
198 |
> - |
199 |
> - 08 Jun 2008; Christian Hoffmann <hoffie@g.o> |
200 |
> - magickwand-1.0.7.ebuild: |
201 |
> - bump imagemagick dependency to 6.3.9.7, bug 215671 |
202 |
> - |
203 |
> -*magickwand-1.0.7 (03 Jun 2008) |
204 |
> - |
205 |
> - 03 Jun 2008; Luca Longinotti <chtekk@g.o> -magickwand-1.0.4.ebuild, |
206 |
> - -magickwand-1.0.5.ebuild, +magickwand-1.0.7.ebuild: |
207 |
> - Version bump. |
208 |
> - |
209 |
> -*magickwand-1.0.6 (11 Feb 2008) |
210 |
> - |
211 |
> - 11 Feb 2008; Raúl Porcel <armin76@g.o> +magickwand-1.0.6.ebuild: |
212 |
> - Version bump, from the php overlay |
213 |
> - |
214 |
> -*magickwand-1.0.5 (06 Oct 2007) |
215 |
> - |
216 |
> - 06 Oct 2007; Anant Narayanan <anant@g.o> +magickwand-1.0.5.ebuild: |
217 |
> - Bump to 1.0.5 |
218 |
> - |
219 |
> - 27 Apr 2007; Steve Dibb <beandog@g.o> magickwand-1.0.4.ebuild: |
220 |
> - Add ~amd64, bug 175092 |
221 |
> - |
222 |
> - 17 Apr 2007; Anant Narayanan <anant@g.o> magickwand-1.0.4.ebuild: |
223 |
> - Fix typo in PHP_EXT_INI and add explicit RDEPEND. |
224 |
> - |
225 |
> -*magickwand-1.0.4 (17 Apr 2007) |
226 |
> - |
227 |
> - 17 Apr 2007; Anant Narayanan <anant@g.o> +metadata.xml, |
228 |
> - +magickwand-1.0.4.ebuild: |
229 |
> - New ebuild for the MagickWand PHP extension; thanks to Matthew Schultz, bug |
230 |
> - #125593 |
231 |
> - |
232 |
> +# ChangeLog for dev-php/magickwand |
233 |
> +# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 |
234 |
> +# $Header: this/file/is/a/generated/ChangeLog,v 1.1 2011/06/02 10:32:04 cvsps2changelog Exp $ |
235 |
> + |
236 |
> +*magickwand-1.0.8-r1 (10 Apr 2011) |
237 |
> + |
238 |
> + 10 Apr 2011; Bob the Builder <olemarkus@g.o> |
239 |
> + +magickwand-1.0.8-r1.ebuild, +metadata.xml, |
240 |
> + +files/imagemagick-pre-6.3.8-compat.patch: |
241 |
> + Moved from dev-php5/magickwand |
242 |
|
243 |
Obviously, all history is lost. VCSs other than CVS might keep history |
244 |
across moves here (svn, git, hg...), hence a "follow" could perhaps find |
245 |
renames. Question is if this can be detected in such a way that a |
246 |
useful ChangeLog can be generated. Will version bumps that are almost |
247 |
identical copies, that show up as copies/renames cause issues here? |
248 |
|
249 |
sys-devel/gcc-config: |
250 |
> - 16 Mar 2008; Christian Heim <phreak@g.o> Manifest: |
251 |
> - Fixing the Manifest (emerge is complaining about missing |
252 |
> - $FILESDIR/wrapper-1.5.0.o). |
253 |
|
254 |
This entry disappears because Manifest and ChangeLog changes are ignored. |
255 |
|
256 |
> + 02 Jan 2009; Mike Frysinger <vapier@g.o> files/wrapper-1.5.1.c: |
257 |
> + optimize memory/string usage a bit more |
258 |
> |
259 |
> + 16 Mar 2008; Mike Frysinger <vapier@g.o> -gcc-config-1.3.13-r4.ebuild, |
260 |
> + -gcc-config-1.3.14.ebuild, -gcc-config-1.3.15-r1.ebuild, |
261 |
> + -files/gcc-config-1.3.13, -files/gcc-config-1.3.14, -files/gcc-config-1.3.15, |
262 |
> + -files/wrapper-1.4.7.c: |
263 |
> + old |
264 |
|
265 |
Both entries are added in the generated ChangeLog variant. |
266 |
|
267 |
|
268 |
-- |
269 |
Fabian Groffen |
270 |
Gentoo on a different level |