[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: generate ChangeLog from Git commit messages?
From: |
Ben Pfaff |
Subject: |
Re: generate ChangeLog from Git commit messages? |
Date: |
Mon, 28 Jul 2008 22:29:35 -0700 |
User-agent: |
Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux) |
John Darrington <address@hidden> writes:
> On Sun, Jul 27, 2008 at 03:52:30PM -0700, Ben Pfaff wrote:
> I'm starting to get very tired of editing multiple ChangeLog
> files, one for every directory that a commit touches. I'd like
> to propose that, instead, we write detailed Git commit messages,
> according to the format suggested in the Git manpages[*], and
> then generate a single ChangeLog file in a "make dist" hook, as
> suggested by Jim Meyering:
> http://www.mail-archive.com/address@hidden/msg09177.html
>
> If you guys are OK with this, I'll prepare a commit that renames
> the existing ChangeLog files to OChangeLog and adds the necessary
> hook to generate a top-level ChangeLog on "make dist".
>
> Please do.
Here is a patch for review.
commit d29cd288b45dbe7de526a13050ca6dd830ecf92d
Author: Ben Pfaff <address@hidden>
Date: Mon Jul 28 22:27:47 2008 -0700
Start generating ChangeLog automatically from Git commit messages.
diff --git a/.gitignore b/.gitignore
index d5b5884..c29aff4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,5 @@
ABOUT-NLS
+ChangeLog
Makefile
Makefile.in
aclocal.m4
@@ -30,3 +31,4 @@ pref.h
reloc-ldflags
stamp-h1
texinfo.tex
+gitlog-to-changelog
diff --git a/Makefile.am b/Makefile.am
index 806fc2a..ab32f99 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -27,7 +27,7 @@ all_q_sources =
pkgsysconfdir = $(sysconfdir)/@PACKAGE@
-EXTRA_DIST = ONEWS config.rpath pspp-mode.el
+EXTRA_DIST = OChangeLog ONEWS config.rpath pspp-mode.el
CLEANFILES =
ACLOCAL_AMFLAGS = -I m4 -I gl/m4
@@ -35,6 +35,17 @@ noinst_LIBRARIES=
noinst_PROGRAMS=
check_PROGRAMS=
bin_PROGRAMS=
+DIST_HOOKS =
+PHONY =
+
+DIST_HOOKS += generate-changelog
+generate-changelog:
+ if test -d $(top_srcdir)/.git; then \
+ $(top_srcdir)/gitlog-to-changelog --since=2008-07-27 \
+ > $(distdir)/cl-t; \
+ rm -f $(distdir)/ChangeLog; \
+ mv $(distdir)/cl-t $(distdir)/ChangeLog; \
+ fi
include $(top_srcdir)/lib/automake.mk
include $(top_srcdir)/doc/automake.mk
@@ -47,3 +58,7 @@ include $(top_srcdir)/tests/automake.mk
if WITH_GUI_TOOLS
include $(top_srcdir)/glade/automake.mk
endif
+
+PHONY += $(DIST_HOOKS)
+dist-hook: $(DIST_HOOKS)
+.PHONY: $(PHONY)
diff --git a/ChangeLog b/OChangeLog
similarity index 100%
rename from ChangeLog
rename to OChangeLog
diff --git a/Smake b/Smake
index aa05962..750ee5c 100644
--- a/Smake
+++ b/Smake
@@ -27,6 +27,7 @@ GNULIB_MODULES = \
getopt \
gettext-h \
gettimeofday \
+ gitlog-to-changelog \
isfinite \
intprops \
inttostr \
@@ -82,12 +83,13 @@ GNULIB_MODULES = \
xvasprintf
all: po/POTFILES.in
+ test -e ChangeLog || touch ChangeLog
test -d m4 || mkdir m4
echo '*' > m4/.cvsignore
touch m4/Makefile.am
$(GNULIB_TOOL) --import --no-changelog --m4-base=gl/m4 \
--source-base=gl --lib=libgl --tests-base=tests \
- --doc-base=gl/doc --import $(GNULIB_MODULES)
+ --doc-base=gl/doc --aux-dir=. --import $(GNULIB_MODULES)
echo '*' > gl/.cvsignore
echo '*' > gl/m4/.cvsignore
libtoolize --force --automake
diff --git a/config/ChangeLog b/config/OChangeLog
similarity index 100%
rename from config/ChangeLog
rename to config/OChangeLog
diff --git a/config/automake.mk b/config/automake.mk
index ba01a39..88b63ac 100644
--- a/config/automake.mk
+++ b/config/automake.mk
@@ -18,3 +18,5 @@ dist_psfonts_DATA = \
config/psfonts/Helvetica.afm \
config/psfonts/Times-Roman.afm \
config/psfonts/Courier.afm
+
+EXTRA_DIST += config/OChangeLog
diff --git a/doc/ChangeLog b/doc/OChangeLog
similarity index 100%
rename from doc/ChangeLog
rename to doc/OChangeLog
diff --git a/doc/automake.mk b/doc/automake.mk
index 0ebd8fc..fa6e8b0 100644
--- a/doc/automake.mk
+++ b/doc/automake.mk
@@ -60,3 +60,5 @@ install-data-hook:: $(YELP_CHECK)
uninstall-hook::
rm -f $(DESTDIR)$(infodir)/pspp.info-[0-9].gz
rm -f $(DESTDIR)$(infodir)/pspp.info.gz
+
+EXTRA_DIST += doc/OChangeLog
diff --git a/examples/ChangeLog b/examples/OChangeLog
similarity index 100%
rename from examples/ChangeLog
rename to examples/OChangeLog
diff --git a/examples/automake.mk b/examples/automake.mk
index 641e428..cdbec4b 100644
--- a/examples/automake.mk
+++ b/examples/automake.mk
@@ -4,3 +4,5 @@ EXTRA_DIST += \
examples/descript.stat \
examples/regress.stat \
examples/regress_categorical.stat
+
+EXTRA_DIST += examples/OChangeLog
diff --git a/glade/ChangeLog b/glade/OChangeLog
similarity index 100%
rename from glade/ChangeLog
rename to glade/OChangeLog
diff --git a/glade/automake.mk b/glade/automake.mk
index 6021eec..7827516 100644
--- a/glade/automake.mk
+++ b/glade/automake.mk
@@ -46,3 +46,5 @@ libglade_psppire_la_CFLAGS = $(GLADE_UI_CFLAGS)
$(GLADE_CFLAGS) \
-I $(top_srcdir)/src/ui/gui -DDEBUGGING
libglade_psppire_la_LIBADD = gl/libgl.la
+
+EXTRA_DIST += glade/OChangeLog
diff --git a/lib/ChangeLog b/lib/OChangeLog
similarity index 100%
rename from lib/ChangeLog
rename to lib/OChangeLog
diff --git a/lib/automake.mk b/lib/automake.mk
index 440a859..6410988 100644
--- a/lib/automake.mk
+++ b/lib/automake.mk
@@ -5,3 +5,5 @@ include $(top_srcdir)/lib/linreg/automake.mk
if WITHGUI
include $(top_srcdir)/lib/gtksheet/automake.mk
endif
+
+EXTRA_DIST += lib/OChangeLog
diff --git a/lib/gtksheet/ChangeLog b/lib/gtksheet/OChangeLog
similarity index 100%
rename from lib/gtksheet/ChangeLog
rename to lib/gtksheet/OChangeLog
diff --git a/lib/gtksheet/automake.mk b/lib/gtksheet/automake.mk
index c98037a..babcb2a 100644
--- a/lib/gtksheet/automake.mk
+++ b/lib/gtksheet/automake.mk
@@ -27,3 +27,5 @@ lib_gtksheet_libgtksheet_a_SOURCES = \
lib/gtksheet/gtkitementry.c \
lib/gtksheet/gtksheet.c \
lib/gtksheet/gtksheet.h
+
+EXTRA_DIST += lib/gtksheet/OChangeLog
diff --git a/lib/linreg/ChangeLog b/lib/linreg/OChangeLog
similarity index 100%
rename from lib/linreg/ChangeLog
rename to lib/linreg/OChangeLog
diff --git a/lib/linreg/automake.mk b/lib/linreg/automake.mk
index d65df86..650646c 100644
--- a/lib/linreg/automake.mk
+++ b/lib/linreg/automake.mk
@@ -4,3 +4,5 @@ noinst_LIBRARIES += lib/linreg/liblinreg.a
lib_linreg_liblinreg_a_SOURCES = \
lib/linreg/sweep.c lib/linreg/sweep.h
+
+EXTRA_DIST += lib/linreg/OChangeLog
diff --git a/src/ChangeLog b/src/OChangeLog
similarity index 100%
rename from src/ChangeLog
rename to src/OChangeLog
diff --git a/src/automake.mk b/src/automake.mk
index 7c52887..1ffbdf3 100644
--- a/src/automake.mk
+++ b/src/automake.mk
@@ -11,3 +11,5 @@ include $(top_srcdir)/src/language/automake.mk
include $(top_srcdir)/src/ui/automake.mk
AM_CPPFLAGS += -I$(top_srcdir)/src -I$(top_srcdir)/lib
-DPKGDATADIR=\"$(pkgdatadir)\"
+
+EXTRA_DIST += src/OChangeLog
diff --git a/src/data/ChangeLog b/src/data/OChangeLog
similarity index 100%
rename from src/data/ChangeLog
rename to src/data/OChangeLog
diff --git a/src/data/automake.mk b/src/data/automake.mk
index 064d668..a6d1858 100644
--- a/src/data/automake.mk
+++ b/src/data/automake.mk
@@ -103,3 +103,5 @@ src_data_libdata_a_SOURCES = \
src/data/variable.c \
src/data/vector.c \
src/data/vector.h
+
+EXTRA_DIST += src/data/OChangeLog
diff --git a/src/language/ChangeLog b/src/language/OChangeLog
similarity index 100%
rename from src/language/ChangeLog
rename to src/language/OChangeLog
diff --git a/src/language/automake.mk b/src/language/automake.mk
index 4b467de..d5ebb10 100644
--- a/src/language/automake.mk
+++ b/src/language/automake.mk
@@ -40,3 +40,5 @@ nodist_src_language_liblanguage_a_SOURCES = \
$(src_language_stats_built_sources) \
$(language_tests_built_sources) \
$(expressions_built_sources)
+
+EXTRA_DIST += src/language/OChangeLog
diff --git a/src/language/control/ChangeLog b/src/language/control/OChangeLog
similarity index 100%
rename from src/language/control/ChangeLog
rename to src/language/control/OChangeLog
diff --git a/src/language/control/automake.mk b/src/language/control/automake.mk
index 89ff7fe..e12813a 100644
--- a/src/language/control/automake.mk
+++ b/src/language/control/automake.mk
@@ -10,3 +10,4 @@ language_control_sources = \
src/language/control/repeat.c \
src/language/control/repeat.h
+EXTRA_DIST += src/language/control/OChangeLog
diff --git a/src/language/data-io/ChangeLog b/src/language/data-io/OChangeLog
similarity index 100%
rename from src/language/data-io/ChangeLog
rename to src/language/data-io/OChangeLog
diff --git a/src/language/data-io/automake.mk b/src/language/data-io/automake.mk
index 9cb6b83..db209be 100644
--- a/src/language/data-io/automake.mk
+++ b/src/language/data-io/automake.mk
@@ -26,3 +26,4 @@ all_q_sources += $(src_language_data_io_built_sources:.c=.q)
EXTRA_DIST += $(src_language_data_io_built_sources:.c=.q)
CLEANFILES += $(src_language_data_io_built_sources)
+EXTRA_DIST += src/language/data-io/OChangeLog
diff --git a/src/language/dictionary/ChangeLog
b/src/language/dictionary/OChangeLog
similarity index 100%
rename from src/language/dictionary/ChangeLog
rename to src/language/dictionary/OChangeLog
diff --git a/src/language/dictionary/automake.mk
b/src/language/dictionary/automake.mk
index a33a84f..825832a 100644
--- a/src/language/dictionary/automake.mk
+++ b/src/language/dictionary/automake.mk
@@ -17,3 +17,4 @@ language_dictionary_sources = \
src/language/dictionary/variable-display.c \
src/language/dictionary/weight.c
+EXTRA_DIST += src/language/dictionary/OChangeLog
diff --git a/src/language/expressions/ChangeLog
b/src/language/expressions/OChangeLog
similarity index 100%
rename from src/language/expressions/ChangeLog
rename to src/language/expressions/OChangeLog
diff --git a/src/language/expressions/automake.mk
b/src/language/expressions/automake.mk
index 630445d..bc4e830 100644
--- a/src/language/expressions/automake.mk
+++ b/src/language/expressions/automake.mk
@@ -37,3 +37,5 @@ generate_from_pl = $(MKDIR_P) `dirname address@hidden && \
.inc.pl.inc:
$(generate_from_pl)
+
+EXTRA_DIST += src/language/expressions/OChangeLog
diff --git a/src/language/lexer/ChangeLog b/src/language/lexer/OChangeLog
similarity index 100%
rename from src/language/lexer/ChangeLog
rename to src/language/lexer/OChangeLog
diff --git a/src/language/lexer/automake.mk b/src/language/lexer/automake.mk
index f8d6996..e0efbb6 100644
--- a/src/language/lexer/automake.mk
+++ b/src/language/lexer/automake.mk
@@ -21,3 +21,5 @@ src/language/lexer/q2c$(EXEEXT_FOR_BUILD):
$(top_srcdir)/src/language/lexer/q2c.
CLEANFILES += src/language/lexer/q2c$(EXEEXT_FOR_BUILD)
+
+EXTRA_DIST += src/language/lexer/OChangeLog
diff --git a/src/language/stats/ChangeLog b/src/language/stats/OChangeLog
similarity index 100%
rename from src/language/stats/ChangeLog
rename to src/language/stats/OChangeLog
diff --git a/src/language/stats/automake.mk b/src/language/stats/automake.mk
index 10738fd..d60cb0d 100644
--- a/src/language/stats/automake.mk
+++ b/src/language/stats/automake.mk
@@ -37,3 +37,4 @@ all_q_sources += $(src_language_stats_built_sources:.c=.q)
EXTRA_DIST += $(src_language_stats_built_sources:.c=.q)
CLEANFILES += $(src_language_stats_built_sources)
+EXTRA_DIST += src/language/stats/OChangeLog
diff --git a/src/language/tests/ChangeLog b/src/language/tests/OChangeLog
similarity index 100%
rename from src/language/tests/ChangeLog
rename to src/language/tests/OChangeLog
diff --git a/src/language/tests/automake.mk b/src/language/tests/automake.mk
index 5a54239..00fcab3 100644
--- a/src/language/tests/automake.mk
+++ b/src/language/tests/automake.mk
@@ -15,3 +15,5 @@ language_tests_sources = \
all_q_sources += $(language_tests_built_sources:.c=.q)
EXTRA_DIST += $(language_tests_built_sources:.c=.q)
CLEANFILES += $(language_tests_built_sources)
+
+EXTRA_DIST += src/language/tests/OChangeLog
diff --git a/src/language/utilities/ChangeLog
b/src/language/utilities/OChangeLog
similarity index 100%
rename from src/language/utilities/ChangeLog
rename to src/language/utilities/OChangeLog
diff --git a/src/language/utilities/automake.mk
b/src/language/utilities/automake.mk
index 5f66102..c4ca92b 100644
--- a/src/language/utilities/automake.mk
+++ b/src/language/utilities/automake.mk
@@ -16,3 +16,5 @@ all_q_sources += $(src_language_utilities_built_sources:.c=.q)
EXTRA_DIST += $(src_language_utilities_built_sources:.c=.q)
CLEANFILES += $(src_language_utilities_built_sources)
+
+EXTRA_DIST += src/language/utilities/OChangeLog
diff --git a/src/language/xforms/ChangeLog b/src/language/xforms/OChangeLog
similarity index 100%
rename from src/language/xforms/ChangeLog
rename to src/language/xforms/OChangeLog
diff --git a/src/language/xforms/automake.mk b/src/language/xforms/automake.mk
index d0fe1cb..ddb1021 100644
--- a/src/language/xforms/automake.mk
+++ b/src/language/xforms/automake.mk
@@ -8,3 +8,5 @@ language_xforms_sources = \
src/language/xforms/sample.c \
src/language/xforms/recode.c \
src/language/xforms/select-if.c
+
+EXTRA_DIST += src/language/xforms/OChangeLog
diff --git a/src/libpspp/ChangeLog b/src/libpspp/OChangeLog
similarity index 100%
rename from src/libpspp/ChangeLog
rename to src/libpspp/OChangeLog
diff --git a/src/libpspp/automake.mk b/src/libpspp/automake.mk
index a697e40..a0d7879 100644
--- a/src/libpspp/automake.mk
+++ b/src/libpspp/automake.mk
@@ -91,3 +91,5 @@ src/libpspp/version.c: $(top_srcdir)/AUTHORS
sed -e 's/^/ \"/' -e 's/$$/\",/' $(top_srcdir)/AUTHORS >> $@
echo "0 };" >> $@
+
+EXTRA_DIST += src/libpspp/OChangeLog
diff --git a/src/math/ChangeLog b/src/math/OChangeLog
similarity index 100%
rename from src/math/ChangeLog
rename to src/math/OChangeLog
diff --git a/src/math/automake.mk b/src/math/automake.mk
index 2c25686..107a985 100644
--- a/src/math/automake.mk
+++ b/src/math/automake.mk
@@ -29,3 +29,5 @@ src_math_libpspp_math_a_SOURCES = \
src/math/design-matrix.c src/math/design-matrix.h \
src/math/random.c src/math/random.h \
src/math/sort.c src/math/sort.h
+
+EXTRA_DIST += src/math/OChangeLog
diff --git a/src/math/time-series/ChangeLog b/src/math/time-series/ChangeLog
deleted file mode 100644
index 07cb6f4..0000000
--- a/src/math/time-series/ChangeLog
+++ /dev/null
@@ -1,8 +0,0 @@
-2006-06-04 Jason Stover <address@hidden>
-
- * innovations.c (get_covariance): Initial version
-
-2006-05-25 Jason Stover <address@hidden>
-
- * innovations.c: New file
-
diff --git a/src/math/ts/ChangeLog b/src/math/ts/OChangeLog
similarity index 100%
rename from src/math/ts/ChangeLog
rename to src/math/ts/OChangeLog
diff --git a/src/math/ts/automake.mk b/src/math/ts/automake.mk
index ffc7967..2ca1f95 100644
--- a/src/math/ts/automake.mk
+++ b/src/math/ts/automake.mk
@@ -5,3 +5,5 @@ noinst_LIBRARIES += src/math/ts/libpspp_ts.a
src_math_ts_libpspp_ts_a_SOURCES = \
src/math/ts/innovations.c \
src/math/ts/innovations.h
+
+EXTRA_DIST += src/math/ts/OChangeLog
diff --git a/src/output/ChangeLog b/src/output/OChangeLog
similarity index 100%
rename from src/output/ChangeLog
rename to src/output/OChangeLog
diff --git a/src/output/automake.mk b/src/output/automake.mk
index 78898f4..d30acf6 100644
--- a/src/output/automake.mk
+++ b/src/output/automake.mk
@@ -32,4 +32,4 @@ src_output_liboutput_a_SOURCES = $(output_sources)
src/output/dummy-chart.c
EXTRA_DIST += src/output/chart.c
endif
-
+EXTRA_DIST += src/output/OChangeLog
diff --git a/src/output/charts/ChangeLog b/src/output/charts/OChangeLog
similarity index 100%
rename from src/output/charts/ChangeLog
rename to src/output/charts/OChangeLog
diff --git a/src/output/charts/automake.mk b/src/output/charts/automake.mk
index f1d7126..a480de6 100644
--- a/src/output/charts/automake.mk
+++ b/src/output/charts/automake.mk
@@ -30,3 +30,5 @@ EXTRA_DIST += $(chart_sources)
AM_CPPFLAGS += -DNO_CHARTS
endif
+
+EXTRA_DIST += src/output/charts/OChangeLog
diff --git a/src/ui/ChangeLog b/src/ui/OChangeLog
similarity index 100%
rename from src/ui/ChangeLog
rename to src/ui/OChangeLog
diff --git a/src/ui/automake.mk b/src/ui/automake.mk
index 18b6914..044c293 100644
--- a/src/ui/automake.mk
+++ b/src/ui/automake.mk
@@ -13,3 +13,5 @@ src_ui_libuicommon_a_SOURCES = \
src/ui/debugger.h \
src/ui/syntax-gen.c \
src/ui/syntax-gen.h
+
+EXTRA_DIST += src/ui/OChangeLog
diff --git a/src/ui/gui/ChangeLog b/src/ui/gui/OChangeLog
similarity index 100%
rename from src/ui/gui/ChangeLog
rename to src/ui/gui/OChangeLog
diff --git a/src/ui/gui/automake.mk b/src/ui/gui/automake.mk
index 2d149fc..64fe75e 100644
--- a/src/ui/gui/automake.mk
+++ b/src/ui/gui/automake.mk
@@ -218,4 +218,6 @@ yelp-check:
echo ' Yelp is available from the GNOME project.
ftp://ftp.gnome.org/pub/gnome/sources/yelp' ; \
echo ; \
fi
-.PHONY: yelp-check
+PHONY += yelp-check
+
+EXTRA_DIST += src/ui/gui/OChangeLog
diff --git a/src/ui/terminal/ChangeLog b/src/ui/terminal/OChangeLog
similarity index 100%
rename from src/ui/terminal/ChangeLog
rename to src/ui/terminal/OChangeLog
diff --git a/src/ui/terminal/automake.mk b/src/ui/terminal/automake.mk
index 34bed5a..928716c 100644
--- a/src/ui/terminal/automake.mk
+++ b/src/ui/terminal/automake.mk
@@ -45,3 +45,5 @@ src_ui_terminal_pspp_LDFLAGS = $(PG_LDFLAGS)
if RELOCATABLE_VIA_LD
src_ui_terminal_pspp_LDFLAGS += `$(RELOCATABLE_LDFLAGS) $(bindir)`
endif
+
+EXTRA_DIST += src/ui/terminal/OChangeLog
diff --git a/tests/ChangeLog b/tests/OChangeLog
similarity index 100%
rename from tests/ChangeLog
rename to tests/OChangeLog
diff --git a/tests/automake.mk b/tests/automake.mk
index 1dd7832..6fb11d0 100644
--- a/tests/automake.mk
+++ b/tests/automake.mk
@@ -311,8 +311,11 @@ EXTRA_DIST += \
CLEANFILES += *.save pspp.* foo*
-dist-hook:
+DIST_HOOKS += check-for-export-var-val
+check-for-export-var-val:
@if grep -q 'export .*=' $(dist_TESTS) ; then \
echo 'One or more tests contain non-portable "export VAR=val" syntax'
; \
false ; \
fi
+
+EXTRA_DIST += tests/OChangeLog
--
"While the Melissa license is a bit unclear, Melissa aggressively
encourages free distribution of its source code."
--Kevin Dalley <address@hidden>