Source: python-tempora
Version: 5.3.0-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: [email protected]
Usertags: ftbfs-20230925 ftbfs-trixie
Hi,
During a rebuild of all packages in sid, your package failed to build
on amd64.
Relevant part (hopefully):
> debian/rules binary
> dh binary --with python3 --buildsystem=pybuild --test-pytest
> dh_update_autotools_config -O--buildsystem=pybuild -O--test-pytest
> dh_autoreconf -O--buildsystem=pybuild -O--test-pytest
> dh_auto_configure -O--buildsystem=pybuild -O--test-pytest
> dh_auto_build -O--buildsystem=pybuild -O--test-pytest
> I: pybuild plugin_pyproject:110: Building wheel for python3.11 with "build"
> module
> I: pybuild base:291: python3.11 -m build --skip-dependency-check
> --no-isolation --wheel --outdir
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora
> * Building wheel...
> running bdist_wheel
> running build
> running build_py
> creating build
> creating build/lib
> creating build/lib/tempora
> copying tempora/__init__.py -> build/lib/tempora
> copying tempora/timing.py -> build/lib/tempora
> copying tempora/schedule.py -> build/lib/tempora
> copying tempora/utc.py -> build/lib/tempora
> running egg_info
> creating tempora.egg-info
> writing tempora.egg-info/PKG-INFO
> writing dependency_links to tempora.egg-info/dependency_links.txt
> writing entry points to tempora.egg-info/entry_points.txt
> writing requirements to tempora.egg-info/requires.txt
> writing top-level names to tempora.egg-info/top_level.txt
> writing manifest file 'tempora.egg-info/SOURCES.txt'
> reading manifest file 'tempora.egg-info/SOURCES.txt'
> adding license file 'LICENSE'
> writing manifest file 'tempora.egg-info/SOURCES.txt'
> installing to build/bdist.linux-x86_64/wheel
> running install
> running install_lib
> creating build/bdist.linux-x86_64
> creating build/bdist.linux-x86_64/wheel
> creating build/bdist.linux-x86_64/wheel/tempora
> copying build/lib/tempora/__init__.py ->
> build/bdist.linux-x86_64/wheel/tempora
> copying build/lib/tempora/timing.py -> build/bdist.linux-x86_64/wheel/tempora
> copying build/lib/tempora/schedule.py ->
> build/bdist.linux-x86_64/wheel/tempora
> copying build/lib/tempora/utc.py -> build/bdist.linux-x86_64/wheel/tempora
> running install_egg_info
> Copying tempora.egg-info to
> build/bdist.linux-x86_64/wheel/tempora-5.3.0.egg-info
> running install_scripts
> creating build/bdist.linux-x86_64/wheel/tempora-5.3.0.dist-info/WHEEL
> creating
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/.tmp-ufwl34rz/tempora-5.3.0-py3-none-any.whl'
> and adding 'build/bdist.linux-x86_64/wheel' to it
> adding 'tempora/__init__.py'
> adding 'tempora/schedule.py'
> adding 'tempora/timing.py'
> adding 'tempora/utc.py'
> adding 'tempora-5.3.0.dist-info/LICENSE'
> adding 'tempora-5.3.0.dist-info/METADATA'
> adding 'tempora-5.3.0.dist-info/WHEEL'
> adding 'tempora-5.3.0.dist-info/entry_points.txt'
> adding 'tempora-5.3.0.dist-info/top_level.txt'
> adding 'tempora-5.3.0.dist-info/RECORD'
> removing build/bdist.linux-x86_64/wheel
> Successfully built tempora-5.3.0-py3-none-any.whl
> I: pybuild plugin_pyproject:122: Unpacking wheel built for python3.11 with
> "installer" module
> dh_auto_test -O--buildsystem=pybuild -O--test-pytest
> I: pybuild pybuild:314: cp -va /<<PKGBUILDDIR>>/pytest.ini
> /<<PKGBUILDDIR>>/tests /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/build/
> '/<<PKGBUILDDIR>>/pytest.ini' ->
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/build/pytest.ini'
> '/<<PKGBUILDDIR>>/tests' ->
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/build/tests'
> '/<<PKGBUILDDIR>>/tests/test_schedule.py' ->
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/build/tests/test_schedule.py'
> '/<<PKGBUILDDIR>>/tests/test_timing.py' ->
> '/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/build/tests/test_timing.py'
> I: pybuild base:291: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/build; python3.11 -m pytest
> -k 'not tempora.get_nearest_year_for_day'
> ============================= test session starts
> ==============================
> platform linux -- Python 3.11.5, pytest-7.4.2, pluggy-1.3.0
> rootdir: /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/build
> configfile: pytest.ini
> collected 42 items / 1 deselected / 41 selected
>
> tempora/__init__.py ........... [
> 26%]
> tempora/schedule.py F.. [
> 34%]
> tempora/timing.py ..... [
> 46%]
> tempora/utc.py . [
> 48%]
> tests/test_schedule.py .............F.F... [
> 95%]
> tests/test_timing.py ..
> [100%]
>
> =================================== FAILURES
> ===================================
> __________________________ [doctest] tempora.schedule
> __________________________
> 001
> 002 Classes for calling functions a schedule. Has time zone support.
> 003
> 004 For example, to run a job at 08:00 every morning in 'Asia/Calcutta':
> 005
> 006 >>> job = lambda: print("time is now", datetime.datetime())
> 007 >>> time = datetime.time(8, tzinfo=pytz.timezone('Asia/Calcutta'))
> UNEXPECTED EXCEPTION: UnknownTimeZoneError('Asia/Calcutta')
> Traceback (most recent call last):
> File "/usr/lib/python3.11/doctest.py", line 1351, in __run
> exec(compile(example.source, filename, "single",
> File "<doctest tempora.schedule[1]>", line 1, in <module>
> File "/usr/lib/python3/dist-packages/pytz/__init__.py", line 202, in
> timezone
> raise UnknownTimeZoneError(zone)
> pytz.exceptions.UnknownTimeZoneError: 'Asia/Calcutta'
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/build/tempora/schedule.py:7:
> UnexpectedException
> __________________ TestTimezones.test_alternate_timezone_west
> __________________
>
> self = <test_schedule.TestTimezones object at 0x7f67b0c612d0>
>
> def test_alternate_timezone_west(self):
> > target_tz = pytz.timezone('US/Pacific')
>
> tests/test_schedule.py:80:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> zone = 'US/Pacific'
>
> def timezone(zone):
> r''' Return a datetime.tzinfo implementation for the given timezone
>
> >>> from datetime import datetime, timedelta
> >>> utc = timezone('UTC')
> >>> eastern = timezone('US/Eastern')
> >>> eastern.zone
> 'US/Eastern'
> >>> timezone(unicode('US/Eastern')) is eastern
> True
> >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
> >>> loc_dt = utc_dt.astimezone(eastern)
> >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)'
> >>> loc_dt.strftime(fmt)
> '2002-10-27 01:00:00 EST (-0500)'
> >>> (loc_dt - timedelta(minutes=10)).strftime(fmt)
> '2002-10-27 00:50:00 EST (-0500)'
> >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt)
> '2002-10-27 01:50:00 EDT (-0400)'
> >>> (loc_dt + timedelta(minutes=10)).strftime(fmt)
> '2002-10-27 01:10:00 EST (-0500)'
>
> Raises UnknownTimeZoneError if passed an unknown zone.
>
> >>> try:
> ... timezone('Asia/Shangri-La')
> ... except UnknownTimeZoneError:
> ... print('Unknown')
> Unknown
>
> >>> try:
> ... timezone(unicode('\N{TRADE MARK SIGN}'))
> ... except UnknownTimeZoneError:
> ... print('Unknown')
> Unknown
>
> '''
> if zone is None:
> raise UnknownTimeZoneError(None)
>
> if zone.upper() == 'UTC':
> return utc
>
> try:
> zone = ascii(zone)
> except UnicodeEncodeError:
> # All valid timezones are ASCII
> raise UnknownTimeZoneError(zone)
>
> zone = _case_insensitive_zone_lookup(_unmunge_zone(zone))
> if zone not in _tzinfo_cache:
> if zone in all_timezones_set: # noqa
> fp = open_resource(zone)
> try:
> _tzinfo_cache[zone] = build_tzinfo(zone, fp)
> finally:
> fp.close()
> else:
> > raise UnknownTimeZoneError(zone)
> E pytz.exceptions.UnknownTimeZoneError: 'US/Pacific'
>
> /usr/lib/python3/dist-packages/pytz/__init__.py:202: UnknownTimeZoneError
> _____________________ TestTimezones.test_daylight_savings
> ______________________
>
> self = <test_schedule.TestTimezones object at 0x7f67b0c620d0>
>
> def test_daylight_savings(self):
> """
> A command at 9am should always be 9am regardless of
> a DST boundary.
> """
> with freezegun.freeze_time('2018-03-10 08:00:00'):
> > target_tz = pytz.timezone('US/Eastern')
>
> tests/test_schedule.py:97:
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> _
>
> zone = 'US/Eastern'
>
> def timezone(zone):
> r''' Return a datetime.tzinfo implementation for the given timezone
>
> >>> from datetime import datetime, timedelta
> >>> utc = timezone('UTC')
> >>> eastern = timezone('US/Eastern')
> >>> eastern.zone
> 'US/Eastern'
> >>> timezone(unicode('US/Eastern')) is eastern
> True
> >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
> >>> loc_dt = utc_dt.astimezone(eastern)
> >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)'
> >>> loc_dt.strftime(fmt)
> '2002-10-27 01:00:00 EST (-0500)'
> >>> (loc_dt - timedelta(minutes=10)).strftime(fmt)
> '2002-10-27 00:50:00 EST (-0500)'
> >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt)
> '2002-10-27 01:50:00 EDT (-0400)'
> >>> (loc_dt + timedelta(minutes=10)).strftime(fmt)
> '2002-10-27 01:10:00 EST (-0500)'
>
> Raises UnknownTimeZoneError if passed an unknown zone.
>
> >>> try:
> ... timezone('Asia/Shangri-La')
> ... except UnknownTimeZoneError:
> ... print('Unknown')
> Unknown
>
> >>> try:
> ... timezone(unicode('\N{TRADE MARK SIGN}'))
> ... except UnknownTimeZoneError:
> ... print('Unknown')
> Unknown
>
> '''
> if zone is None:
> raise UnknownTimeZoneError(None)
>
> if zone.upper() == 'UTC':
> return utc
>
> try:
> zone = ascii(zone)
> except UnicodeEncodeError:
> # All valid timezones are ASCII
> raise UnknownTimeZoneError(zone)
>
> zone = _case_insensitive_zone_lookup(_unmunge_zone(zone))
> if zone not in _tzinfo_cache:
> if zone in all_timezones_set: # noqa
> fp = open_resource(zone)
> try:
> _tzinfo_cache[zone] = build_tzinfo(zone, fp)
> finally:
> fp.close()
> else:
> > raise UnknownTimeZoneError(zone)
> E pytz.exceptions.UnknownTimeZoneError: 'US/Eastern'
>
> /usr/lib/python3/dist-packages/pytz/__init__.py:202: UnknownTimeZoneError
> =========================== short test summary info
> ============================
> FAILED tempora/schedule.py::tempora.schedule
> FAILED tests/test_schedule.py::TestTimezones::test_alternate_timezone_west -
> ...
> FAILED tests/test_schedule.py::TestTimezones::test_daylight_savings -
> pytz.ex...
> ================== 3 failed, 38 passed, 1 deselected in 1.48s
> ==================
> E: pybuild pybuild:395: test: plugin pyproject failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11_tempora/build; python3.11 -m pytest
> -k 'not tempora.get_nearest_year_for_day'
> dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.11
> returned exit code 13
The full build log is available from:
http://qa-logs.debian.net/2023/09/25/python-tempora_5.3.0-1_unstable.log
All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20230925;[email protected]
or:
https://udd.debian.org/bugs/?release=na&merged=ign&fnewerval=7&flastmodval=7&fusertag=only&fusertagtag=ftbfs-20230925&[email protected]&allbugs=1&cseverity=1&ctags=1&caffected=1#results
A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!
If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects
If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.