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.
Can we have mercy with people working on case-preserving file systems?
Consider case insensitive filessystems
Consider case insensitive filessystems and thus choose a new non conflicting
name for the directory to store CHANGES entries.
Reviewed by: rpluem, jim, jorton
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/2.4.x@
1881728 13f79535-47bb-0310-9956-
ffa450edef68
echo ' http://httpd.apache.org/docs-project/docsformat.html'; \
fi
+update-changes:
+ @for i in `find changes-entries -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; \
--- /dev/null
+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-entries
+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-entries 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-entries directory has been created / merged
+and committed or it can executed later. It should be executed at least before
+a release gets tagged.
2.4.x patch: http://people.apache.org/~covener/patches/wstunnel-decline.diff
+1 covener, jim, rpluem
- *) Tooling: Add a new way to document changes
- Trunk version of patch:
- http://svn.apache.org/r1879822
- http://svn.apache.org/r1879831
- http://svn.apache.org/r1879840
- Backport version for 2.4.x of patch:
- Trunk version of patch works
- svn merge -c 1879822,1879831,1879840 ^/httpd/httpd/trunk .
- +1: rpluem, jim, jorton
-
*) Slightly speed-up the execution of the test framework.
Trunk version of patch:
https://svn.apache.org/r1880500
APACHE_SUBST(LIBTOOL)
APACHE_SUBST(SHELL)
APACHE_SUBST(RSYNC)
+ APACHE_SUBST(SVN)
APACHE_SUBST(MODULE_DIRS)
APACHE_SUBST(MODULE_CLEANDIRS)
APACHE_SUBST(PORT)
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)