On 1. 6. 2026 17:41, Ivan Zhakov wrote:
On Fri, 22 May 2026 at 13:50, Branko Čibej <[email protected]> wrote:

    On 22. 5. 26 12:27, Branko Čibej wrote:
    On 22. 5. 26 11:50, [email protected] wrote:
    Author: brane
    Date: Fri May 22 09:50:14 2026
    New Revision: 1934497

    Log:
    Allow the tests to work with a non-standart Python 3 installation that
    does not provide the 'venv' module.


    This commit addresses some of Ivan's concerns.

    1. The 'venv' module isn't available

    'venv' is part of the Python standard library, so strictly
    speaking, it should always be available to the tests. But it's no
    big deal to make it conditional. If it's not present, the test
    driver won't attempt to create a virtual environment or download
    any dependencies.

I tested this with CMake, but the graceful degradation doesn't seem to be working. In my case, configuration fails with an AssertionError:
[[[
cmake -B out\1 -S . "-DCMAKE_TOOLCHAIN_FILE=..\vcpkg\scripts\buildsystems\vcpkg.cmake" "-DSVN_ENABLE_RA_SERF=OFF" "-DSVN_ENABLE_TESTS=ON" "-DPython3_ROOT_DIR=..\python" "-DPython3_FIND_REGISTRY=NEVER" -- Selecting Windows SDK version 10.0.26100.0 to target Windows 10.0.26200.
Traceback (most recent call last):
  File "C:\Ivan\OpenSource\svn-trunk\build\run_tests.py", line 1167, in <module>
    main()
  File "C:\Ivan\OpenSource\svn-trunk\build\run_tests.py", line 1117, in main
    main_create_venv(opts, args)
  File "C:\Ivan\OpenSource\svn-trunk\build\run_tests.py", line 1161, in main_create_venv
    python_prog, _ = svntest.main.create_python_venv(venv_dir, quiet=True)
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Ivan/OpenSource/svn-trunk\subversion\tests\cmdline\svntest\main.py", line 2500, in create_python_venv
    assert venv is not None
           ^^^^^^^^^^^^^^^^
AssertionError
CMake Error at CMakeLists.txt:892 (message):
  run_tests.py --create-python-venv failed.

<...>


It seems that only CMakeLists.txt runs

    run_tests.py --create-python-venv


I missed that, I'll remove it from CMakeLists.txt and from the run_tests.py options. It shouldn't be there.


[...]

My strong preference here is that we remain *secure* by default for all build systems, meaning that the build system should not download anything from the Internet implicitly and only do so if the user explicitly opts in.

I agree, my problem with this is that users (us, developers!) just won't opt in. In this case, we can't even say, "install these Python dependencies or your tests will fail". Or, we could, but then downstream users will not be happy.

I'm open to ideas for a compromise that will make everyone unhappy, as compromises usually do.

-- Brane

Reply via email to