1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-18 17:42:25 +03:00

Split the release notes into a separate file for each (active) major branch,

as per my recent proposal.  release.sgml itself is now just a stub that should
change rarely; ideally, only once per major release to add a new include line.
Most editing work will occur in the release-N.N.sgml files.  To update a back
branch for a minor release, just copy the appropriate release-N.N.sgml
file(s) into the back branch.

This commit doesn't change the end-product documentation at all, only the
source layout.  However, it makes it easy to start omitting ancient information
from newer branches' documentation, should we ever decide to do that.
This commit is contained in:
Tom Lane
2009-05-02 20:17:45 +00:00
parent 5558c58c83
commit c596ea4568
9 changed files with 24397 additions and 24309 deletions

View File

@ -0,0 +1,58 @@
#! /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 <link> 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.
#
# $PostgreSQL: pgsql/doc/src/sgml/generate_history.pl,v 1.1.4.1 2009/05/02 20:17:45 tgl Exp $
use strict;
my($srcdir) = shift;
defined($srcdir) || die "$0: missing required argument: srcdir\n";
my($infile) = shift;
defined($infile) || die "$0: missing required argument: inputfile\n";
# Emit DOCTYPE header so that the output is a self-contained SGML document
print "<!DOCTYPE appendix PUBLIC \"-//OASIS//DTD DocBook V4.2//EN\">\n";
process_file($infile);
exit 0;
sub process_file {
my($filename) = @_;
local *FILE; # need a local filehandle so we can recurse
my($f) = $srcdir . '/' . $filename;
open(FILE, $f) || die "could not read $f: $!\n";
while (<FILE>) {
# Recursively expand sub-files of the release notes
if (m/^&(release-.*);$/) {
process_file($1 . ".sgml");
next;
}
# Remove <link ...> tags, which might span multiple lines
while (m/<link/) {
if (s/<link\s+linkend[^>]*>//) {
next;
}
# incomplete tag, so slurp another line
$_ .= <FILE>;
}
# Remove </link> too
s|</link>||g;
print;
}
close(FILE);
}