summaryrefslogtreecommitdiff
path: root/macros/texinfo/texinfo/README-hacking
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2021-07-04 03:01:24 +0000
committerNorbert Preining <norbert@preining.info>2021-07-04 03:01:24 +0000
commit7994f86ec5e18f9d0d9f90161a2f26dd26d26af7 (patch)
tree88edb7d1a1aed3183a1350202c898716b4ac59ce /macros/texinfo/texinfo/README-hacking
parent03fa062b03ce2bb5385f8f30888f94d441fa5cb4 (diff)
CTAN sync 202107040301
Diffstat (limited to 'macros/texinfo/texinfo/README-hacking')
-rw-r--r--macros/texinfo/texinfo/README-hacking132
1 files changed, 91 insertions, 41 deletions
diff --git a/macros/texinfo/texinfo/README-hacking b/macros/texinfo/texinfo/README-hacking
index 9b658086fb..db9a3b90ec 100644
--- a/macros/texinfo/texinfo/README-hacking
+++ b/macros/texinfo/texinfo/README-hacking
@@ -1,6 +1,6 @@
This file describes the development environment for Texinfo.
- Copyright 2002-2019 Free Software Foundation, Inc.
+ Copyright 2002-2021 Free Software Foundation, Inc.
Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
@@ -61,10 +61,55 @@ once, because of rules to create man pages under the man/ directory.
"make dist" will fail if the use of Perl XS extension modules is
disabled and there is no Makefile in the XSParagraph subdirectory.
+
+Using git
+---------
+
+This section is if you have write access to the git repository.
+
+Usually commits to the git repository should include a ChangeLog
+entry. Please follow the existing style (the GNU Coding Standards
+has a guide).
+
+You can automatically use the contents of the most recent ChangeLog
+entry with a git commit hook .git/hooks/prepare-commit-msg
+
+------------------------------------
+#!/bin/sh
+
+# $1 - file that contains commit log message
+# $2 - source of commit message
+
+outfile="$1"
+
+case $2 in
+ message|template|merge|squash|commit)
+ ;;
+ *)
+ # Use latest ChangeLog entry as commit message
+ sed -n -e '1,/^\w*$/d' -e '/^[^ ]/q' -e '{s/^ //;p}' ChangeLog >"$outfile"
+;;
+esac
+------------------------------------
+
+When unable to push commits due to other commits being made, please
+use "git pull --rebase" (the default for "git pull" complicates the
+git history). To deal with conflicts in the ChangeLog, you should
+install the git-merge-changelog program.
+
+You can get better output from "git diff" for Texinfo files by putting
+the following section in your .gitconfig file:
+
+[diff "texinfo"]
+ xfuncname = "^(@node .*)$"
+
+This shows which node each change occurred in.
+
+
Gnulib
------
-This distribution also uses Gnulib (http://www.gnu.org/software/gnulib)
+This distribution uses Gnulib (http://www.gnu.org/software/gnulib)
to share common files. Gnulib files used in Texinfo are checked in to
the repository. If you get automake/conf/etc. errors from ./autogen.sh,
please try getting a checkout of gnulib (in a separate directory from
@@ -144,67 +189,75 @@ program. All the usual Texinfo output formats are possible.
Steps for making a release (pretest or official):
- When close to official release:
+
check at latest automake/autoconf/gettext version, and mention in NEWS
(to upgrade gettext, run
gettextize -f --po-dir=po --po-dir=po_document
after installing new version of gettext)
-special pleading with bug-texinfo / beebe / platform-testers to try.
-check OpenCSW build reports at
- https://buildfarm.opencsw.org/buildbot/waterfall?category=texinfo
+# Under the top level, and also under tp/Texinfo/XS, which uses
+# a separate gnulib import.
+gnulib-tool --add-import
+
+After upgrading automake/autoconf/gettext/gnulib, run ./autogen.sh
+and/or "autoreconf --verbose --force --install" and/or util/srclist-txi
+to update ancilliary files in build-aux and elsewhere. Check changes before
+committing.
+
try groff.texinfo from groff source repo.
+Check "make ccheck" and "make vcheck" work in "doc/refcard".
process doc/texinfo-tex-test.texi with TeX and check that output is good.
+check for C compiler warnings by configuring with -Wall (not all have to
+be fixed)
+Have a look at the output of "git status -u" to check for files that
+ should be tracked in git or ignored.
+make po-check # update po/POTFILES.in as needed
+
-- First checks:
+- Final (easy) checks:
+
+check OpenCSW build reports at
+ https://buildfarm.opencsw.org/buildbot/waterfall?category=texinfo
+Check that translations have been updated, e.g.:
+ rsync -Lrtzv translationproject.org::tp/latest/texinfo/ po
+ rsync -Lrtzv translationproject.org::tp/latest/texinfo_document/ \
+ po_document # note the trailing slashes in these commands
+make
+make update-po # both po and po_document needed, build a dist first
Ensure texinfo.tex, texi2dvi, and htmlxref.cnf are updated on ftp.gnu.org.
Ensure TXI_XLATE in doc/Makefile.am matches actual file list.
Check that LINGUAS under po and po_document match actual file list.
-Have a look at the output of "git status -u" to check for files that
- should be tracked in git or ignored.
Check that TEXINFO_DTD_VERSION has been updated to the next version in
configure.ac if the DTD has been modified since the last release.
See comments in configure.ac, and run (at the top level) make dtd-check.
-Check "make ccheck" and "make vcheck" work in "doc/refcard".
Check "dist-xz" is in the option list in configure.ac (often removed
for speed when testing).
-Update copyright years in many files for release; best to grep -r for
- the previous year. See also ChangeLog entries for "copyright years".
- No need (though it's ok) to change every source file at once, just the
- ones relevant to --version calls, etc., such as texindex.awk and info.c.
-make po-check # update po/POTFILES.in as needed
-check for C compiler warnings by configuring with -Wall (not all have to
-be fixed)
-
-# Under the top level, and also under tp/Texinfo/XS, which uses
-# a separate gnulib import.
-gnulib-tool --add-import
+update version in configure.ac, notice in ChangeLog.
+check up to date copyright years in files relevant to --version calls
+(tp/texi2any.pl, info/info.c, install-info/install-info.c)
+version number in texi2any.pl, texi2dvi, texi2pdf, txirefcard.tex.
+check that texindex version is updated properly
+ (cd texindex ; rm texindex.awk ; make)
+(cd tp && ./maintain/change_perl_modules_version.sh auto)
+ -- this updates all the version numbers in the Perl modules
+(cd tp ; maintain/regenerate_file_lists.pl) # list all test results
+one last "git diff" to check release commit looks good
+make distcheck
+(export MALLOC_CHECK_=2; make distcheck) # repeat until clean
+git commit and push
-util/srclist-txi # for pretest, to sync files with other sources
+after uploading distribution,
+pretest announcement -> bug-texinfo / beebe / platform-testers to try.
+bcc coordinator@translationproject.org.
- Official releases only:
version and date in NEWS.
-version number in texi2dvi, texi2pdf, txirefcard.tex.
+version number in txirefcard.tex.
(cd tp && maintain/regenerate_documentlanguages.pl)
-- regenerates tp/Texinfo/Documentlanguages.pm
make V=1 pdf and fix underfull/overfull boxes.
-- Changes to sources:
-update version in configure.ac, notice in ChangeLog.
-(cd tp && ./maintain/change_perl_modules_version.sh auto)
- -- this updates all the version numbers in the Perl modules
-check that texindex version is updated properly
- (rm texindex.awk ; make)
-Check that translations have been updated, e.g.:
- rsync -Lrtzv translationproject.org::tp/latest/texinfo/ po
- rsync -Lrtzv translationproject.org::tp/latest/texinfo_document/ \
- po_document # note the trailing slashes in these commands
-
-make
-make update-po # both po and po_document needed, build a dist first
-TEXINFO_XS_PARSER=1 make distcheck # to check XS parser is good
-(export MALLOC_CHECK_=2; make distcheck) # repeat until clean
-git commit and push
- To do the actual upload:
pkg=texinfo
@@ -255,9 +308,6 @@ cvs -qn update, followed by cvs add. When done, run cvs commit.
# Official releases only: Contact root@tug.org to update texinfo at tug.org
-# For pretest release, send announcement to bug-texinfo and
-bcc coordinator@translationproject.org.
-
# For official releases:
send announcement to info-gnu,
cc bug-texinfo and bcc coordinator@translationproject.org.