summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRuediger Pluem <rpluem@apache.org>2020-07-13 10:29:11 +0000
committerRuediger Pluem <rpluem@apache.org>2020-07-13 10:29:11 +0000
commit189927b73545e91f5bef79afd66ff2c8431075d2 (patch)
treef9f6f1befebc5faea6b5868baa62408999131d94
parentb17376f0a75d6031b882e889202fcf63e4890e3a (diff)
downloadhttpd-189927b73545e91f5bef79afd66ff2c8431075d2.tar.gz
Add a new way to document changes
* Makefile.in: Define the update-changes target to merge the change files from the changes directory to the top of the CHANGES file and remove them afterwards. If a Subversion binary was found during configure try to svn rm them otherwise just delete them. * configure.in: Search for the Subversion binary. * acinclude.m4: Set the corresponding Makefile variable for the Subversion binary. * README.CHANGES: New file to document the new approach. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1879822 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--Makefile.in20
-rw-r--r--README.CHANGES17
-rw-r--r--acinclude.m41
-rw-r--r--configure.in1
4 files changed, 39 insertions, 0 deletions
diff --git a/Makefile.in b/Makefile.in
index df59db6fde..6a2be8d830 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -166,6 +166,26 @@ docs:
echo ' http://httpd.apache.org/docs-project/docsformat.html'; \
fi
+update-changes:
+ @for i in `find changes -type f`; do \
+ cp CHANGES CHANGES.tmp ; \
+ awk -vfname=$$i 'BEGIN{done = 0} \
+ done == 0 && /^Changes with Apache /{ active = 1; print; next}; \
+ /^ *\*/ && active == 1 && done == 0{rec=$$0; while(getline<fname){if (! ($$0 ~ /^ *$$/)){print}}printf "\n";print rec; active = 0; done = 1; next} //;' \
+ CHANGES.tmp > CHANGES ; \
+ rm CHANGES.tmp ; \
+ if [ -n "$(SVN)" ] ; then \
+ if ! $(SVN) rm $$i 2>/dev/null ; then \
+ $(RM) $$i ; \
+ fi ; \
+ else \
+ $(RM) $$i ; \
+ fi ; \
+ done ; \
+ if [ -n "$(SVN)" ] ; then \
+ $(SVN) diff CHANGES ; \
+ fi
+
validate-xml:
@if test -d $(top_srcdir)/docs/manual/build; then \
cd $(top_srcdir)/docs/manual/build && ./build.sh validate-xml; \
diff --git a/README.CHANGES b/README.CHANGES
new file mode 100644
index 0000000000..ebea59ce4e
--- /dev/null
+++ b/README.CHANGES
@@ -0,0 +1,17 @@
+Changes can be documented in two ways now: Either by directly editing the
+CHANGES file like it was done until now or by storing each entry for the
+CHANGES file correctly formated in a separate file in the "changes" directory.
+
+The benefit of the single file per change approach is that it eases backporting
+the CHANGES entry to a stable branch as it avoids the frequent merge conflicts
+as changes are merged in different orders or not at all in the stable branch.
+
+In order to keep the current CHANGES file for the users as is there is a new
+make target called 'update-changes'. It merges all change files in the changes
+directory to the top of the CHANGES file and removes them afterwards.
+
+This make target can be seen in a similar way as the scripts to update the
+documentation files from its xml sources. It can be executed immediately
+after the new file in the changes directory has been created / merged
+and committed or it can executed later. It should be executed at least before
+a release gets tagged.
diff --git a/acinclude.m4 b/acinclude.m4
index c8aab9ee62..4ee184b7d3 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -82,6 +82,7 @@ AC_DEFUN([APACHE_GEN_CONFIG_VARS],[
APACHE_SUBST(LIBTOOL)
APACHE_SUBST(SHELL)
APACHE_SUBST(RSYNC)
+ APACHE_SUBST(SVN)
APACHE_SUBST(MODULE_DIRS)
APACHE_SUBST(MODULE_CLEANDIRS)
APACHE_SUBST(PORT)
diff --git a/configure.in b/configure.in
index 60cbf7b7f8..0e81ab5510 100644
--- a/configure.in
+++ b/configure.in
@@ -408,6 +408,7 @@ dnl ## Check for programs
AC_PATH_PROG(RM, rm)
AC_PATH_PROG(PKGCONFIG, pkg-config)
AC_PATH_PROG(RSYNC, rsync)
+AC_PATH_PROG(SVN, svn)
AC_PROG_AWK
AC_PROG_LN_S
AC_CHECK_TOOL(RANLIB, ranlib, true)