Checkout Tools
  • last updated a few seconds ago
Constraints
Constraints: committers
 
Constraints: files
Constraints: dates

Changeset 1872380 is being indexed.

* tools/dev/unix-build/Makefile.svn: Pass THREADED to svn's Makefile

causing svnserveautocheck.sh to invoke svnserve with -T for threaded

mode. See dev@ email thread "Makefile.svn: a dumb question" started

by me on 2019/12/24, archived at:

https://lists.apache.org/thread.html/87a4facdf92d1e260a1b9cdfdc0a266dcfaa3ee071dcdcae5f34eacd%40%3Cdev.subversion.apache.org%3E

Patch by: danielsh

* tools/dev/unix-build/README: Fix one typo.

* tools/dev/unix-build/Makefile.svn: Switch to Python 3

Follow-up to r1871347:

* tools/examples/walk-config-auth.py: Don't try to '' as a basename.

No functional change, but the new code is more idiomatic.

contribulyze.py: Support Python 3 in addition to Python 2.

Explicitly specify how to sort lists of Contributor and lists of LogMessage.

In Python 2 instances of those classes are comparable to each other by way of

the __cmp__ member function, but Python 3 does not support that member

function.

An alternative would have been to implement __lt__ and use

functools.total_ordering.

* tools/dev/contribulyze.py

(functools): Import.

(Contributor.sort_key): New member function.

(LogMessage.sort_key): New member function.

(Contributor.html_out, drop): Specify sorting order.

* tools/dist/backport.pl: Continue chasing the experimental nature of 'given'

and 'when', through perl5300delta.

Follow up to r1870561: Eliminate loop invariant conditional branch.

* tools/server-side/svn-backup-dumps.py (SvnBackup.exec_cmd_unix)

Follow up to r1870204,r1870217,r1870266: Reduce work to communicate to child

* tools/server-side/svn-backup-dumps.py (SvnBackup.exec_cmd_unix):

- Use Popen.communicate if output is None.

- Pass stdout of the parent to the child process as stderr directly if

printerr is True, to avoid extra encode/decode on py3 and buffering.

Suggested by: Jun Omae <jun66j5_{AT}_gmail.com>

Follow up to r1870217: Fix typo s/backslashrreplace/backslashreplace/

* tools/server-side/svn-backup-dumps.py (SvnBackup.exec_cmd_unix)

Found by: danielsh

Follow up to r1870204: Fix encoding to decode bytes data from stderr

* tools/server-side/svn-backup-dumps.py (SvnBackup.exec_cmd_unix):

- Decoding the data from 'svnadmin dump' as 'utf-8' causes crash when

LC_CTYPE is not 'utf-8'. So we use sys.stdout.encoding which is set

by environment instead.

Suggested by: Jun Omae <jun66j5_{AT}_gmail.com>

- remove white space after printing each stderr output

Make svn-backup-dump.py work on Python 3

* tools/server-side/svn-backup-dumps.py

(SvnBackup.exec_cmd_unix, SvnBackup.exec_cmd_nt):

Fix the type of data read from stdout and stderr, to bytes

* tools/dist/release.py: Use yaml.safe_load.

Suggested by: danielsh

Move release-lines metadata out of 'release.py' into a separate YAML file.

* tools/dist/release-lines.yaml

New.

* tools/dist/release.py

(tool_versions,

recommended_release,

supported_release_lines,

lts_release_lines): Read from 'release-lines.yaml'.

* tools/dist/release.py (recommended_release): Remove TODO: didn't make sense.
Release notes templates: Stop claiming the book will be updated.
mailer.py: 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/mailer.py

(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

danielsh

mailer.py: Handle otherwise uncaught exception in SMTPOutput.finish

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

adding exception handling for SMTP errors, but does not handle a

potential source of exceptions when closing a SMTP session.

* tools/hook-scripts/mailer/mailer.py

(SMTPOutput.finish): Handle exception that may be raised by

server.quit.

Found by: futatuki

Review by: futatuki

* tools/dist/templates/release-notes.ezt

(#non-lts-release): Trim unnecessary old notes, as in r1869167. Link

to existing info.

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.

    • ?
    ./dist/templates/release-notes-lts.ezt
Fix issue #1804: In mailer.py, any SMTP error impedes later emails

Per SVN-1804, any SMTP error terminates mailer.py with an unhandled

exception. The impact is that if the same invocation of mailer.py

would have sent more emails, those that would have been sent after

the exception are silently lost.

To fix this issue, we handle SMTP exceptions. When an exception only

affects a particular email, such as invalid recipient, the error is

reported to stderr and execution continues to avoid losing any later

emails. In contrast, fatal SMTP errors, such as login with bad

credentials, terminate execution as before, but with some additional

reporting to stderr.

The script's exit code is zero if all emails were sent successfully,

nonzero if any SMTP error occurred.

* tools/hook-scripts/mailer/mailer.py

(MessageSendFailure): New exception class to signify non-fatal

message sending failure. This is decoupled from SMTP to allow for

future use with other (non-SMTP) delivery methods.

(SMTPOutput.finish): Reimplement with exception handling and

reporting to stderr.

(Commit.generate, PropChange.generate, Lock.generate): Wrap contents

of for-loop in try..except block to handle new MessageSendFailure;

after the loop runs to completion, return nonzero if SMTP error(s)

occurred.

(main): Propagate return value of messenger.generate() to caller.

(__main__): Exit nonzero if SMTP error(s) occurred.

Found by: Robert M. Zigweid

Review by: danielsh (partial review)

futatuki

release.py: remove 1.12 from supported release lines.
release.py: revert changing interpreter to 'python3' from r1869158.
release.py: some Python 3 fixes.
* tools/dist/release.py

(write_news): Remove scalpel left behind in r1869134.

release.py: Automatically add to dist/ a current KEYS file with each release.

In particular, this means versioned KEYS files will be archived to

archive.a.o/dist/, and will continue to contain keys after those have

been removed from a committer's id.a.o profile.

* tools/dist/release.py

(download_file): Make checksum verification opt-outable.

(roll_tarballs): Download the KEYS file to the target directory.

Rely on TLS for authenticity and integrity of the downloaded

file (as we already do for authenticity and integrity of the subsequent

commit operation).

* tools/dist/templates/download.ezt,

* tools/dist/templates/rc-release-ann.ezt,

* tools/dist/templates/stable-release-ann.ezt:

Link to the per-release KEYS file.

* tools/dist/release.py

(write_news): Validate the argument to the --news-release-date option.

Follow-up to r1869118.

In 'release.py write-news': Add '--news-release-date' option.
Actually support building and testing with Python 3 on the macOS buildslave.

[in tools/buildbot/slaves/svn-x64-macosx]

* svnbuild.sh: For Python 3, activate the virtual environment before

configuring, and set the PYTHON environment variable so that configure

puts the right path in the Makefile.

* svnbuild-bindings.sh: Select which bindings to build and support Python 3.

* svncheck.sh, svncheck-bindings.sh: For Python 3, activate the virtual

environment before running tests.

* tools/dist/nominate.pl

(nominate_main, nominate_usage): Add syntactic sugar CLI for recent revisions.

* tools/dist/release.py

(update_backport_bot): Update instructions for this manual step.