From 2895415205d86cc7ab55acab5f90fd70a7c68f3c Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Mon, 10 Feb 2014 20:48:04 -0500 Subject: [PATCH] Don't generate plain-text HISTORY and src/test/regress/README anymore. Providing this information as plain text was doubtless worth the trouble ten years ago, but it seems likely that hardly anyone reads it in this format anymore. And the effort required to maintain these files (in the form of extra-complex markup rules in the relevant parts of the SGML documentation) is significant. So, let's stop doing that and rely solely on the other documentation formats. Per discussion, the plain-text INSTALL instructions might still be worth their keep, so we continue to generate that file. Rather than remove HISTORY and src/test/regress/README from distribution tarballs entirely, replace them with simple stub files that tell the reader where to find the relevant documentation. This is mainly to avoid possibly breaking packaging recipes that expect these files to exist. Back-patch to all supported branches, because simplifying the markup requirements for release notes won't help much unless we do it in all branches. --- GNUmakefile.in | 4 +- HISTORY | 6 +++ README | 3 +- README.git | 12 ++--- doc/src/sgml/.gitignore | 4 -- doc/src/sgml/Makefile | 33 +++++--------- doc/src/sgml/docguide.sgml | 21 +++------ doc/src/sgml/generate_history.pl | 65 ---------------------------- doc/src/sgml/release.sgml | 5 +-- doc/src/sgml/standalone-install.sgml | 16 +------ src/test/regress/README | 3 ++ src/tools/RELEASE_CHANGES | 1 - 12 files changed, 36 insertions(+), 137 deletions(-) create mode 100644 HISTORY delete mode 100644 doc/src/sgml/generate_history.pl create mode 100644 src/test/regress/README diff --git a/GNUmakefile.in b/GNUmakefile.in index 40ab2804f7..a573880d79 100644 --- a/GNUmakefile.in +++ b/GNUmakefile.in @@ -103,10 +103,8 @@ distdir: fi || exit; \ done $(MAKE) -C $(distdir) distprep - $(MAKE) -C $(distdir)/doc/src/sgml/ HISTORY INSTALL regress_README - cp $(distdir)/doc/src/sgml/HISTORY $(distdir)/ + $(MAKE) -C $(distdir)/doc/src/sgml/ INSTALL cp $(distdir)/doc/src/sgml/INSTALL $(distdir)/ - cp $(distdir)/doc/src/sgml/regress_README $(distdir)/src/test/regress/README $(MAKE) -C $(distdir) distclean rm -f $(distdir)/README.git diff --git a/HISTORY b/HISTORY new file mode 100644 index 0000000000..360c7f68b3 --- /dev/null +++ b/HISTORY @@ -0,0 +1,6 @@ +Release notes for all versions of PostgreSQL can be found on-line at +http://www.postgresql.org/docs/devel/static/release.html + +In a distribution file set, release notes for the current version can be +found prebuilt under doc/src/sgml/html/. Visit the index.html file with +an HTML browser, then consult the "Release Notes" appendix. diff --git a/README b/README index 49d55af5f6..302028e992 100644 --- a/README +++ b/README @@ -17,8 +17,7 @@ See the file INSTALL for instructions on how to build and install PostgreSQL. That file also lists supported operating systems and hardware platforms and contains information regarding any other software packages that are required to build or run the PostgreSQL -system. Changes between all PostgreSQL releases are recorded in the -file HISTORY. Copyright and license information can be found in the +system. Copyright and license information can be found in the file COPYRIGHT. A comprehensive documentation set is included in this distribution; it can be read as described in the installation instructions. diff --git a/README.git b/README.git index d5378b4573..0bf2b56cb3 100644 --- a/README.git +++ b/README.git @@ -1,12 +1,12 @@ (This file does not appear in release tarballs.) -In a release or snapshot tarball of PostgreSQL, documentation files named -INSTALL and HISTORY will appear in this directory. However, these files are -not stored in git and so will not be present if you are using a git checkout. -If you are using git, you can view the most recent install instructions at: +In a release or snapshot tarball of PostgreSQL, a documentation file named +INSTALL will appear in this directory. However, this file is not stored in +git and so will not be present if you are using a git checkout. + +If you are using a git checkout, you can view the most recent installation +instructions at: http://www.postgresql.org/docs/devel/static/installation.html -and the current release notes at: - http://www.postgresql.org/docs/devel/static/release.html Users compiling from git will also need compatible versions of Bison, Flex, and Perl, as discussed in the install documentation. These programs are not diff --git a/doc/src/sgml/.gitignore b/doc/src/sgml/.gitignore index e1b84b490f..2f0329c15f 100644 --- a/doc/src/sgml/.gitignore +++ b/doc/src/sgml/.gitignore @@ -6,9 +6,7 @@ /man7/ /man-stamp # Other popular build targets -/HISTORY /INSTALL -/regress_README /postgres-US.pdf /postgres-A4.pdf /postgres.html @@ -22,9 +20,7 @@ /HTML.index # Assorted byproducts from building the above /postgres.xml -/HISTORY.html /INSTALL.html -/regress_README.html /postgres-US.aux /postgres-US.log /postgres-US.out diff --git a/doc/src/sgml/Makefile b/doc/src/sgml/Makefile index a6a6ef3962..304b3627e0 100644 --- a/doc/src/sgml/Makefile +++ b/doc/src/sgml/Makefile @@ -215,33 +215,20 @@ JADE.text = $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d stylesheet.dsl -i ICONV = iconv LYNX = lynx -# The release notes may contain non-ASCII characters (for contributor -# names), which lynx converts to the encoding determined by the -# current locale. The get output that is deterministic and easily -# readable by everyone, we make lynx produce LATIN1 and then convert -# that to ASCII with transliteration for the non-ASCII characters. -# Official releases are currently built on FreeBSD, which has limited +# The documentation may contain non-ASCII characters (mostly for +# contributor names), which lynx converts to the encoding determined +# by the current locale. To get text output that is deterministic and +# easily readable by everyone, we make lynx produce LATIN1 and then +# convert that to ASCII with transliteration for the non-ASCII characters. +# Official releases were historically built on FreeBSD, which has limited # locale support and is very picky about locale name spelling. The # below has been finely tuned to run on FreeBSD and Linux/glibc. -INSTALL HISTORY regress_README: % : %.html +INSTALL: % : %.html $(PERL) -p -e 's/ $@ INSTALL.html: standalone-install.sgml installation.sgml version.sgml $(JADE.text) -V nochunks standalone-install.sgml installation.sgml > $@ -HISTORY.html: generate_history.pl $(wildcard $(srcdir)/release*.sgml) - $(PERL) $< "$(srcdir)" release.sgml >tempfile_HISTORY.sgml - $(JADE.text) -V nochunks tempfile_HISTORY.sgml > $@ - rm tempfile_HISTORY.sgml - -regress_README.html: regress.sgml - ( echo ''; \ - echo ' ]>'; \ - cat $< ) >tempfile_regress_README.sgml - $(JADE.text) -V nochunks tempfile_regress_README.sgml > $@ - rm tempfile_regress_README.sgml - ## ## XSLT processing @@ -393,13 +380,13 @@ check-tabs: # This allows removing some files from the distribution tarballs while # keeping the dependencies satisfied. .SECONDARY: postgres.xml $(GENERATED_SGML) HTML.index -.SECONDARY: INSTALL.html HISTORY.html regress_README.html +.SECONDARY: INSTALL.html .SECONDARY: %-A4.tex-ps %-US.tex-ps %-A4.tex-pdf %-US.tex-pdf clean: # text --- these are shipped, but not in this directory - rm -f INSTALL HISTORY regress_README - rm -f INSTALL.html HISTORY.html regress_README.html + rm -f INSTALL + rm -f INSTALL.html # single-page output rm -f postgres.html postgres.txt # print diff --git a/doc/src/sgml/docguide.sgml b/doc/src/sgml/docguide.sgml index c9c9862564..3cc1d60c49 100644 --- a/doc/src/sgml/docguide.sgml +++ b/doc/src/sgml/docguide.sgml @@ -942,26 +942,19 @@ save_size.pdfjadetex = 15000 Plain Text Files - Several files are distributed as plain text, for reading during - the installation process. The INSTALL file + The installation instructions are also distributed as plain text, + in case they are needed in a situation where better reading tools + are not available. The INSTALL file corresponds to , with some minor changes to account for the different context. To recreate the file, change to the directory doc/src/sgml - and enter gmake INSTALL. This will create - a file INSTALL.html that can be saved as text - with Netscape Navigator and put into - the place of the existing file. - Netscape seems to offer the best - quality for HTML to text conversions (over - lynx and - w3m). + and enter gmake INSTALL. - The file HISTORY can be created similarly, - using the command gmake HISTORY. For the - file src/test/regress/README the command is - gmake regress_README. + In the past, the release notes and regression testing instructions + were also distributed as plain text, but this practice has been + discontinued. diff --git a/doc/src/sgml/generate_history.pl b/doc/src/sgml/generate_history.pl deleted file mode 100644 index 1d90c676c7..0000000000 --- a/doc/src/sgml/generate_history.pl +++ /dev/null @@ -1,65 +0,0 @@ -#! /usr/bin/perl -w - -# generate_history.pl -- flatten release notes for use as HISTORY file -# -# Usage: generate_history.pl srcdir release.sgml >output.sgml -# -# The main point of this script is to strip out references, which -# generally point into the rest of the documentation and so can't be used -# in a standalone build of the release notes. To make sure this is done -# everywhere, we have to fold in the sub-files of the release notes. -# -# doc/src/sgml/generate_history.pl - -use strict; - -my $srcdir = shift; -die "$0: missing required argument: srcdir\n" if !defined($srcdir); -my $infile = shift; -die "$0: missing required argument: inputfile\n" if !defined($infile); - -# Emit DOCTYPE header so that the output is a self-contained SGML document -print "\n"; - -process_file($infile); - -exit 0; - -sub process_file -{ - my $filename = shift; - - local *FILE; # need a local filehandle so we can recurse - - my $f = $srcdir . '/' . $filename; - open(FILE, $f) || die "could not read $f: $!\n"; - - while () - { - - # Recursively expand sub-files of the release notes - if (m/^&(release-.*);$/) - { - process_file($1 . ".sgml"); - next; - } - - # Remove tags, which might span multiple lines - while (m/]*>//) - { - next; - } - - # incomplete tag, so slurp another line - $_ .= ; - } - - # Remove too - s|||g; - - print; - } - close(FILE); -} diff --git a/doc/src/sgml/release.sgml b/doc/src/sgml/release.sgml index 0980c6eb5f..8cfd57d9f1 100644 --- a/doc/src/sgml/release.sgml +++ b/doc/src/sgml/release.sgml @@ -34,9 +34,7 @@ non-ASCII characters find using grep -P '[\x80-\xFF]' wrap long lines -For new features, add links to the documentation sections. Use -not just so that generate_history.pl can remove it, so HISTORY.html -can be created without links to the main documentation. Don't use . +For new features, add links to the documentation sections. --> @@ -71,7 +69,6 @@ can be created without links to the main documentation. Don't use . s * Update timezone data to match latest zic database and new Windows releases, if any (see src/timezone/README)