[Debian-med-packaging] Bug#1085587: ariba FTBFS with Python 3.13
Stefano Rivera
stefanor at debian.org
Sun Oct 20 19:41:44 BST 2024
Source: ariba
Version: 2.14.7+ds-2
Severity: normal
User: debian-python at lists.debian.org
Usertags: python3.13
Affects: src:spades
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.
The issue here is that spades is not built for all supported python3
versions, only for the current default version. Until that changes,
maybe the only thing that makes sense to do here is to skip this test
for non-default Python 3 versions?
What's new in Python 3.13:
https://docs.python.org/3.13/whatsnew/3.13.html
Log snippet:
dh_auto_test -a -O--buildsystem=pybuild
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ariba/build; python3.13 -m pytest
============================= test session starts ==============================
platform linux -- Python 3.13.0, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>
plugins: typeguard-4.3.0
collected 356 items
ariba/tests/aln_to_metadata_test.py .................... [ 5%]
ariba/tests/assembly_compare_test.py ................ [ 10%]
ariba/tests/assembly_test.py ..ss..... [ 12%]
ariba/tests/assembly_variants_test.py ........... [ 15%]
ariba/tests/bam_parse_test.py ...... [ 17%]
ariba/tests/card_record_test.py ........ [ 19%]
ariba/tests/cdhit_test.py ................ [ 24%]
ariba/tests/cluster_test.py ............................. [ 32%]
ariba/tests/clusters_test.py ................ [ 36%]
ariba/tests/common_test.py .. [ 37%]
ariba/tests/external_progs_test.py . [ 37%]
ariba/tests/faidx_test.py . [ 37%]
ariba/tests/flag_test.py ....... [ 39%]
ariba/tests/histogram_test.py .... [ 41%]
ariba/tests/link_test.py ......... [ 43%]
ariba/tests/mapping_test.py ....... [ 45%]
ariba/tests/megares_data_finder_test.py .. [ 46%]
ariba/tests/megares_zip_parser_test.py ..... [ 47%]
ariba/tests/mic_plotter_test.py ............. [ 51%]
ariba/tests/mlst_profile_test.py .... [ 52%]
ariba/tests/mlst_reporter_test.py ..... [ 53%]
ariba/tests/pubmlst_getter_test.py ... [ 54%]
ariba/tests/pubmlst_ref_preparer_test.py .F [ 55%]
ariba/tests/read_filter_test.py . [ 55%]
ariba/tests/read_store_test.py ....... [ 57%]
ariba/tests/ref_genes_getter_test.py . [ 57%]
ariba/tests/ref_preparer_test.py ..... [ 58%]
ariba/tests/ref_seq_chooser_test.py ....... [ 60%]
ariba/tests/reference_data_test.py .............................. [ 69%]
ariba/tests/report_filter_test.py ................. [ 74%]
ariba/tests/report_flag_expander_test.py . [ 74%]
ariba/tests/samtools_variants_test.py ....... [ 76%]
ariba/tests/scaffold_graph_test.py ..... [ 77%]
ariba/tests/sequence_metadata_test.py ..... [ 79%]
ariba/tests/sequence_variant_test.py ....... [ 81%]
ariba/tests/summary_cluster_test.py ....................... [ 87%]
ariba/tests/summary_cluster_variant_test.py .... [ 88%]
ariba/tests/summary_sample_test.py .... [ 89%]
ariba/tests/summary_test.py .................... [ 95%]
ariba/tests/tb_test.py ....... [ 97%]
ariba/tests/test_refdata_query.py ..... [ 98%]
ariba/tests/versions_test.py . [ 99%]
ariba/tests/vfdb_parser_test.py ... [100%]
=================================== FAILURES ===================================
_____ TestPubmlstRefPreparer.test_load_fasta_files_and_write_clusters_file _____
self = <ariba.tests.pubmlst_ref_preparer_test.TestPubmlstRefPreparer testMethod=test_load_fasta_files_and_write_clusters_file>
def test_load_fasta_files_and_write_clusters_file(self):
'''test _load_fasta_files_and_write_clusters_file'''
indir = os.path.join(data_dir, 'pubmlst_ref_prepare.test_load_fa_and_clusters.in')
outdir = 'tmp.test.pubmlst_ref_prepare.test_load_fa_and_clusters'
os.mkdir(outdir)
> r_prep = pubmlst_ref_preparer.PubmlstRefPreparer('species', outdir)
ariba/tests/pubmlst_ref_preparer_test.py:35:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ariba/pubmlst_ref_preparer.py:19: in __init__
self.extern_progs, version_report_lines = versions.get_all_versions()
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
raise_error = True, using_spades = True
def get_all_versions(raise_error=True, using_spades=True):
extern_progs = external_progs.ExternalProgs(fail_on_error=False, using_spades=using_spades)
report_lines = [
'ARIBA version: ' + ariba_version,
'\nExternal dependencies:',
'\n'.join(extern_progs.version_report),
'\nExternal dependencies OK: ' + str(extern_progs.all_deps_ok),
'\nPython version:',
str(sys.version),
'\nPython packages:',
]
python_packages_ok = True
for package in ['ariba', 'bs4', 'dendropy', 'pyfastaq', 'pymummer', 'pysam']:
try:
exec('import ' + package)
version = eval(package + '.__version__')
path = eval(package + '.__file__')
except:
version = 'NOT_FOUND'
path = 'NOT_FOUND'
python_packages_ok = False
if version != 'NOT_FOUND':
if package in package_min_versions and LooseVersion(version) < LooseVersion(package_min_versions[package]):
version += '... THIS IS TOO LOW. Needs>=' + package_min_versions[package]
python_packages_ok = False
elif package in package_max_versions and LooseVersion(version) > package_max_versions[package]:
version += '...THIS IS TOO HIGH. Needs <=' + package_max_versions[package]
python_packages_ok = False
report_lines.append(package + '\t' + version + '\t' + path)
all_ok = extern_progs.all_deps_ok and python_packages_ok
report_lines.extend([
'\nPython packages OK: ' + str(python_packages_ok),
'\nEverything looks OK: ' + str(all_ok),
])
if raise_error and not all_ok:
print(*report_lines, sep='\n', file=sys.stderr)
print('Some dependencies not satisfied. Cannot continue.', file=sys.stderr)
> sys.exit(1)
E SystemExit: 1
ariba/versions.py:65: SystemExit
----------------------------- Captured stderr call -----------------------------
WARNING: spades not found in path. Looked for spades.py
ARIBA version: local
External dependencies:
bowtie2 2.5.4 /usr/bin/bowtie2
cdhit 4.8.1 /usr/bin/cd-hit-est
nucmer 3.1 /usr/bin/nucmer
spades NA NOT_FOUND
External dependencies OK: True
Python version:
3.13.0 (main, Oct 7 2024, 21:58:50) [GCC 14.2.0]
Python packages:
ariba NOT_FOUND NOT_FOUND
bs4 NOT_FOUND NOT_FOUND
dendropy NOT_FOUND NOT_FOUND
pyfastaq NOT_FOUND NOT_FOUND
pymummer NOT_FOUND NOT_FOUND
pysam NOT_FOUND NOT_FOUND
Python packages OK: False
Everything looks OK: False
Some dependencies not satisfied. Cannot continue.
=============================== warnings summary ===============================
ariba/__init__.py:1
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ariba/build/ariba/__init__.py:1: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import get_distribution
../../../../../../usr/lib/python3/dist-packages/pyfastaq/__init__.py:3
/usr/lib/python3/dist-packages/pyfastaq/__init__.py:3: DeprecationWarning: Unimplemented abstract methods {'locate_file', 'read_text'}
__version__ = Distribution().from_name('pyfastaq').version
ariba/external_progs.py:34
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ariba/build/ariba/external_progs.py:34: SyntaxWarning: invalid escape sequence '\.'
'cdhit': ('', re.compile('CD-HIT version ([0-9\.]+) \(')),
ariba/external_progs.py:35
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ariba/build/ariba/external_progs.py:35: SyntaxWarning: invalid escape sequence '\.'
'nucmer': ('--version', re.compile('([0-9]+\.[0-9\.]+.*$)')),
ariba/external_progs.py:36
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ariba/build/ariba/external_progs.py:36: SyntaxWarning: invalid escape sequence '\.'
'spades': ('--version', re.compile('SPAdes.*v([0-9\.]+)'))
.pybuild/cpython3_3.13_ariba/build/ariba/tests/mic_plotter_test.py::TestMicPlotter::test_get_colours
.pybuild/cpython3_3.13_ariba/build/ariba/tests/mic_plotter_test.py::TestMicPlotter::test_get_colours
.pybuild/cpython3_3.13_ariba/build/ariba/tests/mic_plotter_test.py::TestMicPlotter::test_get_colours
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ariba/build/ariba/mic_plotter.py:222: MatplotlibDeprecationWarning: The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.
cmap = cmx.get_cmap(colormap)
.pybuild/cpython3_3.13_ariba/build/ariba/tests/mic_plotter_test.py::TestMicPlotter::test_get_colours
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ariba/build/ariba/mic_plotter.py:206: MatplotlibDeprecationWarning: The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.
cmap = cmx.get_cmap(colormap)
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED ariba/tests/pubmlst_ref_preparer_test.py::TestPubmlstRefPreparer::test_load_fasta_files_and_write_clusters_file
======= 1 failed, 353 passed, 2 skipped, 9 warnings in 79.55s (0:01:19) ========
E: pybuild pybuild:389: test: plugin distutils failed with: exit code=1: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_ariba/build; python3.13 -m pytest
I: pybuild base:311: cd /<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ariba/build; python3.12 -m pytest
============================= test session starts ==============================
platform linux -- Python 3.12.7, pytest-8.3.3, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>
plugins: typeguard-4.3.0
collected 356 items
ariba/tests/aln_to_metadata_test.py .................... [ 5%]
ariba/tests/assembly_compare_test.py ................ [ 10%]
ariba/tests/assembly_test.py ..ss..... [ 12%]
ariba/tests/assembly_variants_test.py ........... [ 15%]
ariba/tests/bam_parse_test.py ...... [ 17%]
ariba/tests/card_record_test.py ........ [ 19%]
ariba/tests/cdhit_test.py ................ [ 24%]
ariba/tests/cluster_test.py ............................. [ 32%]
ariba/tests/clusters_test.py ................ [ 36%]
ariba/tests/common_test.py .. [ 37%]
ariba/tests/external_progs_test.py . [ 37%]
ariba/tests/faidx_test.py . [ 37%]
ariba/tests/flag_test.py ....... [ 39%]
ariba/tests/histogram_test.py .... [ 41%]
ariba/tests/link_test.py ......... [ 43%]
ariba/tests/mapping_test.py ....... [ 45%]
ariba/tests/megares_data_finder_test.py .. [ 46%]
ariba/tests/megares_zip_parser_test.py ..... [ 47%]
ariba/tests/mic_plotter_test.py ............. [ 51%]
ariba/tests/mlst_profile_test.py .... [ 52%]
ariba/tests/mlst_reporter_test.py ..... [ 53%]
ariba/tests/pubmlst_getter_test.py ... [ 54%]
ariba/tests/pubmlst_ref_preparer_test.py .. [ 55%]
ariba/tests/read_filter_test.py . [ 55%]
ariba/tests/read_store_test.py ....... [ 57%]
ariba/tests/ref_genes_getter_test.py . [ 57%]
ariba/tests/ref_preparer_test.py ..... [ 58%]
ariba/tests/ref_seq_chooser_test.py ....... [ 60%]
ariba/tests/reference_data_test.py .............................. [ 69%]
ariba/tests/report_filter_test.py ................. [ 74%]
ariba/tests/report_flag_expander_test.py . [ 74%]
ariba/tests/samtools_variants_test.py ....... [ 76%]
ariba/tests/scaffold_graph_test.py ..... [ 77%]
ariba/tests/sequence_metadata_test.py ..... [ 79%]
ariba/tests/sequence_variant_test.py ....... [ 81%]
ariba/tests/summary_cluster_test.py ....................... [ 87%]
ariba/tests/summary_cluster_variant_test.py .... [ 88%]
ariba/tests/summary_sample_test.py .... [ 89%]
ariba/tests/summary_test.py .................... [ 95%]
ariba/tests/tb_test.py ....... [ 97%]
ariba/tests/test_refdata_query.py ..... [ 98%]
ariba/tests/versions_test.py . [ 99%]
ariba/tests/vfdb_parser_test.py ... [100%]
=============================== warnings summary ===============================
ariba/__init__.py:1
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ariba/build/ariba/__init__.py:1: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
from pkg_resources import get_distribution
../../../../../../usr/lib/python3/dist-packages/pyfastaq/__init__.py:3
/usr/lib/python3/dist-packages/pyfastaq/__init__.py:3: DeprecationWarning: Unimplemented abstract methods {'locate_file', 'read_text'}
__version__ = Distribution().from_name('pyfastaq').version
ariba/external_progs.py:34
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ariba/build/ariba/external_progs.py:34: SyntaxWarning: invalid escape sequence '\.'
'cdhit': ('', re.compile('CD-HIT version ([0-9\.]+) \(')),
ariba/external_progs.py:35
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ariba/build/ariba/external_progs.py:35: SyntaxWarning: invalid escape sequence '\.'
'nucmer': ('--version', re.compile('([0-9]+\.[0-9\.]+.*$)')),
ariba/external_progs.py:36
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ariba/build/ariba/external_progs.py:36: SyntaxWarning: invalid escape sequence '\.'
'spades': ('--version', re.compile('SPAdes.*v([0-9\.]+)'))
.pybuild/cpython3_3.12_ariba/build/ariba/tests/mic_plotter_test.py::TestMicPlotter::test_get_colours
.pybuild/cpython3_3.12_ariba/build/ariba/tests/mic_plotter_test.py::TestMicPlotter::test_get_colours
.pybuild/cpython3_3.12_ariba/build/ariba/tests/mic_plotter_test.py::TestMicPlotter::test_get_colours
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ariba/build/ariba/mic_plotter.py:222: MatplotlibDeprecationWarning: The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.
cmap = cmx.get_cmap(colormap)
.pybuild/cpython3_3.12_ariba/build/ariba/tests/mic_plotter_test.py::TestMicPlotter::test_get_colours
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.12_ariba/build/ariba/mic_plotter.py:206: MatplotlibDeprecationWarning: The get_cmap function was deprecated in Matplotlib 3.7 and will be removed two minor releases later. Use ``matplotlib.colormaps[name]`` or ``matplotlib.colormaps.get_cmap(obj)`` instead.
cmap = cmx.get_cmap(colormap)
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============ 354 passed, 2 skipped, 9 warnings in 81.52s (0:01:21) =============
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p "3.13 3.12" returned exit code 13
make: *** [debian/rules:10: binary-arch] Error 25
dpkg-buildpackage: error: debian/rules binary-arch subprocess returned exit status 2
--------------------------------------------------------------------------------
Build finished at 2024-10-20T18:34:37Z
If required, the full build log is available here (for the next 30 days):
https://debusine.debian.net/artifact/872797/
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
More information about the Debian-med-packaging
mailing list