SABOTAGE attribute not shown in home-assistant (IP presence sensor)

Hi there, I'm running pyhomematic as part of home-assistant and I can't seem to find a way to access the "SABOTAGE" attribute of my IP-Presence-Detector. I have tried to check the code for this and there seems to be provisions for filling the ATTRIBUTENODE here:
https://github.com/danielperna84/pyhomematic/blob/68b5e3ef67f9231047d83afedb80e0a2c49d0777/pyhomematic/devicetypes/sensors.py#L300
There also seems to be provisions to do something with this ATTRIBUTENODE here:
https://github.com/home-assistant/home-assistant/blob/75a39352ffb8c5e7b24fe10a9a66d0839224d3e9/homeassistant/components/homematic/__init__.py#L824
My home-assistant log shows this:
hass[6380]: 2018-01-06 00:32:32 INFO (Thread-22) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999****:0, interface_id=homeassistant-ip, key=SABOTAGE, value=False

So, something arives at the system. But I am not able to access this attribute within home-assistant, by doing e.g. this:
{{states.binary_sensor.flur_sensor_presence_detection_state.attributes.SABOTAGE}}

I might just be to new too this, then please someone tipp me off! Or it is somehow not propagated. Unfortunately, I am not so current in python, pyhomematic nor home-assistant to find the problem myself...
Thanks! Andreas

There was a breaking change in version 0.89 (last one in this list) of Home Assistant, which has the potential to fix this issue. Have you updated to the latest release yet and could have a look if the change actually does solve the problem?

Thanks for the hint! I have now updated and unfortunately this issue is not solved.

Earlier you have posted:
{{states.binary_sensor.flur_sensor_presence_detection_state.attributes.SABOTAGE}}
The attributes are lower case though. So the correct variant would be:
{{states.binary_sensor.flur_sensor_presence_detection_state.attributes.sabotage}}
Besides that I don't know what else could be causing this problem.

I tried lowercase just to be sure. You're right in that I probably made this mistake and could therefore not "access this attribute". I can access the lowercase attribute (as verified just now). However, I kept actually looking at the entity in my HA GUI. Unfortunately, there is still no change, when I sabotage my sensor.
Again just to be sure, I also waited for the sensor to change its primary state before remounting the sensor. (The attribute might be updated only when the primary sensor updated.) But that also didn't change the attribute...
The logs still show something arriving at the system. Also note the ERROR_CODE which is not reflected in the HA GUI:
Mar 22 01:29:18 ak-test hass[26692]: 2019-03-22 01:29:18 INFO (Thread-17) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=SABOTAGE, value=True
Mar 22 01:29:18 ak-test hass[26692]: 2019-03-22 01:29:18 INFO (Thread-17) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=LOW_BAT, value=False
Mar 22 01:29:18 ak-test hass[26692]: 2019-03-22 01:29:18 INFO (Thread-17) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=ERROR_CODE, value=1
Mar 22 01:29:18 ak-test hass[26692]: 2019-03-22 01:29:18 INFO (Thread-17) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=PRESENCE_DETECTION_STATE, value=True
[...]
Mar 22 01:29:19 ak-test hass[26692]: 2019-03-22 01:29:19 INFO (Thread-17) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=SABOTAGE, value=False
Mar 22 01:29:19 ak-test hass[26692]: 2019-03-22 01:29:19 INFO (Thread-17) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=LOW_BAT, value=False
Mar 22 01:29:19 ak-test hass[26692]: 2019-03-22 01:29:19 INFO (Thread-17) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=ERROR_CODE, value=0
Mar 22 01:29:19 ak-test hass[26692]: 2019-03-22 01:29:19 INFO (Thread-17) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=PRESENCE_DETECTION_STATE, value=True

I only have these attributes in the GUI:
id 000C170999F54D
sabotage No
interface ip
battery High
rssi device -32
voltage 2.7

TL;DR: The SABOTAGE attribute lives on channel 0. No _hm_event_callback function is called for channel=0. This might be caused by them being assigned to self._eventcallbacks; instead of self._hmchannels[channel]._eventcallbacks as is the case for channel>0.
So, I looked into this again. Let me explain my findings:

I assume, SABOTAGE is the attribute we are looking for.
The attributes of the sensor are retrieved from the python object in the device_state_attributes function: https://github.com/home-assistant/home-assistant/blob/2871a650f69257fa6e8e4254527007f964e2f806/homeassistant/components/homematic/init.py#L752
To this end, the specific attribute must be listed in HM_ATTRIBUTE_SUPPORT, which it is: https://github.com/home-assistant/home-assistant/blob/2871a650f69257fa6e8e4254527007f964e2f806/homeassistant/components/homematic/init.py#L107
Also, the specific attribute must be present in self._data, which it is, due to the _load_data_from_hm function: https://github.com/home-assistant/home-assistant/blob/2871a650f69257fa6e8e4254527007f964e2f806/homeassistant/components/homematic/init.py#L848
There the attribute is read using getAttributeData, if the attribute is listed in ATTRIBUTENODE, which it is: https://github.com/danielperna84/pyhomematic/blob/9d438bb6d4850d7833602ef4703f900c067ccfd6/pyhomematic/devicetypes/helper.py#L24
However, this function (_load_data_from_hm) is only run during initialization of the object.
In order to update the attribute during runtime, an event callback needs to be registered, in _subscribe_homematic_events :https://github.com/home-assistant/home-assistant/blob/2871a650f69257fa6e8e4254527007f964e2f806/homeassistant/components/homematic/init.py#L815
For this, we need an entry in ATTRIBUTENODE and in self._data. Both are present as described above. An event handler is therefore registered for the specific channel 0 here: https://github.com/home-assistant/home-assistant/blob/2871a650f69257fa6e8e4254527007f964e2f806/homeassistant/components/homematic/init.py#L844, which can also be verified in the logs:

Apr 22 19:48:13 ak-test hass[32639]: 2019-04-22 19:48:13 DEBUG (Thread-22) [homeassistant.components.homematic] Subscribe channel 0 from Flur Sensor ILLUMINATION
Apr 22 19:48:13 ak-test hass[32639]: 2019-04-22 19:48:13 DEBUG (Thread-5) [homeassistant.components.homematic] Subscribe channel 0 from Flur Sensor PRESENCE_DETECTION_STATE
Apr 22 19:48:13 ak-test hass[32639]: 2019-04-22 19:48:13 DEBUG (Thread-22) [homeassistant.components.homematic] Subscribe channel 1 from Flur Sensor ILLUMINATION
Apr 22 19:48:13 ak-test hass[32639]: 2019-04-22 19:48:13 DEBUG (Thread-5) [homeassistant.components.homematic] Subscribe channel 1 from Flur Sensor PRESENCE_DETECTION_STATE

Now, each event either on channel 0 or channel 1 should trigger a callback in the event function, here: https://github.com/danielperna84/pyhomematic/blob/9d438bb6d4850d7833602ef4703f900c067ccfd6/pyhomematic/devicetypes/generic.py#L54
This can nicely be tracked in the debug logs:

Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=SABOTAGE, value=False
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=CONFIG_PENDING, value=False
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=DUTY_CYCLE, value=False
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=LOW_BAT, value=False
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=UNREACH, value=False
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=RSSI_DEVICE, value=-52
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=OPERATING_VOLTAGE_STATUS, value=0
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=OPERATING_VOLTAGE, value=2.5
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=ERROR_CODE, value=0
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=PRESENCE_DETECTION_STATE, value=False
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor PRESENCE_DETECTION_STATE: on>>
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor PRESENCE_DETECTION_STATE received event 'PRESENCE_DETECTION_STATE' value: False
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor ILLUMINATION: 2151.0>>
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor ILLUMINATION received event 'PRESENCE_DETECTION_STATE' value: False
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=PRESENCE_DETECTION_ACTIVE, value=True
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor PRESENCE_DETECTION_STATE: off>>
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor PRESENCE_DETECTION_STATE received event 'PRESENCE_DETECTION_ACTIVE' value: True
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor ILLUMINATION: 2151.0>>
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor ILLUMINATION received event 'PRESENCE_DETECTION_ACTIVE' value: True
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=ILLUMINATION, value=1927.0
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor PRESENCE_DETECTION_STATE: off>>
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor PRESENCE_DETECTION_STATE received event 'ILLUMINATION' value: 1927.0
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor ILLUMINATION: 2151.0>>
Apr 23 17:14:54 ak-test hass[9404]: 2019-04-23 17:14:54 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor ILLUMINATION received event 'ILLUMINATION' value: 1927.0
Apr 23 17:14:55 ak-test hass[9404]: 2019-04-23 17:14:55 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=ILLUMINATION_STATUS, value=0
Apr 23 17:14:55 ak-test hass[9404]: 2019-04-23 17:14:55 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor PRESENCE_DETECTION_STATE: off>>
Apr 23 17:14:55 ak-test hass[9404]: 2019-04-23 17:14:55 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor PRESENCE_DETECTION_STATE received event 'ILLUMINATION_STATUS' value: 0
Apr 23 17:14:55 ak-test hass[9404]: 2019-04-23 17:14:55 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor ILLUMINATION: 1927.0>>
Apr 23 17:14:55 ak-test hass[9404]: 2019-04-23 17:14:55 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor ILLUMINATION received event 'ILLUMINATION_STATUS' value: 0

and for a sabotaged sensor:
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=SABOTAGE, value=True
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=CONFIG_PENDING, value=False
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=DUTY_CYCLE, value=False
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=LOW_BAT, value=False
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=UNREACH, value=False
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=RSSI_DEVICE, value=-54
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=OPERATING_VOLTAGE_STATUS, value=0
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=OPERATING_VOLTAGE, value=2.6
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:0, interface_id=homeassistant-ip, key=ERROR_CODE, value=1
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=PRESENCE_DETECTION_STATE, value=True
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor PRESENCE_DETECTION_STATE: on>>
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor PRESENCE_DETECTION_STATE received event 'PRESENCE_DETECTION_STATE' value: True
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor ILLUMINATION: 1927.0>>
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor ILLUMINATION received event 'PRESENCE_DETECTION_STATE' value: True
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=PRESENCE_DETECTION_ACTIVE, value=True
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor PRESENCE_DETECTION_STATE: on>>
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor PRESENCE_DETECTION_STATE received event 'PRESENCE_DETECTION_ACTIVE' value: True
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor ILLUMINATION: 1927.0>>
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor ILLUMINATION received event 'PRESENCE_DETECTION_ACTIVE' value: True
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=ILLUMINATION, value=1927.0
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor PRESENCE_DETECTION_STATE: on>>
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor PRESENCE_DETECTION_STATE received event 'ILLUMINATION' value: 1927.0
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor ILLUMINATION: 1927.0>>
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor ILLUMINATION received event 'ILLUMINATION' value: 1927.0
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 INFO (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: address=000C170999F54D:1, interface_id=homeassistant-ip, key=ILLUMINATION_STATUS, value=0
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor PRESENCE_DETECTION_STATE: on>>
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor PRESENCE_DETECTION_STATE received event 'ILLUMINATION_STATUS' value: 0
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [pyhomematic.devicetypes.generic] HMGeneric.event: Using callback <bound method HMDevice._hm_event_callback of <Entity Flur Sensor ILLUMINATION: 1927.0>>
Apr 23 17:21:40 ak-test hass[9404]: 2019-04-23 17:21:40 DEBUG (Thread-19) [homeassistant.components.homematic] Flur Sensor ILLUMINATION received event 'ILLUMINATION_STATUS' value: 0

Now, I would assume callbacks to be called back, every time the channel 0 receives an event. However, only channel 1 seems to forward the events to the handlers. Nothing happens for channel 0. Apparently, the callbacks are somehow different. So, I followed the callback definition...
The callbacks are registered via the  setEventCallback function here: https://github.com/danielperna84/pyhomematic/blob/9d438bb6d4850d7833602ef4703f900c067ccfd6/pyhomematic/devicetypes/generic.py#L381
Attributes to the function are callback=self._hm_event_callback, bequeath=False, channel=channel as defined here: https://github.com/home-assistant/home-assistant/blob/2871a650f69257fa6e8e4254527007f964e2f806/homeassistant/components/homematic/init.py#L844
This causes callbacks with channel=0 to handled differently than channel>0. The former goes into self._eventcallbacks.append(callback). The latter goes into self._hmchannels[channel]._eventcallbacks.append(callback).

I think, this is as far as I can get today. Maybe I'll find more time to trace the callbacks in the coming days... @danielperna84, if this already rings a bell with you, I'll be happy to receive more directions for testing!

I updated to HA 0.95.4 today. A new sensor appeared for the battery status. I cannot check currently, whether it works. The sabotage attribute is still not working at least (in both sensors: presence and battery).

The battery sensor entities are not related to the issue with the sabotage attribute.

This issue is not an issue anymore in the new hahomematic package. 👍 I'll close this issue to get it off my mind. ;-)


C#: Add Xamarin example

add "HelloworldXamarin" example that shows how to use gRPC C# on xamarin.Android and xamarin.iOS
add readme for the helloworldxamarin
update the status of Xamarin and Unity support in src/csharp/experimental
mention experimental support of Xamarin and Unity in src/csharp/README.md

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,976,654      Total (=)      1,976,654

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,775,733      Total (>)     10,775,728

 No significant differences in binary sizes

@jtattermusch there last version of the gRPC has the Xamarin support?

@jzeferino answer to your question is in the README.md for the HelloworldXamarin. See diff from this PR: https://github.com/grpc/grpc/pull/16194/files#diff-bfbb3998f0048e71be7b7fca422265b5R7

****************************************************************

libgrpc.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,976,402      Total (=)      1,976,402

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,775,377      Total (<)     10,775,387

 No significant differences in binary sizes


.ssh configs etc are not available when running manual git commands in other steps.

I have a PipelineResource of type git
When properly configured this yields all the required ssh components under /tekton/home/.ssh and my git repo is cloned under /workspace
I then proceeded to add a step in my Task such as
 - name: pre-build-and-push
      image: ubuntu
      command:
      - /bin/bash
      args:
      - -c
      - |
         cd /workspace/my-git-source
         git pull

This led me down hours of looking into why I kept getting Host key verification failed. errors despite the current user root yielding /home/tekton when having the shell state that ~ is indeed /tekton/home... that contains a legit .ssh dir with all the proper configs/known_hosts etc.
My git pull only worked finally after copying /tekton/home/.ssh to /root/.ssh....
Additional Info
https://github.com/tektoncd/pipeline/issues/1836#issuecomment-575741808
https://tektoncd.slack.com/archives/CJ62C1555/p1580479063149600

Thank you for your bug report.
One thing that we need to do for sure is to update the documentation in https://github.com/tektoncd/pipeline/blob/master/docs/auth.md#ssh-authentication-git where it talks about ~/.ssh/config - it should say /tekton/home/.ssh instead.
Apart from that, I'm not sure there's much more we can do. The location where the ssh config is expected to be depends very much on the docker image (and thus on the OS user) that is used in the step - the only thing we can do it to ensure the configuration is available somewhere that can be consumed by steps.
We could also add an example in the docs of how to point git to the correct configuration without the need of an extra step, I believe something like this should work:
steps:
- image: ubuntu
  name: some-git-script
  workingDir: $(outputs.resources.<git-resource-name>.path)
  env:
    name: GIT_SSH_COMMAND
    value: "/usr/bin/ssh -F /home/tekton/.ssh/config"
  script: |
      #!/usr/bin/env sh
      # Access a private git repo
      git pull

/kind documentation

if I have a docker image that runs as root and expects root's $HOME to be in /root and subsequently its ssh confs in /root/.ssh, the image should be able to run as a step in Tekton without jumping through a bunch of hoops.

https://github.com/tektoncd/pipeline/issues/2013

/reopen
/remove-lifecycle rotten

/remove-lifecycle stale


Group player fill mode does not clip child fills in native-backed version

In the example below, the children fill forward when they should not fill.
var opts = {duration: 2000, fill: 'both'};
var a1 = new Animation(div1, [{transform: 'translate(0,0)'}, {transform: 'translate(300px,300px)'}], opts);
var a2 = new Animation(div2, [{transform: 'translate(0,0)'}, {transform: 'translate(100px,50px)'}], opts);
var a3 = new Animation(div3, [{transform: 'translate(0,0)'}, {transform: 'translate(300px,-200px)'}], opts);
var group = new AnimationGroup([a1, a2, a3], {fill: 'none'});
var player = document.timeline.play(group);

Works as expected in the pure polyfill (web-animations-next.dev).

I think that is caused by a bug in Chrome 40 where cancelling a filling player doesn't cancel the fill effect. Will verify when I have time to build chrome 41.

This works as expected in chrome tip of tree.


codec change support added

Summary: Audio codec change support added
Type: Feature
Owner: Marcin Wojciechowski
Reviewers: Adam Czynszak, Stuart Pett
Coding Standard Applied: Y
Test Plan: None
Dependencies and Impacts: None
Jira: RIALTO-28

https://jenkins.code.rdkcentral.com/job/github-triggered/25471/ started

https://jenkins.code.rdkcentral.com/job/build-component/61577/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/17885/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-platform/30035/ started.

build-aml-reftv Console Log uploaded to Gist URL: https://gist.github.com/c1c56f1d55696bf7f0aa7f6e8ae3b094

build-aml-refboard Console Log uploaded to Gist URL: https://gist.github.com/dca980f466923420bdbb53d22bbf1f96

Smoke tests for ['build-rpi-hybrid-refapp2'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/133254/

Smoke tests for ['build-rpi-hybrid-wpe-dunfell'/'build-rpi-mc-wpe-dunfell'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/133255/

https://jenkins.code.rdkcentral.com/job/github-triggered/25484/ started

https://jenkins.code.rdkcentral.com/job/build-component/61582/ started.

https://jenkins.cmf.code.rdkcentral.com/job/github-triggered/17898/ started

https://jenkins.cmf.code.rdkcentral.com/job/build-component-platform/30040/ started.

build-aml-refboard Console Log uploaded to Gist URL: https://gist.github.com/6ed6f47f7b6885f542ec4da0cffaf9ce

build-aml-reftv Console Log uploaded to Gist URL: https://gist.github.com/dc3000387bf76aa6b6057fbca5288a14

Smoke tests for ['build-rpi-hybrid-refapp2'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/133262/

Smoke tests for ['build-rpi-hybrid-wpe-dunfell'/'build-rpi-mc-wpe-dunfell'] added.
https://jenkins.cmf.code.rdkcentral.com/job/test-components-flow/133263/


The dataset link is broken

Hi,
Congratulations on the great work! The link to the dataset seems broken.

Hi, I am releasing a cleaner version with vis code, so I temporarily remove the link. The link will be accessible again in 24 hours.

Thank you for answering so fast!


Documentation search or hoogle integration

This is something I reach for, perhaps because I'm used to it more than anything. But it might be nice to have Hoogle integrated into the documentation.

If this is about the educational dialect (i.e., codeworld-base package), then try clicking Guide, then choosing "Appendix: Reference" on the left.
If you're talking about Haskell mode, then this is a lot more involved, but #79 is a prerequisite, at least.


GraphNode's ports selectable through other graph nodes

Godot version:
269145a346bddae5cbbf00fd17b6c8eac4cd4665
OS/device including version:
ArcoLinux
Issue description:
Whether or not a graph node is covering another graph node's port, it's still possible to drag a connection off.  This leads to annoyances where you're trying to move the graph node out of the way, but instead you're disconnecting things by accident.  Ideally, ports would not be manipulable while being covered by other graph nodes.

Still valid in 9e7348f

Seems to be fixed, I can't reproduce this in 4.3-dev6. Can someone confirm?


Option for .guard() and .check() to detect abundant properties

Recently I came across a case similar to the following:
I had declared a runtype with an optional property
const Person = rt.Record({
  'name': rt.String,
}).And(rt.Partial({
  'birthyear': rt.Number,
}));

but then mistakenly created an object
const person = {
  'name': 'Patrick',
  'age': 31,
};

I long did not realize this because Person.guard(person) still returns true. This is understandable because person does in fact have all required properties (name), but I wished it would spot and criticize the abundant property (age).
TypeScript in fact always complains in such cases; e.g.
const person: {'name': string, 'birthyear'?: number} = {'name': 'Patrick', 'age': 31};
won't compile.
Maybe there should be an additional argument for guard() and check() for this purpose?

This would also be great for security. I use runtypes on a server to validate input from untrusted clients. It would be nice if, after validating the untrusted input, I could pass it to library functions that e.g. accept an "options" object without worrying about the client setting extra options I didn't expect. Currently my approach is to just make a copy of the user input with only the fields that are declared in the type, but this is very manual and error-prone.

Let's track this at #41.


Fix readme typo

Hello,
just a small typo I discovered: It's "Deutscher Wetterdienst".
Thank you for this great card!

thank you


Crash on startup - Windows 7

I downloaded file from the link here
I unzipped, navigated to .exe, and opened it.
I get this error

This process also differs from the docs  which say that I should be downloading an installer and it will install falcon on my machine.
I'm glad to take a look into the error but it will probably be fixed by the time I can get around to it :smile:

It looks like the zip file wasn't unzipped fully.

It looks like the zip file wasn't unzipped fully (this is a know issue #126). You need to install 7-zip.
Please, let us know if using 7-zip to unzip [windows-falcon-sql-client.zip](https://github.com/plotly/falcon-sql-client/releases/download/v2.3.2/windows-falcon-sql-client.zip] works for you.

Closed via https://github.com/plotly/falcon-sql-client/releases/tag/v2.3.3-beta1


[CHANGE ME] Re-generated  to pick up changes in the API or client library generator.

This PR was generated using Autosynth. :rainbow:
Here's the log from Synthtool:
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/synth.py.
synthtool > Ensuring dependencies.
synthtool > Pulling artman image.
latest: Pulling from googleapis/artman
34667c7e4631: Pulling fs layer
d18d76a881a4: Pulling fs layer
119c7358fbfc: Pulling fs layer
2aaf13f3eff0: Pulling fs layer
f084c574b642: Pulling fs layer
16d94f5b7210: Pulling fs layer
e88b6bd69b78: Pulling fs layer
7cf389248ba8: Pulling fs layer
092032457354: Pulling fs layer
f896000a2906: Pulling fs layer
5ba784e979fd: Pulling fs layer
c74aed00a155: Pulling fs layer
4ab5b8ed4f38: Pulling fs layer
5d15beeb7eba: Pulling fs layer
0f7244a9d268: Pulling fs layer
064c13a421c5: Pulling fs layer
69b1e5bc0acc: Pulling fs layer
3fcd2ce808ed: Pulling fs layer
af956f487d27: Pulling fs layer
df839f072f0c: Pulling fs layer
475bbfd2e0b3: Pulling fs layer
4dfe8a2ecc8f: Pulling fs layer
b252427a076e: Pulling fs layer
0c548603164c: Pulling fs layer
092032457354: Waiting
2aaf13f3eff0: Waiting
f896000a2906: Waiting
f084c574b642: Waiting
5ba784e979fd: Waiting
16d94f5b7210: Waiting
c74aed00a155: Waiting
e88b6bd69b78: Waiting
4ab5b8ed4f38: Waiting
7cf389248ba8: Waiting
5d15beeb7eba: Waiting
0f7244a9d268: Waiting
df839f072f0c: Waiting
064c13a421c5: Waiting
475bbfd2e0b3: Waiting
69b1e5bc0acc: Waiting
3fcd2ce808ed: Waiting
af956f487d27: Waiting
4dfe8a2ecc8f: Waiting
b252427a076e: Waiting
0c548603164c: Waiting
d18d76a881a4: Verifying Checksum
d18d76a881a4: Download complete
119c7358fbfc: Verifying Checksum
119c7358fbfc: Download complete
34667c7e4631: Verifying Checksum
34667c7e4631: Download complete
2aaf13f3eff0: Verifying Checksum
2aaf13f3eff0: Download complete
f084c574b642: Verifying Checksum
f084c574b642: Download complete
e88b6bd69b78: Download complete
092032457354: Verifying Checksum
092032457354: Download complete
f896000a2906: Verifying Checksum
f896000a2906: Download complete
7cf389248ba8: Verifying Checksum
7cf389248ba8: Download complete
34667c7e4631: Pull complete
c74aed00a155: Verifying Checksum
c74aed00a155: Download complete
d18d76a881a4: Pull complete
119c7358fbfc: Pull complete
16d94f5b7210: Verifying Checksum
16d94f5b7210: Download complete
2aaf13f3eff0: Pull complete
4ab5b8ed4f38: Verifying Checksum
4ab5b8ed4f38: Download complete
5d15beeb7eba: Verifying Checksum
5d15beeb7eba: Download complete
5ba784e979fd: Verifying Checksum
5ba784e979fd: Download complete
064c13a421c5: Verifying Checksum
064c13a421c5: Download complete
0f7244a9d268: Verifying Checksum
0f7244a9d268: Download complete
69b1e5bc0acc: Download complete
af956f487d27: Verifying Checksum
af956f487d27: Download complete
f084c574b642: Pull complete
475bbfd2e0b3: Verifying Checksum
475bbfd2e0b3: Download complete
4dfe8a2ecc8f: Verifying Checksum
4dfe8a2ecc8f: Download complete
b252427a076e: Verifying Checksum
b252427a076e: Download complete
3fcd2ce808ed: Verifying Checksum
3fcd2ce808ed: Download complete
0c548603164c: Verifying Checksum
0c548603164c: Download complete
df839f072f0c: Verifying Checksum
df839f072f0c: Download complete
16d94f5b7210: Pull complete
e88b6bd69b78: Pull complete
7cf389248ba8: Pull complete
092032457354: Pull complete
f896000a2906: Pull complete
5ba784e979fd: Pull complete
c74aed00a155: Pull complete
4ab5b8ed4f38: Pull complete
5d15beeb7eba: Pull complete
0f7244a9d268: Pull complete
064c13a421c5: Pull complete
69b1e5bc0acc: Pull complete
3fcd2ce808ed: Pull complete
af956f487d27: Pull complete
df839f072f0c: Pull complete
475bbfd2e0b3: Pull complete
4dfe8a2ecc8f: Pull complete
b252427a076e: Pull complete
0c548603164c: Pull complete
Digest: sha256:c58f4ec3838eb4e0718eb1bccc6512bd6850feaa85a360a9e38f6f848ec73bc2
Status: Downloaded newer image for googleapis/artman:latest
synthtool > Cloning googleapis.
synthtool > Running generator for google/cloud/dialogflow/artman_dialogflow_v2beta1.yaml.
synthtool > Generated code into /home/kbuilder/.cache/synthtool/googleapis/artman-genfiles/python/dialogflow-v2beta1.
synthtool > No replacements made in ['docs/**/*.rst', 'docs/conf.py'] for pattern google-cloud-dialogflow, maybe replacement is not longer needed?
synthtool > Replaced 'google.cloud.dialogflow' in docs/gapic/v2beta1/api.rst.
synthtool > Replaced 'google.cloud.dialogflow' in docs/gapic/v2beta1/types.rst.
synthtool > No replacements made in ['tests/unit/gapic/**/*.py', 'dialogflow_v2beta1/**/*.py'] for pattern import google.cloud.dialogflow, maybe replacement is not longer needed?
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2beta1/test_entity_types_client_v2beta1.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2beta1/test_intents_client_v2beta1.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2beta1/test_documents_client_v2beta1.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2beta1/test_knowledge_bases_client_v2beta1.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2beta1/test_contexts_client_v2beta1.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2beta1/test_sessions_client_v2beta1.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2beta1/test_session_entity_types_client_v2beta1.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2beta1/test_agents_client_v2beta1.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/types.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/__init__.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/context_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/knowledge_base_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/session_pb2.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/intent_pb2.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/intent_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/session_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/agent_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/entity_type_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/session_entity_type_pb2.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/document_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/webhook_pb2.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/proto/session_entity_type_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/contexts_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/session_entity_types_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/documents_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/entity_types_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/intents_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/knowledge_bases_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/sessions_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/agents_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/transports/intents_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/transports/knowledge_bases_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/transports/agents_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/transports/contexts_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/transports/entity_types_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/transports/documents_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/transports/session_entity_types_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2beta1/gapic/transports/sessions_grpc_transport.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2beta1/test_entity_types_client_v2beta1.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2beta1/test_intents_client_v2beta1.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2beta1/test_documents_client_v2beta1.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2beta1/test_knowledge_bases_client_v2beta1.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2beta1/test_contexts_client_v2beta1.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2beta1/test_sessions_client_v2beta1.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2beta1/test_session_entity_types_client_v2beta1.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2beta1/test_agents_client_v2beta1.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2beta1/gapic/contexts_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2beta1/gapic/session_entity_types_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2beta1/gapic/documents_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2beta1/gapic/entity_types_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2beta1/gapic/intents_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2beta1/gapic/knowledge_bases_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2beta1/gapic/sessions_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2beta1/gapic/agents_client.py.
synthtool > No replacements made in ['tests/unit/gapic/**/*.py', 'dialogflow_v2beta1/**/*.py'] for pattern google-cloud-dialogflow, maybe replacement is not longer needed?
synthtool > Replaced "'-dialogflow'" in dialogflow_v2beta1/gapic/contexts_client.py.
synthtool > Replaced "'-dialogflow'" in dialogflow_v2beta1/gapic/session_entity_types_client.py.
synthtool > Replaced "'-dialogflow'" in dialogflow_v2beta1/gapic/documents_client.py.
synthtool > Replaced "'-dialogflow'" in dialogflow_v2beta1/gapic/entity_types_client.py.
synthtool > Replaced "'-dialogflow'" in dialogflow_v2beta1/gapic/intents_client.py.
synthtool > Replaced "'-dialogflow'" in dialogflow_v2beta1/gapic/knowledge_bases_client.py.
synthtool > Replaced "'-dialogflow'" in dialogflow_v2beta1/gapic/sessions_client.py.
synthtool > Replaced "'-dialogflow'" in dialogflow_v2beta1/gapic/agents_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2beta1/gapic/contexts_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2beta1/gapic/session_entity_types_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2beta1/gapic/documents_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2beta1/gapic/entity_types_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2beta1/gapic/intents_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2beta1/gapic/knowledge_bases_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2beta1/gapic/sessions_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2beta1/gapic/agents_client.py.
synthtool > No replacements made in ['tests/unit/gapic/**/*.py', 'dialogflow_v2beta1/**/*.py'] for pattern (`Dialogflow documentation <.*?>`)_\., maybe replacement is not longer needed?
synthtool > No replacements made in dialogflow_v2beta1/gapic/agents_client.py for pattern Example for.*
\s+
.*
(.*
)+?.*?
, maybe replacement is not longer needed?
synthtool > No replacements made in ['dialogflow_v2beta1/gapic/entity_types_client.py', 'dialogflow_v2beta1/gapic/intents_client.py'] for pattern ^\s+::

, maybe replacement is not longer needed?
synthtool > Running generator for google/cloud/dialogflow/artman_dialogflow_v2.yaml.
synthtool > Generated code into /home/kbuilder/.cache/synthtool/googleapis/artman-genfiles/python/dialogflow-v2.
synthtool > Replaced 'google-cloud-dialogflow' in docs/conf.py.
synthtool > Replaced 'google.cloud.dialogflow' in docs/gapic/v2/api.rst.
synthtool > Replaced 'google.cloud.dialogflow' in docs/gapic/v2/types.rst.
synthtool > No replacements made in ['tests/unit/gapic/**/*.py', 'dialogflow_v2/**/*.py'] for pattern import google.cloud.dialogflow, maybe replacement is not longer needed?
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2/test_intents_client_v2.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2/test_contexts_client_v2.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2/test_session_entity_types_client_v2.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2/test_entity_types_client_v2.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2/test_agents_client_v2.py.
synthtool > Replaced 'from google.cloud\\.' in tests/unit/gapic/v2/test_sessions_client_v2.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/types.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/__init__.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/context_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/session_pb2.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/intent_pb2.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/intent_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/session_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/agent_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/entity_type_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/session_entity_type_pb2.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/webhook_pb2.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/proto/session_entity_type_pb2_grpc.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/contexts_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/session_entity_types_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/entity_types_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/intents_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/sessions_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/agents_client.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/transports/intents_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/transports/agents_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/transports/contexts_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/transports/entity_types_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/transports/session_entity_types_grpc_transport.py.
synthtool > Replaced 'from google.cloud\\.' in dialogflow_v2/gapic/transports/sessions_grpc_transport.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2/test_intents_client_v2.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2/test_contexts_client_v2.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2/test_session_entity_types_client_v2.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2/test_entity_types_client_v2.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2/test_agents_client_v2.py.
synthtool > Replaced 'from google.cloud import' in tests/unit/gapic/v2/test_sessions_client_v2.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2/gapic/contexts_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2/gapic/session_entity_types_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2/gapic/entity_types_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2/gapic/intents_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2/gapic/sessions_client.py.
synthtool > Replaced 'from google.cloud import' in dialogflow_v2/gapic/agents_client.py.
synthtool > Replaced 'google-cloud-dialogflow' in dialogflow_v2/gapic/contexts_client.py.
synthtool > Replaced 'google-cloud-dialogflow' in dialogflow_v2/gapic/session_entity_types_client.py.
synthtool > Replaced 'google-cloud-dialogflow' in dialogflow_v2/gapic/entity_types_client.py.
synthtool > Replaced 'google-cloud-dialogflow' in dialogflow_v2/gapic/intents_client.py.
synthtool > Replaced 'google-cloud-dialogflow' in dialogflow_v2/gapic/sessions_client.py.
synthtool > Replaced 'google-cloud-dialogflow' in dialogflow_v2/gapic/agents_client.py.
synthtool > No replacements made in ['tests/unit/gapic/**/*.py', 'dialogflow_v2/**/*.py'] for pattern '-dialogflow', maybe replacement is not longer needed?
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2/gapic/contexts_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2/gapic/session_entity_types_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2/gapic/entity_types_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2/gapic/intents_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2/gapic/sessions_client.py.
synthtool > Replaced '(Returns:\n\\s+)([a-zA-Z]+Client:)' in dialogflow_v2/gapic/agents_client.py.
synthtool > No replacements made in ['tests/unit/gapic/**/*.py', 'dialogflow_v2/**/*.py'] for pattern (`Dialogflow documentation <.*?>`)_\., maybe replacement is not longer needed?
synthtool > No replacements made in dialogflow_v2/gapic/agents_client.py for pattern Example for.*
\s+
.*
(.*
)+?.*?
, maybe replacement is not longer needed?
synthtool > No replacements made in ['dialogflow_v2/gapic/entity_types_client.py', 'dialogflow_v2/gapic/intents_client.py'] for pattern ^\s+::

, maybe replacement is not longer needed?
synthtool > Replaced '# Generated by the .*' in dialogflow_v2beta1/proto/session_pb2.py.
synthtool > Replaced '# Generated by the .*' in dialogflow_v2beta1/proto/intent_pb2_grpc.py.
synthtool > Replaced '# Generated by the .*' in dialogflow_v2/proto/intent_pb2_grpc.py.
synthtool > Replaced '# Generated by the .*' in dialogflow_v2/proto/session_pb2.py.
synthtool > No replacements made in ['dialogflow_v2beta1/gapic/intents_client.py', 'dialogflow_v2beta1/gapic/sessions_client.py', 'dialogflow_v2/gapic/intents_client.py'] for pattern # Copyright 2018 Google LLC, maybe replacement is not longer needed?
synthtool > No replacements made in dialogflow_v2/gapic/agents_client.py for pattern }\\\" [\\]\n(\s+retry \(Optional), maybe replacement is not longer needed?
synthtool > No replacements made in dialogflow_v2/proto/agent_pb2.py for pattern :math:, maybe replacement is not longer needed?
synthtool > No replacements made in dialogflow_v2/proto/agent_pb2.py for pattern :raw-latex:, maybe replacement is not longer needed?
synthtool > Cleaned up 0 temporary directories.
synthtool > Wrote metadata to synth.metadata.

Leaving this open so Autosynth doesn't try to open a new one, but the generation is in #123


CNF-15645: Migrating Hardware Template ConfigMaps to CRDs: Step 1

This commit introduces the first step in migrating hardware templates from ConfigMaps to CRDs. The following changes are included:

Introduce the Hardware Template CRD: Defines the structure for representing hardware templates within CRDs.
Update the NodePool CRD: Embeds NodePoolData to eliminate the need for redefining common fields (Name, HwProfile, ResourcePoolID) in multiple places. This change improves code modularity, enhances reusability, and supports future extensibility.
Add Migration Getter Methods: Provides methods for the plugin to migrate and utilize NodePoolData effectively.

This step is necessary for the plugin to implement required changes before completing the migration.
Once the plugin changes are merged, subsequent IMS updates utilizing the Hardware Template CRD will be submitted.

Can't we just merge the plugin side changes at the same time to avoid the migration hop ?

Can't we just merge the plugin side changes at the same time to avoid the migration hop ?

Yes, we can merge both changes simultaneously in a controlled manner.

/hold

/hold cancel

Since it’s no longer a ConfigMap, the description for spec.templates.hwTemplate in the ClusterTemplate should be updated, as it currently says: // HwTemplate defines a reference to a hardware template configmap. Additionally, the examples and the related section in the docs should be updated to reflect the changes as well. Looks good to me otherwise.

All references have been updated.

/lgtm

One more is missing in the doc under the timeout configuration. The others look good to me!
https://github.com/openshift-kni/oran-o2ims/blob/main/docs/cluster-provisioning.md#timeout-configuration

One more is missing in the doc under the timeout configuration. The others look good to me! https://github.com/openshift-kni/oran-o2ims/blob/main/docs/cluster-provisioning.md#timeout-configuration

Updated.

/lgtm

/approve


Make assume_role_with_web_identity provider configuration value a list

Description of your changes

Fixes #1054
The Terraform provider schema declares assume_role_with_web_identity as a list, whereas we prepare a map. The theory is that sts.AssumeRoleWithWebIdentity is thus not configured properly for the no-fork external client and as a last resort, the provider tries to access the IMDS to authenticate its requests. This PR changes the configuration value from a map to a list as expected by the corresponding Terraform provider schema.
I have:

[x] Run make reviewable test to ensure this PR is ready for review.

How has this code been tested

TODO:

[ ] We need to validate this in Upbound Cloud
[ ] We need to test whether the CLI-based external client can still reconcile with the WebIdentity provider configuration
[ ] We also need to understand how the WebIdentity configuration still works (via the environment variables) although it doesn't conform to the declared schema either
[ ] We had better test the other provider configurations as well

/test-examples="examples/ec2/vpc.yaml"

/test-examples="examples/ec2/vpc.yaml"

Successfully validated this PR in Upbound Cloud with the following provider packages:
k get providers.pkg
NAME                           INSTALLED   HEALTHY   PACKAGE                                                                                AGE
ulucinar-provider-aws-ec2      True        True      index.docker.io/ulucinar/provider-aws-ec2:v0.48.0-396bcc2a964d9f184c338185b4b04572f4a73283      21m
ulucinar-provider-family-aws   True        True      index.docker.io/ulucinar/provider-family-aws:v0.48.0-396bcc2a964d9f184c338185b4b04572f4a73283   20m

ProviderConfig object in the MCP:
k get providerconfigs.aws default -o yaml
apiVersion: aws.upbound.io/v1beta1
kind: ProviderConfig
metadata:
  creationTimestamp: "2024-01-03T11:13:14Z"
  finalizers:
  - in-use.crossplane.io
  generation: 1
  name: default
  resourceVersion: "63730"
  uid: dfc10ea9-4abc-4be3-b4d8-166cb6f65a53
spec:
  credentials:
    source: Upbound
    upbound:
      webIdentity:
        roleARN: arn:aws:iam::012345678911:role/iamrole-alper-provider-aws
status:
  users: 1

Claims:
> k -n default get claim

NAME   SYNCED   READY   CONNECTION-SECRET   AGE
test   True     True                        25s

Composed resources:
> k get managed

NAME                                      READY   SYNCED   EXTERNAL-NAME           AGE
vpc.ec2.aws.upbound.io/test-qv29x-dlmll   True    True     vpc-0d6f51499d86b1eec   39s

Tested this PR manually with WebIdentity (and mocked Upbound) auth sources for both remaining CLI-based resources and no-fork. All pass ✅ .
What happened:
At 0.45.0 -> 0.46.0, provider-aws switched configuring the no-fork client using the native provider's Configure method using the prepared TF provider configuration block, instead of preparing the native TF configuration object directly from ProviderConfig.
As mentioned in the PR description, the Terraform provider schema for configuration block declares assume_role_with_web_identity as a list, whereas we prepare a map.
The configuration block is still being used for CLI-based external clients' configuration (to create a main.tf.json). Strangely, The CLI-based configuration can handle assume_role_with_web_identity block being either a list, or a map. However, the native provider's Configure method is strict about assume_role_with_web_identity block's Go Type, and expects a list. In case it is not, it is silently skipped and not included in the configuration process.
Below is an example of generated main.tf.json after successful CLI-based reconciliation with this PR version that sets the assume_role_with_web_identity block as an single-element array. Notice the resulting assume_role_with_web_identity block in the main.tf.json is an array type.
{
  "provider": {
    "aws": {
      "assume_role_with_web_identity": [
        {
          "role_arn": "arn:aws:iam::123456781234:role/test",
          "web_identity_token_file": "/path/to/tokem"
        }
      ],
      "region": "us-west-1"
    }
  },
  "resource": {
    "aws_vpc_security_group_ingress_rule": {
      ...OMITTED FOR BREWITY...
    }
  }
}

Following is an example of generated main.tf.json after successful CLI-based reconciliation with 0.41.0 that sets the assume_role_with_web_identity as a map in the configuration. Notice the resulting assume_role_with_web_identity block is directly a map type in the main.tf.json.
{
  "provider": {
    "aws": {
      "assume_role_with_web_identity": {
          "role_arn": "arn:aws:iam::123456781234:role/test",
          "web_identity_token_file": "/path/to/tokem"
        },
      "region": "us-west-1"
    }
  },
  "resource": {
    "aws_vpc": {
      ...OMITTED FOR BREWITY...
    }
  }
}

Both can be successfully reconciled by the CLI-based external clients.
However, providing assume_role_with_web_identity as map causes a regression in native provider's Configure method.
This was not causing <=0.45.0 no-fork clients, because they were not consuming the preparedconfiguration block through native Configure method, but we were explicitly crafting the AWS client directly. We switched to native provider configuration method, for fixing another issue related to assume role chain configs, unrelated to this issue here and unaffected. That fix is still valid.

validated as well in upbound - is working - thanks @ulucinar @erhancagirici

Thank you @haarchri for giving it a try!


v3.1.3

adjusts determinic rank for all identity addresses
adds 'State' to nominator, and makes it more clear the status in the ui
Fixes issue with Polkadot nomination era threshold (currently set to 4, causing it to see any nomination in the past 4 eras as not stale, when it should be only 1 era)

can you add tests for the new features implemented ?

state enum
tests
swagger endpoints (i.e. candidates/valid not there yet)

Latest commit should address all the above


taskwarrior-tui: 0.13.33 -> 0.13.34

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[x] Fits CONTRIBUTING.md.

:laughing: whoop. But nixos is not participating and my PRs were not approved AFAICS... either way, I'm reaching the four PRs with my rust contributions maybe :smile:


RTMP logging error

Clapper player : 0.2.58
rtmp version : 0.13
log.js:67[error][t] error on event o13:progress trigger - TypeError: this.el.getBytesLoaded is not a function(…)
log.js:67[error][t] error on event o13:progress trigger - TypeError: this.el.getBytesLoaded is not a function(…)
log.js:67[error][t] error on event o13:progress trigger - TypeError: this.el.getBytesLoaded is not a function(…)
log.js:67[error][t] error on event o13:progress trigger - TypeError: this.el.getBytesLoaded is not a function(…)
log.js:67[error][t] error on event o13:progress trigger - TypeError: this.el.getBytesLoaded is not a function(…)
log.js:67[error][t] error on event o13:progress trigger - TypeError: this.el.getBytesLoaded is not a function(…)
...
The video is playing fine but i keep getting these logs

That is a live stream and the progress bar is at 100%. Here is the code that i am using. I removed the rtmp stream intentionally.
var player= []
	var changeVideo = function(videoURL, parentId){
		if(player[parentId]!=undefined) player[parentId].destroy();
		player[parentId] = new Clappr.Player({
		    source: videoURL,
		    parentId: '#'+parentId,
		    plugins: {'playback': [RTMP]},
		    rtmpConfig: {
		        swfPath: 'RTMP.swf',
		        scaling:'stretch',
		        playbackType: 'live', 		        bufferTime: 1, 		        startLevel: 0, 		    }, 		    autoPlay: true 		}); 		player[parentId].play() 		player[parentId].listenTo( 			player[parentId].core.getCurrentContainer(), 			Clappr.Events.FRAG_LOADED, 			function(e,s) { 				console.log(e); 				console.log(s) 			} 		) 		return player[parentId] 	} 	changeVideo("rtmp://XXXXXXXXXXXXXXXXXXXXXXXXX", "player")`

That's weird, because the getBytesLoaded exists: https://github.com/flavioribeiro/clappr-rtmp-plugin/blob/master/src/RTMP.as#L128
Is there any chance you have the RTMP.swf cached in your browser (the previous version of RTMP.swf didn't have that function).

This is the only version that i have used. I think getBytesTotal is not valid for live streams. I made the following changes that fixed this error. I chose 100 so that the progress bar is always to the right end.
       if(this._playbackType === _playback2.default.LIVE){
	      	this.trigger(_events2.default.PLAYBACK_PROGRESS, {
		      start: 0,
		      current: 100,
		      total: 100
		    });
	      } else {
	      	this.trigger(_events2.default.PLAYBACK_PROGRESS, {
		      start: 0,
		      current: this.el.getBytesLoaded(),
		      total: this.el.getBytesTotal()
		    });
	      }

@sarat1669 I tested here, calling el.getBytesLoaded in a live stream it returns 0. To go any further we'll need a link of your "app" where this problem can be reproduced.

Same as https://github.com/flavioribeiro/clappr-rtmp-plugin/issues/23
The missing functions (getBytesLoaded and getBytesTotal) were added in 6 July: https://github.com/flavioribeiro/clappr-rtmp-plugin/commit/e4d053bd0f798a0eb05f232048e1e09889ae672d
However the url http://cdn.jsdelivr.net/clappr.rtmp/latest/rtmp.min.js is still pointing to an old version of the plugin. So either you have to build the plugin yourself, or wait for someone to build and update the latest version.


Adds input visualization

Changes
We track input as part of the application model
How I tested this
Locally + some unit tests
Notes
https://github.com/DAGWorks-Inc/burr/issues/59
Checklist

[x] PR has an informative and human-readable title (this will be pulled into the release notes)
[x] Changes are limited to a single goal (no scope creep)
[x] Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
[x] Any change in functionality is tested
[x] New functions are documented (with a description, list of inputs, and expected output)
[x] Placeholder code is flagged / future TODOs are captured in comments
[x] Project documentation has been updated if adding/changing functionality.

Satisfies https://github.com/DAGWorks-Inc/burr/issues/59

We can iterate on the view later but this is pretty clean for now:


Changed head to head hotkeys

The hotkeys for navigating between model results on the h2h page used to be p and n (previous and next).
Changing it to b and n (back and next) makes it slightly easier to use.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 96.90%. Comparing base (07eee95) to head (bcc15e0).

Additional details and impacted files
@@           Coverage Diff           @@
##            trunk      #62   +/-   ##
=======================================
  Coverage   96.90%   96.90%
=======================================
  Files          30       30
  Lines        1291     1291
=======================================
  Hits         1251     1251
  Misses         40       40

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Update to version 2 of quick-error

This just updates quick-error to version 2. This did involve switching cause over to source and removing description since both were deprecated since rust 1.33.0 and 1.42.0 respectively. (Deja vu)
I noticed there are unrelated problems trying to test proptest-derive which will probably cause CI to fail.

I see now from CONTRIBUTING.md that nightly is required for working on proptest_derive


Mobile friendly interactive links and achievements

This should be applied to the index and a user should be able to sort and position the links or achievements based on where they drag and drop it to. There might be a more mobile friendly alternative to drag and drop.

Okay this wasn't great. I learnt why I probably shouldn't do this and order can be set from hitting the edit button.


"Cannot Find module ./db.json"

Error persists in both Master and 1.02 versions, through multiple un/installations.

Make sure in the drop down menu that you have the check next to version 1.02

For a temporary fix, make sure you've downloaded from the master branch.
Open the console.bat file. Type "npm install" this will grab all the bot dependencies.
If you're on a Mac, just open a terminal and navigate to the bot folder, and type the same command.

As a temporary fix, Make sure you've downloaded from the master branch.
Delete the "node_modules" folder.  Open the "console.bat" file. type "npm install" and press enter.
This should properly install all the bot's dependencies.

This issue should no longer occur. If you like you can delete what you have and download the newest version of the bot from the master branch. The above method in my previous comment will still fix the issue however. There is a new file that says "run this before first launch". This should take care of the issue all together. I've also included this in the updated readme file.


compile_guide.md info is not incomplete

In GitLab by @luotian-github on Nov 3, 2017, 10:07
fix a bug

In GitLab by @sokril on Nov 8, 2019, 08:13
closed

In GitLab by @sokril on Nov 8, 2019, 08:13
assigned to @sokril


Update footer

DESC

remove outdated content from footer

TODOs

[x] disable twitter icon

deactivated not supported integrations like facebook + instagram


Make Period and Offset configurable at Construction

also split DEFINE_TIMER macro into DEFINE_TIMER_STRUCT and DEFINE_TIMER_CTOR

closes #77

Would you rather comment on #71 where I do this change and also for the other macros


Update library capsule and logo

Follow up for #29. I had to figure out which assets were being used in Steam.
The Logo has shadows. Once again, SVGs are provided.

There is over a thousand Steam entries with "Game" on the title. I highly doubt they don't allow it.
Also, this is only for the logos, not the title. We should maintain consistency.

That is strange, as we had to change the title from Blazium Game Engine to Blazium Engine on Steam to get approval. @Starkium should know more, as he is the one that has been handling the Steam upload.

Since we're approved now, we can likely change it back, not an issue though


Bluetooth: conn: Don't deadlock on BT_RECV_WORKQ_SYS

My recent change overlooked this configuration, which is not tested in CI currently.
If someone had enabled it, they would've just gotten an unfixable assert.
The correct test would be checking if the current thread is the system wq, but I think the compiler can't know that and can't remove the "dead" code.

I will post another PR that enables that config for the l2cap stress test so we get some coverage.

If someone had enabled it, they would've just gotten an unfixable assert

yupp

C in a nutshell:


Connector

Connector-1.0.0-beta.37+1.20.1.jar
[21:22:51] [main/ERROR] [de.su.si.co.se.FabricMixinBootstrap/]: Non-unique Mixin config name mixinextras.init.mixins.json used by the mods com_github_llamalad7_mixinextras and mixinextras

That’s an issue with connector. They don’t seem to correctly handle aliased modids. Please report to them.

correctly

Ok)))

That’s an issue with connector. They don’t seem to correctly handle aliased modids. Please report to them.

Everything seems to be normal)
https://github.com/Sinytra/Connector/issues/876#issuecomment-1974928178


Batch Support for Ubuntu 18.04 Ending

Azure Batch will retire support for Canonical UbuntuServer 18.04-LTS to follow the publisher ending standard support in April 2023. If your workload utilizes Batch pools based on this OS, either via Marketplace images (directly from Canonical or derived from by other publishers) or your own custom images, then you will need to take action. Please migrate your workload to a publisher supported version of Canonical UbuntuServer such as 22.04-LTS. On 2023-05-30, Azure Batch will remove support for this compute node agent. Afterwards, create pool and resize up operations may fail. Customers who continue to use these pools past the indicated Batch support End of Life will be subject to potential security risks.
For more information, please see:

Azure Batch VM Size and Image Guide
Azure Batch Best Practices

Hi @alfpark,
we were using this based image for a long time now so we need to migrate our pools to use the more recent 22.04-LTS version with Batch Shipyard but we are facing multiple issues:

replacing Ubuntu version in the pool.yaml is not working:

when looking at the available images using Azure Portal, it looks like the offer has been changed for this version:

but when using 0001-com-ubuntu-server-jammy offer in the pool.yaml file it is still not working:

then I tried the latest ubuntu version from the microsoft-azure-batch publisher:

and I've been able to create my pool with Shipyard... but since it is a native image our tasks cannot use the input_data feature anymore which is key in our pipeline (we are ingressing/egressing data from/to Azure blob containers and between Batch tasks)

So in regard to all these tests, what would you recommend to migrate our pools with the latest Ubuntu version AND non-native feature?
Thanks for your help.
PS: as a side question, will Microsoft develop and maintain a tool to replace Batch Shipyard? I recently read, with a lot of surprise, that this tool won't be maintained anymore, but I don't see any equivalent in Microsoft Azure Batch toolkits to deploy jobs with Docker support and data ingress/egress so easily. Does everyone have to create its own tool using only Batch SDKs?

@f-roche, apologies for the disruption. Unfortunately, Batch Shipyard is no longer actively maintained. There is a possibility it can be revived later but given that there hasn't been active development on the project for many years the project archival reflects the proper state.
To potentially address your issue, please see: https://github.com/Azure/batch-shipyard/issues/363
There was a commit that unblocked non-native 20.04 LTS, but this commit is currently only in develop. You can try taking the develop branch commits and seeing if that resolves your issue (at least for 20.04 LTS, there was no support tested for 22.04 LTS). Hopefully this provides you enough of a working bridge so that you can evaluate offboarding options from Batch Shipyard.

@f-roche, you can get some hints on how to build into a single executable by examining the Azure DevOps pipeline: https://github.com/Azure/batch-shipyard/blob/master/.vsts/pipeline.yml


feat(aws): MQ broker

Fix #495

Here's a sample output:
aws_mq_broker.my_aws_mq_broker_activemq_single
 ├─ Instance (ActiveMQ, mq.t2.micro)                               730  hours                 $21.90
 └─ Storage (ActiveMQ, Single-AZ)                                    7  GB-months              $0.70

However, there are two points that I'm not sure about:

How one can specify the number of nodes in a cluster in terraform config? Since I couldn't find a way I added the nodes_count to the usage file.
The data transfer fee seemed like the general transfer rate to me so I skipped it in favor of our global transfer data

Pricing page:
https://aws.amazon.com/amazon-mq/pricing/
Terraform page:
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/mq_broker

@alikhajeh1 Jan all your comments made sense. While debugging the problems I came up with some interesting facts:

The prices in API contain the number of instances with them. The RabbitMQ's cluster mode always has 3 instances.
Storage prices are not multiplied and need to always be multiplied by the number of instances.

I did some refactoring in logics and I think it's ready.

Thanks @sinabakh - awesome level of details :) One tiny suggestion:
The capital letters look distracting for the deployment mode (we don't do that elsewhere), maybe "single-instance", "active-standby", "cluster"?

Thank you @alikhajeh1 for the review. Your comment makes sense so I fixed it.


containers won't start (ext4-fs: no journal found)

My docker install seems to be broken and I'm not sure how to deal with this issue. When I start the docker daemon I see a message (not from docker, from the kernel I think):
[ 3660.378963] EXT4-fs (dm-1): no journal found
[ 3660.379495] EXT4-fs (dm-1): no journal found

however docker seems to start up OK, I can run docker info etc..

Loading containers: ..: done.
[/var/lib/docker|275b3455.initserver()] Creating pidfile
[/var/lib/docker|275b3455.initserver()] Setting up signal traps
[/var/lib/docker|275b3455] -job initserver() = OK (0)
[/var/lib/docker|275b3455] +job serveapi(unix:///var/run/docker.sock)
2014/03/06 11:52:06 Listening for HTTP on unix (/var/run/docker.sock)
2014/03/06 11:53:23 GET /v1.9/images/json
[/var/lib/docker|275b3455] +job images()
[/var/lib/docker|275b3455] -job images() = OK (0)
2014/03/06 11:53:37 POST /v1.9/images/create?fromImage=learn%2Ftutorial&tag=
[/var/lib/docker|275b3455] +job pull(learn/tutorial, )
2014/03/06 11:53:52 GET /v1.9/images/json
[/var/lib/docker|275b3455] +job images()
[/var/lib/docker|275b3455] -job images() = OK (0)
2014/03/06 11:54:01 POST /v1.9/images/create?fromImage=ubuntu&tag=
[/var/lib/docker|275b3455] +job pull(ubuntu, )
[error] server.go:1074 Image (id: 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158) pull is already running, skipping: pull layer:511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158 is already in progress
[error] server.go:1074 Image (id: 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158) pull is already running, skipping: pull layer:511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158 is already in progress
[error] server.go:1074 Image (id: 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158) pull is already running, skipping: pull layer:511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158 is already in progress
[error] server.go:1074 Image (id: 511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158) pull is already running, skipping: pull layer:511136ea3c5a64f264b78b5433614aec563103b4d4702f3ba7d4d2698e22c158 is already in progress
[/var/lib/docker|275b3455] -job pull(learn/tutorial, ) = OK (0)
[/var/lib/docker|275b3455] -job pull(ubuntu, ) = OK (0)
2014/03/06 13:17:29 GET /v1.9/images/json
[/var/lib/docker|275b3455] +job images()
[/var/lib/docker|275b3455] -job images() = OK (0)
2014/03/06 13:18:35 POST /v1.9/containers/create
[/var/lib/docker|275b3455] +job create()
[/var/lib/docker|275b3455] -job create() = OK (0)
2014/03/06 13:18:37 POST /v1.9/containers/2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53/attach?stderr=1&stdout=1&stream=1
[/var/lib/docker|275b3455] +job inspect(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53, container)
[/var/lib/docker|275b3455] -job inspect(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53, container) = OK (0)
[/var/lib/docker|275b3455] +job attach(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53)
2014/03/06 13:18:37 POST /v1.9/containers/2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53/start
[/var/lib/docker|275b3455] +job start(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53)
[/var/lib/docker|275b3455] +job allocate_interface(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53)
[/var/lib/docker|275b3455] -job allocate_interface(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53) = OK (0)
[error] container.go:1244 Error running container: exit status 1
[/var/lib/docker|275b3455] +job release_interface(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53)
[/var/lib/docker|275b3455] -job release_interface(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53) = OK (0)
[/var/lib/docker|275b3455] -job attach(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53) = OK (0)
[/var/lib/docker|275b3455] +job release_interface(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53)
[/var/lib/docker|275b3455] -job release_interface(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53) = OK (0)
Cannot start container 2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53: exit status 1[/var/lib/docker|275b3455] -job start(2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53) = ERR (1)
[error] api.go:959 Error: start: Cannot start container 2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53: exit status 1
[error] api.go:91 HTTP Error: statusCode=500 start: Cannot start container 2d9571a3798645109eccd1d7e8ddd2085f33585f83e6368aff5ba908ef218a53: exit status 1

Here's some output from dmesg:
[ 3660.208374] bio: create slab <bio-1> at 1
[ 3660.365147] bio: create slab <bio-2> at 2
[ 3660.378963] EXT4-fs (dm-1): no journal found
[ 3660.379495] EXT4-fs (dm-1): no journal found
[ 3684.373866] bio: create slab <bio-1> at 1
[ 3684.552401] bio: create slab <bio-2> at 2
[ 3684.563840] EXT4-fs (dm-1): no journal found
[ 3684.564073] EXT4-fs (dm-1): no journal found
[ 3807.645926] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 3807.929394] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: discard
[ 3809.252523] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 3809.406280] EXT4-fs (dm-4): mounted filesystem with ordered data mode. Opts: discard
[ 3811.987459] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 3842.457128] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: discard
[ 3846.061409] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 3846.376631] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: discard
[ 3846.434875] EXT4-fs (dm-4): mounted filesystem with ordered data mode. Opts: discard
[ 3846.898897] EXT4-fs (dm-5): mounted filesystem with ordered data mode. Opts: discard
[ 3847.940107] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 3848.746034] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 3849.042162] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: discard
[ 3849.111861] EXT4-fs (dm-4): mounted filesystem with ordered data mode. Opts: discard
[ 3849.945882] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: discard
[ 3850.266295] EXT4-fs (dm-4): mounted filesystem with ordered data mode. Opts: discard
[ 3851.093820] EXT4-fs (dm-5): mounted filesystem with ordered data mode. Opts: discard
[ 3889.312633] EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: discard
[ 3914.848453] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 3914.969537] EXT4-fs (dm-6): mounted filesystem with ordered data mode. Opts: discard
[ 3920.073016] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 8870.317734] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 8871.207740] EXT4-fs (dm-3): mounted filesystem with ordered data mode. Opts: discard
[ 8871.773223] EXT4-fs (dm-2): mounted filesystem with ordered data mode. Opts: discard
[ 8871.884738] device veth8NHY69 entered promiscuous mode
[ 8871.885059] IPv6: ADDRCONF(NETDEV_UP): vethTUMW7C: link is not ready
[ 8871.885314] IPv6: ADDRCONF(NETDEV_CHANGE): vethTUMW7C: link becomes ready
[ 8872.810277] docker0: port 1(veth8NHY69) entered disabled state
[ 8872.811614] device veth8NHY69 left promiscuous mode
[ 8872.811653] docker0: port 1(veth8NHY69) entered disabled state

Any idea why this might be happening? the log messages don't give any hint as to why the container won't start. Also, any tips on how I can restore my install to normal? (I uninstalled and re-installed using my package manager but it didn't make a difference). Maybe I can manually delete some stuff from /var/lib/docker to get a fresh start?
Here's my system info:
arch linux: Linux 3.13.5-1-ARCH #1 SMP PREEMPT Sun Feb 23 00:25:24 CET 2014 x86_64 GNU/Linux
docker install info:
$> docker version
Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
Server version: 0.8.0
Git commit (server): cc3a8c8
Go version (server): go1.2
Last stable version: 0.8.1, please update docker
$> docker info
Containers: 5
Images: 12
Driver: devicemapper
 Pool Name: docker-8:17-525877-pool
 Data file: /var/lib/docker/devicemapper/devicemapper/data
 Metadata file: /var/lib/docker/devicemapper/devicemapper/metadata
 Data Space Used: 2524.6 Mb
 Data Space Total: 102400.0 Mb
 Metadata Space Used: 8.5 Mb
 Metadata Space Total: 2048.0 Mb
Registry: [https://index.docker.io/v1/]

i got.
docker info
Containers: 2
Running: 0
Paused: 0
Stopped: 2
Images: 5
Server Version: 1.10.3
Storage Driver: devicemapper
Pool Name: docker-202:16-41080-pool
Pool Blocksize: 65.54 kB
Base Device Size: 10.74 GB
Backing Filesystem: ext4
Data file: /dev/loop4
Metadata file: /dev/loop5
Data Space Used: 4.336 GB
Data Space Total: 107.4 GB
Data Space Available: 32.79 GB
Metadata Space Used: 3.408 MB
Metadata Space Total: 2.147 GB
Metadata Space Available: 2.144 GB
Udev Sync Supported: true
Deferred Removal Enabled: false
Deferred Deletion Enabled: false
Deferred Deleted Device Count: 0
Data loop file: /data/docker/devicemapper/devicemapper/data
WARNING: Usage of loopback devices is strongly discouraged for production use. Either use --storage-opt dm.thinpooldev or use --storage-opt dm.no_warn_on_loop_devices=true to suppress this warning.
Metadata loop file: /data/docker/devicemapper/devicemapper/metadata
Library Version: 1.02.77 (2012-10-15)
Execution Driver: native-0.2
Logging Driver: json-file
Plugins:
Volume: local
Network: bridge null host
Kernel Version: 3.13.0-48-generic
Operating System: Ubuntu 14.04.2 LTS
OSType: linux
Architecture: x86_64
CPUs: 4
Total Memory: 7.305 GiB
Name: ip-192-168-7-131
ID: N5B3:2PDL:UD26:AEZQ:BUJ3:LJPG:DVTJ:36MH:ACJT:JGRJ:ISKJ:OHXV
WARNING: No swap limit support
docker version
Client:
Version:      1.10.3
API version:  1.22
Go version:   go1.5.3
Git commit:   20f81dd
Built:        Thu Mar 10 15:54:52 2016
OS/Arch:      linux/amd64
Server:
Version:      1.10.3
API version:  1.22
Go version:   go1.5.3
Git commit:   20f81dd
Built:        Thu Mar 10 15:54:52 2016
OS/Arch:      linux/amd64
uanme -a
Linux ip-192-168-7-131 3.13.0-48-generic #80-Ubuntu SMP Thu Mar 12 11:16:15 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux


Hotkey for filters/view settings in Windows Explorer (WIN10)

Description of the new feature / enhancement
Hi,
Is there any way to have a shortcut for view settings or filters in Explorer? Like "WIN+ALT+SHIFT+F".
Scenario when this would be used?
When jumping though our server it's often a mess of different file types and it would be great to be able to quickly filter by a specific filetype. As this happens with every project map we have it would be great to just have a button or a key shortcut/hotkey to enable that filter.
E.g.
I open a map with JPG, DWG, BAK, PDF, XYZ... but I'm usually interested in the DWG-files, need to filter them and show them in the detail view. As this can happen so many times during the day and the explorer is switching views constantly it would be great to have a hotkey.
I hope this scenario is not too specific and maybe there is already such a function 😄
Thanks in advance.
Supporting information
No response

What about Ctrl+F?

Unless I missed something in powertoys CTRL+F is the search and that includes subfolder as well as it searches a bit deeper than just file-types.

True, but after that it;'s possible to filter search results, including "current folder" and filetype.

Yes, true. Thank you for your answers! There is another way as well:

But to do that for every folder when going through hundreds of folders a day is a bit annoying. That's why I thought there might be a hotkey or generally a way to add hotkeys to Windows Explorer.

Yes. Another possibility could be to group items by file type.


Don't send mails

Hi,
My users don't receive my emails sended.
I can log in normally and get the e-mails sent when sending an email, it does not error, but does not get anywhere, since I followed the tutorial using mail.4uweb.com.br, port 25, authentication if I disable authentication error when sending.
Att,

Sep 14 05:01:22 4uweb-ubuntu imapd: Connection, ip=[::ffff:<IP_ADDRESS>]
Sep 14 05:01:22 4uweb-ubuntu imapd: LOGIN<EMAIL_ADDRESS>ip=[::ffff:<IP_ADDRESS>], port=[43716], protocol=IMAP
Sep 14 05:01:22 4uweb-ubuntu imapd: LOGOUT<EMAIL_ADDRESS>ip=[::ffff:<IP_ADDRESS>], headers=0, body=0, rcvd=77, sent=315, time=0
Sep 14 05:02:21 4uweb-ubuntu imapd: Connection, ip=[::ffff:<IP_ADDRESS>]
Sep 14 05:02:21 4uweb-ubuntu imapd: LOGIN<EMAIL_ADDRESS>ip=[::ffff:<IP_ADDRESS>], port=[43722], protocol=IMAP
Sep 14 05:02:21 4uweb-ubuntu imapd: LOGOUT<EMAIL_ADDRESS>ip=[::ffff:<IP_ADDRESS>], headers=0, body=0, rcvd=242, sent=572, time=0

The log above is your imap connection, not SMTP (which you use to send email). Did you ever figure out what was wrong?


[SPARK-46492][BUILD] Simplify the Java version check in SparkBuild.scala

What changes were proposed in this pull request?
This pr aims to simplify the Java version check in SparkBuild.scala due to Apache Spark 4.0 minimum supports Java 17
Why are the changes needed?
Clean up no longer needed Java version checks.
Does this PR introduce any user-facing change?
No
How was this patch tested?
Pass GitHub Actions
Was this patch authored or co-authored using generative AI tooling?
No

Thanks @dongjoon-hyun


Update documentation for HydroBase web service, database procedures

The documentation needs to be updated for recent changes to HydroBase web service diversion records and stored procedures handling parameters.

I updated the documentation.  Close the issue.


Handle file not found exceptions on Python 2.7

On Python 3, calling PersistedTokenCache.find() on a nonexistent cache file is a no-op, so this code works:
from msal_extensions import FilePersistence, PersistedTokenCache

persistence = FilePersistence('nope')
cache = PersistedTokenCache(persistence=persistence)
cache.find('')

On Python 2.7 it raises a platform-specific error: WindowsError on Windows, OSError on Linux (I haven't tried it on macOS). The difference in behavior is due to PersistedTokenCache anticipating IOError when a file isn't found. Neither WindowsError nor OSError is a subclass of IOError. All these errors are subclasses of EnvironmentError though, and that class has the errno attribute, so a simple fix is to handle EnvironmentError here.

Thanks for the finding! How urgent is this? We have been working on some relevant PRs here, and could cut a release within a week or two. Will that work?

There are workarounds but it affects our core getting started scenario, so one week is much better than two. Will the release be 0.2.3?

Well then, let's aim for a release with this fix at no later than next Monday (that is one week).
PR wise, it would be better to see some test case(s) to guard a potential future regression. If Charles can provide some, it would be great; otherwise @abhidnya13 and I will still pick this up within next couple days.

Thanks @chlowell for the code snippet. I created a branch to add a test case for this.
We can see that -

BEFORE state - where the test fails for Python 2.7 ONLY. Our build in travis ci does not test Python 2.7 on Mac but I tested this on my Mac with Python 2.7 and we get the same OSError as in Linux.
AFTER state - where we change the code to use Environment Error and the test case passes on all the platforms and all the versions.
@rayluo I can create a PR to be merged in this branch for adding such a test to verify. How do you want to go about this ?

@abhidnya13 Thanks very much for the before-and-after comparison!
Either creating a new PR (and linking back to this one), or adding your test case to this PR. They are both good.


Unique labels for every bar segment

I've been working on constructing a series of stacked bars graphs but there are several stipulations involved.

The dataset is pulled from a database that is constantly updating
There is a non standard number of bars/stack. There could be one, there could be eight.
Clicking a bar links to somewhere else on the website.

As it stands currently I take the dataset as pulled from the DB and organize it into a 2D array with 0s where there should be no data in the bar.
EX)
[1,1,2,3,4,4,4,5,5,5,5,5,6]
becomes:
[1,1,0,0,0],
[2,0,0,0,0],
[3,0,0,0,0],
[4,4,4,0,0],
[5,5,5,5,5],
[6,0,0,0,0]
Using this new array I create a dataset that assigns the labels the list of required labels and I end with this as my dataset to send to the chart:

However, when hovering over the bars in the graph itself instead of just displaying the single label for that bar it shows the entire list of labels for that row of bars, which doesn't work for this application.

I'll attach a jsfiddle of roughly what I'm doing to manipulate the data:
http://jsfiddle.net/m59jxhsc/9/
How the dataset is being build is being adjusted to be more efficient but where am I going wrong that the labels are showing the entire list instead of just a single one per bar segment.
Thanks very much,
Mitch

As well, I need to find a way to extract the string from the label for use as part of a link to another part of the website (replaced and commented out with google for privacy reasons)

The array of 61 labels should be in data.labels and the dataset.label property is the title of the dataset.


when I  use the train.py , the error raised....TypeError: gru() received an invalid combination of arguments

TypeError: gru() received an invalid combination of arguments - got (Tensor, Tensor, list, bool, int, float, bool, int, bool), but expected one of:

(Tensor data, Tensor batch_sizes, Tensor hx, tuple of Tensors params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional)
didn't match because some of the arguments have invalid types: (Tensor, Tensor, !list!, !bool!, !int!, !float!, !bool!, !int!, bool)
(Tensor input, Tensor hx, tuple of Tensors params, bool has_biases, int num_layers, float dropout, bool train, bool bidirectional, bool batch_first)
didn't match because some of the arguments have invalid types: (Tensor, Tensor, !list!, bool, int, float, bool, !int!, bool)

where is the error raised ?


Fixed hentai.cafe regex

Category
This change is exactly one of the following (please change [ ] to [x]) to indicate which:

[X] a bug fix (Fix #366 )

Description
I change the number range in the regex from 1-9 to 0-9
Testing
Required verification:

[ ] I've verified that there are no regressions in mvn test (there are no new failures or errors).
[ ] I've verified that this change works as intended.

[ ] Downloads all relevant content.
[ ] Downloads content from multiple pages (as necessary or appropriate).
[ ] Saves content at reasonable file names (e.g. page titles or content IDs) to help easily browse downloaded content.

[ ] I've verified that this change did not break existing functionality (especially in the Ripper I modified).

Optional but recommended:

[ ] I've added a unit test to cover my change.

Coverage remained the same at 31.937% when pulling 6fab0375b0befa25c6a6021debde63540748cd91 on cyian-1756:hentai-cafe into 97975a625700a10638049a54aef3dc589e6f29f8 on RipMeApp:master.

Coverage remained the same at 31.937% when pulling 6fab0375b0befa25c6a6021debde63540748cd91 on cyian-1756:hentai-cafe into 97975a625700a10638049a54aef3dc589e6f29f8 on RipMeApp:master.


Docstring revisions for Colout, CutOut, CutMix, Layer Freezing, Mixup, Label Smoothing, Progressive Resizing

List of revisions for #483:

[ ] https://mosaicml-composer--483.com.readthedocs.build/en/483/api_reference/composer.algorithms.colout.colout.html#module-composer.algorithms.colout.colout: In the ColOut examples for ColOutTransform and colout_batch, can you construct a simple training loop, showing where colout would be applied. I don't think this is needed for colout_image since one would never use that function directly in the training loop.
[ ] https://mosaicml-composer--483.com.readthedocs.build/en/483/api_reference/composer.algorithms.cutout.cutout.html#module-composer.algorithms.cutout.cutout:

[x] Can the docstrings for apply and match be removed and instead, in the init signature, mention when it runs?
[ ] Can you also add a link back to the method card in the docstrings?
[ ] For cutout_batch, can you include a training loop example.
[x] Many parameters are missing type annotations.

[ ] https://mosaicml-composer--483.com.readthedocs.build/en/483/api_reference/composer.algorithms.cutmix.cutmix.html#module-composer.algorithms.cutmix.cutmix

[ ] For cutmix, can you add links back to the method card in the docstrings?
[x] Same feedback for match and apply, as well as ensuring that each parameter has a type annotation.
[x] The cutmix_batch could also use formatting for the equations. For the return value, can you put it in one line with Tuple[torch.Tensor, torch.Tensor] notation (since functions only return one value)?
[x] "Both the original and shuffled labels are returned. This is done because for many loss functions (such as cross entropy) the targets are given as indices, so interpolation must be handled separately." -- could you elaborate what this means, perhaps with an example? I also don't think this is correct, as the return statement doesn't return the original labels -- just the new samples and new labels?

[ ] Layer freezing

[ ] Link back to method card
[x] Move docstrings for apply, find_unused_parameters, and match to the __init__ docstring
[x] The formatting for the functional example is very indented
[ ] Can you add a dummy training loop showing where the function would be called inside of it?
[ ] The return line is missing the type annotation, so sphinx added a return type line below it

[ ] https://mosaicml-composer--483.com.readthedocs.build/en/483/api_reference/composer.algorithms.mixup.mixup.html#module-composer.algorithms.mixup.mixup: Same comments as in other algorithms. Also, "convex combinations of pairs of examples and targets" didn't make sense to me -- I had to look at the example image in the method card to understand what this meant. Would something like "Mixup creates synthetic samples and targets by averaging together pairs of samples in a batch and setting the targets to the proportion of each class in the averaged sample" (I'm probably off here with what is actually happening, but I had no idea what a convex combination was. Feel free to ignore if this term is common in the CV world.)
[ ] https://mosaicml-composer--483.com.readthedocs.build/en/483/api_reference/composer.algorithms.label_smoothing.label_smoothing.html#module-composer.algorithms.label_smoothing.label_smoothing: Same comments as in other algorithms. In addition could  (1 - alpha) * targets + alpha * smoothed_targets be in preformatted or math noation?
[ ] https://mosaicml-composer--483.com.readthedocs.build/en/483/api_reference/composer.algorithms.progressive_resizing.progressive_resizing.html#composer.algorithms.progressive_resizing.progressive_resizing.ProgressiveResizing: Same comments as in other algorithms

Closing. Tracking elsewhere as low pri


Update validation failure prompts and document "auto approve" variable

Description
To smooth out the contributor experience we should improve the way prompts are handled in the cli, and give some exposure that one can set CK8S_AUTO_APPROVE during contribution only to skip them.
Additional context
One problem is that the config validation basically runs on two or three levels, so for each apply, and if you broke the config during contribution, then you have to accept the prompts to continue.
These errors should really only cause one prompt.
Additionally all prompts should have the same question, either do you want to continue, or do you want to abort, not mix them.
Definition of done

[ ] Single prompt type, either continue or abort.
[ ] Single prompt for groups of failure
[ ] Contributor guide addition to auto approve prompt.

When documenting CK8S_AUTO_APPROVE it's important that it says that this also automatically answers yes to everything else as well (e.g. helmfile apply) not just the config validation.

Could have a "don't ask me again" (explicit answer or implicit in "yes, continue") that records this at least for the rest of the same command, or until the config is changed. E.g. modify a timestamp and compare the config file(s) to that before asking.