#1082338 yarsync FTBFS with Python 3.13

Package:
src:yarsync
Source:
src:yarsync
Submitter:
Stefano Rivera
Date:
2025-01-01 00:24:02 UTC
Severity:
normal
Tags:
#1082338#5
Date:
2024-09-20 07:04:56 UTC
From:
To:
This package failed build from source when test-built against a version of
python3-defaults that includes 3.13 as a supported version.

To reproduce this issue, build against python3-defaults (python3-all-dev etc.)
from Debian experimental.

What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html

Log snippet:

I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build; python3.13 -m pytest --ignore=tests/test_clone.py --ignore=tests/test_status.py
============================= test session starts ==============================
platform linux -- Python 3.13.0rc2, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build
configfile: pytest.ini
plugins: typeguard-4.3.0, cov-5.0.0, mock-3.14.0
collected 31 items

tests/test_commit.py F.....                                              [ 19%]
tests/test_env_vars.py .                                                 [ 22%]
tests/test_init.py FF.                                                   [ 32%]
tests/test_log.py ....                                                   [ 45%]
tests/test_pull_push.py ......                                           [ 64%]
tests/test_remote.py .                                                   [ 67%]
tests/test_sync.py ..                                                    [ 74%]
tests/test_ys_helpers.py ........                                        [100%]

=================================== FAILURES ===================================
            # call(ys.REPOFILE),
            # call().__enter__(),
            # call().read(),
            # call().__exit__(None, None, None),
            # call(commit_log_path, "w"),
            call().__enter__(),
            call().write(commit_msg + "\n\n"
                         "When: {}\n".format(time_str) +
                         "Where: user@myhost"),
            call().write('\n'),
            call().__exit__(None, None, None),
        ]
E       assert [call().__ent...all().close()] == [call().__ent..., None, None)]
E
E         Left contains one more item: call().close()
E         Use -v to get more diff

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_commit.py:97: AssertionError
----------------------------- Captured stdout call -----------------------------
mkdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_dir_empty/.ys/commits
rsync -a --link-dest=../../.. --exclude=/.ys '--filter=merge /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_dir_empty/.ys/rsync-filter' --exclude=/.ys/* /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_dir_empty/ /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_dir_empty/.ys/commits/2_tmp
mkdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_dir_empty/.ys/logs
commit 2 created

initial commit

When: Thu, 01 Jan 1970 00:00:03 UTC
Where: user@myhost

            # call(conffile, "w"), call().__enter__(),
            # call().write(CONFIG_EXAMPLE), call().write(''),
            # call().__exit__(None, None, None),
            call(repofile, "x"), call().__enter__(),
            call().__exit__(None, None, None)
        ]
E       AssertionError: assert [call('.ys/re...all().close()] == [call('.ys/re..., None, None)]
E
E         Left contains one more item: call().close()
E         Use -v to get more diff

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_init.py:44: AssertionError
----------------------------- Captured stdout call -----------------------------
Initialize configuration
.ys already exists, skip
.ys/config.ini already exists, skip
# create configuration file .ys/repo_my_repo.txt

Initialized yarsync configuration in /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_dir_empty/.ys

            # mkdir is recorded separately
            call(conffile, "w"), call().__enter__(),
            call().write(CONFIG_EXAMPLE), call().write(''),
            call().__exit__(None, None, None),
            call(repofile, "x"), call().__enter__(),
            call().__exit__(None, None, None)
        ]
E       AssertionError: assert [call('.ys/co...all().close()] == [call('.ys/co...t', 'x'), ...]
E
E         At index 5 diff: call().close() != call('.ys/repo_myhost.txt', 'x')
E         Left contains 2 more items, first extra item: call().__exit__(None, None, None)
E         Use -v to get more diff

/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_init.py:87: AssertionError
----------------------------- Captured stdout call -----------------------------
Initialize configuration for 'myhost'
mkdir .ys
# create configuration file .ys/config.ini
# create configuration file .ys/repo_myhost.txt

Initialized yarsync configuration in /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build/tests/test_dir_empty/.ys
=========================== short test summary info ============================
FAILED tests/test_commit.py::test_commit - assert [call().__ent...all().close...
FAILED tests/test_init.py::test_init_mixed - AssertionError: assert [call('.y...
FAILED tests/test_init.py::test_init_non_existent - AssertionError: assert [c...
========================= 3 failed, 28 passed in 1.67s =========================
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_yarsync/build; python3.13 -m pytest --ignore=tests/test_clone.py --ignore=tests/test_status.py
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_yarsync/build; python3.12 -m pytest --ignore=tests/test_clone.py --ignore=tests/test_status.py
============================= test session starts ==============================
platform linux -- Python 3.12.6, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_yarsync/build
configfile: pytest.ini
plugins: typeguard-4.3.0, cov-5.0.0, mock-3.14.0
collected 31 items

tests/test_commit.py ......                                              [ 19%]
tests/test_env_vars.py .                                                 [ 22%]
tests/test_init.py ...                                                   [ 32%]
tests/test_log.py ....                                                   [ 45%]
tests/test_pull_push.py ......                                           [ 64%]
tests/test_remote.py .                                                   [ 67%]
tests/test_sync.py ..                                                    [ 74%]
tests/test_ys_helpers.py ........                                        [100%]

============================== 31 passed in 1.66s ==============================
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13
make: *** [debian/rules:7: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-09-19T17:00:49Z

Finished
--------

This bug has been filed at "normal" severity, as we haven't started the
transition to add 3.13 as a supported version, yet. This will be raised to RC
as soon as that happens, hopefully well before trixie.

Thanks,

Stefano

#1082338#14
Date:
2025-01-01 00:21:05 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
yarsync, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1082338@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Josenilson Ferreira da Silva <nilsonfsilva@hotmail.com> (supplier of updated yarsync package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Tue, 31 Dec 2024 20:50:23 -0300
Source: yarsync
Architecture: source
Version: 0.2.1-4
Distribution: unstable
Urgency: medium
Maintainer: Debian Python Team <team+python@tracker.debian.org>
Changed-By: Josenilson Ferreira da Silva <nilsonfsilva@hotmail.com>
Closes: 1082338
Changes:
 yarsync (0.2.1-4) unstable; urgency=medium
 .
   * debian/control:
      - Bumped Standards-Version to 4.7.0
   * debian/patches:
      - Added function close()to mock_calls in Python 3.13.1 (Closes: #1082338)
Checksums-Sha1:
 d9aa8bd6a2fa4a81af794f33916094ce2ac7068c 2173 yarsync_0.2.1-4.dsc
 fc0b8c74efc9ab94b187cae4f8ac2b05895bf270 3392 yarsync_0.2.1-4.debian.tar.xz
 601d9ba146bb6b96b71cc555d5feef6c89d08e0d 9617 yarsync_0.2.1-4_source.buildinfo
Checksums-Sha256:
 4b8195cba21283d80b90fbea905cb2a2c3f146b7bab60f67fac86bdc10e88b2d 2173 yarsync_0.2.1-4.dsc
 da5b65268f1126c1090f4b7de52d387639b60992080200bab2a1f62daa09f7a1 3392 yarsync_0.2.1-4.debian.tar.xz
 2f882965faa808be5d7b508bfc338657eba4f7da47fbbed395c1285ac9e66afc 9617 yarsync_0.2.1-4_source.buildinfo
Files:
 cc053fb8bb364d9b0d82991941421747 2173 utils optional yarsync_0.2.1-4.dsc
 12e60d1488ff5761868b8e3fb2cb84f3 3392 utils optional yarsync_0.2.1-4.debian.tar.xz
 d6da2c8eb14a45dbd816866c75c6fb4d 9617 utils optional yarsync_0.2.1-4_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEqBlNXRF+LQLfMNMNB6n1YjE0Rs0FAmd0hwwACgkQB6n1YjE0
Rs2w9xAAlBiUXSJPJd7saFVdV21je1s0xRvgsnOLNbX6WpVHZ11vjJs4sS/ltPxm
L+uJO5OXz4K25+cGiGXYrOD1XAHiP0qySztouS6rLoEZLPDbmcjS32Em6xsg31V0
9cV2zQ9FFRiRnhL2Dvc0dj/oQFa7iXe0U/oaCimH1uT2Red2EaK2kvpIAtKrHcUd
Ku2aEcdlgizPDBAqi1WV4CoqocN++WqUnJdyLzfac2pOW7LFtF3fNe506Tmp9tam
PoeC3G2tC+y2Mc2liq0ThBSsG6acsS1lvOPGMcqJUJtOzN8pXEfWrI/HItniK+c5
AT8dQwPeMDwQ8JR/RWlWLyz1uXXyKsBUpnGS1Jfsq8iavCeL6Vpo2Aa03obITOjR
ZEw53mWSvjcAGvLyYcq8sVh9/a+ELz04SjEnRaBadOH0zLeavmy3Bp11EbThTQlH
Eqdes8NkW/7rzzTMER1lEM29BI/TV5eepYOGvcSVc6WNr2nb9rpnHFWBTUuBMI3c
bQ/3AdYVLsUD23jEzR7JN/znKTn41WkqwSXhX4uQ5Czkaw38MA2ad3C0tfKQh9Q6
cUY4Zg0L2agolgajMFr3jc3ZVmoHeyyPA1O6Y1NwrmgOhU80c7z0mbploM03etnn
Hhj1/nFantxxcPwB7m/i0sbWFgMdjpTep5S7yGD8rIAmClXdBgU=
=FbCj
-----END PGP SIGNATURE-----