Memory pressure and streaming received DICOM content to disk

I've run into situations where large DICOMs being C-STORE'd cause the container running Node.js + dcmjs-dimse to run out of memory. This appears to be because the whole DICOM dataset is stored in memory, which is understandable because it makes the implementation and interface simpler, but it also means that it's very easy to crash the server running dcmjs-dimse simply by sending it a large enough DICOM! (Or likely also by sending a smaller number of medium-size DICOMs in parallel).
One solution would be to stream received data straight to a DICOM file on disk, thus avoiding OOM problems, but I'm not currently familiar enough with the DIMSE protocol to know how difficult this would be to implement. I do recall seeing some kind of streaming support go into dcmjs a while back, but I never worked with it directly myself and also don't know if it covered streaming writes.
A few related questions:

Does the SCP know at the beginning how big the DICOM content being C-STORE'd to it is going to be? If so, could we use this knowledge to put an upper bound on the size of DICOM content allowed to be received by the SCP?
Has there been any work done to address memory usage and and scalability in dcmjs-dimse or dcmjs?
How amenable to streaming straight to disk is the DIMSE protocol? Is an DIMSE implementation, at least in theory, able to handle large datasets in a memory-constrained environment?

Hi Richard!
Thank you for reporting this!
I totally understand the situations you have run into. It is actually something that we have been discussing lately with @kinsonho, another good friend of dcmjs-dimse!
Currently, the received DIMSE fragment buffers are appended, within the _processPDataTf function, in a self-growing buffer which is parsed and returned to the user as a Dataset, once the last fragment flag is received.
We can change that to optionally passing the incoming fragment buffers to the user, giving the application the chance to perform any kind of streaming operations (e.g. write to disk, upload to cloud, etc.). Due to the fact that the first fragment of a C-STORE operation might contain the full metadata object (plus part of the pixelData), a nice feature would be to also return a “pixel less” Dataset to the user.
That is as far as we discussed it with @kinsonho but no implementation was attempted!
Now, regarding your questions (although they might have been answered by the above!):

Not really unless you examine the attributes such as rows, columns, bitsAllocated, etc. and then do your own calculation to get an estimate. However, most often you know what images are going to be sent from a particular device. So, it is easier to configure based on device, rather than dynamically determine per association.
Unfortunately no (I’m talking about dcmjs-dimse), but now is a good chance for us to engage in a discussion that will lead us in addressing some memory usage and scalability issues.
Not so much DIMSE implementation per se, but DICOM allows you to use multiple fragments per frame so that you can have smaller fragments to process each time and then recombine them to a single frame (what the library is currently doing, but in-memory).

Thanks for that and the recent PR, we're keen to look at this as it should help a lot with memory pressure and stability.
To clarify re. the last point about fragments - if a dataset did not use fragments for its image data, is there still the possibility for a piece of data of arbitrarily large size to be received?

Hi @richard-viney,
I think that you are mixing pixel data fragments with PDV (Presentation Data Values) fragments which, as far as I can say, are unrelated. During transmission, a dataset is split into chunks (whether it has fragmented pixel data -- i.e. encapsulated transfer syntax, or not) with a maximum length of the negotiated max PDU length. These chunks are placed in a PDV structure and are sent across the wire. These are the chunks that we are taking advantage of to perform streaming operations and not the pixel data fragments. Therefore, dataset streaming will always be performed in a degree decided by the negotiated max PDU length. Is that clear now?


color flipper: Styling required

Is your feature request related to a problem? Please describe.
Currently, Button color also changes as background color changes.
Describe the solution you'd like
Fixed background color of button to black. Align the text vertically.

I want to work on this issue under GSSOC . Please assign it to me.

@Vishal-raj-1 Hii there! I would love to work on this issue, Could you plz assign this issue to me as a part of Gssoc'21?

@Ankita297 go for it!
@yashikabhargava Please look at some other issue as @Ankita297 asked for this first!

@Ankita297 go for it!
@yashikabhargava Please look at some other issue as @Ankita297 asked for this first!

okay sure, thank you!

Is it okay ?

Is it okay ?


cannot pair

hello to all
i am trying to pair a device that is not supported
i followed this
https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
zigbee2mqtt.io
How to support new devices
📘 Zigbee2mqtt documentation
i am on hassio
after running the command
docker exec -it 622baa375aa1 bash
i try to pair the device
but only get the bash command prompt
and on the interface the message
zigbee2mqtt:warn 5/2/2019, 8:59:52 PM Message without device!
zigbee2mqtt:warn 5/2/2019, 9:00:04 PM Device with modelID 'undefined' is not supported
so it does not pair
what can i do?

What device is it?
Can you share your data/datbase.db?

hello
yes i course. see it below
currently i have one xiaomi sensor that is well connected.
the device is this one:
https://www.smartthings.com/products/smartthings-multipurpose-sensor
{"id":3,"type":"EndDevice","ieeeAddr":"0x00158d0002d45645","nwkAddr":3157,"manufId":4151,"manufName":"LUMI","powerSource":"Battery","modelId":"lumi.sens","epList":[1,2,3],"status":"offline","joinTime":null,"endpoints":{"1":{"profId":260,"epId":1,"devId":24321,"inClusterList":[0,3,18,25,65535],"outClusterList":[0,3,4,5,18,25,65535],"clusters":{"genBasic":{"dir":{"value":3},"attrs":{}},"genIdentify":{"dir":{"value":3},"attrs":{}},"genGroups":{"dir":{"value":2},"attrs":{}},"genScenes":{"dir":{"value":2},"attrs":{}},"genMultistateInput":{"dir":{"value":3},"attrs":{}},"genOta":{"dir":{"value":3},"attrs":{}},"manuSpecificCluster":{"dir":{"value":3},"attrs":{}}}},"2":{"profId":260,"epId":2,"devId":24322,"inClusterList":[3,18],"outClusterList":[3,4,5,18],"clusters":{"genIdentify":{"dir":{"value":3},"attrs":{}},"genGroups":{"dir":{"value":2},"attrs":{}},"genScenes":{"dir":{"value":2},"attrs":{}},"genMultistateInput":{"dir":{"value":3},"attrs":{}}}},"3":{"profId":260,"epId":3,"devId":24323,"inClusterList":[3,12],"outClusterList":[3,4,5,12],"clusters":{"genIdentify":{"dir":{"value":3},"attrs":{}},"genGroups":{"dir":{"value":2},"attrs":{}},"genScenes":{"dir":{"value":2},"attrs":{}},"genAnalogInput":{"dir":{"value":3},"attrs":{}}}}},"_id":"LhQ2vbl88zro8K5u"}
{"id":1,"type":"Coordinator","ieeeAddr":"0x00124b001938a2f5","nwkAddr":0,"manufId":0,"epList":[1,2,3,4,5,6,11],"status":"online","joinTime":1556829412,"endpoints":{"1":{"profId":260,"epId":1,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"2":{"profId":257,"epId":2,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"3":{"profId":261,"epId":3,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"4":{"profId":263,"epId":4,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"5":{"profId":264,"epId":5,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"6":{"profId":265,"epId":6,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"11":{"profId":260,"epId":11,"devId":1024,"inClusterList":[0,1281,3],"outClusterList":[1280,1282,3],"clusters":{"genBasic":{"dir":{"value":1},"acls":{"zclVersion":"R","hwVersion":"R","manufacturerName":"R","modelId":"R","dateCode":"R","powerSource":"R","locationDesc":"RW","physicalEnv":"RW","deviceEnabled":"RW"},"attrs":{"zclVersion":1,"hwVersion":1,"manufacturerName":"sivann inc.","modelId":"hiver0001","dateCode":"20170407","powerSource":1,"locationDesc":"    ","physicalEnv":0,"deviceEnabled":1}},"ssIasAce":{"dir":{"value":1}},"ssIasZone":{"dir":{"value":2},"cmdRsps":{"enrollReq":{"exec":"_exec_"},"statusChangeNotification":{"exec":"_exec_"}}},"ssIasWd":{"dir":{"value":2}},"genIdentify":{"dir":{"value":3},"acls":{"identifyTime":"RW"},"attrs":{"identifyTime":0}}}}},"_id":"ckYgTag1OQZH0fRG"}
{"$$indexCreated":{"fieldName":"id","unique":true,"sparse":false}}
{"id":1,"type":"Coordinator","ieeeAddr":"0x00124b001938a2f5","nwkAddr":0,"manufId":0,"epList":[1,2,3,4,5,6],"status":"online","joinTime":1556829703,"endpoints":{"1":{"profId":260,"epId":1,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"2":{"profId":257,"epId":2,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"3":{"profId":261,"epId":3,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"4":{"profId":263,"epId":4,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"5":{"profId":264,"epId":5,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"6":{"profId":265,"epId":6,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}}},"_id":"ckYgTag1OQZH0fRG"}
{"id":3,"type":"EndDevice","ieeeAddr":"0x00158d0002d45645","nwkAddr":3157,"manufId":4151,"manufName":"LUMI","powerSource":"Battery","modelId":"lumi.sens","epList":[1,2,3],"status":"offline","joinTime":null,"endpoints":{"1":{"profId":260,"epId":1,"devId":24321,"inClusterList":[0,3,18,25,65535],"outClusterList":[0,3,4,5,18,25,65535],"clusters":{"genBasic":{"dir":{"value":3},"attrs":{}},"genIdentify":{"dir":{"value":3},"attrs":{}},"genGroups":{"dir":{"value":2},"attrs":{}},"genScenes":{"dir":{"value":2},"attrs":{}},"genMultistateInput":{"dir":{"value":3},"attrs":{}},"genOta":{"dir":{"value":3},"attrs":{}},"manuSpecificCluster":{"dir":{"value":3},"attrs":{}}}},"2":{"profId":260,"epId":2,"devId":24322,"inClusterList":[3,18],"outClusterList":[3,4,5,18],"clusters":{"genIdentify":{"dir":{"value":3},"attrs":{}},"genGroups":{"dir":{"value":2},"attrs":{}},"genScenes":{"dir":{"value":2},"attrs":{}},"genMultistateInput":{"dir":{"value":3},"attrs":{}}}},"3":{"profId":260,"epId":3,"devId":24323,"inClusterList":[3,12],"outClusterList":[3,4,5,12],"clusters":{"genIdentify":{"dir":{"value":3},"attrs":{}},"genGroups":{"dir":{"value":2},"attrs":{}},"genScenes":{"dir":{"value":2},"attrs":{}},"genAnalogInput":{"dir":{"value":3},"attrs":{}}}}},"_id":"LhQ2vbl88zro8K5u"}
{"id":1,"type":"Coordinator","ieeeAddr":"0x00124b001938a2f5","nwkAddr":0,"manufId":0,"epList":[1,2,3,4,5,6,11],"status":"online","joinTime":1556829703,"endpoints":{"1":{"profId":260,"epId":1,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"2":{"profId":257,"epId":2,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"3":{"profId":261,"epId":3,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"4":{"profId":263,"epId":4,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"5":{"profId":264,"epId":5,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"6":{"profId":265,"epId":6,"devId":5,"inClusterList":[],"outClusterList":[],"clusters":{}},"11":{"profId":260,"epId":11,"devId":1024,"inClusterList":[0,1281,3],"outClusterList":[1280,1282,3],"clusters":{"genBasic":{"dir":{"value":1},"acls":{"zclVersion":"R","hwVersion":"R","manufacturerName":"R","modelId":"R","dateCode":"R","powerSource":"R","locationDesc":"RW","physicalEnv":"RW","deviceEnabled":"RW"},"attrs":{"zclVersion":1,"hwVersion":1,"manufacturerName":"sivann inc.","modelId":"hiver0001","dateCode":"20170407","powerSource":1,"locationDesc":"    ","physicalEnv":0,"deviceEnabled":1}},"ssIasAce":{"dir":{"value":1}},"ssIasZone":{"dir":{"value":2},"cmdRsps":{"enrollReq":{"exec":"_exec_"},"statusChangeNotification":{"exec":"_exec_"}}},"ssIasWd":{"dir":{"value":2}},"genIdentify":{"dir":{"value":3},"acls":{"identifyTime":"RW"},"attrs":{"identifyTime":0}}}}},"_id":"ckYgTag1OQZH0fRG"}

also my log:
5/2/2019, 8:17:35 PM - info: Logging to directory: '/share/zigbee2mqtt/log/2019-05-02.20-17-35' 5/2/2019, 8:17:36 PM - info: Starting zigbee2mqtt version 1.3.1 (commit #unknown) 5/2/2019, 8:17:36 PM - info: Starting zigbee-shepherd 5/2/2019, 8:17:37 PM - info: zigbee-shepherd started 5/2/2019, 8:17:37 PM - info: Coordinator firmware version: '20190223' 5/2/2019, 8:17:37 PM - info: Currently 3 devices are joined: 5/2/2019, 8:17:37 PM - info: 0x286d970001010cd0 (0x286d970001010cd0): unkown - undefined unknown (EndDevice) 5/2/2019, 8:17:37 PM - info: 0x00158d0002d45645 (0x00158d0002d45645): WSDCGQ01LM - Xiaomi MiJia temperature & humidity sensor  (EndDevice) 5/2/2019, 8:17:37 PM - info: 0xd0cf5efffe475d33 (0xd0cf5efffe475d33): unkown - undefined unknown (Router) 5/2/2019, 8:17:37 PM - warn: permit_joinset to truein configuration.yaml. 5/2/2019, 8:17:37 PM - warn: Allowing new devices to join. 5/2/2019, 8:17:37 PM - warn: Setpermit_jointofalse` once you joined all devices.
5/2/2019, 8:17:37 PM - info: Zigbee: allowing new devices to join.
5/2/2019, 8:17:37 PM - info: Connecting to MQTT server at mqtt://<IP_ADDRESS>:1883
5/2/2019, 8:17:37 PM - info: zigbee-shepherd ready
5/2/2019, 8:17:38 PM - info: Connected to MQTT server
5/2/2019, 8:17:38 PM - info: MQTT publish: topic 'zigbee2mqtt/bridge/state', payload 'online'
5/2/2019, 8:17:38 PM - info: MQTT publish: topic 'zigbee2mqtt/0x00158d0002d45645', payload '{"temperature":20.59,"linkquality":92,"humidity":66.18,"battery":86,"voltage":2975}'
5/2/2019, 8:17:39 PM - info: MQTT publish: topic 'homeassistant/sensor/0x00158d0002d45645/temperature/config', payload '{"unit_of_measurement":"°C","device_class":"temperature","value_template":"{{ value_json.temperature }}","state_topic":"zigbee2mqtt/0x00158d0002d45645","json_attributes_topic":"zigbee2mqtt/0x00158d0002d45645","name":"0x00158d0002d45645_temperature","unique_id":"0x00158d0002d45645_temperature_zigbee2mqtt","device":{"identifiers":"zigbee2mqtt_0x00158d0002d45645","name":"0x00158d0002d45645","sw_version":"Zigbee2mqtt 1.3.1","model":"MiJia temperature & humidity sensor  (WSDCGQ01LM)","manufacturer":"Xiaomi"},"availability_topic":"zigbee2mqtt/bridge/state"}'
5/2/2019, 8:17:39 PM - info: MQTT publish: topic 'homeassistant/sensor/0x00158d0002d45645/humidity/config', payload '{"unit_of_measurement":"%","device_class":"humidity","value_template":"{{ value_json.humidity }}","state_topic":"zigbee2mqtt/0x00158d0002d45645","json_attributes_topic":"zigbee2mqtt/0x00158d0002d45645","name":"0x00158d0002d45645_humidity","unique_id":"0x00158d0002d45645_humidity_zigbee2mqtt","device":{"identifiers":"zigbee2mqtt_0x00158d0002d45645","name":"0x00158d0002d45645","sw_version":"Zigbee2mqtt 1.3.1","model":"MiJia temperature & humidity sensor  (WSDCGQ01LM)","manufacturer":"Xiaomi"},"availability_topic":"zigbee2mqtt/bridge/state"}'
5/2/2019, 8:17:39 PM - info: MQTT publish: topic 'homeassistant/sensor/0x00158d0002d45645/battery/config', payload '{"unit_of_measurement":"%","device_class":"battery","value_template":"{{ value_json.battery }}","state_topic":"zigbee2mqtt/0x00158d0002d45645","json_attributes_topic":"zigbee2mqtt/0x00158d0002d45645","name":"0x00158d0002d45645_battery","unique_id":"0x00158d0002d45645_battery_zigbee2mqtt","device":{"identifiers":"zigbee2mqtt_0x00158d0002d45645","name":"0x00158d0002d45645","sw_version":"Zigbee2mqtt 1.3.1","model":"MiJia temperature & humidity sensor  (WSDCGQ01LM)","manufacturer":"Xiaomi"},"availability_topic":"zigbee2mqtt/bridge/state"}'
5/2/2019, 8:17:39 PM - info: MQTT publish: topic 'homeassistant/sensor/0x00158d0002d45645/linkquality/config', payload '{"unit_of_measurement":"-","value_template":"{{ value_json.linkquality }}","state_topic":"zigbee2mqtt/0x00158d0002d45645","json_attributes_topic":"zigbee2mqtt/0x00158d0002d45645","name":"0x00158d0002d45645_linkquality","unique_id":"0x00158d0002d45645_linkquality_zigbee2mqtt","device":{"identifiers":"zigbee2mqtt_0x00158d0002d45645","name":"0x00158d0002d45645","sw_version":"Zigbee2mqtt 1.3.1","model":"MiJia temperature & humidity sensor  (WSDCGQ01LM)","manufacturer":"Xiaomi"},"availability_topic":"zigbee2mqtt/bridge/state"}'
5/2/2019, 8:17:39 PM - info: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1.3.1","commit":"unknown","coordinator_firmware":20190223,"log_level":"info","permit_join":true}'
5/2/2019, 8:51:03 PM - info: MQTT publish: topic 'zigbee2mqtt/0x00158d0002d45645', payload '{"temperature":20.71,"linkquality":47,"humidity":70.65,"battery":86,"voltage":2975}'
5/2/2019, 8:53:17 PM - info: Zigbee: allowing new devices to join.
5/2/2019, 8:53:18 PM - info: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1.3.1","commit":"unknown","coordinator_firmware":20190223,"log_level":"info","permit_join":true}'
5/2/2019, 8:53:37 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:37 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:37 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:37 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:37 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:37 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:38 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:38 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:38 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:38 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:38 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:38 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:39 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:39 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:39 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:39 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:40 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:40 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:40 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:40 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:41 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:41 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:41 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:41 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:42 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:42 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:42 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:42 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:43 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:43 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:43 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:43 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:44 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:44 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:44 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:44 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:45 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:45 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:45 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:45 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:46 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:46 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:46 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:46 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:46 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:46 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:47 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:47 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:47 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:47 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:48 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:48 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:48 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:48 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:48 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:48 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:48 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:48 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:49 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:49 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:49 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:49 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:49 PM - info: Device incoming...
5/2/2019, 8:53:49 PM - info: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"device incoming"}'
5/2/2019, 8:53:49 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:49 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:53:49 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:53:49 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:58:11 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:58:11 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:58:49 PM - warn: Message without device!
5/2/2019, 8:58:59 PM - warn: Device with modelID 'undefined' is not supported.
5/2/2019, 8:58:59 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:30 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:30 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:31 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:31 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:32 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:32 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:33 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:33 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:34 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:34 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:35 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:35 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:36 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:36 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:37 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:37 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:37 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:37 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:38 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:38 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:38 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:38 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:39 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:39 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:39 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:39 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:40 PM - info: Device incoming...
5/2/2019, 8:59:40 PM - info: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"device incoming"}'
5/2/2019, 8:59:40 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:40 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:40 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 8:59:40 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 8:59:52 PM - warn: Message without device!
5/2/2019, 9:00:04 PM - warn: Device with modelID 'undefined' is not supported.
5/2/2019, 9:00:04 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:34 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:34 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:35 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:35 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:35 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:35 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:37 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:37 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:38 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:38 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:39 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:39 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:40 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:40 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:41 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:41 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:42 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:42 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:42 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:42 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:43 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:43 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:43 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:43 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:44 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:44 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:44 PM - info: Device incoming...
5/2/2019, 9:00:44 PM - info: MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"device incoming"}'
5/2/2019, 9:00:44 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:44 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:00:44 PM - warn: Device with modelID 'multi' is not supported.
5/2/2019, 9:00:44 PM - warn: Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
5/2/2019, 9:03:18 PM - info: Zigbee: disabling joining new devices.
5/2/2019, 9:03:18 PM - info: Zigbee: disabling joining new devices.
5/2/2019, 9:03:18 PM - info: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1.3.1","commit":"unknown","coordinator_firmware":20190223,"log_level":"info","permit_join":false}'
5/2/2019, 9:03:18 PM - info: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1.3.1","commit":"unknown","coordinator_firmware":20190223,"log_level":"info","permit_join":false}'
5/2/2019, 9:06:08 PM - warn: Message without device!
5/2/2019, 9:32:19 PM - warn: Message without device!
5/2/2019, 9:35:32 PM - info: Zigbee: allowing new devices to join.
5/2/2019, 9:35:32 PM - info: MQTT publish: topic 'zigbee2mqtt/bridge/config', payload '{"version":"1.3.1","commit":"unknown","coordinator_firmware":20190223,"log_level":"info","permit_join":true}'
``

This device is now supported but you have to update to the latest dev branch version.

hi there
how do i update?
thanks

Here is the link to the doc
http://www.zigbee2mqtt.io/how_tos/how-to-switch-to-dev-branch.html

thank will try

ok this is my messages..apparently it is not working:-(
  zigbee2mqtt:info 5/4/2019, 10:01:25 PM Device incoming...
  zigbee2mqtt:info 5/4/2019, 10:01:25 PM MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"device incoming"}'
  zigbee2mqtt:warn 5/4/2019, 10:01:45 PM Failed to configure 0x286d970001010cd0 (0x286d970001010cd0) ('Error: Timed out after 30000 ms') (attempt #1)
  zigbee2mqtt:warn 5/4/2019, 10:01:45 PM This can be ignored if the device is working properly
  zigbee2mqtt:warn 5/4/2019, 10:02:17 PM Message without device!
  zigbee2mqtt:warn 5/4/2019, 10:02:29 PM Device with modelID 'undefined' is not supported.
  zigbee2mqtt:warn 5/4/2019, 10:02:29 PM Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
  zigbee2mqtt:info 5/4/2019, 10:02:36 PM MQTT publish: topic 'zigbee2mqtt/0x286d970001010cd0', payload '{"battery":"20.00","voltage":2600,"linkquality":81,"temperature":25.49}'
  zigbee2mqtt:info 5/4/2019, 10:02:41 PM Device incoming...
  zigbee2mqtt:info 5/4/2019, 10:02:41 PM MQTT publish: topic 'zigbee2mqtt/bridge/log', payload '{"type":"pairing","message":"device incoming"}'
  zigbee2mqtt:warn 5/4/2019, 10:03:00 PM Failed to configure 0x286d970001010cd0 (0x286d970001010cd0) ('Error: Timed out after 30000 ms') (attempt #2)
  zigbee2mqtt:warn 5/4/2019, 10:03:00 PM This can be ignored if the device is working properly
  zigbee2mqtt:info 5/4/2019, 10:03:12 PM MQTT publish: topic 'zigbee2mqtt/0x286d970001010cd0', payload '{"battery":"20.00","voltage":2600,"linkquality":102,"temperature":25.49,"contact":false,"battery_low":false}'
  zigbee2mqtt:warn 5/4/2019, 10:03:23 PM Message without device!
  zigbee2mqtt:warn 5/4/2019, 10:03:34 PM Device with modelID 'undefined' is not supported.
  zigbee2mqtt:warn 5/4/2019, 10:03:34 PM Please see: https://www.zigbee2mqtt.io/how_tos/how_to_support_new_devices.html
  zigbee2mqtt:warn 5/4/2019, 10:03:43 PM Failed to configure 0x286d970001010cd0 (0x286d970001010cd0) ('Error: Timed out after 30000 ms') (attempt #3)
  zigbee2mqtt:warn 5/4/2019, 10:03:43 PM This can be ignored if the device is working properly

i installed edge version on hassio

at the end it seams to be working...altough the contact sensor seems not to update

after somwhile started to work.... all seams ok

only temperature is not changing...but will feedback tomorrow if it changes..also this sensor ha "movement" sensor...can it be added?
thanks

It should have vibration sensor according to the doc but I never saw any
communication about that when using the Zigbee sniffer. I tried to shake it
but it did not transmit anyhting so the doc might not be correct.
If yours is working, you should see some messages in the log saying 'no
converters available...'
On Sat, 4 May 2019 at 23:37, mclaudiopt<EMAIL_ADDRESS>wrote:

only temperature is not changing...but will feedback tomorrow if it
changes..also this sensor ha "movement" sensor...can it be added?
thanks
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Koenkk/zigbee-shepherd-converters/issues/426#issuecomment-489367580,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFLQMBYED7JT6H5DDR2WMWDPTX62ZANCNFSM4HKGNPMQ
.

It should have vibration sensor according to the doc but I never saw any
communication about that when using the Zigbee sniffer. I tried to shake it
but it did not transmit anyhting so the doc might not be correct.
If yours is working, you should see some messages in the log saying 'no
converters available...'

well in my case it does not transmit anything...strange....but no problem
How can i request official support for a sirene that i have?
it's this one
https://github.com/Koenkk/zigbee2mqtt/issues/1087

is you sensor updating data?
mine only updates if restart the addon.
can help please?

only updating contact sensor...:-(

I am not using mine currectly, I will repair it and check if the temperature is updated or not.

OK, I confirm that temperature does not seem to be updated at all.
When contact is open or closed, message is displayed but temperature is not updated.
Maybe there are other messages from time to time but I haven't seen any after 30 minutes.
Also I can see this in the log:
Mai 05 20:29:12 NUC npm[12794]:   zigbee2mqtt:warn 5/5/2019, 8:29:12 PM Failed to configure SmartThings (0x286d97000105d957) ('Error: Timed out after 30000 ms') (attempt #3)
Mai 05 20:29:12 NUC npm[12794]:   zigbee2mqtt:warn 5/5/2019, 8:29:12 PM This can be ignored if the device is working properly

@Koenkk Do you know how we can debug this issue ?

I confirm that even after 8 hours no update

I cannot explain but it is working now, not ure why.
Only thing I did is restart zigbee2mqtt and while it was starting I played with the contact, open it then close it, a dozen of time.
Now I get an update every 1m6s, as contact was in my hand it was at 27°C, now dropping slowly.

Tried sometimes...in my case no change(

hi there @Fabiancrg unfortunelly tried all night and does not solve the issue..
do you have any clue on how to solve it ?
thanks

I will do more tests tonight and let you know how it goes.
Le lun. 6 mai 2019 à 09:33, mclaudiopt<EMAIL_ADDRESS>a écrit :

hi there @Fabiancrg https://github.com/Fabiancrg unfortunelly tried all
night and does not solve the issue..
do you have any clue on how to solve it ?
thanks
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Koenkk/zigbee-shepherd-converters/issues/426#issuecomment-489526076,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFLQMB2PKPMS5W2XOTINAMLPT7NLRANCNFSM4HKGNPMQ
.

Today I update the FW and SW to latest dev version to fix (hopefully) another issue.
My SmartThings multipurpose contact sensor is still working and updating its temperature regularly.
You should maybe try to upgrade the coordinator with the latest FW too and see if it helps.

i dont have the programmer:-(


Fixed type errors in mypy GitHub Action

Fixed type errors in mypy GitHub Action

[x] Closes #6962

Running the GitHub Action for mypy locally returns successful:
$ python -m mypy --install-types --non-interactive
Success: no issues found in 144 source files

That is weird, with from __future__ import annotations this should work.
Actually the pyupgrade pre-commit hook should even replace the typing versions by built-in versions.

Could you add an additional mypy workflow to test this behavior?
See https://github.com/pydata/xarray/issues/6962#issuecomment-1277287183

When I run locally mypy --python-version 3.8 i get more errors. Maybe merge current main and let's see what new issues emerge.

@dcherian on a different issue: can we prevent that the auto labeler removes manually added labels?

can we prevent that the auto labeler removes manually added labels?

no idea. cc @TomNicholas

Seems that pyupgrade does not update tuple -> Tuple inside of Union, which is exactly what caused these problems.
Looks good to me now 👍

Seems like dasks typing is also not compatible with python 3.8, haha

I cannot reproduce the mypy error locally.
Does this break for someone else?

I get some errors:
❯ git describe
v0.17.0-798-g3599f873

❯ mypy --python-version 3.8
xarray/core/types.py:72: error: "tuple" is not subscriptable  [misc]
xarray/core/types.py:74: error: "tuple" is not subscriptable  [misc]
xarray/core/types.py:76: error: "tuple" is not subscriptable  [misc]
xarray/core/types.py:78: error: "list" is not subscriptable  [misc]
xarray/core/_reductions.py:18: error: Cannot find implementation or library stub for module named "flox"  [import]
xarray/core/_reductions.py:18: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
xarray/core/merge.py:43: error: "tuple" is not subscriptable  [misc]
xarray/core/merge.py:44: error: "tuple" is not subscriptable  [misc]
xarray/core/merge.py:45: error: "tuple" is not subscriptable  [misc]
xarray/core/groupby.py:661: error: Cannot find implementation or library stub for module named "flox.xarray"  [import]
xarray/backends/api.py:65: error: "dict" is not subscriptable  [misc]
Found 10 errors in 5 files (checked 139 source files)

(not sure why git describe is showing that tag but the commit hash should repro)

Hmmm, these errors should be fixed in the latest version of this PR.
The problem CI is running into is that mypy runs into an unrecoverable error parsing dask, this I cannot reproduce locally.

Hmmm, these errors should be fixed in the latest version of this PR.

Sorry, my test was on main. I can rerun on this PR.

I can't repro the failure on the current PR v0.17.0-804-g7018b950. I'm using Python 3.9 with the latest dask.
/home/runner/micromamba/envs/xarray-tests/lib/python3.10/site-packages/dask/utils.py:366: error: Parenthesized context managers are only supported in Python 3.9 and greater  [syntax]
Found 1 error in 1 file (errors prevented further checking)

I'm not sure why it's raising an error for an imported module where --follow-imports=silent. Isn't that supposed to suppress errors in imports?

We should probably report that to my, but I cannot reproduce it locally, yet alone create a MVCE.

Dask is on the ignore list:
https://github.com/pydata/xarray/blob/d6671dd414370d006254ba3156cb96256ce0e9c7/pyproject.toml#L31-L43
This seems to ignore the list and follow-imports doesn't seem to work either:
      - name: Run mypy with python3.8
        # silent all imports, since external repos might not support this
        run: |
          python -m mypy --install-types --non-interactive --python-version 3.8 --follow-imports=silent

A good ol' copy/paste job works as expected though. :) I think we can discuss more elegant solutions in a follow up PR.

A good ol' copy/paste job works as expected though. :) I think we can discuss more elegant solutions in a follow up PR.

So now mypy is not crashing anymore? Thats weird, we should open an issue on mypy about this...

A good ol' copy/paste job works as expected though. :) I think we can discuss more elegant solutions in a follow up PR.

So now mypy is not crashing anymore? Thats weird, we should open an issue on mypy about this...

This one throws errors still: python -m mypy --install-types --non-interactive --python-version 3.8 --follow-imports=silent
Did it ever crash if we used the normal mypy CI but with changed python version?

This one throws errors still: python -m mypy --install-types --non-interactive --python-version 3.8 --follow-imports=silent
Did it ever crash if we used the normal mypy CI but with changed python version?

I don't think we ever used --python-version outside of this PR.
We should report this mypy bug...

Thanks, @lukeconibear !


README Fix

Change already made a while ago in previous commit on dev branch. Will be fixed when that's merged until then main branch stays untouched.


Suggestions on privacy protection and Copy/Paste function

What's the Problem?

The current app records any recently opened files no matter what, and there is no option to completely turn it off. The 'Recent Files' widget can be turned off. However, when turned on, it still shows recordeds of recent files during the period when the widget is turned off.
This can easily cause damage to user privacy.

The current Copy/Paste function is weak compared to Windows' original function, considered that Windows provide a detailed window showing the progress and speed, helping the users to monitor the progress. Users can see whether there is any underlying issue of the hardware, and can decide whether to wait or doing other things in the meantime, etc.
However, this app hides the Copy/Paste progress rather deep, making it rather difficult to monitor the progress. Users wouldn't easily know how fast or slow it is, and why it is. With Windows' original function, the progress is slow, user can easily tell what file or path is causing the issue.
The current app also doesn't support software such as TeraCopy. That is, even TeraCopy is installed and set as the default copy/paste manager, the app uses its own function nonetheless with so much less functionality compared to TeraCopy or alike.

Solution/Idea
For problem 1: Simply provide the option to stop recording 'recent files' at all.
For problem 2:

Simply use the original Windows copy/paste function.
Coordinate with apps like TeraCopy to provide integration.
Redeign the current copy/paste progress function: simply copy/redo the current design of the Windows' progress window, but put it into a pane or tabs that're at the bottom of the app, with the same kind of info. The pane will stay there as long as there is any such progress, but can be manually collaped into smaller squared tabs with progress rings and percentage on each tab.

Alternatives
For problem 2, alternatively, design an internal copy/paste function that's similar to or better than software like TeraCopy. This can be sold as an paid package with a price that's similar to TeraCopy.
However, this option should only be pursued when the above solutions have been pursued first.
Priorities

Capability
Priority

Solution to problem 1
Must

Solution 1 and 3 to problem 2
Should

Solution 2 and alternative solution to problem 2
Could

Files Version
No response
Windows Version
No response
Comments
This app is great, and thank you for making it free to use. The mentioned problems are are currently prevent me from using this app on regular basis.

Thanks for the suggestions. We're tracking these items in #5882, #7518, #4811


a11y_Pagination> Size> A11y> 1 violations is appearing

Describe the bug
Pagination>> "1 violations" is appearing for "Size".
To Reproduce
Steps to reproduce the behavior:

Go to 'https://storybook-preview-290--upbeat-sinoussi-f675aa.netlify.app/?path=/story/pagination--size'
Click on 'Accessibility" add on
"1 violations" is appearing

Expected behavior
"0 violations" should appear for Pagination> Size.
Screenshots
https://somup.com/c3n2QmZWWU
Desktop:

OS: [Win 10]
Browser [chrome]
Version [Version 98.0.4758.82 (Official Build) (64-bit)]

The Issue is Fixed.
Storybook Link : https://storybook-preview-dev--upbeat-sinoussi-f675aa.netlify.app/?path=/story/pagination--size
See Scree-cast : http://somup.com/c3jQf0uJtp
Thanks!

Issue does not exist.
See Screen-cast : http://somup.com/c3jvhMUlpY


Temporal and other searching

For your consideration, a pull request to enable temporal searching based on:
https://docs.ogc.org/is/17-069r4/17-069r4.html#_parameter_datetime
As well arbitrary user-defined fields (via configuration) mapped to columns in the postgis DB.
https://docs.ogc.org/is/17-069r4/17-069r4.html#_parameters_for_filtering_on_feature_properties

That's a great addition, thanks!
Do you have a dataset to test with?

How do I test against a Pg DB?

I've added the following test:
    #[tokio::test]
    #[ignore]
    async fn pg_datetime_filter() {
        let filter = FilterParams {
            limit: None,
            offset: None,
            bbox: None,
            datetime: Some("2024-01-01T00:00:00Z".to_string()),
            filters: HashMap::new(),
        };
        let ds = PgDatasource::new_pool("postgresql://t_rex:t_rex@<IP_ADDRESS>:5439/t_rex_tests")
            .await
            .unwrap();
        let source = PgCollectionSource {
            ds,
            sql: "SELECT *, '2024-01-01 00:00:00Z'::timestamptz - (fid-1) * INTERVAL '1 day' AS ts FROM ne.ne_10m_rivers_lake_centerlines".to_string(),
            geometry_column: "wkb_geometry".to_string(),
            pk_column: Some("fid".to_string()),
            temporal_column: Some("ts".to_string()),
            other_columns: HashMap::new(),
        };
        let items = source.items(&filter).await.unwrap();
        assert_eq!(items.features.len(), 1);
    }

which can be run with cargo test -- --ignored
The test database must be started with docker run -p <IP_ADDRESS>:5439:5432 -d --name trextestdb --rm sourcepole/trextestdb
If you give me push permissions to your PR, I can add my test directly (see https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork).

Allow edits is enabled.


convert marshalled members to camelCase

Convert the member names to camelCase for interfaces/class/types getting marshalled to C# side.
As @SteveSandersonMS asked in https://github.com/aspnet/Blazor/issues/774
I've  coordinated with @galvesribiero and he is updating his PR: https://github.com/aspnet/Blazor/pull/771

Thanks @attilah! This is now merged.


Replace FwLinks with the actual target links - VB folder

Sub-issue for folder https://github.com/dotnet/docs/tree/master/docs/visual-basic

Hello. Any ideas about how to modify the FwLinks for this file?
https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc2027
Thanks!

Hello. Any ideas about how to modify the FwLinks for this file?
https://docs.microsoft.com/en-us/dotnet/visual-basic/misc/bc2027

I suspect the current Visual Basic compiler never emits error BC2027 and the page could be deleted. The definition of ERR_WatsonSendNotOptedIn has been commented out and the /errorreport option has no effect.

Should we archive that page @KathleenDollard?

Sub-issue for folder https://github.com/dotnet/docs/tree/master/docs/visual-basic


Release does not run on Fedora 35

Splitting from #3851
The latest stable release tar.gz: running ./AppRun or ./usr/bin/Oni2 does nothing; no processes are left alive.
Fedora 35
./AppRun --version
/home/jc/dl/Onivim2.AppDir/usr/bin/Oni2_editor: /home/jc/dl/Onivim2.AppDir/usr/lib/libselinux.so.1: no version information available (required by /lib64/libgio-2.0.so.0)
/home/jc/dl/Onivim2.AppDir/usr/bin/Oni2_editor: symbol lookup error: /lib64/libgio-2.0.so.0: undefined symbol: g_module_open_full

I have the same error. I think the problem is that LD_LIBRARY_PATH is empty when you run AppRun.

Mentioned in #2444


The lib file is so big

The dll file is so big that it contains everything AS implemented into a single file, but in fact many works, for example a small tool or a simple crawler bot that just to extract data from html code string, do not need everything of AS implemented.
So I wonder that is there a plan to split AS into some separate libs that each contains only one major function?

Yes, see #139. It was debated, but it seemed that most people do not want this. Let's continue the discussion in #139!


How can we plug this into our own bash autocompletions?

I've created a function in my .bash_profile that I want to include autocompletions from yarn for.
This is what I'm trying:
complete -o default -o nospace -F _yarn yarnupgrade
but I get the following error:
bash: completion: function '_yarn' not found
Ideally I'd like to only autocomplete the choices output from yarn upgrade.
Otherwise, yarn completion works great!

.bash_profile is loaded before .bashrc so depending on where you have the completions being loaded, your call to complete Is likely happening before the completions are sourced.

I'm doing something similar with git: complete -o default -o nospace -F _git g and that works fine. It's only the yarn one.

The completions are being loaded in .bash_profile as well.

So _git is working differently since git-completion has nothing to do with bash-completion@2.
I'm thinking it's not possible to access the functions defined in your autocompletion globally. 🤔

Yes it is.

Here's an example from my dotfiles....
https://github.com/dsifford/.dotfiles/blob/ed2be686ffc689c66814e5891cada8aa70e4bbdd/local/lib/bashrc.d/completion-aliases.sh#L52-L55

Can I ask what that's doing (like, step-by-step)? I've never seen something in bash like that.

# IF the yarn command exists in the PATH
command -v yarn \
  # AND a completion was able to be sourced for yarn
  && __load_completion yarn \
  # AND after sourcing the yarn completions, there exists a function available named _yarn
  && command -v _yarn \
  # THEN complete my alias for yarn "y" with the yarn completions
  && complete -F _yarn y

Awesome. This helped me achieve what I was looking for. Thank you so much!


Fastnlight: Watch F67K9GYX

Fastnlight requests the watch of the watch_keyword F67K9GYX. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

F67K9GYX has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Makyen in Charcoal HQ


Improve Router.php namedRoutes caching

pathFor() should function properly ( and not throw an exception) during the following sequence.

call pathFor()
map() a new named route
call pathFor() for the route added in step 2.

Therefore, getNamedRoute() should be more precise than is_null($this->namedRoutes).  Comparing the size of namedRoutes to routes, while not perfect, is better.

Shouldn't we be invalidating namedRoutes when map is called?

That would be a better solution. Unfortunately, after thinking about this a little further, I'm not sure even that fully solves the problem.
It's absolutely possible to call Route::setName multiple times.  This means that the route name could change even after map is called - and I can't think of any way to observe that inside of Router. This is, to be a fair, an edge case.
I think the simplest way to solve that would be to completely eliminate namedRoutes, unless you can think of something else?

hi
The only way for fixing this problem is removing Route::setName and insert a feature for registering named routes like other routes in App class.
for more info see elegantweb/framework routing in github :D
Route class and RouteCollection class

Thanks @n0o0bSina , perhaps I should have been more clear.  I wasn't suggesting that the named routes feature be removed.  Rather, I'm now suggesting that getNamedRoute loops through each Route object in routes on every call, as this seems the only way to ensure we're working with accurate, current information. This would result in removal of the Router::namedRoutes property, since it would be unused.
Sure, it's less performant, but that seems like a secondary concern to being correct. Does it make sense to just correct the error, and address any performance issues in another PR?
I've updated the pull request taking this conversation into consideration.

@jacklynmatts there is more better way if you don't like standards :D You can inject Router class into each Route then set key in both Route and Router.

Ah - so the problem is that the Router holds the list of named routes, but we set the name on the Route, so we can't invalidate the cached list in Router.

Thanks for finding and fixing this.

Thanks!


Implementation of Extension Import

work supporting issue #78
created shared DndFileChooser component to handle file uploads (uses react-dropzone library) and can be customized to accept just one file or multiple files.
created DndFileChooser stories
implemented ExtensionImportPage to work like the angular app
created ExtensionImportReview and ExtensionImportCard components used by the import page (also created stories for these new components)
changed callFetch to allow content type, accept, and referral policy to be set or removed
changed callFetch to all a body that is not JSON

PR Storybook available here

PR Storybook available here


Merge pull request #26 from utorai/patch/timetable

Added default replies for timetable intent

Looks like someone was trying how to make a pull request.


AspNetCore 2.1 Concurrent test

Now we use AspNetCore 2.1 WebAPI to store image to aws s3 storage. works like
    string inputBody = string.Empty;
    using (var reader = new System.IO.StreamReader(context.Request.Body,
            System.Text.Encoding.UTF8))
     {
         inputBody = reader.ReadToEnd();
     }
    var imgData = Convert.FromBase64String(inputBody );
    var keyName = "generateKeyExamp";
    //s3Client use AWSSDK create
    var respFromS3 = await s3Client.PubObjectAsync(keyName, imgData);
   //response with s3 code

we use loadrunner test this api(300 concurrents),responses are very slow at the begin 3 minutes,then very fast.

we deploy it based on docker
there are about 20 threads after process start, then incresed when loadrunner test begin.
please help us find out why it is slow at the first 3minustes.

I can't tell you why without looking at a profile, but that's something you should definitely do. Are you CPU bound or IO bound? On easy thing you can try is to make reading the body fully asynchronous:
using (var reader = new System.IO.StreamReader(context.Request.Body,
        System.Text.Encoding.UTF8))
 {
     inputBody = await reader.ReadToEndAsync();
 }

How big is the body usually (number of bytes)?

we use aws ec2 c3.large machine
we update .net core version from 2.1 to 2.2 and UseLibuv when build host startup.
then this question not show again. but i still not sure why this happen


Improved watching with chokidar

This change implements the proposal in #3912 and improves the file watching behavior.
Description of the Change

We introduce the --watch-files command line option. This option allows control over which files are and is separate and more powerful than --extension. Fixes #2702.
We introduce the --watch-ignore command line option that allows control over which files are not watched. Before this was hardcoded to node_modules and .git. See #2554.
The chokidar package now handles file watching. (We’re using version 2.1.6 instead of 3.x because the latter dropped support for Node v6.)
New test files are picked up by the file watcher and run. Fixes #2176.

Alternate Designs
Alternatives (like nodemon) were already discussed in #3912.

I have two questions around this.
Should we deprecate the --watch-extensions command line option? How do I update the autogenerated --help output in docs/index.md?

@geigerzaehler thank you for this PR!
I restarted some of the tests, they are still failing.
I will try to merge #3885 within the next few days, so we can use chokidar 3.x.
--watch-extensions: I don't know yet. Originally I was planning to keep it as an independent option (not just an alias of --extension). But if we have --watch-files with glob, we wouldn't need it anymore. Maybe for backwards compability.
--help output in docs/index.md: it's injected dynamically, have a look the deploy preview of netlify, it's all done.

Coverage increased (+0.03%) to 92.463% when pulling c8c4403955b6cd916bce4ee18ee528e24a0182c5 on geigerzaehler:improved-watching into ad4860e0aa2d3fea0e544edc784dc1140e2115a9 on mochajs:master.

Regarding time interval: I remember an issue which I couldn't find anymore. The user complained about his cpu being close to a collapse. He let Mocha run over night in watch mode with frequent file changes via web.
Do we need such an interval value?

Regarding time interval: I remember an issue which I couldn't find anymore. The user complained about his cpu being close to a collapse. He let Mocha run over night in watch mode with frequent file changes via web.
Do we need such an interval value?

I’m not sure what you are referring to. Could you give some context? Do you mean the interval that we are polling the file system at? This can be configured through chokidar.

I think I fixed everything, rebased, and squashed the commits!

While testing I found this bug:
node bin\mocha --watch ../skipped.js
This should restart my test "skipped.js" when a file in cwd with extension "js" is touched.
This works with "karma.conf.js" and others.
It does not work with ".eleventy.js" or other files including a "." in its name.

node bin\mocha --watch notExistFile.js
When I produce an error, eg. "Error: No test files found: notExistFile.js", the cursor remains hidden after the error message.
So that's it, no more testing from my side.

node bin\mocha --watch notExistFile.js
When I produce an error, eg. "Error: No test files found: notExistFile.js", the cursor remains hidden after the error message.

Fixed.

While testing I found this bug:
node bin\mocha --watch ../skipped.js
This should restart my test "skipped.js" when a file in cwd with extension "js" is touched.
This works with "karma.conf.js" and others.
It does not work with ".eleventy.js" or other files with a leading dot "." in its name.

Fixed in 0e2ee09e46c7019d3510f53a30f448323dd731d1

@geigerzaehler thanks for your latest fixes! 👍
@boneskull @craigtaub @outsideris
I'm going to merge this PR within the next few days.

I just experienced what @juergba reports.  I'm using @babel/register and the --watch-files approach probably just doesn't work with require hooks.

I just experienced what @juergba reports.  I'm using @babel/register and the --watch-files approach probably just doesn't work with require hooks.

I was unable to reproduce the bug that @juergba mentioned. If this is still a problem, could somebody open an issue?
@jedwards1211: I’m happy to take a look at this but I need more information to investigate. For example the commands you are running, the expected behavior and the actual behavior. Feel free to open an issue and tag me.

I was unable to reproduce the bug that @juergba mentioned. If this is still a problem, could somebody open an issue?
@jedwards1211: I’m happy to take a look at this but I need more information to investigate. For example the commands you are running, the expected behavior and the actual behavior. Feel free to open an issue and tag me.

I think we have already an open issue for this: #4016 .
But this improved watch mode hasn't been introduced with the latest version of Mocha, it's more than an year ago.

I think we have already an open issue for this: #4016 .
But this improved watch mode hasn't been introduced with the latest version of Mocha, it's more than an year ago.

I'll see if I can make a repo to reproduce it tomorrow. I know this change isn't recent, but I just now noticed that --watch-extensions no longer works and tried using --watch-files in my project.

I'll see if I can make a repo to reproduce it tomorrow. I know this change isn't recent, but I just now noticed that --watch-extensions no longer works and tried using --watch-files in my project.

  I  was seeing behavior exactly like you described, "changes made on watched source files only trigger a new test run without considering the changes."  If it happens again I'll try to figure out why

Sigh, it was happening for me the other day, now I can't get it to reproduce, I hate when this happens.  I  was seeing behavior exactly like you described, "changes made on watched source files only trigger a new test run without considering the changes."  If it happens again I'll try to figure out why

question: is chokidar still better than builtin fs.watch?


Fails

I'm using macOS 11.4.1 , Python 3.9.6. I have serialed into my router and entered the cfe shell. I then ran the command below and it failed.
python3 -m bcm_cfedump -D /dev/cu.usbserial-AM00LOOO -O nand.img -t 0.01 nand

Waiting for a prompt...

Error caused by line: 'read : 0'
Block 0 page 0 read failed, retrying.

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Error caused by line: '*** command status = 1'
Block 0 page 0 read failed, retrying.

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Error caused by line: 'read : 0'
Block 0 page 0 read failed, retrying.

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Error caused by line: '.........."[.$..'
Block 0 page 0 read failed, retrying.

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Error caused by line: 'read : 0'
Block 0 page 0 read failed, retrying.

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

Traceback (most recent call last):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 287, in read_pages
    yield self.read_page(block, page)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 268, in read_page
    addr, buf_temp = parse_serial_line(line.decode())
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 30, in parse_serial_line
    addr = int(m.group('addr'), 16)
AttributeError: 'NoneType' object has no attribute 'group'

 ⡏ [0/262144 pages] [0B/512.0MB] Traceback (most recent call last):
  File<EMAIL_ADDRESS>line 197, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File<EMAIL_ADDRESS>line 87, in _run_code
    exec(code, run_globals)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 497, in <module>
    main()
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 481, in main
    for page in gen:
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 317, in read_nand
    yield from self.read_block(block)
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 302, in read_block
    for i in self.read_pages(block, 0, self.block_size // self.page_size):
  File "/Users/james/bcm-cfedump/bcm_cfedump.py", line 294, in read_pages
    raise IOError("Max number of page read retries exceeded")
OSError: Max number of page read retries exceeded

I saw something similar. Try increasing the timeout.
-t 0.01 To -t 1

I'm seeing this same stack intermittently when using nand. Fortunately, in my case, it's not preventing the command from working, I presume because I'm using the slower approach which allows retries. But the error is quite ugly and doesn't provide any context for what line caused the error.
It's generally good practice to check a match group for None before accessing any of its methods, so I would suggest that would be the right time to either throw or print out a useful error and gracefully recover.


Parallel processing fixes

Seems to be passing tests! But needs work on the stats report, both to solve the memory bug and to fix up the faceting work I drafted. Try it out!

One more comment -- did you add a project_bioinformatics_name to config? I think you forgot to add it to the default config.

It's weird that you were getting an error at your end since the checks pass... must have to do with config right?

Ok, the memory leak issue seems to be because of pandoc, rather than R or Rstudio. Some googling suggests we are not the only ones to have issues with pandoc being a memory hog.

But why only with this specific kable() call??

Beats me, but if you tell R to just make the markdown files and not bother with pandoc it's fine. I'll keep trying to figure it out tomorrow!  I also added a config option to turn off the parallelization (and run with mapply() instead) for debugging purposes, mostly.

Ah, I didn't realize you could circumvent pandoc. Do you need to generate the HTML separately after?
mapply is better than nothing but not much faster than a loop. Really horribly slow for 10+ reports.

Oh totally, I just added it so I could debug more easily.
On Wed., Aug. 24, 2022, 5:08 p.m. Matthew Meier, @.***>
wrote:

Ah, I didn't realize you could circumvent pandoc. Do you need to generate
the HTML separately after?
mapply is better than nothing but not much faster than a loop. Really
horribly slow for 10+ reports.
—
Reply to this email directly, view it on GitHub
https://github.com/R-ODAF/R-ODAF_Health_Canada/pull/109#issuecomment-1226351320,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACPMUO6T4K6V4Z2EIZB66L3V22FM5ANCNFSM55XKUSPQ
.
You are receiving this because you commented.Message ID:
@.***>

Alright, as of now I think this is good to merge, but Matt I want you to run it once on your machine when you get back to make sure I've completely solved the memory leak issue. Switching from kable to flextables made a big difference (more on this if you want to talk about it) but I left in the hack of reducing the number of CPUs for that report although I upped it to 50% of the params cpus. It's possible we can get away with taking it out entirely. You could also switch to non-parallel execution for that report if there were issues.

That's great, I will give it a shot next week for sure! Thanks


simple destructuring tutorial

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #XXXXX

Just noticed that theres an article in the /es6 folder.
Making this one duplicate - will discuss with others about unpacking the ES6 folder.


Update Humhub 1.11

Module doesn't work anymore - so i tried ti install it new - the following error occures:
FEHLER  Thu, 21 Apr 2022 07:45:00 +0200 application
Error: Class 'humhub\modules\directory\widgets\Menu' not found in /path..to..humhub/protected/modules/usermap/config.php:19
Stack trace:
#0 /path..to..humhub/protected/humhub/components/bootstrap/ModuleAutoLoader.php(77): include()
#1 /path..to..humhub/protected/humhub/components/bootstrap/ModuleAutoLoader.php(48): humhub\components\bootstrap\ModuleAutoLoader::findModules(Array)
#2 /path..to..humhub/protected/humhub/components/bootstrap/ModuleAutoLoader.php(34): humhub\components\bootstrap\ModuleAutoLoader::locateModules()
#3 /path..to..humhub/protected/vendor/yiisoft/yii2/base/Application.php(325): humhub\components\bootstrap\ModuleAutoLoader->bootstrap(Object(humhub\components\console\Application))
#4 /path..to..humhub/protected/vendor/yiisoft/yii2/base/Application.php(271): yii\base\Application->bootstrap()
#5 /path..to..humhub/protected/vendor/yiisoft/yii2/console/Application.php(124): yii\base\Application->init()
#6 /path..to..humhub/protected/humhub/components/console/Application.php(90): yii\console\Application->init()
#7 /path..to..humhub/protected/vendor/yiisoft/yii2/base/BaseObject.php(109): humhub\components\console\Application->init()
#8 /path..to..humhub/protected/vendor/yiisoft/yii2/base/Application.php(204): yii\base\BaseObject->__construct(Array)
#9 /path..to..humhub/protected/vendor/yiisoft/yii2/console/Application.php(89): yii\base\Application->__construct(Array)
#10 /path..to..humhub/protected/humhub/components/console/Application.php(52): yii\console\Application->__construct(Array)
#11 /path..to..humhub/protected/yii(28): humhub\components\console\Application->__construct(Array)
#12 {main}

humhub\modules\directory\
I guess the problem is solely here as the directory module had been deleted and is no more available in 1.11 afaik.
Could you please fix that problem and add a description to understand how to get the module working - Thanks!

I'm on it, the update should be available within the next few days.

Sorry that dont work, Same error no Installation

That is correct. HumHub has to confirm the modules before you can install them. Please wait until you can install version 1.2.4. I think HumHub will confirm the modules within this week.

Fix should be out now


Unable to start relay with init.d

I built a .deb file. After installing it, I tried to start the service, but I get the following error (inside the log file):
flag provided but not defined: -pidfile
Usage of influxdb-relay:
  -config string
        Configuration file to use

I tried to tinker around a bit, but didn't manage to get it to work properly.
This was on Ubuntu 14.04, so it is using init.d scripts.

This should now be resolved with #37, so you will need to rebuild the package with that fix. Let me know if you run into any further issues.


EHPA cron can't scale to specified replicas，because hpa within a globally-configurable tolerance, 0.1 by default

Describe the bug
The Kubernetes Horizontal Pod Autoscaler (HPA) has a default tolerance of 0.1. In EHPA, the cron-based scaling may not scale up or down to the desired number of replicas. For example, if the scheduled scaling is set to 24 replicas but it only scales up to 22, the calculation becomes 24/22 = 1.09. Since 0.09 falls within the tolerance range, it stops further scaling.

cron about code:
https://github.com/gocrane/crane/blob/2a3f5ede0af001f54fb127c736dad650839b90e9/pkg/controller/ehpa/hpa.go#L307

globally-configurable tolerance:
https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/

Reproduce steps
Expected behavior
Screenshots
Environment (please complete the following information):

K8S Version: [e.g. 1.19]
Crane Version: [e.g. 0.1.0]
Browser [e.g. chrome, safari]

emm.. indeed.
@mfanjie any idea?

In my opinion, if the tolerance is set and it is really needed, there is no requirement for the specific number of instances (22 or 24 is fine). So we don't need to change it, just doc it.
In other scenarios, a precise number of instances is really needed, we can set specficReplicas based on cron rules. At this time, because a precise number of instances is required,  the feature provided by cronHPA that can work together with cron rules and other indicators is no longer needed.
We can provide an option in cron to indicate whether we need to strictly follow cron rules.  @qmhu


Currently, there are no Results for "NullOrEmpty" - which is just a full part of "IsNullOrEmpty".
It would also be helpful to fuzzily match up names (better than no results): e.g. "isnowhi" should include "String.IsNullOrWhitespace" in the results (ranked below a possible "IsNowhereIncluded" method).

⚠ Idea migrated from UserVoice
Created By: Martin Ullrich
Created On: 2017/04/06 12:50:00 +0000
Votes at Migration: 40
Supporters at Migration: 40

The .NET API Browser is designed to act almost like IntelliSense in the browser. It's less of a full-text search engine and more of an API graph lookup. As such, at this time this will remain as a wont-fix.


Title and Body do not seem to be working

Hello! Thanks for the great action!
So I'm testing it before adding to my professional project and the PRs that are being created are not following the Title and Body that I set, here is the action implementation:
name: Auto Generate PRs marked as hotfix from Main to Version Branch
on:
  pull_request:
    branches: main

jobs:
  cherry_pick_to_version_branch:
    runs-on: ubuntu-latest
    name: Cherry pick into version branch
    if: ${{ contains(github.event.pull_request.labels.*.name, 'hotfix') }}
    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Cherry pick into version branch
        uses<EMAIL_ADDRESS>        with:
          branch: v0.1
          title: "v0.1 - {old_title}"
          body: "Cherry picking #{old_pull_request_id} onto this branch"
          labels: |
            cherry-pick
          reviewers: |
            mobile

Another question I have, is there a way to put a regex instead of a fixed branch in the branch parameter?
Would be nice cause then we don't need to update the action for each new version with the hardcoded version name.
Another thing I was wondering is if there is a way to add a check for a previously created PR, so it overwrites or deletes it, and then create the new one, to avoid creating multiple PRs.
Again, thanks for this action, very useful!

this was developed in this pr: https://github.com/carloscastrojumo/github-cherry-pick-action/pull/10

bump the version to @v1.0.10 instead of @v1.0.1


add deploy contract

also please create a new yarn run cli msig propose eosio.code-permission function

:tada: This PR is included in version 0.21.0-development.5 :tada:
The release is available on:

npm package (@development dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 0.22.0-development.1 :tada:
The release is available on:

npm package (@development dist-tag)
GitHub release

Your semantic-release bot :package::rocket:

:tada: This issue has been resolved in version 0.22.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


module 'markdown' has no attribute 'version'

I'm on Python 3.6.6. pip freeze shows that I have Markdown==3.0.0
When I run ipython, I get this:
import markdown
markdown.version

AttributeError: module 'markdown' has no attribute 'version'

markdown.__version__
'3.0'

It seems this is already fixed, but everyone who has just Markdown in their requirements will get version 3.0.0 and it might crash other libraries (in my case django-rest-framework). Would it be possible to release 3.0.1 soon-ish?

Duplicate of #710.  See also #711 and #714.


Chain lower-level JSON decode errors

Catch JSON decode errors from lower-level libraries and chain an exception type specific to this library.  Hopefully it will improve understandability of error messages.  This is intended to fix issue #35, according to Greg's preference stated in that issue.

Codecov Report

Merging #43 into master will increase coverage by 0.09%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master      #43      +/-   ##
==========================================
+ Coverage   94.81%   94.91%   +0.09%
==========================================
  Files           2        2
  Lines         656      668      +12
==========================================
+ Hits          622      634      +12
  Misses         34       34

Impacted Files
Coverage Δ

taxii2client/test/test_client.py
100% <100%> (ø)
:arrow_up:

taxii2client/__init__.py
90.44% <100%> (+0.19%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 590746c...5bb5225. Read the comment docs.


Implement tilde expansion for path env

Fixes #71 by expanding tilde (~) to the value of the home directory. Emulates the bash approach to tilde expansion.
This PR intentionally ignores the more complicated parts of how bash expands the tilde character, because I feel that path resolution using the PATH environment variable should not rely on any information about the current directory, or about the previous current directory. So, ~/dir works, ~+/dir does not.

Hey @harryfei I'd like to reduce how much I need to bother you for the which-rs repo. To that end I was wondering if you could give me owner access to the crates.io listing for the crate.
If that's not something you're comfortable doing I understand. Maybe you can help me get this PR code reviewed and published in that case?

Sure, I can. I have send a owner invite to "Xaeroxe" in crates.io.
Feel free to review any PRs, merge them and update which-rs new version.
I'm so busy at my life and work. Thank you for your contribution to this project.
@Xaeroxe


Create a sample for routing requests using async logic

So that I can create constraints that are based on some IO bound operation

@rynowak Let's chat about what we want to do on this one.

Instead we decided to create a sample that shows how to use a custom IRouter with async logic.

Old title: Create an async version of IRouteConstraint

623b733eaa16f7c6645040fd38a905511ccca370


Mail Servers - get information, document and setup.

Creating a page for mail servers under networking.

Completed setting up the mail client on thunderbird.


params.social email address with double slaches

Not sure, if this is theme issue, blogdown or HUGO issue, but while we have:  email =<EMAIL_ADDRESS>in config.toml, when clicking on email, email address retrieved is<EMAIL_ADDRESS>with to slashes...
Our site: https://corona-stat.lt
Github repo: https://github.com/justasmundeikis/corona-stat-lt-blog

Yeah, it was the theme. Might want to update. Thanks!


use nil as default return value for MapCount

this fixes #2271 and includes #2290
if someone could direct me where to put a test i'd be glad to try to add one

@neonstalwart -- thanks. You should add a unit test to here:
https://github.com/influxdb/influxdb/blob/master/cmd/influxd/server_integration_test.go#L888
feel free to reset the database and write a little bit of data, then query it. Let me know if you have any questions.

Once a unit test is added (I can add it if necessary), I test it by hand too, then we can merge this.

ok, i'll take a shot at adding the unit test - i think it looks like something i can manage.  if you get impatient, go ahead with it yourself - it won't hurt my feelings

Re-opened at the PR below, so I can debug the test failure.
https://github.com/influxdb/influxdb/pull/2295


Update cats-laws to 2.4.2

Updates org.typelevel:cats-laws from 2.1.1 to 2.4.2.
GitHub Release Notes - Changelog - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel", artifactId = "cats-laws" } ]

labels: test-library-update, semver-minor

Superseded by #344.


The docs use camelCase example, but actually parse PascalCase

The docs give this example as a camel case alias generator:
def to_camel(string: str) -> str:
    return ''.join(word.capitalize() for word in string.split('_'))

But iiuc, this is actually PascalCase. This is a bit confusing, so consider replacing with:
def _to_camel(string: Text) -> Text:
    split = string.split('_')
    return split[0]+''.join(word.capitalize() for word in split[1:])

Side note: I think camelCase aliasing is common enough to justify its own flag.

From wikipedia:

Some programming styles prefer camel case with the first letter capitalised, others not.

In other words camel case can mean either camelCase or CamelCase. I see that pascal case is more specific, but it's also much less well known.
I've added a clarification to the docs.

I think camelCase aliasing is common enough to justify its own flag.

I'm opposed to adding extra flags to config unless absolutely necessary, especially since:

config inheritance mean you'd only need to define your alias generator function once
your issue demonstrates that people might well mean different things by apparently simple terms like "camel case".

agree to disagree
imho the vast majority of programmers are interested in what I call camelCase (because they use pydantic for apis, which often enough means javascript with its naming convention, whereas PascalCase is rarely seen in apis these days).
also disliked the "exercice is left to the reader" approach
thanks for clarifying it anyway

If you want to add a brief section to the docs with coffee for the other case, that's fine with me. It was perhaps a little glib to say "go and will it yourself".

imho the vast majority of programmers are interested in what I call camelCase

I think that's a questionable claim, expecialy since python uses CamelCase.


react-render-tracker causes inifinite re-rendering w/  BrowserRouter from react-router-dom package and @tanstack/react-query

Since update 0.7.2 react-render-tracker started to cause infinite re-renders, see minimal repo with reproduction:
https://codesandbox.io/s/modest-saha-2iu6rd?file=/src/App.js
Once useQuery finished request BrowserRouter re-renders (not sure what causes the re-render itself) and useQuery sends request again. Without react-render-tracker it works just fine.

Thank you for the report and repro code!
Working on a fix

Fixed in 0.7.3