build: Remove ChangeLogs

Generate ChangeLog files at "make dist" time, using
gitlog-to-changelog.  We still keep ChangeLog files under "po" and
"intl" directories, since those files are copied as part of gettext
infrastructure and it is still meaningful to have them there.
* .gitignore: Add ChangeLog files.
* Admin/release-steps: Remove mention of running update-changelog
script.
* Admin/update-changelog: Remove.
* Makefile.am (gen-ChangeLog): New rule.
* autogen.sh: Copy gitlog-to-changelog from gnulib.  Create empty
ChangeLog files to suppress Automake errors.
* gettext-tools/doc/Makefile.am (EXTRA_DIST): Remove ChangeLog.0.
* gettext-tools/man/Makefile.am (EXTRA_DIST): Remove ChangeLog.0.
* gettext-tools/src/Makefile.am (EXTRA_DIST): Remove ChangeLog.0.
* gettext-tools/tests/Makefile.am (EXTRA_DIST): Remove ChangeLog.0.
* gnulib-local/Makefile.am (EXTRA_DIST): Remove ChangeLog files.
* */ChangeLog: Rename to ChangeLog.0 or ChangeLog.1.
* HACKING: Add brief guideline to submit patches.
This commit is contained in:
Daiki Ueno 2015-10-14 10:20:34 +09:00
parent ac1632889d
commit 614ff78da5
35 changed files with 105 additions and 64 deletions

7
.gitignore vendored
View File

@ -34,6 +34,13 @@ stamp-h1
Makefile.in
Makefile
/ChangeLog
/gettext-runtime/ChangeLog
/gettext-runtime/libasprintf/ChangeLog
/gettext-tools/ChangeLog
/gettext-tools/examples/ChangeLog
/build-aux/git-version-gen
/build-aux/gitlog-to-changelog
/build-aux/snippet
/build-aux/test-driver

View File

@ -122,12 +122,6 @@ Release procedure
and commit the changes.
* Update all ChangeLogs:
./Admin/update-changelog
and commit the changes.
* Create a release:
git clean -xdff

View File

@ -1,46 +0,0 @@
#!/bin/sh
#
# Copyright (C) 2014-2015 Free Software Foundation, Inc.
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This file is meant for maintainers of GNU gettext. It prepends a
# release-announcement entry to all ChangeLog files.
#
# Usage: update-changelog VERSION USER EMAIL
test $# == 3 || { echo "Usage: $0 VERSION USER EMAIL" 1>&2; exit 1; }
if test ! -d gettext-runtime || test ! -d gettext-tools; then
echo "$0: run in the top-level directory" 1>&2
exit 1
fi
ver=$1
user=$2
email=$3
for file in `find . -name "ChangeLog"`; do
test $file = "./gnulib/ChangeLog" \
|| test $file = "./gettext-tools/examples/hello-c++-kde/admin/ChangeLog" \
|| { { date=`date -u +%Y-%m-%d`;
cat <<EOF
$date $user <$email>
* gettext $ver released.
EOF
cat $file; } > $file.tmp && mv $file.tmp $file; }
done

21
HACKING
View File

@ -73,3 +73,24 @@ After fetching the sources from the repository, peek at the comments in
autogen.sh, then run "./autogen.sh"; then you can proceed with "./configure"
as usual.
Submitting patches
==================
Patches should be sent to bug-gettext@gnu.org, the bug/feature mailing
list. You can subscribe to the mailing list, or see the list
archives, by following links from
http://savannah.gnu.org/mail/?group=gettext .
To email a patch you can use a shell command like 'git format-patch
-1' to create a file, and then attach the file to your email.
GNU gettext development no longer stores descriptions of new changes
in ChangeLog files. Instead, a single ChangeLog file is generated
from the commit messages when a release is prepared. So changes you
commit should not touch any of the ChangeLog files in the repository,
but instead should contain the log entries in the commit message.
For the style of a ChangeLog entry, see the "Change Logs" section of
the GNU coding standards:
http://www.gnu.org/prep/standards/html_node/Change-Logs.html

View File

@ -21,6 +21,39 @@ ACLOCAL_AMFLAGS = -I m4
SUBDIRS = gnulib-local gettext-runtime gettext-tools
changelog_etc = \
gettext-runtime/ChangeLog.0 \
gettext-runtime/doc/ChangeLog.0 \
gettext-runtime/intl-csharp/ChangeLog.0 \
gettext-runtime/intl-java/ChangeLog.0 \
gettext-runtime/intl/ChangeLog.0 \
gettext-runtime/libasprintf/ChangeLog.0 \
gettext-runtime/m4/ChangeLog.0 \
gettext-runtime/man/ChangeLog.0 \
gettext-runtime/po/ChangeLog.0 \
gettext-runtime/src/ChangeLog.0 \
gettext-runtime/tests/ChangeLog.0 \
gettext-tools/ChangeLog.0 \
gettext-tools/doc/ChangeLog.0 \
gettext-tools/doc/ChangeLog.1 \
gettext-tools/examples/ChangeLog.0 \
gettext-tools/gnulib-tests/ChangeLog.0 \
gettext-tools/libgettextpo/ChangeLog.0 \
gettext-tools/libgrep/ChangeLog.0 \
gettext-tools/m4/ChangeLog.0 \
gettext-tools/man/ChangeLog.0 \
gettext-tools/man/ChangeLog.1 \
gettext-tools/misc/ChangeLog.0 \
gettext-tools/po/ChangeLog.0 \
gettext-tools/po/ChangeLog.1 \
gettext-tools/projects/ChangeLog.0 \
gettext-tools/src/ChangeLog.0 \
gettext-tools/src/ChangeLog.1 \
gettext-tools/styles/ChangeLog.0 \
gettext-tools/tests/ChangeLog.0 \
gettext-tools/tests/ChangeLog.1 \
gnulib-local/ChangeLog.0
EXTRA_DIST = \
DEPENDENCIES PACKAGING HACKING ChangeLog.0 autogen.sh \
build-aux/ac-help.sed build-aux/moopp build-aux/git-version-gen \
@ -125,9 +158,25 @@ EXTRA_DIST += $(top_srcdir)/.version
BUILT_SOURCES = $(top_srcdir)/.version
$(top_srcdir)/.version:
echo $(VERSION) > $@-t && mv $@-t $@
dist-hook:
dist-hook: gen-ChangeLog
echo $(VERSION) > $(distdir)/.tarball-version
# Generate ChangeLog.
gen_start_date = 2015-10-13
.PHONY: gen-ChangeLog
gen-ChangeLog:
$(AM_V_GEN)if test -d .git; then \
log_fix="$(srcdir)/build-aux/git-log-fix"; \
test -e "$$log_fix" \
&& amend_git_log="--amend=$$log_fix" \
|| amend_git_log=; \
$(top_srcdir)/build-aux/gitlog-to-changelog \
$$amend_git_log --since=$(gen_start_date) > $(distdir)/cl-t && \
{ rm -f $(distdir)/ChangeLog && \
mv $(distdir)/cl-t $(distdir)/ChangeLog; } \
fi
# PO files update.
maintainer-update-po-local: $(top_builddir)/config.status

View File

@ -377,6 +377,7 @@ if ! $skip_gnulib; then
# Import build tools. We use --copy-file to avoid directory creation.
$GNULIB_TOOL --copy-file tests/init.sh gettext-tools || exit $?
$GNULIB_TOOL --copy-file build-aux/git-version-gen || exit $?
$GNULIB_TOOL --copy-file build-aux/gitlog-to-changelog || exit $?
fi
fi
@ -414,6 +415,28 @@ if ! test -f gettext-tools/misc/archive.dir.tar; then
test $retval -eq 0 || exit $retval
fi
# Automake requires that ChangeLog exist.
for dir in . gettext-runtime gettext-runtime/libasprintf \
gettext-tools gettext-tools/examples; do
cat > "$dir/ChangeLog" <<\EOF
No more ChangeLog files
========================
Do not modify any of the ChangeLog files in gettext. Starting on
October 14th, 2015 we put changelog information only in the git commit
log, and generate a top-level ChangeLog file from logs at "make dist"
time.
This rule doesn't apply to the ChangeLog files under "intl" and "po"
directories, because those files are distributed as part of gettext
infrastructure files pulled with the autopoint program.
Local Variables:
buffer-read-only: t
mode: text
End:
EOF
done
# Generate configure script in each subdirectories.
(cd gettext-runtime/libasprintf
echo "$0: generating configure in gettext-runtime/libasprintf..."

View File

@ -51,8 +51,7 @@ EXTRA_DIST += $(doc_DATA)
EXTRA_DIST += \
iso-639.sed iso-639-2.sed iso-3166.sed \
ISO_639 ISO_639-2 ISO_3166 ISO_3166_de \
texi2html \
ChangeLog.0
texi2html
iso-639.texi: ISO_639 iso-639.sed
$(SED) -f $(srcdir)/iso-639.sed $(srcdir)/ISO_639 > iso-639.tmp

View File

@ -51,7 +51,7 @@ msgexec.1.html msgfilter.1.html msggrep.1.html msginit.1.html msguniq.1.html \
recode-sr-latin.1.html \
gettextize.1.html autopoint.1.html
EXTRA_DIST += help2man $(man_aux) $(man_MANS) $(man_HTML) ChangeLog.0
EXTRA_DIST += help2man $(man_aux) $(man_MANS) $(man_HTML)
MAINTAINERCLEANFILES = $(man_MANS) $(man_HTML)
PERL = @PERL@

View File

@ -57,7 +57,7 @@ x-scheme.h x-smalltalk.h x-java.h x-properties.h x-csharp.h x-awk.h x-ycp.h \
x-tcl.h x-perl.h x-php.h x-stringtable.h x-rst.h x-glade.h x-lua.h \
x-javascript.h x-vala.h x-gsettings.h x-desktop.h x-appdata.h libexpat-compat.h
EXTRA_DIST += FILES project-id ChangeLog.0
EXTRA_DIST += FILES project-id
aliaspath = $(localedir)
jardir = $(datadir)/gettext

View File

@ -157,7 +157,6 @@ EXTRA_DIST += init.sh init.cfg $(TESTS) \
msguniq-a.in msguniq-a.inp msguniq-a.out \
qttest_pl.po qttest_pl.qm \
qttest2_de.po qttest2_de.qm qttest2_de.ts \
ChangeLog.0 \
gettext-3-1.po gettext-3-2.po gettext-4.po gettext-5.po \
gettext-6-1.po gettext-6-2.po gettext-7.po \
gettextpo-1.de.po \

View File

@ -18,9 +18,8 @@
## Process this file with automake to produce Makefile.in.
# Generate this list with
# find . '(' -name CVS -o -name Makefile.am ')' -prune -o -type f '!' '(' -name '*.orig' -or -name '*~' ')' -printf '%P\n' | sort | tr '\012' @ | sed 's/@$/%/;s/@/ \\@/g' | tr @% '\012\012'
# find . '(' -name CVS -o -name Makefile.am ')' -prune -o -type f '!' '(' -name '*.orig' -or -name '*~' -or -name 'ChangeLog.*' ')' -printf '%P\n' | sort | tr '\012' @ | sed 's/@$/%/;s/@/ \\@/g' | tr @% '\012\012'
EXTRA_DIST = \
ChangeLog \
build-aux/moopp \
lib/addext.c \
lib/alloca.in.h \
@ -29,8 +28,6 @@ lib/backupfile.c \
lib/backupfile.h \
lib/basename.c \
lib/basename.h \
lib/ChangeLog.0 \
lib/ChangeLog.1 \
lib/closeout.c \
lib/closeout.h \
lib/error.h.diff \
@ -250,8 +247,6 @@ lib/xmalloc.c \
lib/xstrdup.c \
m4/alloca.m4 \
m4/backupfile.m4 \
m4/ChangeLog.0 \
m4/ChangeLog.1 \
m4/curses.m4 \
m4/gcj.m4 \
m4/hard-locale.m4.diff \