Nathan Hartman

1.14 release notes: Add link to our Python 3 support status wiki page.

* docs/release-notes/1.14.html

(python3-work-in-progress): New subsection.

Review by: julianfoad

1.9 release notes: Document known issue SVN-4722 in 1.9.6 and 1.9.7

* docs/release-notes/1.9.html

(#svn-4722): New subsection.

Review by: danielsh

INSTALL: rearrange/renumber dependencies to list REQUIRED ones at top


(Section I.C. "Dependencies in Detail")

Move required dependencies SQLite, ZLib, and utf8proc to top of

list (after APR), placing them before optional dependencies and in

the same order as in "Dependencies Overview." Renumber the list.

INSTALL: Document required dependency on utf8proc


(Section I.B. "Dependency Overview")

Add bulletpoint for utf8proc.

(Section I.C. "Dependencies in Detail")

Document required dependency on utf8proc and relevant 'configure'


Found by: gstein

Tests: Fix running by itself via 'make check TESTS='

When the entire test suite was run with 'make check', tests in would pass. But when just was run via

'make check TESTS=subversion/tests/cmdline/', all its

tests would fail.

* subversion/tests/cmdline/


Move construction of getopt_output_dir string from global name

space into load_expected_output function.

Patch by: danielsh Adjust expected 'svn help' output

* subversion/tests/cmdline/getopt_tests_data/svn_help_log_switch_stdout

Adjust expected text output of 'svn help log switch' to match

changes to text wrapping in r1870689.

'svn help' output: Rewrap 3 lines that were longer than 80 characters

* subversion/svn/svn.c

(svn_cl__cmd_table): Rewrap first line of 'svn help' output for

'svn cleanup', 'svn changelist', and 'svn switch'. Because the

command name and its aliases are prepended to the first line of

help output, these 3 lines (all of which appear to fit within 80

characters in the code) extended beyond 80 characters at runtime.

1.14 release notes: Add TODO: Use trunk ViewVC links for alpha release

* docs/release-notes/1.14.html:

(Top of the file):

Add TODO reminder to use trunk in ViewVC links if making an alpha


Suggested by: danielsh

1.14 release notes: Add links to ViewVC for INSTALL and

* docs/release-notes/1.14.html:

("New Build-Time Dependency: py3c"):

Make mentions of INSTALL and links to those files in

ViewVC, at branches/1.14.x. This branch does not exist at the time

of this revision. However it will exist once the release is made.

Suggested by: danielsh

In 'staging': catch-up merge from 'publish'
INSTALL: Expand py3c dependency info


(Section I.B., "Dependency Overview" -- py3c)

Capitalize title text and rewrap lines.

(Section I.C.23, "Dependencies in Detail" -- py3c)

Make title text and capitalization consistent with its counterpart

in section I.B. Clarify that py3c is a header-only library.

Provide the download link. Mention that knows how to

download it.

1.14 release notes: mention py3c dependency to build Python bindings

* docs/release-notes/1.14.html:

("What's New in Apache Subversion 1.14"):

Add link to "New Build-Time Dependency: py3c" section.

("New Build-Time Dependency: py3c"):

Document the new py3c dependency. Provide a link to it. Document

that fetches it.

Suggested by: danielsh

INSTALL: Improve BDB deprecation info and when Berkeley DB is needed


(Section I.B. "Dependency Overview" -- Berkeley DB)

Change "not recommended" to "not recommended for new repositories"

and rewrap lines to 72 char width.

(Section I.C. "Dependencies in Detail" -- Berkeley DB)

Fix ambiguity: Berkeley DB libraries are needed to build a BDB-

enabled server, or a client accessing BDB repos via file:// URI

scheme (which might not be on local disk as this text previously

stated). Also, improve explanation about BDB being deprecated and

point out that 'svnadmin info' can show what back end a repository

is using.

Suggested by: danielsh

Review by: danielsh

1.14 release notes: Change huge yellow note box to a regular section

* docs/release-notes/1.14.html:

("Python is Optional" note box):

This information does not need to be in a huge yellow note box.

Change it to a regular section. Add a small yellow note box with a

link to it.

Suggested by: danielsh

1.14 release notes: "Python is Optional" Fix inaccuracy, reorder text

* docs/release-notes/1.14.html:

("Python is Optional" note box):

Fix inaccurate statement regarding hook scripts coded in Python

being (necessarily) affected by the change to Python 3. This is

only true of scripts that use the SWIG Python bindings. Also,

reorder the text for readability: immediately after mentioning the

SWIG bindings, list what they're used for.

Suggested by: danielsh

INSTALL: Fix "recommend" -> "recommended" and rewrap lines


(Section I.B. "Dependency Overview" -- Berkeley DB)

Fix grammar error, "recommend" -> "recommended"; this rewraps

several lines to stay within 72 characters wide.

1.14 release notes: Remove leading space in link to Python PEP-0373

* docs/release-notes/1.14.html:

("Support for Python 2.7 is being phased out"):

Remove unwanted leading space in hyperlink to Python PEP-0373 that

is apparent in the rendered HTML (and also maintain consistency

with our HTML syntax elsewhere) by moving the closing angle

bracket of the 'a' tag to the following line.

Found by: danielsh

Merge 'staging' to 'publish'.
INSTALL: Unify Python-related dependency info from 1.14 release notes


(Section I.C. "Dependencies in Detail" -- Python) Bring in the far

more detailed Python dependency info that was added to the 1.14

release notes in r1869856, but with some editing to better fit the

context of INSTALL. In particular, the new text explains when the

optional dependency of Python is needed and when it is not. Also,

bump the Python version to 3.x, but with a paragraph explaining

that although 2.7 support is being phased out, it technically

still works.

Suggested by: julianfoad

INSTALL: Improve another section regarding Berkeley DB dependency.


("Dependencies in Detail" -- "Berkeley DB") Similar to the change to

"Dependencies Overview" in r1869868, explain that BDB is

deprecated at the beginning of the section to make it more clear

that BDB is not needed if only using FSFS.

INSTALL: Rewrite section about Berkeley DB dependency.


("Dependencies in Detail" -- "Berkeley DB") Add "DEPRECATED" to the

title of the bullet point. Rewrite the paragraph to (hopefully)

make it more clear. Rationale: Avoid having to read a long

paragraph only to find out at the end that BDB is deprecated.

* INSTALL: Fix grammar error regarding optional NASM dependency.

In 'staging': 1.14 release notes: Explain when/how Python is required

* docs/release-notes/1.14.html:

("Python is Optional" note box):

Explain in detail when Subversion requires Python, and also when

it does not, replacing short and vague paragraph.

Suggested by: danielsh

Support building with SWIG 4 on Python 3.x

* build/ac-macros/swig.m4

(SVN_FIND_SWIG): Allow building with SWIG 4+, and add -modern option

when Python 3 and SWIG 3.x are detected.

* subversion/bindings/swig/include/

Use _get_instance_attr and _set_instance_attr.

* subversion/bindings/swig/include/proxy.swg

(_get_instance_attr): New function to get an instance attribute

without metadata for new-style and old-style classes.

(_set_instance_attr): New function to set an instance attribute for

new-style and old-style classes.

* subversion/bindings/swig/INSTALL


SWIG versions for Python 3 bindings (remove the note that SWIG 4+

is not supported).

Patch by: Jun Omae <jun66j5_{AT}>

Review by: brane



On branch 'svn-bisect': Add notes, initial algorithm to BRANCH-README


Expand this file considerably, primarily with thoughts and a

description of an initial algorithm. In particular, the focus is on

implementing a bisect algorithm that handles 'skipped' revisions,

both implicitly skipping revisions that do not touch the branch

being bisected, and explicitly skipping revisions when so instructed

by the user, e.g., when a revision cannot be tested because the

build was broken in that revision.

In 'staging': 1.14 release notes: invite community participation

* docs/release-notes/1.14.html:

("Support for Python 3.x") and

("Support for Python 2.7 is being phased out."):

After describing which versions of Python we intend to support,

add text to the effect that we welcome contributions to extend

support to other versions. Also link to:

("Enthusiastic Contributors Welcome!"): New section at end of

release notes, inviting community participation in Subversion's


Suggested by: julianfoad

In 'staging': add tentative Python support info to 1.14 release notes

* docs/release-notes/1.14.html:

(What's New in Apache Subversion 1.14): Add links to new subsections

described below.

("API changes, improvements and language bindings"): New section

with subsections:

- "Support for Python 3.x"

- "Support for Python 2.7 is being phased out."

Written with many helpful thoughts and suggestions:

Suggested by: julianfoad


Sync-merge 'publish' to 'staging'
    • ?
Improve SWIG 'INSTALL' documentation

* subversion/bindings/swig/INSTALL


- Attempt to make the explanation more clear, especially regarding

which versions of SWIG we support for the Python, Perl, and Ruby

bindings. Also fix a few minor grammar and spelling errors.

Suggested by: danielsh


julianfoad Fix breakage on Python 2 from use of Python 3 syntax

Follow-up on r1869194. That revision addresses issue SVN-1804 by

adding exception handling for SMTP errors. Unfortunately a last-minute

change in that revision uses Python 3+ 'raise..from' syntax. The

script does not yet support Python 3 so this breaks the script for all

Python versions!

* tools/hook-scripts/mailer/

(SMTPOutput.finish): Comment out the two instances of 'from detail'

that break the script, but add a 'TODO' note to uncomment them

when converting the script to Python 3.

Suggested by: futatuki