Bug 2113648 - python-pynwb: FTBFS in Fedora rawhide/f37
Summary: python-pynwb: FTBFS in Fedora rawhide/f37
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-pynwb
Version: 37
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Ankur Sinha (FranciscoD)
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F38FTBFS F37FTBFS 2107826
TreeView+ depends on / blocked
 
Reported: 2022-08-02 00:08 UTC by Fedora Release Engineering
Modified: 2022-08-15 17:04 UTC (History)
4 users (show)

Fixed In Version: python-pynwb-2.1.0-1.fc38 python-pynwb-2.1.0-1.fc37
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2022-08-15 16:58:02 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
build.log (32.00 KB, text/plain)
2022-08-02 00:08 UTC, Fedora Release Engineering
no flags Details
root.log (32.00 KB, text/plain)
2022-08-02 00:08 UTC, Fedora Release Engineering
no flags Details
state.log (993 bytes, text/plain)
2022-08-02 00:08 UTC, Fedora Release Engineering
no flags Details

Description Fedora Release Engineering 2022-08-02 00:08:51 UTC
python-pynwb failed to build from source in Fedora rawhide/f37

https://koji.fedoraproject.org/koji/taskinfo?taskID=89887156


For details on the mass rebuild see:

https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
Please fix python-pynwb at your earliest convenience and set the bug's status to
ASSIGNED when you start fixing it. If the bug remains in NEW state for 8 weeks,
python-pynwb will be orphaned. Before branching of Fedora 38,
python-pynwb will be retired, if it still fails to build.

For more details on the FTBFS policy, please visit:
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/

Comment 1 Fedora Release Engineering 2022-08-02 00:08:53 UTC
Created attachment 1902363 [details]
build.log

file build.log too big, will only attach last 32768 bytes

Comment 2 Fedora Release Engineering 2022-08-02 00:08:55 UTC
Created attachment 1902364 [details]
root.log

file root.log too big, will only attach last 32768 bytes

Comment 3 Fedora Release Engineering 2022-08-02 00:08:56 UTC
Created attachment 1902365 [details]
state.log

Comment 4 Tomáš Hrnčiar 2022-08-09 10:44:11 UTC
Dear Maintainer,

your package has an open Fails To Build From Source bug for Fedora 37.
Action is required from you.

PYC magic number has changed in Python 3.11.0b4, and all packages with Python
bytecode need to be
rebuilt. Most of them were rebuilt during the Fedora 37 mass rebuild, but since
this
package is FTBFS, we were hoping you could fix it and rebuild it manually, or
it will cause subtle issues when used.

Tracking bugzilla for all affected packages:
https://bugzilla.redhat.com/show_bug.cgi?id=2107826

If you can fix your package to build, perform a build in koji, and if
necessary, create
an update in bodhi. If you are working on a fix, set the status to ASSIGNED to
acknowledge this. If you have already fixed this issue, please close this
Bugzilla report.

Note that Fedora 37 is about to be branched very soon.
If you fix this after branching, make sure to rebuild the package in both
Rawhide (Fedora 38) and Fedora 37.

==============================================

Following the policy for FTBFS packages [1], your package will be orphaned if
this bug remains in a NEW state for more than 8 weeks (not sooner than
2022-09-27).

A week before the mass branching of Fedora 38 according to the
schedule [2],
any packages not successfully rebuilt, at least on Fedora 36 will
be
retired regardless of the status of this bug.

[1]
https://docs.fedoraproject.org/en-US/fesco/Fails_to_build_from_source_Fails_to_install/
[2]
https://fedorapeople.org/groups/schedule/f-38/f-38-key-tasks.html

Comment 5 Ben Cotton 2022-08-09 13:32:53 UTC
This bug appears to have been reported against 'rawhide' during the Fedora Linux 37 development cycle.
Changing version to 37.

Comment 6 Ben Beasley 2022-08-15 13:56:44 UTC
=================================== FAILURES ===================================
_____ NWBFileTests.test_deprecate_simultaneous_recordings_on_add_stimulus ______

self = <tests.unit.test_icephys_metadata_tables.NWBFileTests testMethod=test_deprecate_simultaneous_recordings_on_add_stimulus>

    def test_deprecate_simultaneous_recordings_on_add_stimulus(self):
        """
        Test that warnings are raised if the user tries to use a simultaneous_recordings table
        """
        nwbfile = self.__get_icephysfile()
        device = self.__add_device(nwbfile)
        electrode = self.__add_electrode(nwbfile, device)
        stimulus = self.__get_stimulus(electrode=electrode)
        response = self.__get_response(electrode=electrode)
        # Make sure we warn if sweeptable is added on add_stimulus
        with warnings.catch_warnings(record=True) as w:
            warnings.simplefilter("always")  # Trigger all warnings
            nwbfile.add_stimulus(stimulus, use_sweep_table=True)
>           self.assertEqual(len(w), 1)
E           AssertionError: 2 != 1

tests/unit/test_icephys_metadata_tables.py:968: AssertionError
__________ NWBFileTests.test_deprecate_sweepstable_on_add_acquistion ___________

self = <tests.unit.test_icephys_metadata_tables.NWBFileTests testMethod=test_deprecate_sweepstable_on_add_acquistion>

    def test_deprecate_sweepstable_on_add_acquistion(self):
        """
        Test that warnings are raised if the user tries to use a sweeps table
        """
        nwbfile = self.__get_icephysfile()
        device = self.__add_device(nwbfile)
        electrode = self.__add_electrode(nwbfile, device)
        stimulus = self.__get_stimulus(electrode=electrode)
        response = self.__get_response(electrode=electrode)
        # Make sure we warn if sweeptable is added on add_stimulus
        with warnings.catch_warnings(record=True) as w:
            nwbfile.add_acquisition(response, use_sweep_table=True)
>           self.assertEqual(len(w), 1)
E           AssertionError: 2 != 1

tests/unit/test_icephys_metadata_tables.py:1025: AssertionError
_______________ NWBFileTests.test_deprecate_sweepstable_on_init ________________

self = <tests.unit.test_icephys_metadata_tables.NWBFileTests testMethod=test_deprecate_sweepstable_on_init>

    def test_deprecate_sweepstable_on_init(self):
        """
        Test that warnings are raised if the user tries to use a sweeps table
        """
        from pynwb.icephys import SweepTable
        with warnings.catch_warnings(record=True) as w:
            nwbfile = NWBFile(
                session_description='my first synthetic recording',
                identifier='EXAMPLE_ID',
                session_start_time=datetime.now(tzlocal()),
                sweep_table=SweepTable()
            )
            device = self.__add_device(nwbfile)
            electrode = self.__add_electrode(nwbfile, device)
            stimulus = self.__get_stimulus(electrode=electrode)
>           self.assertEqual(len(w), 1)
E           AssertionError: 2 != 1

tests/unit/test_icephys_metadata_tables.py:1049: AssertionError
_______ NWBFileTests.test_deprecate_sweeptable_on_add_stimulus_template ________

self = <tests.unit.test_icephys_metadata_tables.NWBFileTests testMethod=test_deprecate_sweeptable_on_add_stimulus_template>

    def test_deprecate_sweeptable_on_add_stimulus_template(self):
        """
        Make sure we warn when using the sweep-table
        """
        nwbfile = self.__get_icephysfile()
        local_electrode = nwbfile.create_icephys_electrode(
            name="elec0",
            description='a mock intracellular electrode',
            device=nwbfile.create_device(name='Heka ITC-1600')
        )
        local_stimulus = VoltageClampStimulusSeries(
            name="ccss",
            data=[1, 2, 3, 4, 5],
            starting_time=123.6,
            rate=10e3,
            electrode=local_electrode,
            gain=0.02,
            sweep_number=np.uint64(15)
        )
        local_stimulus2 = VoltageClampStimulusSeries(
            name="ccss2",
            data=[1, 2, 3, 4, 5],
            starting_time=123.6,
            rate=10e3,
            electrode=local_electrode,
            gain=0.02,
            sweep_number=np.uint64(15)
        )
        with warnings.catch_warnings(record=True) as w:
            nwbfile.add_stimulus_template(local_stimulus, use_sweep_table=True)
>           self.assertEqual(len(w), 1)
E           AssertionError: 2 != 1

tests/unit/test_icephys_metadata_tables.py:1004: AssertionError
=============================== warnings summary ===============================

Comment 7 Ben Beasley 2022-08-15 13:57:06 UTC
=============================== warnings summary ===============================
tests/unit/test_base.py: 8 warnings
tests/unit/test_icephys_metadata_tables.py: 35 warnings
  /usr/lib/python3.11/site-packages/hdmf/utils.py:577: FutureWarning: VectorData.__init__: Using positional arguments for this method is discouraged and will be deprecated in a future major release. Please use keyword arguments to ensure future compatibility.
    warnings.warn(msg, FutureWarning)

tests/unit/test_core.py: 1 warning
tests/unit/test_ecephys.py: 15 warnings
tests/unit/test_epoch.py: 5 warnings
tests/unit/test_file.py: 16 warnings
tests/unit/test_icephys_metadata_tables.py: 54 warnings
tests/unit/test_misc.py: 15 warnings
tests/unit/test_ophys.py: 11 warnings
  /usr/lib/python3.11/site-packages/hdmf/utils.py:577: FutureWarning: DynamicTable.__init__: Using positional arguments for this method is discouraged and will be deprecated in a future major release. Please use keyword arguments to ensure future compatibility.
    warnings.warn(msg, FutureWarning)

tests/unit/test_ecephys.py: 15 warnings
tests/unit/test_file.py: 1 warning
  /usr/lib/python3.11/site-packages/hdmf/utils.py:577: FutureWarning: DynamicTableRegion.__init__: Using positional arguments for this method is discouraged and will be deprecated in a future major release. Please use keyword arguments to ensure future compatibility.
    warnings.warn(msg, FutureWarning)

tests/unit/test_icephys_metadata_tables.py: 32 warnings
  /usr/lib/python3.11/site-packages/hdmf/utils.py:577: FutureWarning: AlignedDynamicTable.__init__: Using positional arguments for this method is discouraged and will be deprecated in a future major release. Please use keyword arguments to ensure future compatibility.
    warnings.warn(msg, FutureWarning)

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html

Comment 8 Ben Beasley 2022-08-15 15:18:25 UTC
It looks like this should be solved by updating to 2.1.0:

https://github.com/NeurodataWithoutBorders/pynwb/blob/2.1.0/CHANGELOG.md#enhancements-and-minor-changes

> Added support for HDMF 3.3.1. This is now the minimum version of HDMF supported. Importantly, HDMF 3.3 introduces warnings when the constructor of a class mapped to an HDMF-common data type or an autogenerated data type class is passed positional arguments instead of all keyword arguments. @rly (#1484)

Comment 9 Fedora Update System 2022-08-15 16:54:49 UTC
FEDORA-2022-bf7b5c46a4 has been submitted as an update to Fedora 38. https://bodhi.fedoraproject.org/updates/FEDORA-2022-bf7b5c46a4

Comment 10 Fedora Update System 2022-08-15 16:58:02 UTC
FEDORA-2022-bf7b5c46a4 has been pushed to the Fedora 38 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 11 Fedora Update System 2022-08-15 17:03:05 UTC
FEDORA-2022-a55b64113d has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-a55b64113d

Comment 12 Fedora Update System 2022-08-15 17:04:02 UTC
FEDORA-2022-a55b64113d has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.


Note You need to log in before you can comment on or make changes to this bug.