On Tue, May 20, 2025 at 8:32 AM <br...@apache.org> wrote: > Author: brane > Date: Tue May 20 12:32:49 2025 > New Revision: 1925717 > > URL: http://svn.apache.org/viewvc?rev=1925717&view=rev > Log: > Add support for verifying the svn command's XML output against the Relax NG > schemas that are defined in ./subversion/svn/schema. We use lxml.etree. > > * subversion/tests/cmdline/svntest/main.py: Import venv. > (venv_bin, venv_dir, SVN_TESTS_REQUIRE, dependencies_ensured: New > globals. > (ensure_dependencies): Create a Python virtual environment in the test > working directory, install the dependencies and update sys.path. > (run_tests): Call ensure_dependencies(). > * subversion/tests/cmdline/svntest/verify.py: > Import os but not sys, io.BytesIO and typing.Iterable. > (SVNXMLSchemaValidationError): New exception type. > (validate_xml_schema): Validate the XML output of 'svn' against a schema. > * subversion/tests/cmdline/svntest/actions.py > (run_and_verify_svn_xml, run_and_verify_svn_xml2): New functions that > run XML validation. > * subversion/tests/cmdline/blame_tests.py, > subversion/tests/cmdline/log_tests.py: Add XML validation > * build/run_tests.py > (TestHarness._init_py_tests): Update PYTHONPATH to point at the > virtualenv.
This: > * Makefile.in (check): No, Python 2.7 is no longer required. and... Modified: > subversion/trunk/Makefile.in > subversion/trunk/build/run_tests.py > subversion/trunk/subversion/tests/cmdline/blame_tests.py > subversion/trunk/subversion/tests/cmdline/log_tests.py > subversion/trunk/subversion/tests/cmdline/svntest/actions.py > subversion/trunk/subversion/tests/cmdline/svntest/main.py > subversion/trunk/subversion/tests/cmdline/svntest/verify.py > > Modified: subversion/trunk/Makefile.in > URL: > http://svn.apache.org/viewvc/subversion/trunk/Makefile.in?rev=1925717&r1=1925716&r2=1925717&view=diff > > ============================================================================== > --- subversion/trunk/Makefile.in (original) > +++ subversion/trunk/Makefile.in Tue May 20 12:32:49 2025 > @@ -645,7 +645,7 @@ check: bin @TRANSFORM_LIBTOOL_SCRIPTS@ $ > $$flags > \ > '$(abs_srcdir)' '$(abs_builddir)' $(TESTS); > \ > else > \ ...this: - echo "make check: Python 2.7 or greater is required,"; > \ > + echo "make check: Python 3.6 or greater is required,"; > \ > echo " but was not detected during configure"; > \ > exit 1; > \ > fi; > So I guess that as of 1.15, we'll actively drop support for Python 2.7.x? That could be a good thing. After all, Python 2.7 has been deprecated for more than 10 years and EOL since before 1.14.0. Removing support for Python 2.7 could help clean up and simplify the Python parts of our codebase. However, the impression I got from past discussions was that we should try not to break compatibility with 2.7 if practical. Perhaps it's time to revisit that? Should we just drop support for Python 2.7 everywhere? Are there systems in use out there that are still stuck with Python 2.7? Are there enough of them to justify the extra efforts needed to support them? Thanks, Nathan