[Bug 2144555] Re: subiquity CI broken with urwid 3.0.4-1
Olivier Gayot
2144555 at bugs.launchpad.net
Mon Mar 16 12:13:18 UTC 2026
** Description changed:
urwid 3.0.4-1 just migrated in resolute and broke Subiquity's CI.
There is an upstream bug report (opened by someone else)
https://github.com/urwid/urwid/issues/1086
which resulted in a fix and a new upstream release of urwid (3.0.5).
https://github.com/urwid/urwid/pull/1092
https://github.com/urwid/urwid/releases/tag/3.0.5
+ To reproduce on noble:
+ $ git clone https://github.com/urwid/urwid ~/dev/urwid
+ $ cd ~/dev/urwid
+ $ git checkout 3.0.4
+ $ python3 -m build
+ $ cd dist
+ $ tar xvf urwid-3.0.4.tar.gz
+ $ cd ~/dev/subiquity
+ $ cat > GNUmakefile
+ include Makefile
+ PYTHONPATH := $(HOME)/dev/urwid/dist/urwid-3.0.4:$(PYTHONPATH)
+ $ make unit
- def test_create_vg(self):
- model, disk = make_model_and_disk()
- part1 = model.add_partition(disk, size=10 * (2**30), offset=0)
- part2 = model.add_partition(disk, size=10 * (2**30), offset=10 * (2**30))
- view, stretchy = make_view(model)
- form_data = {
- "name": "vg1",
- "devices": {part1: "active", part2: "active"},
- }
- expected_data = {
- "name": "vg1",
- "devices": {part1, part2},
- "encrypt": False,
- }
+ I confirmed that 3.0.5 fixes the CI failure:
+
+ $ cd ~/dev/urwid
+ $ git checkout 3.0.5
+ $ python3 -m build
+ $ cd dist
+ $ tar xvf urwid-3.0.5.tar.gz
+ $ cd ~/dev/subiquity
+ $ sed s/3.0.4/3.0.5/ -i GNUmakefile
+ $ make unit
+ OK
+
+ Failure
+ -------
+ def test_create_vg(self):
+ model, disk = make_model_and_disk()
+ part1 = model.add_partition(disk, size=10 * (2**30), offset=0)
+ part2 = model.add_partition(disk, size=10 * (2**30), offset=10 * (2**30))
+ view, stretchy = make_view(model)
+ form_data = {
+ "name": "vg1",
+ "devices": {part1: "active", part2: "active"},
+ }
+ expected_data = {
+ "name": "vg1",
+ "devices": {part1, part2},
+ "encrypt": False,
+ }
> view_helpers.enter_data(stretchy.form, form_data)
- subiquity/ui/views/filesystem/tests/test_lvm.py:57:
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+ subiquity/ui/views/filesystem/tests/test_lvm.py:57:
+ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
subiquitycore/testing/view_helpers.py:91: in enter_data
- bf.value = v
- ^^^^^^^^
+ bf.value = v
+ ^^^^^^^^
subiquitycore/ui/form.py:226: in value
- self.widget.value = val
- ^^^^^^^^^^^^^^^^^
+ self.widget.value = val
+ ^^^^^^^^^^^^^^^^^
subiquity/ui/views/filesystem/compound.py:65: in value
- b.set_state(d in self.devices)
+ b.set_state(d in self.devices)
/usr/lib/python3/dist-packages/urwid/widget/wimp.py:381: in set_state
- self._emit("change", state)
+ self._emit("change", state)
/usr/lib/python3/dist-packages/urwid/widget/widget.py:310: in _emit
- signals.emit_signal(self, name, self, *args)
+ signals.emit_signal(self, name, self, *args)
/usr/lib/python3/dist-packages/urwid/signals.py:299: in emit
- result |= self._call_callback(callback, user_arg, weak_args, user_args, args)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ result |= self._call_callback(callback, user_arg, weak_args, user_args, args)
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/urwid/signals.py:323: in _call_callback
- return bool(callback(*args))
- ^^^^^^^^^^^^^^^
- _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
+ return bool(callback(*args))
+ ^^^^^^^^^^^^^^^
+ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <MultiDeviceChooser selectable box/flow widget>
sender = Partition(device=disk-0, size=10737418240, flag='', number=1, grub_device=None, offset=0, id='partition-0')
state = <CheckBox selectable fixed/flow widget ' partition 1' state=False>
device = True
- def _state_change_device(self, sender, state, device):
- if state:
- if self.supports_spares:
- self.device_to_selector[device].enabled = True
+ def _state_change_device(self, sender, state, device):
+ if state:
+ if self.supports_spares:
+ self.device_to_selector[device].enabled = True
> selector = self.device_to_selector[device]
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E KeyError: True
subiquity/ui/views/filesystem/compound.py:95: KeyError
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to urwid in Ubuntu.
https://bugs.launchpad.net/bugs/2144555
Title:
subiquity CI broken with urwid 3.0.4-1
Status in subiquity:
New
Status in urwid package in Ubuntu:
New
Bug description:
urwid 3.0.4-1 just migrated in resolute and broke Subiquity's CI.
There is an upstream bug report (opened by someone else)
https://github.com/urwid/urwid/issues/1086
which resulted in a fix and a new upstream release of urwid (3.0.5).
https://github.com/urwid/urwid/pull/1092
https://github.com/urwid/urwid/releases/tag/3.0.5
To reproduce on noble:
$ git clone https://github.com/urwid/urwid ~/dev/urwid
$ cd ~/dev/urwid
$ git checkout 3.0.4
$ python3 -m build
$ cd dist
$ tar xvf urwid-3.0.4.tar.gz
$ cd ~/dev/subiquity
$ cat > GNUmakefile
include Makefile
PYTHONPATH := $(HOME)/dev/urwid/dist/urwid-3.0.4:$(PYTHONPATH)
$ make unit
I confirmed that 3.0.5 fixes the CI failure:
$ cd ~/dev/urwid
$ git checkout 3.0.5
$ python3 -m build
$ cd dist
$ tar xvf urwid-3.0.5.tar.gz
$ cd ~/dev/subiquity
$ sed s/3.0.4/3.0.5/ -i GNUmakefile
$ make unit
OK
Failure
-------
def test_create_vg(self):
model, disk = make_model_and_disk()
part1 = model.add_partition(disk, size=10 * (2**30), offset=0)
part2 = model.add_partition(disk, size=10 * (2**30), offset=10 * (2**30))
view, stretchy = make_view(model)
form_data = {
"name": "vg1",
"devices": {part1: "active", part2: "active"},
}
expected_data = {
"name": "vg1",
"devices": {part1, part2},
"encrypt": False,
}
> view_helpers.enter_data(stretchy.form, form_data)
subiquity/ui/views/filesystem/tests/test_lvm.py:57:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
subiquitycore/testing/view_helpers.py:91: in enter_data
bf.value = v
^^^^^^^^
subiquitycore/ui/form.py:226: in value
self.widget.value = val
^^^^^^^^^^^^^^^^^
subiquity/ui/views/filesystem/compound.py:65: in value
b.set_state(d in self.devices)
/usr/lib/python3/dist-packages/urwid/widget/wimp.py:381: in set_state
self._emit("change", state)
/usr/lib/python3/dist-packages/urwid/widget/widget.py:310: in _emit
signals.emit_signal(self, name, self, *args)
/usr/lib/python3/dist-packages/urwid/signals.py:299: in emit
result |= self._call_callback(callback, user_arg, weak_args, user_args, args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
/usr/lib/python3/dist-packages/urwid/signals.py:323: in _call_callback
return bool(callback(*args))
^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <MultiDeviceChooser selectable box/flow widget>
sender = Partition(device=disk-0, size=10737418240, flag='', number=1, grub_device=None, offset=0, id='partition-0')
state = <CheckBox selectable fixed/flow widget ' partition 1' state=False>
device = True
def _state_change_device(self, sender, state, device):
if state:
if self.supports_spares:
self.device_to_selector[device].enabled = True
> selector = self.device_to_selector[device]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E KeyError: True
subiquity/ui/views/filesystem/compound.py:95: KeyError
To manage notifications about this bug go to:
https://bugs.launchpad.net/subiquity/+bug/2144555/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list