#1149600 manila: FTBFS against python 3.15rc2 (Invalid value for hrules. Must be HRuleStyle)

Package:
src:manila
Source:
src:manila
Submitter:
Margarita Manterola
Date:
2026-10-06 16:21:04 UTC
Severity:
normal
Tags:
#1149600#5
Date:
2026-10-01 12:42:15 UTC
From:
To:
Hi!

While rebuilding the python related packages against the Python 3.15rc2
version we found that manila fails to build from source:
https://debusine.debian.net/debian/r-python-python3.15/artifact/4924338/

 From the log, the error seems to be:
======================================================================
FAIL:
manila.tests.cmd.test_status.TestUpgradeChecks.test_upgrade_checks_policy_json_check_succeeds
manila.tests.cmd.test_status.TestUpgradeChecks.test_upgrade_checks_policy_json_check_succeeds
----------------------------------------------------------------------
testtools.testresult.real._StringException: Traceback (most recent call
last):
   File "/usr/lib/python3/dist-packages/prettytable/prettytable.py", line
741, in _validate_hrules
     assert val in list(HRuleStyle)
            ^^^^^^^^^^^^^^^^^^^^^^^
AssertionError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
   File
"/build/reproducible-path/manila-23.0.0/manila/tests/cmd/test_status.py",
line 41, in test_upgrade_checks_policy_json_check_succeeds
     result = self.cmd.check()
   File
"/usr/lib/python3/dist-packages/oslo_upgradecheck/upgradecheck.py", line
177, in check
     t = prettytable.PrettyTable(
         [str(self.display_title)], hrules=prettytable.ALL
     )
   File "/usr/lib/python3/dist-packages/prettytable/prettytable.py", line
400, in __init__
     self._validate_option(option, kwargs[option])
     ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^
   File "/usr/lib/python3/dist-packages/prettytable/prettytable.py", line
586, in _validate_option
     self._validate_hrules(option, val)
     ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
   File "/usr/lib/python3/dist-packages/prettytable/prettytable.py", line
744, in _validate_hrules
     raise ValueError(msg)
ValueError: Invalid value for hrules. Must be HRuleStyle.
----------------------------------------------------------------------
Ran 12413 tests in 74.564s

FAILED (failures=1, skipped=19)

Please note that while we ran into this error during the rebuild against
Python 3.15, that doesn't mean that the root cause for the failure is
necessarily the new Python version.

Setting the severity to important for now. Once Python 3.15 is released
and later added to python3-defaults, this bug will become release
critical.

#1149600#12
Date:
2026-10-06 16:01:48 UTC
From:
To:
Hello,

Bug #1149600 in python-oslo.upgradecheck reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/openstack-team/oslo/python-oslo.upgradecheck/-/commit/e65f0578795c361ac2ffbacd8e3778204af7930b
------------------------------------------------------------------------
Fix Python 3.15 lazy_import prettytable.ALL breakage

Under Python 3.15, lazy imports turn the deprecated
prettytable.ALL constant into a lazy_import proxy object
instead of the plain int 1, which then fails prettytable's
hrules validation, breaking upgrade checks of reverse
build-deps like manila (Closes: #1149600):
- use-prettytable-HRuleStyle-ALL.patch
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1149600

#1149600#19
Date:
2026-10-06 16:18:57 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
python-oslo.upgradecheck, 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 1149600@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Thomas Goirand <zigo@debian.org> (supplier of updated python-oslo.upgradecheck 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, 06 Oct 2026 17:35:15 +0200
Source: python-oslo.upgradecheck
Architecture: source
Version: 2.8.0-3
Distribution: unstable
Urgency: medium
Maintainer: Debian OpenStack <team+openstack@tracker.debian.org>
Changed-By: Thomas Goirand <zigo@debian.org>
Closes: 1149600
Changes:
 python-oslo.upgradecheck (2.8.0-3) unstable; urgency=medium
 .
   * Fixed FTBFS of reverse build-deps (manila) against Python 3.15: use
     prettytable.HRuleStyle.ALL instead of the deprecated prettytable.ALL
     constant, which resolves to a lazy_import proxy object under Python
     3.15 and fails prettytable's hrules validation (Closes: #1149600).
     Thanks Margarita Manterola for the bug report:
       - use-prettytable-HRuleStyle-ALL.patch
Checksums-Sha1:
 8adb82fdaf7a741ae632b1f9eb512879a6dd5678 2550 python-oslo.upgradecheck_2.8.0-3.dsc
 47c485a0795ddda382d35dcf405dd3bffd20eb5f 4216 python-oslo.upgradecheck_2.8.0-3.debian.tar.xz
 6217c196f30720ccc3bad28f07d19bca3131adec 11670 python-oslo.upgradecheck_2.8.0-3_amd64.buildinfo
Checksums-Sha256:
 b846fd3c74011a407419229af52cc219e6666857346e24645e579372085358e5 2550 python-oslo.upgradecheck_2.8.0-3.dsc
 7f0ab104a9b069a4eaacc1138324efd8b5a6c2e58f3887eae1fc9ef699a0ccba 4216 python-oslo.upgradecheck_2.8.0-3.debian.tar.xz
 94c8ad85b9d93f12d6b6e3ed10c3b86cb35f2429fe9c169a382c416bd4861907 11670 python-oslo.upgradecheck_2.8.0-3_amd64.buildinfo
Files:
 c29109246a8cf38a982a6563ab06801d 2550 python optional python-oslo.upgradecheck_2.8.0-3.dsc
 059958dde38eba31c621fabcf672ccb3 4216 python optional python-oslo.upgradecheck_2.8.0-3.debian.tar.xz
 cd95cf2d2ca2889c116cbba0176450f8 11670 python optional python-oslo.upgradecheck_2.8.0-3_amd64.buildinfo
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEoLGp81CJVhMOekJc1BatFaxrQ/4FAmrFG14ACgkQ1BatFaxr
Q/5hlRAAi7Z/L7FYDlLVwrYmTIV81ZCd1zhiQ53DA1ToGwO7MQicL93uhcQ6Q1C5
4IEKo7OqUqSdGbD9wkUstTGcbU1g8+4AihXo3Y2GlIbPEGd9Nm+2o5/4Vbw1zW9+
F3foRSphE1U/mPHnd4SoB6EXHFPaOXVmtbFzHfVnS9HWMEV8uLRjhpEH+fLI8kt9
CreD2xFOzyWRDHW1wiXABsh95UjlB92rhsxc5blnxlDeN7IYYctr0RMZosJHAIf5
JrKfCHzHxVAmuzMlxT3a7rfDJaWqgIlLsn9Or77BoGesLRKJ7hDTH9qNHLgKpqHU
Xv9+MfNvZKB50wbQsjzlzz1wcxXGnnyR1Vq6j5YoyQqOZRmBC9Ny5ZnD+FYF6S5A
1vDqMIIGoOot+85xI21My/JCwX46o/bmfk4z7V6+ynl8C//KkD1VkhLN/zHRsjnL
SVpmmPzZTOfrF8GbI1N2pUhVhYwgVQdet5JzsZre6ImylmfjxRS+JYSxdcFl74lx
KcNdvWVeAudMXCTVqM3hHDS1QiTqSfUerbJZiMO7NCP8o6UK30lS/EN9ZZ7VOYoj
akeMRo4/JgiQ50/7VeAdG3KOYLAeS17ggk0NIy7tSPBfuPP3QlbFCubKjLt5j61D
BVSargp5VEBES7rAZ67lOhs5mEWogkBe7giVvF69Yt8z4ulLysg=
=u9l+
-----END PGP SIGNATURE-----