Author: julianfoad Date: Mon Sep 30 16:37:05 2019 New Revision: 1867782 URL: http://svn.apache.org/viewvc?rev=1867782&view=rev Log: * tools/dist/release.py: Add a new subcommand 'write-release-notes'. * tools/dist/templates/release-notes.ezt: New template.
Added: subversion/trunk/tools/dist/templates/release-notes.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=1867782&r1=1867781&r2=1867782&view=diff ============================================================================== --- subversion/trunk/tools/dist/release.py (original) +++ subversion/trunk/tools/dist/release.py Mon Sep 30 16:37:05 2019 @@ -718,6 +718,25 @@ def create_release_branch(args): #---------------------------------------------------------------------- +def write_release_notes(args): + + template_filename = 'release-notes.ezt' + + prev_ver = Version('%d.%d.0' % (args.version.major, args.version.minor - 1)) + data = { 'major-minor' : args.version.branch, + 'previous-major-minor' : prev_ver.branch, + } + + template = ezt.Template(compress_whitespace=False) + template.parse(get_tmplfile(template_filename).read()) + + if args.edit_html_file: + with open(args.edit_html_file, 'w') as g: + template.generate(g, data) + else: + template.generate(sys.stdout, data) + +#---------------------------------------------------------------------- # Create release artifacts def compare_changes(repos, branch, revision): @@ -1704,6 +1723,22 @@ def main(): subparser.add_argument('--dry-run', action='store_true', default=False, help='Avoid committing any changes to repositories.') + # Setup the parser for the create-release-branch subcommand + subparser = subparsers.add_parser('write-release-notes', + help='''Write a template release-notes file.''') + subparser.set_defaults(func=write_release_notes) + subparser.add_argument('version', type=Version, + help='''A version number to indicate the branch, such as + '1.7.0' (the '.0' is required).''') + subparser.add_argument('revnum', type=lambda arg: int(arg.lstrip('r')), + nargs='?', default=None, + 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.''') + subparser.add_argument('--dry-run', action='store_true', default=False, + help='Avoid committing any changes to repositories.') + # Setup the parser for the roll subcommand subparser = subparsers.add_parser('roll', help='''Create the release artifacts.''') Added: subversion/trunk/tools/dist/templates/release-notes.ezt URL: http://svn.apache.org/viewvc/subversion/trunk/tools/dist/templates/release-notes.ezt?rev=1867782&view=auto ============================================================================== --- subversion/trunk/tools/dist/templates/release-notes.ezt (added) +++ subversion/trunk/tools/dist/templates/release-notes.ezt Mon Sep 30 16:37:05 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] 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] Release Notes</h1> + +<div class="h2" id="news"> +<h2>What's New in Apache Subversion [major-minor] + <a class="sectionlink" href="#news" + title="Link to this section">¶</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">¶</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">¶</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">¶</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">¶</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">¶</a> +</h2> + +</div> <!-- new-features --> + +<div class="h2" id="enhancements"> +<h2>Enhancements and Bugfixes + <a class="sectionlink" href="#enhancements" + title="Link to this section">¶</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">¶</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">¶</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">¶</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">¶</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">¶</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="non-lts-release"> +<h2>Subversion [major-minor].x is a Regular Release + <a class="sectionlink" href="#non-lts-release" + title="Link to this section">¶</a> +</h2> + +<p>[major-minor] is a regular release, not a Long-Term Support release. + This release does not change the status of existing LTS releases + (1.9 and 1.10). + See <a href="/roadmap.html#release-planning">How We Plan Releases</a>.</p> + +<p>Therefore, if you are running into an issue with the old stable +version which has already been fixed in the latest version, we might +ask you to upgrade to that version to resolve the issue.</p> + +</div> <!-- non-lts-release --> + +<!-- ***************** END CONTENT ****************** --> +</div> <!-- #site-content --> +</body> +</html>