H7173 kettle no longer functioning with recent changes

Govee Device SKU
H7173
Govee2MQTT Version
2024.01.21-33e8cd7c
Describe the issue
After updating to the most recent version, I notice the stuff we added last week is no longer functioning. Neither the activate mode buttons, nor the mode select work anymore. And the new mode/scene select is empty. I deleted the device and re-started the addon already.
The power switch and target temperature slider still work as before - it seems to be limited to the modes
Startup Diagnostics
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
GOVEE_API_KEY=REDACTED
GOVEE_MQTT_HOST=core-mosquitto
GOVEE_TEMPERATURE_SCALE=F
GOVEE_EMAIL=REDACTED
GOVEE_PASSWORD=REDACTED
GOVEE_MQTT_PASSWORD=REDACTED
GOVEE_MQTT_USER=addons
GOVEE_MQTT_PORT=1883
++ cd /app
++ exec /app/govee serve
[2024-01-21T11:03:32 INFO  govee::commands::serve] Starting service. version 2024.01.21-33e8cd7c
[2024-01-21T11:03:32 INFO  govee::commands::serve] Querying platform API for device list
[2024-01-21T11:03:32 INFO  govee::commands::serve] Querying undocumented API for device + room list
[2024-01-21T11:03:34 INFO  govee::service::iot] Connected to IoT: CONNACK code 0: Connection Accepted.
[2024-01-21T11:03:34 INFO  govee::commands::serve] Starting LAN discovery
[2024-01-21T11:03:34 INFO  govee::service::iot] IoT (re)connected with status CONNACK code 0: Connection Accepted.
[2024-01-21T11:03:34 INFO  govee::commands::serve] Waiting 10 seconds for LAN API discovery
[2024-01-21T11:03:44 INFO  govee::commands::serve] Devices returned from Govee's APIs
[2024-01-21T11:03:44 INFO  govee::commands::serve] Bev (1E:6E:60:74:F4:5F:3E:1E H7173)
[2024-01-21T11:03:44 INFO  govee::commands::serve]   Platform API: devices.types.kettle. supports_rgb=false supports_brightness=false
[2024-01-21T11:03:44 INFO  govee::commands::serve]                 color_temp=None segment_rgb=None
[2024-01-21T11:03:44 INFO  govee::commands::serve]   Undoc: room=None supports_iot=true ble_only=false
[2024-01-21T11:03:44 INFO  govee::commands::serve]   Quirk { sku: "H7173", icon: "mdi:kettle", supports_rgb: false, supports_brightness: false, color_temp_range: None, avoid_platform_api: false, ble_only: false, lan_api_capable: false, device_type: Kettle, platform_temperature_sensor_units: Some(Farenheit), platform_humidity_sensor_units: None, iot_api_supported: false, show_as_preset_buttons: Some(["Tea", "Coffee", "DIY"]) }
[2024-01-21T11:03:44 INFO  govee::commands::serve]
[2024-01-21T11:03:44 INFO  govee::commands::serve] Backyard Spotlights (A4:2A:CC:38:32:30:55:39 H7066)
[2024-01-21T11:03:44 INFO  govee::commands::serve]   LAN API: ip=<IP_ADDRESS>
[2024-01-21T11:03:44 INFO  govee::commands::serve]   Platform API: devices.types.light. supports_rgb=true supports_brightness=true
[2024-01-21T11:03:44 INFO  govee::commands::serve]                 color_temp=Some((2000, 9000)) segment_rgb=Some(0..4)
[2024-01-21T11:03:44 INFO  govee::commands::serve]   Undoc: room=None supports_iot=true ble_only=false
[2024-01-21T11:03:44 INFO  govee::commands::serve]   Quirk { sku: "H7066", icon: "mdi:light-bulb", supports_rgb: true, supports_brightness: true, color_temp_range: Some((2000, 9000)), avoid_platform_api: false, ble_only: false, lan_api_capable: true, device_type: Light, platform_temperature_sensor_units: None, platform_humidity_sensor_units: None, iot_api_supported: true, show_as_preset_buttons: None }
[2024-01-21T11:03:44 INFO  govee::commands::serve]
[2024-01-21T11:03:44 INFO  govee::service::http] http server addr is <IP_ADDRESS>:8056
[2024-01-21T11:03:49 INFO  govee::service::hass] Wait 1.1s for hass to settle on 22 entity configs
[2024-01-21T11:03:50 INFO  govee::service::hass] MQTT connected with status=CONNACK code 0: Connection Accepted.
[2024-01-21T11:04:04 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) None
[2024-01-21T11:05:30 INFO  govee::service::hass] Request Platform API State for Bev (1E:6E:60:74:F4:5F:3E:1E H7173)
[2024-01-21T11:05:30 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-21T19:04:04.851833053Z })
Additional Logs
[2024-01-21T11:05:32 INFO  govee::hass_mqtt::humidifier] mqtt_humidifier_set_mode: 1E6E6074F45F3E1E: DIY
[2024-01-21T11:05:33 ERROR govee::service::hass] While dispatching Message { topic: "gv2mqtt/1E6E6074F45F3E1E/set-work-mode", payload: "DIY", qos: AtMostOnce, retain: false, mid: 0 }: request https://openapi.api.govee.com/router/api/v1/device/control status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/control response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/control failed with code 400 Bad Request Parameter value out of range. Full response: {"requestId":"uuid","msg":"Parameter value out of range","code":400,"capability":{"type":"devices.capabilities.work_mode","instance":"workMode","state":{"status":"failure","errorCode":400,"errorMsg":"Parameter value out of range"},"value":{"modeValue":0,"workMode":1}}}
[2024-01-21T11:05:37 INFO  govee::service::hass] Request Platform API State for Bev (1E:6E:60:74:F4:5F:3E:1E H7173)
[2024-01-21T11:05:37 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-21T19:05:32.460828401Z })
[2024-01-21T11:05:38 INFO  govee::service::state] Polling Bev (1E:6E:60:74:F4:5F:3E:1E H7173) to get latest state after control
[2024-01-21T11:05:38 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-21T19:05:32.460828401Z })
[2024-01-21T11:05:59 INFO  govee::service::hass] Request Platform API State for Bev (1E:6E:60:74:F4:5F:3E:1E H7173)
[2024-01-21T11:05:59 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: None, kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "AWS IoT API", updated: 2024-01-21T19:05:52.278392868Z })
[2024-01-21T11:06:15 INFO  govee::hass_mqtt::number] DIY for 1E6E6074F45F3E1E: 0
[2024-01-21T11:06:16 ERROR govee::service::hass] While dispatching Message { topic: "gv2mqtt/number/1E6E6074F45F3E1E/command/DIY/1", payload: "0", qos: AtMostOnce, retain: false, mid: 0 }: request https://openapi.api.govee.com/router/api/v1/device/control status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/control response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/control failed with code 400 Bad Request Parameter value out of range. Full response: {"requestId":"uuid","msg":"Parameter value out of range","code":400,"capability":{"type":"devices.capabilities.work_mode","instance":"workMode","state":{"status":"failure","errorCode":400,"errorMsg":"Parameter value out of range"},"value":{"modeValue":0,"workMode":1}}}
[2024-01-21T11:06:21 INFO  govee::service::state] Polling Bev (1E:6E:60:74:F4:5F:3E:1E H7173) to get latest state after control
[2024-01-21T11:06:21 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-21T19:06:00.085825492Z })
Home Assistant Logs
No response
Anything else?
No response

Please share the metadata for your device; I wonder if perhaps it has been updated by Govee.

go to the device entry in for your device
Find the entity id of the Status entity that is listed under your space heater and get its entity name. The default is probably something like sensor.device_name_status.

Then evaluate the following home assistant template by visiting Developer Tools | Template, replacing the entity name with what yours actually is:
{{
    {
      "meta": state_attr('sensor.device_name_status', 'platform_metadata'),
      "state": state_attr('sensor.device_name_status', 'platform_state'),
    }
}}

It should output a large-ish json blob, please share that here.

{
  "meta": {
    "capabilities": [
      {
        "alarmType": null,
        "eventState": null,
        "instance": "powerSwitch",
        "parameters": {
          "dataType": "ENUM",
          "options": [
            {
              "name": "on",
              "value": 1
            },
            {
              "name": "off",
              "value": 0
            }
          ]
        },
        "type": "devices.capabilities.on_off"
      },
      {
        "alarmType": null,
        "eventState": null,
        "instance": "sliderTemperature",
        "parameters": {
          "dataType": "STRUCT",
          "fields": [
            {
              "dataType": "INTEGER",
              "defaultValue": null,
              "fieldName": "temperature",
              "range": {
                "max": 100,
                "min": 40,
                "precision": 1
              },
              "required": true,
              "unit": null
            },
            {
              "dataType": "ENUM",
              "defaultValue": "Celsius",
              "fieldName": "unit",
              "options": [
                {
                  "name": "Celsius",
                  "value": "Celsius"
                },
                {
                  "name": "Fahrenheit",
                  "value": "Fahrenheit"
                }
              ],
              "required": true
            }
          ]
        },
        "type": "devices.capabilities.temperature_setting"
      },
      {
        "alarmType": null,
        "eventState": null,
        "instance": "sensorTemperature",
        "parameters": null,
        "type": "devices.capabilities.property"
      },
      {
        "alarmType": null,
        "eventState": null,
        "instance": "workMode",
        "parameters": {
          "dataType": "STRUCT",
          "fields": [
            {
              "dataType": "ENUM",
              "defaultValue": null,
              "fieldName": "workMode",
              "options": [
                {
                  "name": "DIY",
                  "value": 1
                },
                {
                  "name": "Boiling",
                  "value": 2
                },
                {
                  "name": "Tea",
                  "value": 3
                },
                {
                  "name": "Coffee",
                  "value": 4
                }
              ],
              "required": true
            },
            {
              "dataType": "ENUM",
              "defaultValue": null,
              "fieldName": "modeValue",
              "options": [
                {
                  "defaultValue": 0,
                  "name": "Boiling",
                  "value": null
                },
                {
                  "dataType": "ENUM",
                  "name": "Tea",
                  "options": [
                    {
                      "value": 1
                    },
                    {
                      "value": 2
                    },
                    {
                      "value": 3
                    },
                    {
                      "value": 4
                    }
                  ],
                  "value": null
                },
                {
                  "dataType": "ENUM",
                  "name": "Coffee",
                  "options": [
                    {
                      "value": 1
                    },
                    {
                      "value": 2
                    },
                    {
                      "value": 3
                    },
                    {
                      "value": 4
                    }
                  ],
                  "value": null
                },
                {
                  "dataType": "ENUM",
                  "name": "DIY",
                  "options": [
                    {
                      "value": 1
                    },
                    {
                      "value": 2
                    },
                    {
                      "value": 3
                    },
                    {
                      "value": 4
                    }
                  ],
                  "value": null
                }
              ],
              "required": false
            }
          ]
        },
        "type": "devices.capabilities.work_mode"
      }
    ],
    "device": "1E:6E:60:74:F4:5F:3E:1E",
    "deviceName": "Bev",
    "sku": "H7173",
    "type": "devices.types.kettle"
  },
  "state": {
    "capabilities": [
      {
        "instance": "online",
        "state": {
          "value": true
        },
        "type": "devices.capabilities.online"
      },
      {
        "instance": "powerSwitch",
        "state": {
          "value": 0
        },
        "type": "devices.capabilities.on_off"
      },
      {
        "instance": "sliderTemperature",
        "state": {
          "value": {
            "targetTemperature": 100,
            "unit": "Celsius"
          }
        },
        "type": "devices.capabilities.temperature_setting"
      },
      {
        "instance": "sensorTemperature",
        "state": {
          "value": 111
        },
        "type": "devices.capabilities.property"
      },
      {
        "instance": "workMode",
        "state": {
          "value": {
            "workMode": 2
          }
        },
        "type": "devices.capabilities.work_mode"
      }
    ],
    "device": "1E:6E:60:74:F4:5F:3E:1E",
    "sku": "H7173"
  }
}

And can you share what you see in the HA UI for the number entity that triggered the error?
I'm trying to understand where the 0 comes from in this part of your logs;
[2024-01-21T11:06:15 INFO govee::hass_mqtt::number] DIY for 1E6E6074F45F3E1E: 0

Based on the metadata, the lowest value there should be a 1.
That's the reason that the API errors with:
[2024-01-21T11:06:16 ERROR govee::service::hass] While dispatching Message { topic: "gv2mqtt/number/1E6E6074F45F3E1E/command/DIY/1", payload: "0", qos: AtMostOnce, retain: false, mid: 0 }: request https://openapi.api.govee.com/router/api/v1/device/control status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/control response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/control failed with code 400 Bad Request Parameter value out of range. Full response: {"requestId":"uuid","msg":"Parameter value out of range","code":400,"capability":{"type":"devices.capabilities.work_mode","instance":"workMode","state":{"status":"failure","errorCode":400,"errorMsg":"Parameter value out of range"},"value":{"modeValue":0,"workMode":1}}}

Capturing the MQTT info for the entity would also be useful, so we can see what range has been configured for it in HA.

It wasn't a number entity that triggered the error, it was both the mode select entity, and the button entities.

Here is the select:

[2024-01-21T17:44:40 INFO  govee::hass_mqtt::humidifier] mqtt_humidifier_set_mode: 1E6E6074F45F3E1E: DIY
[2024-01-21T17:44:42 ERROR govee::service::hass] While dispatching Message { topic: "gv2mqtt/1E6E6074F45F3E1E/set-work-mode", payload: "DIY", qos: AtMostOnce, retain: false, mid: 0 }: request https://openapi.api.govee.com/router/api/v1/device/control status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/control response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/control failed with code 400 Bad Request Parameter value out of range. Full response: {"requestId":"uuid","msg":"Parameter value out of range","code":400,"capability":{"type":"devices.capabilities.work_mode","instance":"workMode","state":{"status":"failure","errorCode":400,"errorMsg":"Parameter value out of range"},"value":{"modeValue":0,"workMode":1}}}
[2024-01-21T17:44:47 INFO  govee::service::state] Polling Bev (1E:6E:60:74:F4:5F:3E:1E H7173) to get latest state after control
[2024-01-21T17:44:47 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: None, kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "AWS IoT API", updated: 2024-01-22T01:44:34.661092608Z })

And here's the button:

[2024-01-21T17:46:55 INFO  govee::hass_mqtt::number] DIY for 1E6E6074F45F3E1E: 0
[2024-01-21T17:46:55 ERROR govee::service::hass] While dispatching Message { topic: "gv2mqtt/number/1E6E6074F45F3E1E/command/DIY/1", payload: "0", qos: AtMostOnce, retain: false, mid: 0 }: request https://openapi.api.govee.com/router/api/v1/device/control status 200: OK: parsing https://openapi.api.govee.com/router/api/v1/device/control response: Failed with status 400 Bad Request Bad Request: Request to https://openapi.api.govee.com/router/api/v1/device/control failed with code 400 Bad Request Parameter value out of range. Full response: {"requestId":"uuid","msg":"Parameter value out of range","code":400,"capability":{"type":"devices.capabilities.work_mode","instance":"workMode","state":{"status":"failure","errorCode":400,"errorMsg":"Parameter value out of range"},"value":{"modeValue":0,"workMode":1}}}
[2024-01-21T17:47:00 INFO  govee::service::state] Polling Bev (1E:6E:60:74:F4:5F:3E:1E H7173) to get latest state after control
[2024-01-21T17:47:00 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-22T01:44:48.195928247Z })

I noticed that the select seems to be treating this as a humidifier now, which I don't recall it doing before. And as mentioned, this was of course working previously, after we completed #30

Please try the latest version!

Thanks. That did fix both the mode button and the mode select entities.
Are there plans to reintroduce the additional modes that were removed? When this was first reverse engineered we were able to change to any of the settings within a specific mode (Tea index 2 for example). Now we can only select the higher level category. Not sure if that was an intentional change or not.

Another issue I am not sure if this is related to the recent changes or not. The past few days I have noticed the kettle seems to turn it self on randomly. My wife commented noticed as well. After digging around a little, it seems that the mode select is being changed from DIY to Boiling. Neither me nor my wife are initiating this change, and there are no automations set to do this. I do have an automation that sets it to DIY first thing in the morning, but that is it.
You can see it set here at 10:50 am (I included a few lines before the command)
[2024-01-29T10:13:25 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-29T17:58:25.939435193Z })
[2024-01-29T10:28:27 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-29T18:13:26.974614913Z })
[2024-01-29T10:43:27 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-29T18:28:27.611132630Z })
[2024-01-29T10:50:10 INFO  govee::hass_mqtt::humidifier] mqtt_humidifier_set_mode: 1E6E6074F45F3E1E: Boiling
[2024-01-29T10:50:12 INFO  govee::platform_api] control_device result: ControlDeviceResponse { request_id: "uuid", code: 200, message: "success", capability: ControlDeviceResponseCapability { kind: WorkMode, instance: "workMode", value: Object {"modeValue": Number(0), "workMode": Number(2)}, state: Object {"status": String("success")} } }
[2024-01-29T10:50:17 INFO  govee::service::state] Polling Bev (1E:6E:60:74:F4:5F:3E:1E H7173) to get latest state after control
[2024-01-29T10:50:17 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: false, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-29T18:43:28.647551362Z })
[2024-01-29T10:51:28 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: true, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-29T18:50:17.562773154Z })
[2024-01-29T10:52:29 INFO  govee::service::state] requesting update via Platform API Bev (1E:6E:60:74:F4:5F:3E:1E H7173) Some(DeviceState { on: true, light_on: None, online: Some(true), kelvin: 0, color: DeviceColor { r: 0, g: 0, b: 0 }, brightness: 0, scene: None, source: "PLATFORM API", updated: 2024-01-29T18:51:29.288002453Z })

And the MQTT message as well:

Boiling is the first item in the select box, index 0. Not sure if something is happening that is re-setting the value or what. From what I can tell this seems to happen about once a day


Update hooks-effect.md

React core doesn't really depend on a browser. As such, I believe the proposed wording is more accurate.

The suggested fix isn't right either, since the effect only runs after the rendering surface has updated (which happens significantly after building the component tree)


Pretrained models

Hi, hope you're fine
Do you plan to release pre-trained models?
Thanks

No such plans as of now.


test-branch/execute-job/fork-branch/6ba18595-79fb-47bb-8e56-6c0470fa8d89

PR for testing fafba3ec411ff5a89eecf5f08a3059dbe6891ba2

padding /canonical/self-hosted-runners/run-workflows fafba3ec411ff5a89eecf5f08a3059dbe6891ba2 padding


Created a Sample landing page

Using:

Boostrap 4 (https://github.com/BlackrockDigital/startbootstrap-new-age)
Testing with gulp

My comments are the in the SourcesUsed.md file.
https://github.com/Sbaah/barista/blob/Smaple-Landing-Page/SourcesUsed.md


[in_app_purchase] Support InApp purchase local verification

InApp purchase plugin should support local/offline purchase verification
Android Purchase Verification:
https://developer.android.com/google/play/billing/billing_library_overview#Verify-purchase-device
iOS Receipt Validation: https://developer.apple.com/library/archive/releasenotes/General/ValidateAppStoreReceipt/Chapters/ValidateLocally.html
This is not only a security enhancement but also a functional bug fix. I can explain why.
In Android, when we purchase an auto-renewing subscription, the plugin returns that subscription when we query the past purchases and when the subscription is expired or the user cancels it, the plugin will not return the purchase when we query it. So in Android, this works as expected. But in iOS there is a behaviour change when the subscription is expired. The plugin still returns the purchase when we query the past purchase, which is unexpected in the perspective of the plugin user, especially if he successfully implemented the Android part and according to the user, this is a bug in the plugin.
This may be a problem of the iOS ecosystem that the validity of the receipt may be checked locally in order to determine whether the subscription is active or not. But since this is a plugin, it should abstract away all of the complexities like this and provide idiomatic APIs to handle the situation like this.
So the plugin should provide some basic offline verification of the purchase for security and functional consistency.
Tested in in_app_purchase: 0.2.0+7

Please see Apple document for restoring transaction part, quote here:
You can sync and restore non-consumables and auto-renewable subscriptions across devices using StoreKit. When a user purchases an auto-renewable or non-renewing subscription, your app is responsible for making it available across all the user's devices, and for enabling users to restore past purchases
If your app is selling subscription on iOS, it doesn't matter whether or not a subscription is expired, as long as it's a valid purchase, Apple will restore this transaction for you.
Local receipt validation only provides:
1. If a receipt is signed by Apple.
2. If a receipt belongs to this device.
3. If a receipt belongs to this app.
Comparing system time with receipt locally to determine whether or not a subscription is expired will never work, since user can adjust iOS system time manually.

Hi @LHLL
Thanks for your input. I understand that it is not safe to validate the receipt locally. But what about providing a minimal support for parsing the receipts and providing the human readable properties to the developer? Some fields like (https://developer.apple.com/documentation/appstorereceipts/responsebody/latest_receipt_info). And let the developers take a decision on whether they wanted to trust the receipt or not (say, if there is no connectivity, use offline verification, otherwise online verification, depending on their use case. In my case, for auto renewable subscription, if the user adjust the system clock while offline, its okay since they are viewing irrelevant content inside app). This helps to create apps with full offline support.
Please correct me if I am wrong.

Hi @LHLL
Thanks for your input. I understand that it is not safe to validate the receipt locally. But what about providing a minimal support for parsing the receipts and providing the human readable properties to the developer? Some fields like (https://developer.apple.com/documentation/appstorereceipts/responsebody/latest_receipt_info). And let the developers take a decision on whether they wanted to trust the receipt or not (say, if there is no connectivity, use offline verification, otherwise online verification, depending on their use case. In my case, for auto renewable subscription, if the user adjust the system clock while offline, its okay since they are viewing irrelevant content inside app). This helps to create apps with full offline support.
Please correct me if I am wrong.

Agree with this, let us take on the risk! Something to parse the receipt would be great, I can't seem to work out how to parse than ANS1 thing.

Hi @LHLL
Thanks for your input. I understand that it is not safe to validate the receipt locally. But what about providing a minimal support for parsing the receipts and providing the human readable properties to the developer? Some fields like (https://developer.apple.com/documentation/appstorereceipts/responsebody/latest_receipt_info). And let the developers take a decision on whether they wanted to trust the receipt or not (say, if there is no connectivity, use offline verification, otherwise online verification, depending on their use case. In my case, for auto renewable subscription, if the user adjust the system clock while offline, its okay since they are viewing irrelevant content inside app). This helps to create apps with full offline support.
Please correct me if I am wrong.

Agree with this, let us take on the risk! Something to parse the receipt would be great, I can't seem to work out how to parse than ANS1 thing.

I'm not sure if I agree that local verification should be supported.
First of all:

say, if there is no connectivity, use offline verification, otherwise online verification

To have an up to date receipt you need a network connection. So the offline verification will be as good as the last verification when the device was online. At that moment online verification was possible. This sounds like you would want a way to store the result of the online verification. I would recommend using flutter_secure_storage for that.
When verifying the receipt on the device Apple recommends (among other things) to

Using a static library of OpenSSL (not a dynamic library) or a custom implementation to verify the signature.
Ship the certificate with the app (which means updating the library regularly for the certificate to prevent expiry) or download it from the app, which means we need a caching mechanism to make it offline possible.
You should use hardcoded values for bundle version and identifier and not put it in Info.plist. I'm not fully sure if hardcoding it in dart and sending it on a methodchannel would be recommended (I don't think so).

I don't see enough benefits and to many risks implementing local verification. I think it might be better to create an example cloud functions app that does this online.
I can recommend this video on local and server receipt verification: https://developer.apple.com/videos/play/wwdc2017/305

My use case is as simple as this:
queryProductDetails when used with subscriptions returns only active (not expired) subscriptions on Android, but returns all (even expired) subscriptions on iOS. I want to perform server verification, but I would like to be able to filter out the expired purchases first, locally, and only send the active subscription for the online verification. I don't see a way to do this currently.

Seeing the use cases this sounds like a duplicate of #43720

@renefloor thanks for this info. have you been doing such validation / come to any new conclusions ?

@espbee my conclusion was that it's not really recommended to do validation on the device and it's way easier to setup a simple backend, for example using firebase functions. In the codelab we wrote we also covered this: https://codelabs.developers.google.com/codelabs/flutter-in-app-purchases
I didn't do any further research on the local verification.


[Drag Drop] Mouse cursor disappears on left click when minDragTime/minDragDistance are set above 0

Describe the bug
Setting DragMinDistance and DragMinTime above 0 in order to allow left clicking items without instantly dragging them, causes the mouse cursor to disappear(the graphic)
To Reproduce
In DragDrop script function ResetToDefaults set those properties to any number above 0, preferably big enough to give yourself time to left click before the drag/drop happens.
Expected behavior
The cursor should never disappear when left mouse button is released.

@tarnos12 I was unable to reproduce this problem.
Used demo game from here. Set DragMinDistance and DragMinTime to some larger values in room4's room_AfterFadeIn. Clicking or failing to drag an inventory item does not cause cursor graphic to dissapear.
Upon double checking the code, the module does anything to mouse cursor or cursor's visible state at all. Therefore if it changes, that must be a script in your game.

@ivan-mogilko You are correct, but there is still a bug.
Here is my code:
function UpdateCursorGraphic()
{
	// Hide/Show cursor based on if we drag an item or not.
	if(DragDropCommon._InvItem == null)
	{
		Mouse.Visible = true;
	}
	else
	{
		// We are dragging an item, so hide the cursor.
		Mouse.Visible = false;
	}
}

function repeatedly_execute()
{
	UpdateCursorGraphic();
}

The problem is that even if I just left click(without dragging an item) the DragDropCommon._InvItem is set to an item and never cleared(because drag/drop didn't happen)

The _InvItem and similar attributes are set at the moment of detecting an object under cursor, even if the dragging did not start yet, because it needs to know what is tried to be dragged.
The DragDrop module passes following events:

EvtWantObject - where it looks for an object under cursor
EvtObjectHooked - when it registered an object
EvtDragStarted - when it actually began dragging.

The _InvItem is set between EvtWantObject and EvtObjectHooked.
The DragMinDistance and DragMinTime are tested between EvtObjectHooked and EvtDragStarted.
There are also following DragDrop flags that tell about current state:

HasObjectHooked - if an object was found
IsDragging - if an object is actually being dragged.

So the correct test for a dragged action should test current state and the object:
if(DragDrop.IsDragging && DragDropCommon._InvItem != null)
or only IsDragging, if you're only dragging inventory items in your game.
The fact that _InvItem is never reset is actually a mistake; at the moment this should be worked around by testing IsDragging.

Thanks, I will just use IsDragging for the time being.

@ivan-mogilko Btw, I was going to recommend creating a demo game for play testing, you might want to add the demo from above to the git page somewhere.

you might want to add the demo from above to the git page somewhere.

The Demo Game is posted on the forum page: https://www.adventuregamestudio.co.uk/forums/index.php?topic=53332.0

Okay, I see now, this module is missing a "cancel" event, that would help to find out if object was cancelled before dragging.

Actually ignore me, there already is "demo" folder, that's what I meant.

Introduced EvtCancelled and fixed DragDropCommon module: 6634c722cffdf914badf448710e02bfe23d8e9ab


Point distance

Description
This PR adds a few operators to make doing calculations with points and sizes easier and more natural.
The biggest addition is the subtration of two points which results in a size. This makes it a lot easier to calculate distances/vectors between two points. This is similar to how subtracting DateTime from DateTime results in a TimeSpan
It also adds operators to divide a size by a scalar. There was already an operator for multiplying by a scalar, but the division operator was missing.
Example use case
The use case where I ran into these operators missing is when I tried to calculate a point halfway between two points:
c = a + (b - a) / 2
Added operators
Point - Point -> Size
PointF - PointF -> SizeF
Size / double -> Size
SizeF / float -> SizeF

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.:x: rick-palmsens sign nowYou have signed the CLA already but the status is still pending? Let us recheck it.

@rick-palmsens Thank you for this contribution!


Configure<EMAIL_ADDRESS>

Configure email as an alias for<EMAIL_ADDRESS>

Configured sending email from hello@entrejourn from entrejourn@gmail. But receiving using POP is not available since hello@entrejourn is configured on a free Zoho account.

Configuration completed using forwardemail.net. Removed hosting from Zoho.


Unable to find assigned role for gsuite service account

The installer shows that it assigned roles/iam.serviceAccountKeyAdmin to the gsuite service account.  But I don't find this in the cloud console UI.

The installer is assigning the iam.serviceAccountKeyAdmin role on the gsuite service account to the gcp service account.The role is used to create and manage (and rotate) service account keys. It's not assigning anything to the gsuite account.

Suggestion: Make this a FAQ item.

I found where @ahoying is saying about where to see this now.  Have to click on the Permissions button in the UI.


send pic cannot recognize Chinese char

@mukaiu
Issue:
I send image using the following code
room.say(new MediaMessage('pic/2017-05-02_19:06:34_#1_<李佳芮:机器人测试群>_4683734942127496021.jpg'))

It got the following error:
(node:59483) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: ENOENT: no such file or directory, open 'pic/2017-05-02_19:06:34_#1_<李佳芮:机器人测试群>_4683734942127496021.jpg'
(node:59483) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

While when I change the image name to test1.jpg as following, all works well.
room.say(new MediaMessage('pic/test1.jpg'))

More Info:
Scene:
When anyone send a pic in a room, I download the pic and then send the pic.
Download pic function:
I use the following code to generat  file  2017-05-02_19:06:34_#1_<李佳芮:机器人测试群>_4683734942127496021.jpg in media-file-bot.ts
function saveMediaFile(message: Message) {
  const filename = message.filename()
  console.log('IMAGE local filename: ' + filename)

  const fileStream = createWriteStream(filename)

  console.log('start to readyStream()')
  message.readyStream()
          .then(stream => {
            stream.pipe(fileStream)
                  .on('close', () => {
                    console.log('finish readyStream()')
                  })
          })
          .catch(e => console.log('stream error:' + e))
}

It is because : instead of Chinese char....
linux change the : to \ so it cannot get the right filename.
When I change the filename from 2017-05-02_19:06:34_#1_<李佳芮:机器人测试群>_4683734942127496021.jpg to 2017-05-02_19_06_34_#1_<李佳芮_机器人测试群>_4683734942127496021.jpg , it fix...
So I suggest to change add the following function in function filename:
filename = filename.replace(/:/g, '_')

@zixia  What do you think about it?

I think your suggestion is not the right direction to fix this.
We should always find the way to solve the problem, instead of sidestepping it.

However, I will git rid of the verbose 2017-05-02_19:06:34_#1_<李佳芮:机器人测试群>_ part in the filename, because it's just a test string when I write this piece of code.
We should only keep the original file name of the attachment file, if no original name, then we use the ID of the file.

After this commit, I believe we still can not send a filename with : character. So I'll leave this issue open.

yes, and filename should not contain Chinese char here, it still has some strange error...
When the code read the file name, it will catch an error, but when I using copy the file name and paste it in the code, it works well...
room.say(new MediaMessage('pic/2017-05-02_20_02_18_#4_<李佳芮_机器人测试群>_4343051853187432187.jpg'))
    room.say(new MediaMessage('pic/2017-05-02_20_02_17_#4_<李佳芮_机器人测试群>_4343051853187432187.jpg'))

Let me dig in it and find the final result... I'm sorry....

Finally.... I found the reason....
the following code using the same m, and I console.log(m.filename()) in each function, but their filename() are different!
if (m.type() === MsgType.IMAGE) {
        await saveMediaFile(m)
        await imgBroadcast(m)
      }

saveMediaFile_2017-05-02_20_18_18_#1_<李佳芮_机器人测试群>_2643239037259386854.jpg
imgBroadcat_2017-05-02_20_18_18_#1_<李佳芮_机器人测试群>_2643239037259386854.jpg

Because your filename function contains time, the two function execute time has 1 interval.... so one filename is 2017-05-02_20_18_18 and the other is 2017-05-02_20_18_18
So if your filename remove time info, it should fix.

:+1:
Then you can try the latest master code, which is not using the time as the filename anymore.

Please create an new issue if you still have problems.


DO NOT SQUASH: Implement initial support for CQL-related operations

I've been working for the last two cohorting sprints on implementing an IBM FHIR native backend for the open source CQL engine and building out operations that support the most directly useful parts of the Clinical Practice Guidelines and Quality Measures IGs. #2480
This is an initial step. It is not a complete implementation of either IG and the quality measure and reporting space is being actively developed and changed right now and will need further development to keep up with standards. For example, both the May2021 ballot of the CQF measures IG and Davinci change some of the operations that were implemented here.
My intention is to get this foundational work integrated with the IBM FHIR server so that the Alvearie/quality-measure-and-cohort-engine project can start building on top of it. This will also provide a simple onramp for IBM FHIR server users that are interested in cohorting or clinical quality measure evaluation and want to get started quickly with the fewest number of dependencies. Clinical quality reporting operations are implemented in such a way that clients can either use the CQL engine remotely as expected in the R1 release of the cohort engine or evaluation could be done directly in IBM FHIR via the Library/$evaluate and Measure/$evaluate-measure operations, so as to avoid additional data hops necessary for evaluation in the client/server mode of operation.
New projects added in this PR:
fhir-cql -- Foundation classes for implementing the CQL Engine backend in IBM FHIR
fhir-cql-rest -- REST Client-based implementation of CQL Engine backend
fhir-cql-server -- Internal API-based implementation of CQL Engine backend
fhir-quality-measure -- FHIR Quality Measure evaluation logic
operation/fhir-operation-cpg -- Optional module that implements CQL operations
operation/fhir-operation-cqf -- Optional module that implements CQF operations
Operations provided by this work include:
#CPG

/$cql
/Library/$evaluate
/Library/[id]/$evaluate

#CQF

/Library/$data-requirements
/Measure/[id]/$data-requirements
/Measure/$evaluate-measure
/Measure/[id]/$evaluate-measure
/Measure/$collect-data
/Measure/[id]/$collect-data
/Measure/$care-gaps
/Measure/$submit-data
/Measure/[id]/$submit-data

The CQF IG describes dataflows that also involve the ActivityDefinition/$apply and PlanDefinition/$apply operations. Some prior work was done by @JohnTimm in the fhir-operation-apply module, but without support for CQL.  This work has not been integrated with that work yet.

I brought your PR up to date and updated the automation and readme.


random play

Greetings!
Using the program I encountered a problem: on the command line I write phiola play -random C:\Audio*.* . There are 2 audio files in the Audio folder and the -random option to play a random track.
This is what happens, but for some reason the tracks are played cyclically. What option should be specified in the initial command to stop endless playing of tracks? I didn't find any option in the help.

Hi!  This is how -random switch is designed -- it generates a (pseudo) random number and plays the track, and it never stops, because phiola can not know where it should stop.  Perhaps you need a shuffle option but it's not implemented in phiola/Windows.


Add StreamDatum and StreamResource support

This is a reasonably large chunk of work to add support for what is produced in https://github.com/bluesky/event-model/issues/219
While we're at it, we can also tidy up the matching of data keys in collect() to descriptor ids:
https://github.com/bluesky/bluesky/blob/master/bluesky/bundlers.py#L710-L727
A first draft of the proposal is to allow StreamResource to be emitted from collect_asset_docs(), to split off describe_collect() and collect() from Flyable, and put them in a new Streamable class as describe_streams() and collect_stream(stream_name). The new StreamDatum could be emitted from collect_stream(stream_name) as well as the existing Event, and we should add EventPage while we're at it. Bulk Events will be deleted as part of this. Backwards compatibility will be maintained for the collect() and describe_collect() names with deprecation warnings emitted.
Here's the detailed steps of work:

Add PartialStreamResource to bluesky/protocols.py in the same way as we have PartialResource there
Add it to the definition of Asset so collect_asset_docs() can emit it
Make a new Collectable protocol
Move describe_collect() to Collectable.describe_streams() and add deprecation warning for the old name
Assume describe_streams() return full descriptors using event_model.compose_descriptor, but still add run_start to it
Make definition StreamEvent be one of [("event", Event), ("event_page", EventPage), ("stream_datum", StreamDatum)]
Make new collect_stream(stream_name) that returns an iterator of StreamEvent, assuming they are produced from event_model

Decided on this, will modify the description above later

The Pageable protocol is something I strongly support that would really clean up data collection from fly-scanning. Right now I have to step very carefully to avoid problems from generating these gigantic event lists that would be much more compact as event pages.
Does there need to be some equivalent of describe_collect for the Pageable protocol?

I'd be a bit careful about just calling describe. For one, I don't think it gets automatically called if you aren't reading, and you are just flying.
Second, describe recursively describes all of the components of a device (and is indeed most often left unimplemented when subclassing device, at least in my code). I would say that this is because reading during a step-scan is simple enough that describe can nearly always be trusted to "do the right thing".
I am not sure that "the right thing" for describing read signals is always the right thing for describing flown signals. For example, it may be the case that not all keys that get "read" get "flown", as kickoff/collect are really always re-implemented on a device-by-device basis.
I actually have a concrete example of when this is be the case -- I constructed a device that can be both simultaneously read and flown. This gives you the immediate simplicity of a step-scan, with the underlying data fully saved if more complex analysis is required. In this case, many of the "read" keys don't get flown, so describe_collect is a bit more terse than describe. If only describe occurred, it may be confusing when most of the described keys don't in fact show up in the flyer stream.

FYI @dominicoram

I'd be a bit careful about just calling describe. For one, I don't think it gets automatically called if you aren't reading, and you are just flying.

It doesn't at the moment, but the proposal was to change that...

Second, describe recursively describes all of the components of a device (and is indeed most often left unimplemented when subclassing device, at least in my code). I would say that this is because reading during a step-scan is simple enough that describe can nearly always be trusted to "do the right thing".
I am not sure that "the right thing" for describing read signals is always the right thing for describing flown signals. For example, it may be the case that not all keys that get "read" get "flown", as kickoff/collect are really always re-implemented on a device-by-device basis.
I actually have a concrete example of when this is be the case -- I constructed a device that can be both simultaneously read and flown. This gives you the immediate simplicity of a step-scan, with the underlying data fully saved if more complex analysis is required. In this case, many of the "read" keys don't get flown, so describe_collect is a bit more terse than describe. If only describe occurred, it may be confusing when most of the described keys don't in fact show up in the flyer stream.

This is a very interesting use case, thanks for sharing.
I have a use case in mind too, but it's a bit different to yours. I have a detector that writes HDF files. It can operate in software triggered mode, or in hardware triggered mode. The event-model changes would make the StreamDatum and StreamResource documents come out of collect_asset_docs, but the trigger code would take a single frame in software triggered mode, while the kickoff code would start a number of acquisitions listening to external triggers. However, in this case, the data is identical in both step and flyscan mode, the only difference is how it is triggered.
Given your usecase, maybe I should put back the coupling between read and describe, and add a new describe_pages that is coupled to collect_pages? Would that be better?
I'm also curious, does your usecase need exactly the same setup for both step and flyscan mode? I was considering this for my HDF case above: ideally I'd set the trigger mode in stage, but the device doesn't know if it's being setup for a step of a fly scan so to make a dual purpose device I would have to defer setting the trigger mode to the first trigger or kickoff...

The device I have created is what I would call a "soft scalar" that reads an Epics PV that is continuously updated. If you trigger/read, it averages the signal over some integration time. If you fly, it collects the raw signal at the native update rate.
It can be either flown or read (and can be both flown and read simultaneously). The setup is different in these two cases, which is why stage/trigger and kickoff methods are required (and different). If you are either reading OR flying, it sounds like you could set the trigger mode to one thing in stage and another thing in kickoff and only one of them will be called, because flyers don't get staged, and readers don't get kicked off.
The bottom line is that the flyer part and the reader part have different data keys, in general.
Unfortunately, I don't see a way around having a describe_pages, but this is just following the presently established pattern, so I think it makes logical sense and is easy to follow.

It can be either flown or read (and can be both flown and read simultaneously). The setup is different in these two cases, which is why stage/trigger and kickoff methods are required (and different). If you are either reading OR flying, it sounds like you could set the trigger mode to one thing in stage and another thing in kickoff and only one of them will be called, because flyers don't get staged, and readers don't get kicked off.

That's interesting, I have always been staging my flyers in my experiments so far, is this not normal? I have been using stage for "open HDF file". Either way, I can put trigger mode in trigger/kickoff which should work for me.

The bottom line is that the flyer part and the reader part have different data keys, in general.
Unfortunately, I don't see a way around having a describe_pages, but this is just following the presently established pattern, so I think it makes logical sense and is easy to follow.

Makes sense, I will make the change to the description above

Need https://github.com/bluesky/bluesky/pull/1542 for the Pageable case so we can predeclare stream names

In https://github.com/bluesky/meetings/blob/main/ophyd2/2023-06-13.md we decided to:

Back out of Pageable in favour of extending Collectable with an optional collect_pages function
Support describe_collect with or without the stream name declaration
If stream name is not pre-declared or produced in describe_collect then allow it to be specified in the collect message, (like in the create message)
When pre-declaring, add collect argument to say that decribe_collect should be called instead of describe

I will update the description to match this

@tacaswell any comments on the updated description before we implement this?

I think we are close with this, but there is one outstanding question, how to manage seq_nums for StreamDatum. For Events it is obvious, Bluesky is in charge of making seq_num for each Event (via event-model now), with checkpoint and rewind saving and restoring these counters:

The same thing could happen with StreamDatum, generating seq_nums from a counter per StreamResource and the length of indices. These counters would also need saving and restoring:

However this scheme has a problem with flyables. Consider a motion scanner that sends out synchronous triggers to detectors, which write their files with varying level of lag but the same rate. Consider sending a checkpoint after every collect so that when a rewind happens it will move to the last known good positions from the scan:

If Bluesky manages the counters, then the last checkpointed counters are 12 and 10 at pause. The detectors have written a few more frames to file, but not published a StreamDatum for them. We need them to be both restored to the same number, and start the motion scanner from the same number. There are a couple of ways I can think of that we could do this:

Have Bluesky manage seq_nums for all StreamDatums, but only restore the smallest seq_num for every stream. It would also need to communicate this number to the other Flyables, maybe by returning these seq_nums for each stream name as a return from checkpoint, and updating the motion scanner with the relevant number at each checkpoint in the scan. This would mean that any frames written between checkpoint and pause would never have a StreamDatum emitted as there is no path for this in pause and at resume they would have the wrong seq_num, but maybe we don't care about these unpublished bits of data.
Give Ophyd the option to generate seq_nums for StreamDatums and use this option for flyables. The motion scanner would attach this information to each StreamDatum and know where to rewind to. This means that StreamDatums can be emitted for frames between checkpoint and pause when the scan is resumed, but the burden of tracking seq_nums is moved to every pausable flyable.

@danielballan @tacaswell @evalott100 @RAYemelyanova @prjemian we will discuss this on Tuesday, but any advance thoughts on this are welcom


[OutOfMemoryError] Multiple WireMockRule usage with many tests leads to OOM error

Hello,
faced problem with OutOfMemoryError running multiple wiremockServerRules
Found in
wiremock-jre8:2.26.3 with jetty 9.4.20.v20190813
still occures in
wiremock-jre8:2.27.1 with jetty 9.4.30.v20200611
java.lang.OutOfMemoryError: unable to create native thread: possibly out of memory or process/resource limits reached
	at java.base/java.lang.Thread.start(Thread.java:804)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.startThread(QueuedThreadPool.java:660)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.ensureThreads(QueuedThreadPool.java:642)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.doStart(QueuedThreadPool.java:182)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
	at org.eclipse.jetty.server.Server.start(Server.java:408)
	at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:117)
	at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
	at org.eclipse.jetty.server.Server.doStart(Server.java:372)
	at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
	at com.github.tomakehurst.wiremock.jetty9.JettyHttpServer.start(JettyHttpServer.java:190)
	at com.github.tomakehurst.wiremock.WireMockServer.start(WireMockServer.java:147)
	at com.github.tomakehurst.wiremock.junit.WireMockRule$1.evaluate(WireMockRule.java:69)

How i met this problem:

using wiremock v2.26.3 with my springboot app
upgraded spring from 2.1.8 to 2.2.0 - new jersey came 9.4.20.v20190813
switched to wiremock-jre8 v2.26.3 which is based on 9.4.20.v20190813
OutOfMemoryError

Bug is visible in this simple app https://github.com/p3ch/testing-with-wiremock
The problem is that on default wiremock conifguration with multiple wiremock rules jetty cannot cleanup hes threads :
"qtp1838704207-1871" #1871 prio=5 os_prio=31 cpu=0.17ms elapsed=13.75s tid=0x00007f955994f800 nid=0x15c703 waiting on condition  [0x000070007f7db000]
   java.lang.Thread.State: TIMED_WAITING (parking)

8K threads are created and test fails
Failing configuration is simple, like this
https://github.com/p3ch/testing-with-wiremock/blob/master/src/test/groovy/simpleapp/crushing/CrushingBaseITSpec.groovy
Since main problem seems to be in not optimal method/class rule implementation (which starts and stops jetty server on every test method / class), quick fix is available too.
Solution is simple - changing default jettyStopTimeout to value > 0 (10ms, 1000ms, or default 30k - all seems to works fine) https://github.com/p3ch/testing-with-wiremock/blob/master/src/test/groovy/simpleapp/working/WorkingBaseITSpec.groovy#L49
Please consider switching default jettyStopTimeout from 0 to other value in
https://github.com/tomakehurst/wiremock/blob/6ded3d6312cd19d9466343785fd58dc717c68e6a/src/main/java/com/github/tomakehurst/wiremock/jetty9/JettyHttpServer.java#L166

Thanks for reporting this. I actually tripped over it myself a few months ago and I thought I'd already changed the default timeout, but clearly  I let that one slip.
I'll bump it up to 1s in the next release.


Is it functional ?

I tried to install: npm i --save js-match-height
Imported in a .js file: import { MatchHeight } from 'js-match-height'
Tried to log MatchHeight content and it seems to be an empty js object : {}

@SteakdeNiche Hi, sorry I have fixed this in the newest version, should work great now! Please let me know if you have any more problems, or feature requests

@PeteyRev thx for your quick answer, gonna take a look soon and let you know.


Android - UI doesn't render when activity is recreated

Describe the bug
UI no longer renders when the activity is recreated by the android system occurs. This is traced to the value store implementation added in https://github.com/AvaloniaUI/Avalonia/commit/6e15a92ed97bcdf3755172582e936356a9948912
To Reproduce

After launching an app, trigger an activity recreation by switching to split view from the Recents view.  The UI no longer shows when the activity shows.

Expected behavior
The previous UI state is restore after the activity is recreated.
Screenshots
Before
https://user-images.githubusercontent.com/5307160/203761677-a139a5d8-e781-407e-9933-eceb8f84ce90.mp4
After
https://user-images.githubusercontent.com/5307160/203787538-86c22a9b-72ef-4981-b1cf-73d638cdab76.mp4
Desktop (please complete the following information):

OS: Android Emulator 13
Version Commit 6e15a92ed97bcdf3755172582e936356a9948912

Additional context
Add any other context about the problem here.

Confirmed fixed on master


Certifications Endpoints

Description
Create Endpoints to manage certifications in the certifications table

[ ] GET /certifications/{groomerID} - Returns all certifications for a groomer
[ ] GET /certifications/{certificationID} - Returns a single certification matching the certification
[ ] POST /certifications/ - Adds a certification
[ ] PUT /certifications/ - Updates a certification
[ ] DELETE / certifications/{certificationID} - Deletes a certification

Type of Change

[ ] This is a bugfix.
[x] This is a new feature.
[ ] This is part of a feature.

Organization

[ ] Have you linked this pull request to a Trello card?
[ ] Have you named the branch in the format of feature/describe_feature_or_change OR bug/describe_bug_this_is_fixing

Review

[ ] Is this a work in progress?
[ ]  Is this ready to be reviewed?
[ ]  Have you added two reviewers to this pull request?

 Create Certifications Endpoints

 Create Certifications Endpoints


Full Blob support required in upload configuration

Describe the bug
Upload Configuration fails with java.sql.SQLException: Data too long for column 'CONFIG' at row 1 for MariaDB
Reporter
Fabian van Druenen
Category

Frank Framework

To Reproduce
Steps to reproduce the behavior:

Setup Ibis with MariaDB
Upload configuration to DB
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Environment:

Application server: Tomcat 9.0.14
DBMS: MariaDB
IAF Version: 7.6

Additional context
newhorizons.log

Problem was in database creation script. Column type of IBISCONFIG.CONFIG was BLOB instead of LONGBLOB.
This has been solved in PR#1432. When that code has become active, newly created database will not suffer from this problem.
To fix this problem on an existing MariaDB or MySQL database that should be preserved, execute:
alter table IBISCONFIG modify CONFIG LONGBLOB


HADOOP-16082. FsShell ls: Add option -i to print inode id

I put the helper function at CommandUtils#getValueFromFileStatusString since I'm not sure where to put it, though it seems nobody uses CommandUtils anymore. Please advice.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
82
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

0
mvndep
76
Maven dependency ordering for branch

+1
mvninstall
1222
trunk passed

+1
compile
1080
trunk passed

+1
checkstyle
160
trunk passed

+1
mvnsite
228
trunk passed

+1
shadedclient
1195
branch has no errors when building and testing our client artifacts.

+1
javadoc
167
trunk passed

0
spotbugs
182
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
453
trunk passed

_ Patch Compile Tests _

0
mvndep
23
Maven dependency ordering for patch

+1
mvninstall
155
the patch passed

+1
compile
1005
the patch passed

+1
javac
1005
the patch passed

+1
checkstyle
165
the patch passed

+1
mvnsite
219
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedclient
767
patch has no errors when building and testing our client artifacts.

+1
javadoc
179
the patch passed

+1
findbugs
501
the patch passed

_ Other Tests _

-1
unit
579
hadoop-common in the patch failed.

+1
unit
133
hadoop-hdfs-client in the patch passed.

-1
unit
6423
hadoop-hdfs in the patch failed.

-1
asflicense
59
The patch generated 1 ASF License warnings.

14766

Reason
Tests

Failed junit tests
hadoop.cli.TestCLI

hadoop.hdfs.server.namenode.ha.TestGetGroupsWithHA

hadoop.hdfs.TestDFSShell

hadoop.hdfs.server.namenode.ha.TestStandbyCheckpoints

hadoop.hdfs.server.namenode.ha.TestHarFileSystemWithHA

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/1/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/1271

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux 70952ca00ad8 4.15.0-54-generic #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 9b8359b

Default Java
1.8.0_222

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/1/artifact/out/patch-unit-hadoop-common-project_hadoop-common.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/1/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/1/testReport/

asflicense
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/1/artifact/out/patch-asflicense-problems.txt

Max. process+thread count
3075 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/1/console

versions
git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
51
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

0
mvndep
31
Maven dependency ordering for branch

+1
mvninstall
1093
trunk passed

+1
compile
1145
trunk passed

+1
checkstyle
140
trunk passed

+1
mvnsite
195
trunk passed

+1
shadedclient
1002
branch has no errors when building and testing our client artifacts.

+1
javadoc
147
trunk passed

0
spotbugs
166
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
405
trunk passed

_ Patch Compile Tests _

0
mvndep
41
Maven dependency ordering for patch

+1
mvninstall
167
the patch passed

+1
compile
1040
the patch passed

+1
javac
1040
the patch passed

+1
checkstyle
134
the patch passed

+1
mvnsite
183
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedclient
638
patch has no errors when building and testing our client artifacts.

+1
javadoc
146
the patch passed

+1
findbugs
462
the patch passed

_ Other Tests _

-1
unit
492
hadoop-common in the patch failed.

+1
unit
111
hadoop-hdfs-client in the patch passed.

-1
unit
5237
hadoop-hdfs in the patch failed.

-1
asflicense
53
The patch generated 1 ASF License warnings.

12875

Reason
Tests

Failed junit tests
hadoop.cli.TestCLI

hadoop.hdfs.TestDatanodeDeath

hadoop.hdfs.server.namenode.TestFsck

hadoop.hdfs.TestDFSShell

hadoop.hdfs.TestDFSStripedOutputStreamWithFailure

hadoop.hdfs.tools.TestDFSZKFailoverController

hadoop.hdfs.server.blockmanagement.TestUnderReplicatedBlocks

hadoop.hdfs.server.namenode.TestNameNodeMetadataConsistency

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/2/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/1271

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux 27dfda718757 4.4.0-139-generic #165-Ubuntu SMP Wed Oct 24 10:58:50 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 6244502

Default Java
1.8.0_212

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/2/artifact/out/patch-unit-hadoop-common-project_hadoop-common.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/2/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/2/testReport/

asflicense
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/2/artifact/out/patch-asflicense-problems.txt

Max. process+thread count
4439 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/2/console

versions
git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
158
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

0
mvndep
31
Maven dependency ordering for branch

+1
mvninstall
1399
trunk passed

+1
compile
1338
trunk passed

+1
checkstyle
177
trunk passed

+1
mvnsite
252
trunk passed

+1
shadedclient
1356
branch has no errors when building and testing our client artifacts.

+1
javadoc
162
trunk passed

0
spotbugs
199
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
447
trunk passed

_ Patch Compile Tests _

0
mvndep
26
Maven dependency ordering for patch

+1
mvninstall
172
the patch passed

+1
compile
1042
the patch passed

+1
javac
1042
the patch passed

+1
checkstyle
151
the patch passed

+1
mvnsite
191
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedclient
733
patch has no errors when building and testing our client artifacts.

+1
javadoc
160
the patch passed

+1
findbugs
443
the patch passed

_ Other Tests _

-1
unit
553
hadoop-common in the patch failed.

+1
unit
145
hadoop-hdfs-client in the patch passed.

-1
unit
6981
hadoop-hdfs in the patch failed.

+1
asflicense
50
The patch does not generate ASF License warnings.

15836

Reason
Tests

Failed junit tests
hadoop.cli.TestCLI

hadoop.hdfs.TestDFSShell

hadoop.hdfs.server.balancer.TestBalancer

hadoop.hdfs.server.namenode.TestFSImage

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/3/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/1271

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux 13dcdae9f8d1 4.15.0-48-generic #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / ee7c261

Default Java
1.8.0_212

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/3/artifact/out/patch-unit-hadoop-common-project_hadoop-common.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/3/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/3/testReport/

Max. process+thread count
2917 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/3/console

versions
git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
84
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

0
mvndep
25
Maven dependency ordering for branch

+1
mvninstall
1277
trunk passed

+1
compile
1114
trunk passed

+1
checkstyle
158
trunk passed

+1
mvnsite
227
trunk passed

+1
shadedclient
1214
branch has no errors when building and testing our client artifacts.

+1
javadoc
178
trunk passed

0
spotbugs
205
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
493
trunk passed

_ Patch Compile Tests _

0
mvndep
28
Maven dependency ordering for patch

+1
mvninstall
185
the patch passed

+1
compile
1255
the patch passed

+1
javac
1255
the patch passed

+1
checkstyle
170
the patch passed

+1
mvnsite
211
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedclient
797
patch has no errors when building and testing our client artifacts.

+1
javadoc
160
the patch passed

+1
findbugs
508
the patch passed

_ Other Tests _

-1
unit
561
hadoop-common in the patch failed.

+1
unit
127
hadoop-hdfs-client in the patch passed.

-1
unit
6370
hadoop-hdfs in the patch failed.

-1
asflicense
52
The patch generated 2 ASF License warnings.

15111

Reason
Tests

Failed junit tests
hadoop.cli.TestCLI

hadoop.security.TestRaceWhenRelogin

hadoop.hdfs.server.namenode.TestFileContextXAttr

hadoop.hdfs.TestDFSShell

hadoop.hdfs.server.datanode.fsdataset.impl.TestSpaceReservation

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/4/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/1271

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux 60ad7ecb70b6 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 3329257

Default Java
1.8.0_222

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/4/artifact/out/patch-unit-hadoop-common-project_hadoop-common.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/4/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/4/testReport/

asflicense
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/4/artifact/out/patch-asflicense-problems.txt

Max. process+thread count
2962 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/4/console

versions
git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

0
reexec
55
Docker mode activated.

_ Prechecks _

+1
dupname
0
No case conflicting files found.

+1
@author
0
The patch does not contain any @author tags.

+1
test4tests
0
The patch appears to include 1 new or modified test files.

_ trunk Compile Tests _

0
mvndep
47
Maven dependency ordering for branch

+1
mvninstall
1094
trunk passed

+1
compile
1029
trunk passed

+1
checkstyle
158
trunk passed

+1
mvnsite
220
trunk passed

+1
shadedclient
1136
branch has no errors when building and testing our client artifacts.

+1
javadoc
169
trunk passed

0
spotbugs
188
Used deprecated FindBugs config; considering switching to SpotBugs.

+1
findbugs
453
trunk passed

_ Patch Compile Tests _

0
mvndep
25
Maven dependency ordering for patch

+1
mvninstall
163
the patch passed

+1
compile
976
the patch passed

+1
javac
976
the patch passed

+1
checkstyle
142
the patch passed

+1
mvnsite
228
the patch passed

+1
whitespace
0
The patch has no whitespace issues.

+1
shadedclient
671
patch has no errors when building and testing our client artifacts.

+1
javadoc
176
the patch passed

-1
findbugs
40
hadoop-hdfs-client in the patch failed.

-1
findbugs
47
hadoop-hdfs in the patch failed.

_ Other Tests _

-1
unit
558
hadoop-common in the patch failed.

+1
unit
132
hadoop-hdfs-client in the patch passed.

-1
unit
5337
hadoop-hdfs in the patch failed.

+1
asflicense
54
The patch does not generate ASF License warnings.

12960

Reason
Tests

Failed junit tests
hadoop.cli.TestCLI

hadoop.hdfs.TestDFSShell

hadoop.hdfs.server.namenode.TestEditLogJournalFailures

hadoop.hdfs.server.namenode.TestAddBlock

hadoop.hdfs.server.namenode.TestEditLog

hadoop.hdfs.TestFileCorruption

hadoop.hdfs.server.namenode.TestReencryptionWithKMS

hadoop.hdfs.server.namenode.TestNameNodeAcl

Subsystem
Report/Notes

Docker
Client=19.03.1 Server=19.03.1 base: https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/5/artifact/out/Dockerfile

GITHUB PR
https://github.com/apache/hadoop/pull/1271

Optional Tests
dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle

uname
Linux 45fa0b21bc2a 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
personality/hadoop.sh

git revision
trunk / 915cbc9

Default Java
1.8.0_222

findbugs
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/5/artifact/out/patch-findbugs-hadoop-hdfs-project_hadoop-hdfs-client.txt

findbugs
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/5/artifact/out/patch-findbugs-hadoop-hdfs-project_hadoop-hdfs.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/5/artifact/out/patch-unit-hadoop-common-project_hadoop-common.txt

unit
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/5/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt

Test Results
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/5/testReport/

Max. process+thread count
4019 (vs. ulimit of 5500)

modules
C: hadoop-common-project/hadoop-common hadoop-hdfs-project/hadoop-hdfs-client hadoop-hdfs-project/hadoop-hdfs U: .

Console output
https://builds.apache.org/job/hadoop-multibranch/job/PR-1271/5/console

versions
git=2.7.4 maven=3.3.9 findbugs=3.1.0-RC1

Powered by
Apache Yetus 0.10.0 http://yetus.apache.org

This message was automatically generated.


Add comments to CaffResponse

GET /caff/{id:guid} -> getOne

comment: string and creator: User in a comment object


feat: add common ESLint config #21

Description
Added a common linter configuration package (Eslint) to streamline linting across the projects within this monorepo. The package offers a high-level linting configuration that can be easily extended and utilized to maintain consistent linting standards.
Fixes #21
Checklist

Please go through the following checklist to ensure that your change is ready
for review. Please do not forget to double check the list after you have
modified your PR, e.g., if you have added commits to address reviewer
comments or to fix failing automated checks. Please check items also if they
do not apply to your change, e.g., if your change does not require an update
of the user-facing documentation, then still check the box. Generally, PRs
are only reviewed when all boxes are ticked off and all automated checks pass
(use the comment section below if you believe that your PR is ready to be
merged even though not all boxes were ticked off).

[x] My code follows the contributing guidelines of this
project, including, in particular, with regard to any style guidelines
[x] The title of my PR complies with the Conventional Commits
specification; in particular, it clearly indicates
that a change is a breaking change
[x] I am aware that all my commits will be squashed into a single commit,
using the PR title as the commit message.
[x] I have performed a self-review of my own code
[x] I have commented my code in hard-to-understand areas
[ ] I have updated the user-facing documentation to describe any new or
changed behavior
[ ] I have added type annotations for all function/class/method interfaces
or updated existing ones
[ ] I have provided JSDoc block tags for all
functions/classes/methods or updated existing ones
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature
works
[x] New and existing unit tests pass locally with my changes
[x] I have not reduced the existing code coverage
[x] I have asked the @all-contributors bot to
acknowledge my contributions by commenting on this PR with a request of
the form @all-contributors please add @YOUR_GH_HANDLE for TYPE_1,   TYPE_2, ..., where TYPE_1 etc. refer to contribution types supported
by the All Contributors Specification OR I do
not want my contributions to be acknowledged

Comments
The unchecked boxes above are not required for this PR.
@all-contributors please add @JaeAeich  for code.

Is this a duplicate https://github.com/elixir-cloud-aai/cloud-components/pull/28? @JaeAeich

@JaeAeich: If you have an open PR and wanna change it, please just push new commits, the PR will automatically be updated. We are not losing information either: If we wanna look at the state of your branch before you pushed additional commits, we can just check out that state of the branch, or any other commit that we want.
Instead, opening another branch can lead to confusion, like it does here. I still don't know which PR you would prefer.
Note that sometimes, it can make sense to have multiple PRs. We frequently have this scenario in GA4GH, when there are multiple suggestions on how to change the specification to support useful features. Then it makes sense to work out competing PRs, then compare and vote for them.
However, this is rare and really only for comparing different approaches of addressing an issue. Usually, we either already have agreed upon one way of doing a thing, or the requirement is sufficiently clear that we can test for it and we don't care too much about the way we get there. Or, as in this case, the requirement is rather vague, but the implementation is not overly consequential (like this one). In all of these cases, a single PR will do.
So, can you please bring one of the two PRs to the state that you want us to review (I see that they differ slightly) and then close the other one? :pray:

Thanks @uniqueg for the clarification as this one doesn't contain example usage I will close it and request @git-anurag-hub to review the other one.


Error Windows to Android

Transferring is possible from Android to Windows but Windows to Android shows:
[unknown]
Failed: null

Plus after attempting to change destination folder in Android, nothing changed.
Still:
/Storage/emulated/0/Download/NitroShare

I've got the same error. Switching download folders works okay, but the error persists.
You cannot send a file from Windows to Android.

Weird. My V10 shared sucessfully to my Windows Computer, and again when sharing from computer to windows.

I have the same error sending files from w10 to android. Android to Windows works.

Okay, I'm rolling out perqin's fix to the beta channel as we speak. I'm hoping this eliminates the problem.


Feature/25 test configurator that can interact with pi test

This adds

an Action button
Gutter arrows for classes
a Run configuration
to trigger a gradle pitest run.

Triggering of the pitest run is also implemented.

Brianne approved of merge on discord so i'll see this as an approval to the pr


[BUG] BinaryFileResponse::header()

Prerequisites

[ ] Able to reproduce the behaviour outside of your code, the problem is isolated to Laravel Excel.
[ X ] Checked that your issue isn't already filed.
[ X ] Checked if no PR was submitted that fixes this problem.

Versions

PHP version: 7.1
Laravel version: 5.7
Package version: 3.1

Description

Steps to Reproduce

Expected behavior:
Excel (.xlsx) files downloads.
Actual behavior:
Fatal error occurs: Call to undefined method Symfony\Component\HttpFoundation\BinaryFileResponse::header() and the file isn't downloaded.
Additional Information
My Controller function:
    public function summaryReport(){
    	return Excel::download(new ClaimsExport, 'claims-report.xlsx');
    }

My Export
<?php

namespace App\Exports;

use App\Claim;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\Exportable;
use Illuminate\Contracts\View\View;

class ClaimsExport implements FromView
{
	use Exportable;

    /**
    * @return \Illuminate\Support\Collection
    */
    public function view(): View
    {
        return view('exports.osd.claims', [
            'claims' => Claim::where('type',2)->where('status',1)->whereNotNull('shipmentID')->orderBy('claimDate','desc')->get()
        ]);
    }
}

@patrickbrouwers - Does it look like everything is correct? As in the Export Class and Controller? I hadn't had a problem with 2.1, that's why I figured it was somewhere here.

Yes export class and controller look fine.


pytorch1.5 onnx2caffe failed

from pytorch1.5 to onnx,then convert onnx to caffemodel with your code
but the output of caffemodel is zero
why?
onnx_pytorchv1.5.zip

me too,and i get erro: if node.attrs["broadcast"] != 1 or node.attrs["transB"] != 1:
KeyError: 'broadcast'

i tried to change "if node.attrs["broadcast"] != 1 or node.attrs["transB"] != 1:" to "if node.attrs["transB"] != 1:"，It works and i get a caffe model.
But when I run the caffe model,i get a new bug:"Exception: Input blob arguments do not match net inputs."

OK，I got it ! I repaired this bug ！

OK，I got it ! I repaired this bug ！

what did yo do...

OK，I got it ! I repaired this bug ！

what did yo do...

Sorry, bro，I notice your email now, my method is what I said above.


Enhancement Make meta cache batch loading concurrently.

Proposed changes
I will enhance performance about querying meta cache of hms tables by 2 steps:
Step1 : use concurrent batch loading for meta cache
Step2 : execute some other tasks concurrently as soon as possible
This pr mainly for step1 and it mainly do the following things:

Create a CacheBulkLoader for batch loading
Remove the executor of the previous async cache loader and change the loader's type to CacheBulkLoader (We do not set any refresh strategies for LoadingCache, so the previous executor is not useful)
Use a FixedCacheThreadPool to replace the CacheThreadPool (The previous CacheThreadPool just log warn infos and will not throw any exceptions when the pool is full).
Remove parallel streams and use the CacheBulkLoader to do batch loadings
Change the value of max_external_cache_loader_thread_pool_size to 64, and set the pool size of hms client pool to max_external_cache_loader_thread_pool_size
Fix the spelling mistake for max_hive_table_catch_num

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 43.69 seconds
stream load tsv:          451 seconds loaded<PHONE_NUMBER>9 Bytes, about 158 MB/s
stream load json:         19 seconds loaded<PHONE_NUMBER> Bytes, about 118 MB/s
stream load orc:          58 seconds loaded<PHONE_NUMBER> Bytes, about 18 MB/s
stream load parquet:          28 seconds loaded 861443392 Bytes, about 29 MB/s
insert into select:          69.4 seconds inserted 10000000 Rows, about 144K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230704122541_clickbench_pr_172086.html

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 38.11 seconds
stream load tsv:          457 seconds loaded<PHONE_NUMBER>9 Bytes, about 156 MB/s
stream load json:         19 seconds loaded<PHONE_NUMBER> Bytes, about 118 MB/s
stream load orc:          57 seconds loaded<PHONE_NUMBER> Bytes, about 18 MB/s
stream load parquet:          28 seconds loaded 861443392 Bytes, about 29 MB/s
insert into select:          68.6 seconds inserted 10000000 Rows, about 145K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230704131926_clickbench_pr_172135.html

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 47.28 seconds
stream load tsv:          451 seconds loaded<PHONE_NUMBER>9 Bytes, about 158 MB/s
stream load json:         19 seconds loaded<PHONE_NUMBER> Bytes, about 118 MB/s
stream load orc:          56 seconds loaded<PHONE_NUMBER> Bytes, about 18 MB/s
stream load parquet:          28 seconds loaded 861443392 Bytes, about 29 MB/s
insert into select:          68.8 seconds inserted 10000000 Rows, about 145K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230705034526_clickbench_pr_172419.html

LGTM

run buildall

(From new mechine)TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 51.82 seconds
stream load tsv:          508 seconds loaded<PHONE_NUMBER>9 Bytes, about 140 MB/s
stream load json:         18 seconds loaded<PHONE_NUMBER> Bytes, about 124 MB/s
stream load orc:          64 seconds loaded<PHONE_NUMBER> Bytes, about 16 MB/s
stream load parquet:          30 seconds loaded 861443392 Bytes, about 27 MB/s
insert into select:          87.1 seconds inserted 10000000 Rows, about 114K ops/s
storage size:<PHONE_NUMBER>1 Bytes
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230705193104_clickbench_pr_172786.html

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 51.85 seconds
stream load tsv:          460 seconds loaded<PHONE_NUMBER>9 Bytes, about 155 MB/s
stream load json:         18 seconds loaded<PHONE_NUMBER> Bytes, about 124 MB/s
stream load orc:          56 seconds loaded<PHONE_NUMBER> Bytes, about 18 MB/s
stream load parquet:          28 seconds loaded 861443392 Bytes, about 29 MB/s
insert into select:          66.6 seconds inserted 10000000 Rows, about 150K ops/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230705125340_clickbench_pr_172879.html


Android In-App Purchases Failing: Unknown Error and Receipt Not Suitable

Please use the Discussion board if you want to get some help. Please use issues to report bugs.

Description
I am consistently encountering two errors when using the react-native-iap library in my React Native project. These errors is affecting Android platforms.
Expected Behavior
The purchase process should complete successfully without errors, allowing users to make in-app purchases.
Screenshots

Environment:

react-native-iap:12.15.2
react-native:0.74.3
Platforms (Android, device):

To Reproduce
Steps to reproduce the behavior:
Go to the in-app purchase section.
Attempt to make a purchase.
The following errors are displayed:
Purchase Error - An unknown or unexpected error has occurred. Please try again later.
Receipt Error - Purchase is not suitable to be purchased.

@andresesfm Hi, Can you help me with the above errors? There are multiple solutions, but I'm starting to doubt which one is correct.

Facing same Error when try to purchase multiple Consumable in app products with Android


Please reduce GitHub Actions matrix or improve the build time

GitHub Actions queue is very high for Apache projects, and it looks like a significant number of executors are occupied by Pulsar jobs :-(
Note: all Apache projects share the same limit of shared GitHub Actions runners, and based on the chart below Pulsar is consuming 30+ runners while the total limit (for all ASF projects) is 180.
See https://lists.apache.org/thread.html/r5303eec41cc1dfc51c15dbe44770e37369330f9644ef09813f649120%40<builds.apache.org>

number of GA workflows in/progress/queued per project and they clearly show the situation is getting worse by day:

For instance, https://github.com/n1hility/cancel-previous-runs might be helpful to cancel old jobs when a newer commit exists.

@vlsi will work on this.
@codelipenghui @zymap Can you work on adding cancel-previous-run action back to our Github Actions?

@vlsi will work on this.
@codelipenghui @zymap Can you work on adding cancel-previous-run action back to our Github Actions?

Just in case, there's update from Jarek:

There is one problem with the charts, They are flawed. They show
'workflows' not 'jobs' and one workflow might mean many jobs :(. For
example the big number of workflows you can see  in Airflow yesterday come
from "Label when reviewed" workflows - each of which has 1 job that
takes 10 seconds or so. One workflow  can be 20/30 times more important
than another.

We cannot easily drill down to jobs, because we are using Github API to get
the information, but there are limits (max num requests/hr) and we are
already close to hitting it with the current setup.

In any case, it would be nice if you could reduce Actions workload ;-)

Just in case, there's update from Jarek:

There is one problem with the charts, They are flawed. They show
'workflows' not 'jobs' and one workflow might mean many jobs :(. For
example the big number of workflows you can see  in Airflow yesterday come
from "Label when reviewed" workflows - each of which has 1 job that
takes 10 seconds or so. One workflow  can be 20/30 times more important
than another.

We cannot easily drill down to jobs, because we are using Github API to get
the information, but there are limits (max num requests/hr) and we are
already close to hitting it with the current setup.

In any case, it would be nice if you could reduce Actions workload ;-)

I see you've removed https://github.com/apache/pulsar/pull/9069 styfle/cancel-workflow-action recently.
However, there's a workaround to use third-party actions (provided you have reviewed them):
https://github.com/apache/calcite/pull/2318/files
The idea is that you clone the action via SHA identifier, so the action can't silently change after your review.
An alternative option is to raise INFRA ticket to allow styfle/cancel-workflow-action (and still use SHA-based action ids like<EMAIL_ADDRESS>WDYT?

I see you've removed https://github.com/apache/pulsar/pull/9069 styfle/cancel-workflow-action recently.
However, there's a workaround to use third-party actions (provided you have reviewed them):
https://github.com/apache/calcite/pull/2318/files
The idea is that you clone the action via SHA identifier, so the action can't silently change after your review.
An alternative option is to raise INFRA ticket to allow styfle/cancel-workflow-action (and still use SHA-based action ids like<EMAIL_ADDRESS>WDYT?

@vlsi Thank you for your feedback. I will let @codelipenghui @zymap take the actions from here.

@vlsi Thank you for your feedback. I will let @codelipenghui @zymap take the actions from here.

Thanks, we will start as soon as possible.
Sijie Guo<EMAIL_ADDRESS>周六04:39写道：

@vlsi https://github.com/vlsi Thank you for your feedback. I will let
@codelipenghui https://github.com/codelipenghui @zymap
https://github.com/zymap take the actions from here.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/pulsar/issues/9154#issuecomment-756987607, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADACIBNCGQRXRCPJ65JSCDTSY5UQ7ANCNFSM4V23YJBQ
.

Thanks, we will start as soon as possible.
Sijie Guo<EMAIL_ADDRESS>周六04:39写道：

@vlsi https://github.com/vlsi Thank you for your feedback. I will let
@codelipenghui https://github.com/codelipenghui @zymap
https://github.com/zymap take the actions from here.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/pulsar/issues/9154#issuecomment-756987607, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ADACIBNCGQRXRCPJ65JSCDTSY5UQ7ANCNFSM4V23YJBQ
.

This is fixed by #9159

This is fixed by #9159

Probably the fix here is not good
https://github.com/apache/pulsar/pull/9159
see my comments
https://github.com/apache/pulsar/actions?page=4&query=is%3Aqueued
we are still spawning too many job requests

Probably the fix here is not good
https://github.com/apache/pulsar/pull/9159
see my comments
https://github.com/apache/pulsar/actions?page=4&query=is%3Aqueued
we are still spawning too many job requests


Download is stopping

It being stopped after a while of download, in other words it ranges between 2 to 7 MB of download then it stop, I tried to logout to change the token  but it no benefit. same issue even if I changed the token value by re-login again.

The python file has errors
On Thu, Aug 22, 2019, 6:38 AM salytwo<EMAIL_ADDRESS>wrote:

It being stopped after a while of download, in other words it ranges
between 2 to 7 MB of download then it stop, I tried to logout to change the
token but it no benefit. same issue even if I changed the token value by
re-login again.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/r0oth3x49/udemy-dl/issues/423?email_source=notifications&email_token=AMZN4AIJQMMEDQ2NZVQEL23QFYQ3PA5CNFSM4IOQ76B2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HGV4X5A,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AMZN4AL3ABNJIJDIA327IKLQFYQ3PANCNFSM4IOQ76BQ
.

It being stopped after a while of download, in other words it ranges between 2 to 7 MB of download then it stop, I tried to logout to change the token but it no benefit. same issue even if I changed the token value by re-login again.

it's not related to token that's is some other issue,
can you follow the issue reporting guideline.
and would be great if you can share your creds and link to the course so that i can reproduce and fix.


how to choose the finetuning script for question-answering task

I have a task ,which given a question, using the [sMASK] token to generate the answer sentence, which finetuning script should I use?
Should I use the text-summarization finetuning script ?

Yes. You should process the data into {split}.source and {split}.target (where split can be train, val and test). Each line contains the source text or the target text of an input example.

Thanks! I have successfully run it.


Add dataset: dataset_of_european_art

A URL for this dataset
https://zenodo.org/record/6984525#.Y1VSV7bP2F4
Dataset description

Large datasets that were made publicly available to the research community over the last 20 years have been a key enabling factor for the advances in deep learning algorithms for NLP or computer vision.  Scholarly and historical content, on the other hand, treat subjects that are not necessarily popular to a general audience, they may not always contain a large number of data points, and new data may be difficult or impossible to collect. Some exceptions do exist, for instance, scientific or health data, but this is not the case for cultural heritage (CH). The poor performance of the best models in computer vision - when tested over artworks - coupled with the lack of extensively annotated datasets for CH, and the fact that artwork images depict objects and actions not captured by photographs, indicate that a CH-specific dataset would be highly valuable for this community. We propose DEArt, at this point primarily an object detection and pose classification dataset meant to be a reference for paintings between the XIIth and the XVIIIth centuries. It contains more than 15000 images, about 80% non-iconic, aligned with manual annotations for the bounding boxes identifying all instances of 69 classes as well as 12 possible poses for boxes identifying human-like objects. Of these, more than 50 classes are CH-specific and thus do not appear in other datasets; these reflect imaginary beings, symbolic entities and other categories related to art. Additionally, existing datasets do not include pose annotations. Our results show that object detectors for the cultural heritage domain can achieve a level of precision comparable to state-of-art models for generic images via transfer learning.

Dataset modality
Image
Dataset licence
Creative Commons Attribution Non Commercial Share Alike 4.0 International
Other licence
No response
How can you access this data
As a download from a repository/website
size of dataset

10GB

Confirm the dataset has an open licence

[X] To the best of my knowledge, this dataset is accessible via an open licence

Contact details for data custodian
No response

#self-assign