Author: julianfoad
Date: Mon Nov  4 11:43:55 2019
New Revision: 1869361

URL: http://svn.apache.org/viewvc?rev=1869361&view=rev
Log:
Let 'release.py write-release-notes' update the release notes index and
distinguish between LTS and non-LTS release notes.

* tools/dist/release.py
  (lts_release_lines, is_lts): New.
  (write_release_notes): Choose LTS or non-LTS template. Add an index entry.
  (main): Document it.

* tools/dist/templates/release-notes-lts.ezt
  New file.

Added:
    subversion/trunk/tools/dist/templates/release-notes-lts.ezt
Modified:
    subversion/trunk/tools/dist/release.py

Modified: subversion/trunk/tools/dist/release.py
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?rev=1869361&r1=1869360&r2=1869361&view=diff
==============================================================================
--- subversion/trunk/tools/dist/release.py (original)
+++ subversion/trunk/tools/dist/release.py Mon Nov  4 11:43:55 2019
@@ -106,6 +106,8 @@ tool_versions['trunk'] = tool_versions['
 recommended_release = '1.13'
 # For clean-dist, a whitelist of artifacts to keep, by version.
 supported_release_lines = frozenset({"1.9", "1.10", "1.13"})
+# Long-Term Support (LTS) versions
+lts_release_lines = frozenset({"1.9", "1.10", "1.14"})
 
 # Some constants
 svn_repos = os.getenv('SVN_RELEASE_SVN_REPOS',
@@ -329,6 +331,9 @@ def run_svnmucc(cmd, verbose=True, dry_r
     run_command(['svnmucc'] + cmd, verbose=verbose, dry_run=dry_run)
 
 #----------------------------------------------------------------------
+def is_lts(version):
+    return version.branch in lts_release_lines
+
 def is_recommended(version):
     return version.branch == recommended_release
 
@@ -716,7 +721,10 @@ def create_release_branch(args):
 #----------------------------------------------------------------------
 def write_release_notes(args):
 
-    template_filename = 'release-notes.ezt'
+    # Create a skeleton release notes file from template
+
+    template_filename = \
+        'release-notes-lts.ezt' if is_lts(args.version) else 
'release-notes.ezt'
 
     prev_ver = Version('%d.%d.0' % (args.version.major, args.version.minor - 
1))
     data = { 'major-minor'          : args.version.branch,
@@ -732,6 +740,15 @@ def write_release_notes(args):
     else:
         template.generate(sys.stdout, data)
 
+    # Add an "in progress" entry in the release notes index
+    #
+    index_file = os.path.normpath(args.edit_html_file + '/../index.html')
+    marker = '<ul id="release-notes-list">\n'
+    new_item = '<li><a href="%s.html">Subversion %s</a> – <i>in 
progress</i></li>\n' % (args.version.branch, args.version.branch)
+    edit_file(index_file,
+              re.escape(marker),
+              (marker + new_item).replace('\\', r'\\'))
+
 #----------------------------------------------------------------------
 # Create release artifacts
 
@@ -1748,7 +1765,8 @@ def main():
                     help='''The trunk revision number to base the branch on.
                             Default is HEAD.''')
     subparser.add_argument('--edit-html-file',
-                    help='''Write the template release-notes to this file.''')
+                    help='''Write the template release-notes to this file,
+                            and update 'index.html' in the same directory.''')
     subparser.add_argument('--dry-run', action='store_true', default=False,
                    help='Avoid committing any changes to repositories.')
 

Added: subversion/trunk/tools/dist/templates/release-notes-lts.ezt
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/dist/templates/release-notes-lts.ezt?rev=1869361&view=auto
==============================================================================
--- subversion/trunk/tools/dist/templates/release-notes-lts.ezt (added)
+++ subversion/trunk/tools/dist/templates/release-notes-lts.ezt Mon Nov  4 
11:43:55 2019
@@ -0,0 +1,253 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
+   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd";>
+<html xmlns="http://www.w3.org/1999/xhtml";>
+<head>
+<title>Apache Subversion [major-minor] LTS Release Notes</title>
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<style type="text/css">
+  @import url("/style/site.css");
+</style>
+</head>
+
+<body>
+<!--#include virtual="/site-banner.html" -->
+<!--#include virtual="/site-nav.html" -->
+<div id="site-content">
+<!--#include virtual="/site-notice.html" -->
+<!-- **************** BEGIN CONTENT ***************** -->
+
+<!-- ************************************************ -->
+<!-- Sections start with "###" are either templates   -->
+<!-- or TODOs.  Remove them before release.           -->
+<!-- ************************************************ -->
+
+<h1 style="text-align: center">Apache Subversion [major-minor] LTS Release 
Notes</h1>
+
+<div class="notice">
+<p><span style="color: red"><b>This is work in progress.
+  Subversion [major-minor] has not been released yet.</b></span></p>
+</div>
+
+<div class="h2" id="news">
+<h2>What's New in Apache Subversion [major-minor]
+  <a class="sectionlink" href="#news"
+    title="Link to this section">&para;</a>
+</h2>
+
+<ul>
+  <!-- The main changes...
+  <li><a href="#"
+      >###</a></li>
+  -->
+  <li><a href="#enhancements"
+      >Many enhancements and bug fixes</a></li>
+  <li><a href="#issues"
+      >Known issues in the release</a></li>
+  <!--
+  <li><a href="#troubleshooting"
+      >Troubleshooting issues specific to this release</a></li>
+  -->
+</ul>
+
+<p>Apache Subversion [major-minor] is a superset of all previous Subversion
+releases, and is as of the time of its release considered the current
+"best" release.  Any feature or bugfix in 1.0.x through 
[previous-major-minor].x is also
+in [major-minor], but [major-minor] contains features and bugfixes not present 
in any
+earlier release.  The new features will eventually be documented in a
+[major-minor] version of the free Subversion book
+(<a href="http://svnbook.red-bean.com/"; >svnbook.red-bean.com</a>).</p>
+
+<p>This page describes only major changes.  For a complete list of
+changes, see the [major-minor] section of the <a
+href="https://svn.apache.org/repos/asf/subversion/trunk/CHANGES"; >CHANGES</a>
+file.</p>
+
+</div>  <!-- news -->
+
+<div class="h2" id="compatibility">
+<h2>Compatibility Concerns
+  <a class="sectionlink" href="#compatibility"
+    title="Link to this section">&para;</a>
+</h2>
+
+<p>Older clients and servers interoperate transparently with [major-minor]
+servers and clients.  However, some of the new [major-minor] features may not 
be
+available unless both client and server are the latest version.  There are
+also cases where a new feature will work but will run less efficiently if
+the client is new and the server old.</p>
+
+<p>There is <strong>no need</strong> to <a 
href="http://svnbook.red-bean.com/en/1.8/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate.svnadmin";
+>dump and reload</a> your repositories. 
+Subversion [major-minor] servers can read and write to repositories created by
+earlier versions.  To upgrade an existing server installation, just install the
+newest libraries and binaries on top of the older ones.</p>
+
+<p>Subversion [major-minor] maintains API/ABI compatibility with earlier
+releases, by only adding new functions, never removing old ones.  A
+program written to any previous 1.x API can both compile
+and run using [major-minor] libraries.  However, a program written for 
[major-minor]
+cannot necessarily compile or run against older libraries.</p>
+
+<p>There may be limited cases where the behavior of old APIs has been
+slightly modified from previous releases.  These are cases where edge cases
+of the functionality has been deemed buggy, and therefore improved or removed.
+Please consult the
+<a 
href="https://svn.apache.org/repos/asf/subversion/trunk/notes/api-errata/[major-minor]/";
+>API errata</a> for more detailed information on what these APIs are
+and what impact these changes may have.</p>
+
+<div class="h3" id="new-feature-compatibility-table">
+<h3>New Feature Compatibility Table
+  <a class="sectionlink" href="#new-feature-compatibility-table"
+    title="Link to this section">&para;</a>
+</h3>
+<table border="1">
+  <tr>
+    <th>New Feature</th>
+    <th>Minimum Client<sup>1</sup></th>
+    <th>Minimum Server</th>
+    <th>Minimum Repository</th>
+    <th>Notes</th></tr>
+</table>
+
+</div>  <!-- new-feature-compatibility-table -->
+
+<div class="h3" id="wc-upgrade">
+<h3>Upgrading the Working Copy
+  <a class="sectionlink" href="#wc-upgrade"
+    title="Link to this section">&para;</a>
+</h3>
+
+<p>Subversion [major-minor] uses the same working copy format as Subversion 
1.8 through [previous-major-minor].</p>
+
+<p>Before using Subversion [major-minor] with an existing Subversion 1.7 or 
older
+working copy, users will be required to run the <tt>svn upgrade</tt> command
+to upgrade working copy metadata to the new format. This command may take a
+while in some cases, and for some users, it may be more practical to simply
+checkout a new working copy.</p>
+
+<p><strong>Note:</strong> Subversion [major-minor] cannot upgrade working 
copies that
+a 1.6 client would have refused to operate upon before an <tt>svn cleanup</tt>
+was run (with a 1.6 client).  In other words, before upgrading to 1.8 or newer,
+a 1.6
+or older client must be used to run <tt>svn cleanup</tt> on all 1.6 or older
+working copies that require cleanup.  Likewise, Subversion [major-minor] 
cannot upgrade
+corrupt working copies. Unfixable problems can arise from missing or corrupt
+meta-data inside <tt>.svn</tt> directories.  Such damage to the working copy
+is permanent, and cannot be fixed even if <tt>svn cleanup</tt> is run prior
+to the upgrade.</p>
+
+<p>If your working copy does not upgrade cleanly, please check out a new one.
+</p>
+
+</div>  <!-- wc-upgrade -->
+
+<!-- (This section only makes sense when there are some issues listed in it.)
+<div class="h3" id="compat-misc">
+<h3>Miscellaneous Compatibility Notes
+  <a class="sectionlink" href="#compat-misc"
+    title="Link to this section">&para;</a>
+</h3>
+
+<p>There are some additional specific areas where changes made in this
+release might necessitate further adjustment by administrators or
+users.  We'll cover those in this section.</p>
+
+</div>  <!- - compat-misc - ->
+-->
+
+</div>  <!-- compatibility -->
+
+<div class="h2" id="new-features">
+<h2>New Features
+  <a class="sectionlink" href="#new-features"
+    title="Link to this section">&para;</a>
+</h2>
+
+</div>  <!-- new-features -->
+
+<div class="h2" id="enhancements">
+<h2>Enhancements and Bugfixes
+  <a class="sectionlink" href="#enhancements"
+    title="Link to this section">&para;</a>
+</h2>
+
+<!-- Don't need to highlight every bugfix, just major ones which aren't in
+     any patch release. -->
+
+<div class="h3" id="cmdline">
+<h3>Command-line client improvements (<em>client</em>)
+  <a class="sectionlink" href="#cmdline"
+    title="Link to this section">&para;</a>
+</h3>
+
+</div> <!-- cmdline -->
+
+<div class="h3" id="server-side-improvements">
+<h3>Server-side improvements
+  <a class="sectionlink" href="#server-side-improvements"
+     title="Link to this section">&para;</a>
+</h3>
+
+</div> <!-- server-side-improvements -->
+
+<div class="h3" id="client-server-improvements">
+<h3>Client- and server-side improvements
+  <a class="sectionlink" href="#client-server-improvements"
+     title="Link to this section">&para;</a>
+</h3>
+
+</div> <!-- client-server-improvements -->
+
+</div>  <!-- enhancements -->
+
+<div class="h2" id="issues">
+<h2>Known issues in the release
+  <a class="sectionlink" href="#issues"
+    title="Link to this section">&para;</a>
+</h2>
+
+<p>There are no known issues specific to this release at the moment.</p>
+
+<!--
+<p>There are some known issues in the Subversion [major-minor] releases.  These
+may be fixed in later [major-minor].x releases.</p>
+-->
+
+</div>  <!-- issues -->
+
+<!-- (This section only makes sense when there are some issues listed in it.)
+<div class="h2" id="troubleshooting">
+<h2>Troubleshooting issues specific to this release
+  <a class="sectionlink" href="#troubleshooting"
+    title="Link to this section">&para;</a>
+</h2>
+
+<p>Subversion [major-minor] introduces new features and makes use of new 
techniques
+which can trigger problems not encountered in previous versions. In contrast to
+known issues, things listed here are not due to some bug or issue in Subversion
+itself and therefore cannot be fixed with a new patch release.
+This section lists all known problems and provides instructions to solve them,
+if they occur.</p>
+
+<p>There are no known issues specific to this release at the moment.</p>
+
+</div>  <!- - troubleshooting - ->
+-->
+
+<div class="h2" id="lts-release">
+<h2>Subversion [major-minor].x is a Long-Term Support (LTS) Release
+  <a class="sectionlink" href="#lts-release"
+    title="Link to this section">&para;</a>
+</h2>
+
+<p>[major-minor] is a Long-Term Support (LTS) release.
+   See <a href="/docs/release-notes/#supported-versions">Supported Versions</a>
+   and <a href="/roadmap.html#release-planning">How We Plan Releases</a>.</p>
+
+</div>  <!-- lts-release -->
+
+<!-- ***************** END CONTENT ****************** -->
+</div> <!-- #site-content -->
+</body>
+</html>


Reply via email to