Fedora Account System
Red Hat Associate
Red Hat Customer
snakemake fails to build with Python 3.15.0b1. + help2man --no-info '--name=Metapackage for snakemake: reports extras' snakemake help2man: can't get `--help' info from snakemake https://docs.python.org/3.15/whatsnew/3.15.html For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.15-b1/fedora-rawhide-x86_64/10513608-snakemake/ For all our attempts to build snakemake with Python 3.15, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.15-b1/package/snakemake/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.15: https://copr.fedorainfracloud.org/coprs/g/python/python3.15-b1/ Let us know here if you have any questions. Python 3.15 is planned to be included in Fedora 45. To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.15. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.
Hmm. This reveals that the man page has the wrong title (“name”) because the Summary from the subpackage defined by the expansion of %pyproject_extras_subpkg -n snakemake reports differs from the base package’s Summary, and so the expansion of %{summary} in the help2man invocation doesn’t work as expected. I’ll fix that, but it’s a pre-existing problem. If I strip away the help2man layer and just invoke "snakemake --help" with the same PATH and PYTHONPATH, here’s the underlying traceback. + snakemake --help Error in import line from /usr/lib/python3.15/site-packages/google_cloud_core-2.3.3-py3.15-nspkg.pth: import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('google' ,));importlib = __import__('importlib.util');__import__('importlib.machinery');m = sys.modules.setdefault('google', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec( 'google', [os.path.dirname(p)])));m = m or sys.modules.setdefault('google', types.ModuleType('google'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p ) Traceback (most recent call last): File "<frozen site>", line 319, in _exec_imports File "<string>", line 1, in <module> KeyError: "local variable ''sitedir'' is not defined" Error in import line from /usr/lib/python3.15/site-packages/google_cloud_core-2.3.3-py3.15-nspkg.pth: import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('google', 'cloud'));importlib = __import__('importlib.util');__import__('importlib.machinery');m = sys.modules.setdefault('google.cloud', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('google.cloud', [os.path.dirname(p)])));m = m or sys.modules.setdefault('google.cloud', types.ModuleType('google.cloud'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p);m and setattr(sys.modules['google'], 'cloud', m) Traceback (most recent call last): File "<frozen site>", line 319, in _exec_imports File "<string>", line 1, in <module> KeyError: "local variable ''sitedir'' is not defined" Error in import line from /usr/lib/python3.15/site-packages/protobuf-3.19.6-py3.15-nspkg.pth: import sys, types, os;p = os.path.join(sys._getframe(1).f_locals['sitedir'], *('google',));importlib = __import__('importlib.util');__import__('importlib.machinery');m = sys.modules.setdefault('google', importlib.util.module_from_spec(importlib.machinery.PathFinder.find_spec('google', [os.path.dirname(p)])));m = m or sys.modules.setdefault('google', types.ModuleType('google'));mp = (m or []) and m.__dict__.setdefault('__path__',[]);(p not in mp) and mp.append(p) Traceback (most recent call last): File "<frozen site>", line 319, in _exec_imports File "<string>", line 1, in <module> KeyError: "local variable ''sitedir'' is not defined" Traceback (most recent call last): File "/usr/lib64/python3.15/argparse.py", line 2880, in print_help help_text = self.format_help(formatter=formatter) TypeError: ArgumentParser.format_help() got an unexpected keyword argument 'formatter' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/builddir/build/BUILD/snakemake-9.21.1-build/BUILDROOT/usr/lib/python3.15/site-packages/snakemake/cli.py", line 2391, in main parser, args = parse_args(argv) ~~~~~~~~~~^^^^^^ File "/builddir/build/BUILD/snakemake-9.21.1-build/BUILDROOT/usr/lib/python3.15/site-packages/snakemake/cli.py", line 1904, in parse_args args = parser.parse_args(argv) File "/usr/lib/python3.15/site-packages/configargparse.py", line 1048, in parse_args args, argv = self.parse_known_args( ~~~~~~~~~~~~~~~~~~~~~^ args=args, ^^^^^^^^^^ ...<3 lines>... ignore_help_args=False, ^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/usr/lib/python3.15/site-packages/configargparse.py", line 1266, in parse_known_args namespace, unknown_args = argparse.ArgumentParser.parse_known_args( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^ self, args=args, namespace=namespace ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ File "/usr/lib64/python3.15/argparse.py", line 2128, in parse_known_args return self._parse_known_args2(args, namespace, intermixed=False) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 2157, in _parse_known_args2 namespace, args = self._parse_known_args(args, namespace, intermixed) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 2408, in _parse_known_args start_index = consume_optional(start_index) File "/usr/lib64/python3.15/argparse.py", line 2332, in consume_optional take_action(action, args, option_string) ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 2233, in take_action action(self, namespace, argument_values, option_string) ~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 1281, in __call__ parser.print_help() ~~~~~~~~~~~~~~~~~^^ File "/usr/lib64/python3.15/argparse.py", line 2884, in print_help help_text = self.format_help() File "/usr/lib/python3.15/site-packages/configargparse.py", line 1696, in format_help return argparse.ArgumentParser.format_help(self) + ( ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 2841, in format_help return formatter.format_help() ~~~~~~~~~~~~~~~~~~~~~^^ File "/usr/lib64/python3.15/argparse.py", line 340, in format_help help = self._root_section.format_help() File "/usr/lib64/python3.15/argparse.py", line 265, in format_help item_help = join([func(*args) for func, args in self.items]) ~~~~^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 265, in format_help item_help = join([func(*args) for func, args in self.items]) ~~~~^^^^^^^ File "/usr/lib64/python3.15/argparse.py", line 614, in _format_action help_text = self._expand_help(action) File "/usr/lib64/python3.15/argparse.py", line 714, in _expand_help help_string = self._get_help_string(action) File "/builddir/build/BUILD/snakemake-9.21.1-build/BUILDROOT/usr/lib/python3.15/site-packages/snakemake/common/argparse.py", line 76, in _get_help_string and not isinstance(action.default, dataclasses._MISSING_TYPE) ^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: module 'dataclasses' has no attribute '_MISSING_TYPE' The TypeError is supposed to happen, but it is supposed to be caught: https://github.com/python/cpython/blob/f31a89bb901067dd105b00cfa90523cf7ffdbbdd/Lib/argparse.py#L2877-L2882; that’s all in the Python standard library. But then the AttributeError on _MISSING_TYPE happens, and that’s the bug in Snakemake. It looks like this is due to https://github.com/python/cpython/pull/149086 (and Snakemake using a non-public API). I offered upstream a PR that would fix this, https://github.com/snakemake/snakemake/pull/4211, but I noted in the PR text that my approach isn’t obviously the best one, and it doesn’t remove the reliance on implementation-defined behavior. I’m strongly considering orphaning the Snakemake stack and related packages in the next few days, for reasons that I’ll write up in a separate bug if and when I do so.
*** Bug 2483717 has been marked as a duplicate of this bug. ***
FEDORA-2026-e11f2ecdad (snakemake-9.21.1-2.fc44) has been submitted as an update to Fedora 44. https://bodhi.fedoraproject.org/updates/FEDORA-2026-e11f2ecdad
FEDORA-2026-1cb62e2f46 (snakemake-9.21.1-2.fc43) has been submitted as an update to Fedora 43. https://bodhi.fedoraproject.org/updates/FEDORA-2026-1cb62e2f46
FEDORA-2026-e11f2ecdad has been pushed to the Fedora 44 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-e11f2ecdad` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-e11f2ecdad See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
FEDORA-2026-1cb62e2f46 has been pushed to the Fedora 43 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2026-1cb62e2f46` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2026-1cb62e2f46 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.
This package has changed maintainer in Fedora. Reassigning to the new maintainer of this component.
FEDORA-2026-e11f2ecdad (snakemake-9.21.1-2.fc44) has been pushed to the Fedora 44 stable repository. If problem still persists, please make note of it in this bug report.
FEDORA-2026-1cb62e2f46 (snakemake-9.21.1-2.fc43) has been pushed to the Fedora 43 stable repository. If problem still persists, please make note of it in this bug report.