Certain Devices goes Unavailable indefinetly with wierd reconnection issues

Describe the bug
When a device sensors and switches goes Unavailable, tuya local seems to re-connect to the device with weird reconnection issue. First the device seems to get reconnected but a few seconds later, it goes to Unavailable again, this thing happens several times per minute. Tried debugging it if its a networking related issue but no, the AP sees the device still connected and able to ping the device just fine.
The only way to fix this issue is "reload" the device by going to Settings > Device & Services > Tuya Local > Your Device, after that click the 3 dot thingy beside the problematic device and click reload. Take note, even power cycling the device doesnt fix the issue more like it actually gets worse since it no longer able to reconnect to the device, unlike before it was able to connect to the device albeit it only last for a few seconds.
Currently the device is disconnected to the internet, making the device unblocked to the internet make no difference. No other smartphone app that can directly control the device, the only way to control this device is through home assistant, I only run the tuya app if I want to add a new device to my tuya account but after that the smart app gets deleted.
To Reproduce
Unknown, The issue happens randomly.
Expected behavior
If the device gets disconnected, local tuya should be able to reconnect to device without any issue.
Additional context
Device Diagnostic
{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2024.3.3",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.12.2",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Asia/Manila",
    "os_name": "Linux",
    "os_version": "6.6.20-haos",
    "supervisor": "2024.03.1",
    "host_os": "Home Assistant OS 12.1",
    "docker_version": "24.0.7",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "tuya_local": {
      "version": "2024.3.2",
      "requirements": [
        "tinytuya==1.13.2"
      ]
    },
    "pfsense": {
      "version": "0.1.0",
      "requirements": [
        "mac-vendor-lookup>=0.1.11"
      ]
    },
    "localtuya": {
      "version": "5.2.1",
      "requirements": []
    },
    "proxmoxve": {
      "version": "3.4.1",
      "requirements": [
        "proxmoxer==2.0.1"
      ]
    },
    "tplink_easy_smart": {
      "version": "0.3.0",
      "requirements": [
        "json5==0.9.10"
      ]
    },
    "openmediavault": {
      "version": "0.0.0",
      "requirements": []
    },
    "ssh_command": {
      "version": "1.0.0",
      "requirements": [
        "paramiko"
      ]
    },
    "hacs": {
      "version": "1.34.0",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    }
  },
  "integration_manifest": {
    "domain": "tuya_local",
    "name": "Tuya Local",
    "codeowners": [
      "@make-all"
    ],
    "config_flow": true,
    "dependencies": [],
    "documentation": "https://github.com/make-all/tuya-local",
    "integration_type": "device",
    "iot_class": "local_push",
    "issue_tracker": "https://github.com/make-all/tuya-local/issues",
    "requirements": [
      "tinytuya==1.13.2"
    ],
    "version": "2024.3.2",
    "is_built_in": false
  },
  "data": {
    "name": "Aircon Smartplug",
    "type": "blitzwolf_bwshp6_smartplug",
    "device_id": "**REDACTED**",
    "device_cid": "",
    "local_key": "**REDACTED**",
    "host": "**REDACTED**",
    "protocol_version": 3.4,
    "tinytuya_version": "1.13.2",
    "api_version_set": 3.4,
    "api_version_used": 3.4,
    "api_working": true,
    "status": {},
    "cached_state": {
      "updated_at":<PHONE_NUMBER>.9972293,
      "1": true,
      "9": 0,
      "18": 2969,
      "19": 6890,
      "20": 2366,
      "21": 2,
      "26": 0,
      "38": "memory",
      "39": "relay",
      "40": false,
      "41": "",
      "42": "",
      "43": ""
    },
    "pending_state": {},
    "connected": true,
    "force_dps": [
      18,
      19,
      20
    ],
    "home_assistant": {
      "name": "Aircon Smartplug",
      "name_by_user": null,
      "disabled": false,
      "disabled_by": null,
      "entities": [
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": "min",
          "state": {
            "entity_id": "number.aircon_smartplug_timer",
            "state": "0.0",
            "attributes": {
              "min": 0.0,
              "max": 1440.0,
              "step": 1.0,
              "mode": "auto",
              "unit_of_measurement": "min",
              "friendly_name": "Aircon Smartplug Timer"
            },
            "last_changed": "2024-04-07T21:31:48.926583+00:00",
            "last_updated": "2024-04-07T21:31:48.926583+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "lock.aircon_smartplug_child_lock",
            "state": "unlocked",
            "attributes": {
              "friendly_name": "Aircon Smartplug Child lock",
              "supported_features": 0
            },
            "last_changed": "2024-04-07T21:32:20.088727+00:00",
            "last_updated": "2024-04-07T21:32:20.088727+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "select.aircon_smartplug_initial_state",
            "state": "Last state",
            "attributes": {
              "options": [
                "On",
                "Off",
                "Last state"
              ],
              "icon": "mdi:toggle-switch",
              "friendly_name": "Aircon Smartplug Initial state"
            },
            "last_changed": "2024-04-07T21:32:20.090149+00:00",
            "last_updated": "2024-04-07T21:32:20.090149+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "config",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": null,
          "state": {
            "entity_id": "select.aircon_smartplug_light_mode",
            "state": "State",
            "attributes": {
              "options": [
                "State",
                "Position",
                "Off"
              ],
              "icon": "mdi:lightbulb",
              "friendly_name": "Aircon Smartplug Light mode"
            },
            "last_changed": "2024-04-07T21:32:20.090632+00:00",
            "last_updated": "2024-04-07T21:32:20.090632+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "diagnostic",
          "device_class": null,
          "original_device_class": null,
          "icon": null,
          "unit_of_measurement": "Wh",
          "state": {
            "entity_id": "sensor.aircon_smartplug_energy",
            "state": "unknown",
            "attributes": {
              "unit_of_measurement": "Wh",
              "friendly_name": "Aircon Smartplug Energy"
            },
            "last_changed": "2024-04-07T21:31:48.929163+00:00",
            "last_updated": "2024-04-07T21:31:48.929163+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "diagnostic",
          "device_class": null,
          "original_device_class": "current",
          "icon": null,
          "unit_of_measurement": "mA",
          "state": {
            "entity_id": "sensor.aircon_smartplug_current",
            "state": "2969",
            "attributes": {
              "state_class": "measurement",
              "unit_of_measurement": "mA",
              "device_class": "current",
              "friendly_name": "Aircon Smartplug Current"
            },
            "last_changed": "2024-04-07T23:57:17.938697+00:00",
            "last_updated": "2024-04-07T23:57:17.938697+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "diagnostic",
          "device_class": null,
          "original_device_class": "power",
          "icon": null,
          "unit_of_measurement": "W",
          "state": {
            "entity_id": "sensor.aircon_smartplug_power",
            "state": "689.0",
            "attributes": {
              "state_class": "measurement",
              "unit_of_measurement": "W",
              "device_class": "power",
              "friendly_name": "Aircon Smartplug Power"
            },
            "last_changed": "2024-04-07T23:57:17.939754+00:00",
            "last_updated": "2024-04-07T23:57:17.939754+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": "diagnostic",
          "device_class": null,
          "original_device_class": "voltage",
          "icon": null,
          "unit_of_measurement": "V",
          "state": {
            "entity_id": "sensor.aircon_smartplug_voltage",
            "state": "236.6",
            "attributes": {
              "state_class": "measurement",
              "unit_of_measurement": "V",
              "device_class": "voltage",
              "friendly_name": "Aircon Smartplug Voltage"
            },
            "last_changed": "2024-04-07T23:57:17.940670+00:00",
            "last_updated": "2024-04-07T23:57:17.940670+00:00"
          }
        },
        {
          "disabled": false,
          "disabled_by": null,
          "entity_category": null,
          "device_class": null,
          "original_device_class": "outlet",
          "icon": "mdi:air-conditioner",
          "unit_of_measurement": null,
          "state": {
            "entity_id": "switch.aircon_smartplug_none",
            "state": "on",
            "attributes": {
              "factory_test": 2,
              "cycle_time": "",
              "random_time": "",
              "inching": "",
              "device_class": "outlet",
              "icon": "mdi:air-conditioner",
              "friendly_name": "Aircon Smartplug None"
            },
            "last_changed": "2024-04-07T21:36:59.650857+00:00",
            "last_updated": "2024-04-07T21:36:59.650857+00:00"
          }
        }
      ]
    }
  }
}

Home Assistant Log related to the issue
This error originated from a custom integration.

Logger: custom_components.tuya_local.device
Source: custom_components/tuya_local/device.py:554
integration: Tuya Local (documentation, issues)
First occurred: 12:29:35 AM (70 occurrences)
Last logged: 5:31:37 AM

Failed to update device dps for Aircon Smartplug
Failed to fetch device status for Aircon Smartplug

Workaround:
Create a new automation based on device state, if the device goes unavailable, do a call service integration reload on specific problematic device.

Possibly related to this upstream bug: https://github.com/jasonacox/tinytuya/issues/472

this happens to me every time when I turn off the power of the device (lights) and then turn it back on, and I will have to reload the entry for the device otherwise TL would not be able to reconnect to the device.

Have you set the IP address and protocol version?

yup, both are set manually and not auto. I will observe more to see if it’s specific to certain protocol version.

For what it's worth. In my situation it happens when the device is known/configured and worked in tuya-local but becomes unreachable. When disabeling this device in tuya-local, everything seems to return to 'nomal'' and my GUI is responsive again.

hi, having the same issues with three of my heatpumps. will implement a reload fix automation, happy to test / debug a fix, thanks

I think I have a similar problem with Tongou TO-Q-SY1-JWT. As long as it has an active load it doesn't seem to have a problem but when I remove the load (sometimes) the device becomes unavailable.
@remlei could you post your automation code to reload the integration? Thanks

I also notice that my device often becomes unavailable, and reloading the configuration does not help.
But when I log in to the Smart Life application and just turn the device on and off for a moment, it also returns to HA after a short while and can be managed via HA

I think I have a similar problem with Tongou TO-Q-SY1-JWT. As long as it has an active load it doesn't seem to have a problem but when I remove the load (sometimes) the device becomes unavailable. @remlei could you post your automation code to reload the integration? Thanks

just use the Call Service "Home Assistant Core Integration: Reload config entry" and choose for Device as a target and look for a tuya device that your having problem with.
as for trigger, you can use any part of that tuya device that goes unavailable, in this case I used the "child lock" entity of the device as a trigger, if the state goes unavailable or unknown, execute a reload config call service action.

Just to mention, when the device goes unavailable in Tuya Local:

The official Tuya (cloud) integration can control the device just fine
Tuya Smart app can control the device just fine
I can ping the device just fine using tinytuya wizard

I am currently working around this issue by using an entity template and adding redundancy (use Tuya Local if it's available, or use Tuya Cloud otherwise):
cover:
  - platform: template
    covers:
      terreiro:
        unique_id: 2c82abec-5be3-40a2-b8aa-76cbe9b067f8
        friendly_name: Terreiro
        device_class: garage
        value_template: "{{ (not is_state('cover.terreiro_tuya_local', 'unavailable') and not is_state('cover.terreiro_tuya_local', 'closed')) or (not is_state('cover.terreiro_tuya_cloud', 'unavailable') and not is_state('cover.terreiro_tuya_cloud', 'closed')) }}"
        availability_template: "{{ not is_state('cover.terreiro_tuya_local', 'unavailable') or not is_state('cover.terreiro_tuya_cloud', 'unavailable') }}"
        open_cover:
          if:
            - condition: template
              value_template: "{{ not is_state('cover.terreiro_tuya_local', 'unavailable') }}"
          then:
            - service: cover.toggle
              target:
                entity_id: cover.terreiro_tuya_local
          else:
            - service: cover.toggle
              target:
                entity_id: cover.terreiro_tuya_cloud
        close_cover:
          if:
            - condition: template
              value_template: "{{ not is_state('cover.terreiro', 'closed') }}"
          then:
            - if:
                - condition: template
                  value_template: "{{ not is_state('cover.terreiro_tuya_local', 'unavailable') }}"
              then:
                - service: cover.toggle
                  target:
                    entity_id: cover.terreiro_tuya_local
              else:
                - service: cover.toggle
                  target:
                    entity_id: cover.terreiro_tuya_cloud

This bug appears to be more extreme for me as time goes by (or I'm just having a string of bad luck). On top of that, I just ran into an issue that's stopping me from reloading the integration? The error I get when doing the service call is  receive loop has terminated.

@make-all https://github.com/make-all/tuya-local/commit/3fafb5fee239dbdd849f6b99248ebf88290609e8 is very good news. Can't wait to test it!

@make-all, unfortunately, after working perfectly well for over a week, I noticed this issue again.

Restarting HA brought two devices back
For the last one, clicking in CONFIGURE without changing any parameter and submitting it, brought it back.

This makes me think if the integration itself isn't retrying the connection properly.
Do you think I should open a different issue or should this one be reopened?

I just realized I should have tried to capture some logs. I will try next time.

Ok, I have a better story to tell now:

The device went unavailable when I powered it off (a smart garage door opener)
When powering it on again, it never came back in Tuya Local
Stayed that way for hours
I tried to Reload the Tuya Local integration, nothing changed
Tried Re-CONFIGURE the device in Tuya Local, it gave me connection error. I captured the logs.
I opened the Tuya app; the device was online. I opened the garage door once from the Tuya app: the device came back in Home Assistant.

Weird. I captured debug logs during the Reload and Re-CONFIGURE, but I'm not sure it will help.
tuya_local_bbb18cee736636978b25f07001002a50_Portão_da_garagem_de.json
home-assistant_tuya_local_2024-11-18T01-21-00.547Z.log

Just ran into either this or a similar issue. I have a large amount of lights configured through tuya-local. A power cycle of the lights + router caused some of the light IP addresses to change, I assume, and no longer connect to tuya-local.
Is there a way for the device reload to re-do the IP address scanning step and keep the remaining settings, without going through the whole remove + re-add device flow? Assuming the device ID is stored, this should be able to be done automatically. Does it already happen and it just didn't work in case for some reason?

@dominguesgm, in my case I add static IP leases in the router for each device to help with this issue.

@make-all I was able to find a consistent problem that may be actionable.
https://github.com/user-attachments/assets/b119b1ca-3da6-47f5-a86e-0ee75f6a051a
Notes:

tinytuya is able to communicate with the device just fine
The device is unavailable in Tuya Local. I attempt to Reload it, it continues unavailable.
Attempt to Re-CONFIGURE, it continues unavailable.

The debug logs indicate an issue similar to #2578:
2024-12-01 14:52:12.294 WARNING (SyncWorker_14) [custom_components.tuya_local.device] Test protocol error 914: Check device key or version
2024-12-01 14:54:09.716 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry Luz do escritório 2 for light
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 855, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 680, in async_unload_entry
    return await hass.data[DATA_COMPONENT].async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2024-12-01 14:54:09.718 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry Luz do escritório 2 for number
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 855, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/number/__init__.py", line 134, in async_unload_entry
    return await hass.data[DATA_COMPONENT].async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2024-12-01 14:54:09.719 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry Luz do escritório 2 for select
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 855, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/select/__init__.py", line 109, in async_unload_entry
    return await hass.data[DATA_COMPONENT].async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2024-12-01 14:54:18.980 DEBUG (MainThread) [custom_components.tuya_local] Unloading entry for device: eb1c6c0ee0ddc7a2b8hmii
2024-12-01 14:54:18.990 DEBUG (SyncWorker_1) [custom_components.tuya_local.helpers.device_config] Loaded device config rgbcw_lightbulb.yaml
2024-12-01 14:54:18.991 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry Luz do escritório 2 for light
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 855, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/light/__init__.py", line 680, in async_unload_entry
    return await hass.data[DATA_COMPONENT].async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2024-12-01 14:54:18.992 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry Luz do escritório 2 for number
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 855, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/number/__init__.py", line 134, in async_unload_entry
    return await hass.data[DATA_COMPONENT].async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2024-12-01 14:54:18.994 ERROR (MainThread) [homeassistant.config_entries] Error unloading entry Luz do escritório 2 for select
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/config_entries.py", line 855, in async_unload
    result = await component.async_unload_entry(hass, self)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/components/select/__init__.py", line 109, in async_unload_entry
    return await hass.data[DATA_COMPONENT].async_unload_entry(entry)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/src/homeassistant/homeassistant/helpers/entity_component.py", line 204, in async_unload_entry
    raise ValueError("Config entry was never loaded!")
ValueError: Config entry was never loaded!
2024-12-01 14:54:18.999 INFO (MainThread) [custom_components.tuya_local.device] Deleting device: eb1c6c0ee0ddc7a2b8hmii
2024-12-01 14:54:18.999 DEBUG (MainThread) [custom_components.tuya_local.device] Stopping monitor loop for Luz do escritório 2

This issue is really difficult. People seem to have very different root causes and solutions.
Today I was only able to work around it by rebooting my HA instance (restarting the container only multiple times did not help).
Anyway, I'd suggest focusing on one actionable item at a time.

This issue seems like only affects device that uses protocol 3.4 or higher, only my newer tuya wifi devices is affected to this but majority of my wifi tuya device running the 3.3 protocol works just fine.
Though as of this comment, almost all of my 3.3 tuya devices are now migrated to esphome using tuya-cloudcutter the rest of my 3.3 devices is still connected using this integration, 3.4 and higher devices is now connected using the cloud based tuya integration.


Is formatting according a given format available?

@st-agnes

@OrKoN No, currently only the most basic settings are available for the date-input. I will add a format property to it so you can set the date format.

@st-agnes ok, fyi it's needed for jss-form


#3958 Typescript: DateOnly parameter in URL/querystring should be serialized without time

…

Hey @RicoSuter can this PR be merged or do you see any issues with it?

Any plans to merge the fix?

Bump again! @Shaddix or @RicoSuter perhaps? Would be lovely to get this merge in order to resolve #3958

There's nothing more I can do from my side, unfortunately. Someone with write access needs to merge the PR (or leave a comment if something is wrong regarding PR)

I could only gently point towards react-query-swagger which is NSwag based and has this fix integrated (and can generate the same clients as NSwag with /no-hooks flag)

This could really do with merging

Any plans on merging this?


Fix/10829 Duration Picker Auto Scroll

Description
Auto Scroll was missing on header tap on event duration picker and increase the auto scroll length
Link to Jira
https://jira-ibs.wbs.net.sap/browse/EXPOSUREAPP-10829
Screenshots
https://user-images.githubusercontent.com/72390277/218560809-c7a2c1e1-91ff-49ba-942f-911037bce6f4.mov

Hey Puneet since there are many hard coded values, could you also verify it for bigger sized devices and share the recording too? Thanks

Hey @puneetmahali1 since there are many hard coded values, could you also verify it for bigger sized devices and share the recording too? Thanks

@naveeddotio: Sure, I have attached the bigger screen recording(iPhone 14 Pro max) there we don't need the auto scroll as we can see the picker view without it.


One debug flag

Use a global debug flag
Set debug log level once in tests that use that

LGTM - just need to manually rebase.


Incorporate rounded in MassaToken

          I don't think we need the class. Just the size is enough. No!?

Originally posted by @mazmassa in https://github.com/massalabs/thyra-plugin-wallet/pull/277#discussion_r1211340523

merged


Introduce Integration framework prototype

What this PR does / why we need it:
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

None

This is prototype of a universal integration test framework for istio. It targets to satisfied the general needs of testing connection and co-functions between different components within different environments. Here is some specific intentions for this framework:

A test environment can be started manually for local testing/debugging, or automatically by test cases.

A test environment contains one or more Istio components with their starting configuration. Developers can assemble test environments based on testing need, and even include mock components if needed.

All components are started locally and test environment is hermetic.

Integration tests can be reused across different compatible environments, so that they can be reused (e.g. for testing environments using different static configuration).

Under the framework folder, there are component, environment interface and framework
Under the component and environment folders are the actual implementations.

/assign @hklai

/retest

@yutongz: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
ec28ab3c04ff0f55a5c28b6fbe0e2003bd91b95c
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yutongz: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
9ce02289ffa3bf85ff00fb68cee40edd80f8d414
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@yutongz: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
19f4a6e98e7fe68759f4a11fc36ca2fd90413480
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

Is this ready for submission?

Let's hold it for now.

What is the ETA?  When can I expect to be able to start to figure out how to write tests using this framework?

@douglas-reid, we will get this submitted ASAP.

/lgtm

/lgtm cancel

@yutongz: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-presubmit.sh
99de6c71fdf1823d6a19ba9fec305ac2829f171a
link
/test istio-presubmit

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@hklai I addressed some comments and I think it's good for now. We can do more improvements in following PRs.

/lgtm
Thanks

/retest


Adding fading edge feature

had to add the plugin fading_edge_scrollview
Please let me know if you like it

Version is published as 1.5.0 on pub.dev


make toMatchSnapshot throw if chained with .not

Prevent toMatchSnapshot from being used with .not as it doesn't make sense:
Here' s an example where I force triggered the error (it's not in the code of this PR):

@facebook-github-bot import

Thanks for importing. If you are an FB employee go to Phabricator to review.

negativeCompare, nice find!

@facebook-github-bot shipit

Thanks for importing. If you are an FB employee go to Phabricator to review.


Do you have some caching/matching inside?

Inside React i've created 2 components with styles. Each one have same classnames:
component 1:
styles: {
  block: {
    flex: 1
  },
  '@media(...)': {
    block: {
      flex: 2
    }
  }
}

component 2:
styles: {
  block: {
    flex: 1
  },
  '@media(...)': {
    block: {
      flex: 3
    }
  }
}

and they both will have same class and use only one of the '@media' (which were earlier)

nope, they will have separate style elements and separate rules.


feat(AddSelect): add dynamic additional component at start of body

Closes #5252
Add custom component option at the beginning of the Body (in our case we are using TextInput but it could be anything here.
What did you change?
packages/ibm-products-styles/src/__tests__/__snapshots__/styles.test.js.snap
packages/ibm-products-styles/src/components/AddSelect/_add-select.scss
packages/ibm-products/src/components/AddSelect/AddSelect.tsx
packages/ibm-products/src/components/AddSelect/AddSelectBody.test.js
packages/ibm-products/src/components/AddSelect/AddSelectBody.tsx
packages/ibm-products/src/components/MultiAddSelect/MultiAddSelect.stories.jsx
packages/ibm-products/src/components/MultiAddSelect/MultiAddSelect.tsx
packages/ibm-products/src/components/SingleAddSelect/SingleAddSelect.stories.jsx
packages/ibm-products/src/components/SingleAddSelect/SingleAddSelect.tsx
How did you test and verify your work?
Storybook

@davidmenendez no problem! I started a thread in the issue related to naming convention but it didn't get any traction, supplementalHeader works well.. I'll reach out to the design lead for Add Select and get approval and work on the story

@glapadre awesome! thanks. keep me up to date 👍

@davidmenendez I have shared with Oliver Kauselmann (designer that worked on add/select) and he said he will take a look and share here

@glapadre awesome! thanks a bunch

Had a call with Marion H. and Oliver K. and we are working on updating the guidance on the PAL design site, once this is complete Marion and Oliver gave the green light to merge.

@glapadre any update on this?


Integrate registry authentication

In order to improve the user experience, we should integrate registry authentication process so that users do not have to authenticate to registries outside of please beforehand.
Acceptance criteria:

Plugin authenticates users as required (dynamically) using standard ~/.docker/config.json practices. e.g. a _login subrule which can be used to configure ~/.docker/config.json as needed. This should support using docker auth plugins too.
_login subrule is re-used for remote buildkit repo cache.

Implemented in v0.0.3 by https://github.com/VJftw/please-buildkit/commit/ce7dd0a91ceb1d07cd7e7cc4ace5aef8fb9a04c6


File "/home/.../site-packages/ranger21/ranger21.py", line 680, in step     raise RuntimeError("hit nan for variance_normalized")

Any idea what might have happened here?
the training runs normally with Ranger(20), when switching to 21 it crashes with this error:
  File "/home/.../lib/python3.8/site-packages/ranger21/ranger21.py", line 680, in step
    raise RuntimeError("hit nan for variance_normalized")

btw for Ranger20 you recommended training with mish activation function, is this also true for Ranger21?
I am training a segmentation network and some of the samples are completely empty.

I think I found the issue, some of my input tensors had nan in them, which would lead to the model outputting nans and a training collapse. Sorry, for the confusion.


Fix drag and drop crashing due lack of drag handle on the empty view

can you provide demo project or code that cause this issue?


t/* - deal with YAML security change, and fix validation error test

Currently PRANG fails on 5.37.8, because YAML was updated to be more secure, and because the validation error message no longer quotes the parameter name. This patch fixes both.

This fixes the issue reported in https://rt.cpan.org/Ticket/Display.html?id=132030&results=afbbc1fac9738906eae0ad6f5f9a4cfb

Thank you for this fix. I merged it locally and had hoped that github would spot that. Ah well.

Thanks! FWIW, you may encounter issues on 5.37.x we are still waiting for Test::Vars and Devel::Caller to be updated, and iirc some of your deps (possibly transitively) depend on those modules. But once they get fixed it should build clean and green.

Great, thanks for the heads up!


Crashes when trying to cd to a directory whose name contains "["

I have my albums in directories labeled "[<date>] ", where <date> is in YYYY-MM-DD form. When trying to use z to go to them, it crashes:
awk: cmd. line:37: (FILENAME=- FNR=268) fatal: Invalid range end: //home/<rest of file path>

This is reproducible by simply creating a directory like ooooo[a-, cding into it, then typing z oooo. It should crash with a different error:
awk: cmd. line:37: (FILENAME=- FNR=269) fatal: Unmatched [, [^, [:, [., or [=:

Or with just `ooooo['
awk: cmd. line:37: (FILENAME=- FNR=269) fatal: Invalid regular expression:

Probably a simple fix.

Found the issue. It's a simple regex bug on line 173:
gsub(/\[\(\)\[\]\|\]/, "\\\\&", clean_short)
should be
gsub(/[\(\)\[\]\|]/, "\\\\&", clean_short).
Basically the regex was escaping the [] for no reason, making it useless. This is such a tiny change it's n ot even worth a pull request, is it? I'd have to make a fork and all that. It's so simple.

thanks - definitely a gross regex to begin with. When I wrote it there was definitely some edge cases I was sweating but they're lost in the mists of time :( I'm gonna run with this change for a bit before I push it. seems fine so far.

I mean the only difference it makes is that it actually has a decent chance of matching something, since the old regex would only match strings containing [()[]|] as a substring (and then prefix the entire thing with a single backslash). The fix just makes your original idea work. Definitely let me know when you push it! :)

My suggested changes at #214 fix this. I'm replacing the sub by an index call.

Ok this is weird. The bug was introduced in https://github.com/rupa/z/commit/eda8015880106a2aef69c77a52f85b32599d4257, and it was the only change in the commit. @rupa can you give some detail on why this commit fixes a supposed problem with mawk? Or @somasis if he's around

@fictionic, @rupa, this
gsub(/[\(\)\[\]\|]/, "\\\\&", clean_short)

is escaping special characters, so the escaped string can be used with a regular expression matching at
if( matches[x] && x !~ clean_short )

Example:
$ print '() []' | awk '{ if( $1 !~ $2 ) print "Hi" }'
awk: cmd. line:1: (FILENAME=- FNR=1) fatal: Unmatched [, [^, [:, [., or [=: /[]/
$ print '() []' | awk '{ gsub(/[\(\)\[\]\|]/, "\\\\&", $2); if( $1 !~ $2 ) print "Hi" }'
Hi
$

This is not a good idea in many ways. First, the change done in eda8015 also broke it for GNU awk (version 4.2.0, API 2.0), so it looks like there's no universal idiom when it comes to regular expressions in awk, at least for bracket expressions like [A-Z] vs. \[A-Z\]. Second, the code is trying to do a direct string comparison, so it's much more efficient and easy to use index(s, t), which is the function awk provides to do exactly that:

index(s, t)
       the position in s where the string t occurs, or 0 if it does not.

Example:
$ print '() []' | awk '{ if( index($1, $2) == 0 ) print "Hi" }'
Hi
$

Hence my suggestion at #214. I'm introducing there another change too, which is checking if short matches only at the beginning of x, since the code is trying to find a common root among the matches...

Ok yeah I'm fully on board with your suggestion. @rupa?


Support SigV4a

Any movement or updates on this? We started using S3 Multi-Region Access Point (MRAP) for our app and having this under soto would be awesome.
Also, is there any alternative available for iOS/Swift?

No not really. It's a big task with a number of unknowns.


Links on page with fill not rendered by optimize

This is a bit obscure: there's a page on my site where links are not rendered:

Upon some investigations, I noticed that these lines are those causing the trouble:
* [{{fill title ...}}](...)
* ...

I also noticed that replace the unrendered links with the inline variant also solve the issue.
The issue occurs to me on both 0.10.30 and the latest 0.10.33.

Thanks for reporting!
Ok yes so that's a bit tricky in terms of the order in which things are resolved. Basically {{...}} blocks are currently left "untouched" and passed to the HTML processor so the ordering is:

markdown pass, most things are converted to HTML using MD -> HTML
html pass, remaining {{...}} items are resolved

So in this case there's a conflict because it sees "shortcut links" (like [internship]()) but it can't find the definition because the {{...}} is not yet resolved (at least I think that's what's happening for you, I haven't yet looked at your repo).
An alternative which would work now and might suit you is to define page variables with the links and fill those so something like
+++
benchmark = "/foo/bar/benchmark/"
+++

Did you [see the benchmarks]({{benchmark}}) etc.

The difference here is that the MD pass will lead to see the benchmarks and the second pass will then appropriately fill so you'll get see the benchmarks.

Thanks, the suggested work-around indeed has the expected effect (the date is still incorrect though).  I also forgot to mention that running serve also fix it (even the date), which agrees with your analogy, but it feels too hacky for automation :smile:

What is the date issue?

Affected pages also have the last modified date rendered as 0001-01-01.
My guess would be it's has the same root cause.

Hmm no that's another issue which I'm aware of but haven't fixed yet. Thanks for reporting!
Just for the specific issue here, is the workaround suggested above ok for you?
Note also that I'm working on a pretty significant refactoring of this (MD->HTML->HTML) pass which will likely remove the problem completely but I'm not sure exactly when I'll be done with it (it might take me a month or two).
Thanks again for the report!

Ah could you try one thing for me please? Could you modify your page foot in the _layout and replace
{{ fill fd_mtime }} by {{ fill fd_mtime fd_rpath}}
this might not do anything useful but I'm just curious. Thanks!

Yes, the workaround is OK for me.  I'm looking forward to the refactored logic, although there's no hurry on my side.

me too :joy:

I was able to work around the date issue with git log, which is a win-win since the modification date is not preserved by git clone.

ah awesome! thanks for letting me know :)


feat(vibranium::cli): introduce --verbose flag for reset command

This can be used to output additional information, such as which files
and directories have been removed.
Closes #9

Closing in favour of #20


Add versions to all dependences in requirements.txt

As suggested by @lu4p in #15. It still might make sense to use poetry or some other dependency manager. Note that for now we have torch using CUDA 12.1, as that's what I expect most people to have, but it might need to be adjusted manually on each device.

I decided not to hardcode CUDA 12.1, and instead added a note to the README on how to properly install using 12.1


Acknowledge community contribution in the changelog

Release notes have been updated: https://github.com/Azure/azure-sdk-for-cpp/releases/tag/azure-core_1.13.0


Update ValidationMessages_ru.properties

Fix russian message for Null constraint

Can one of the admins add this person to the trusted builders? (reply with: "add to whitelist" or "ok to test")

Thanks, merged to master and 6.0.


Include CLIA barcodes in dataset

Looking up REDCap records by CLIA barcode is useful when the collection
barcode is missing or wrong.
I created this list of fields by programmatically querying the fields of
all projects we interact with, grepping for any that mention CLIA, and
then manually reviewing/curating from there.

Tested this this morning and it seems to work great.

Lab team is very positive about this change.


Git version is required even if TA version is passed as parameter

Here it is a few problems glued together. Logic is like following
init.py
line 626 - we get a version from Git, if the work folder does not have a git initialized we fail
line 635 - we create an argument --ta-version
line 643 - if ta-version argument was passed we completely ignore the version that we got in line 626
Problems:

We always require our work folder to have git versioning available. If not we just fail on the spot.
If we pass --ta-version  we completely ignore the version that we got earlier

One of the solutions that improves logic, without chaging it
    temp_version = "definitely not a version that someone gonna use"
    parser.add_argument(
        "--ta-version",
        type=str,
        help="Version of TA, Deafult version is version specified in the package such as app.manifest, app.conf, and globalConfig.json",
        default = temp_version
    )

    args = parser.parse_args()
    ta_version = args.ta_version.strip()
    if not ta_version or ta_version == temp_version:
        version = Version.from_git()
        if not version.stage:
            stage = 'R'
        else:
            stage = version.stage[:1]

        version_str = version.serialize(metadata=True, style=Style.SemVer)
        ta_version = f"{version.base}{stage}{version.commit}"
    if not os.path.exists(args.source):
        raise NotADirectoryError("{} not Found.".format(os.path.abspath(args.source)))

Created #193 to address it.

:tada: This issue has been resolved in version 5.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:

@okuzhel-splunk can you please check version 5.0.2, it should contain a fix that you need?

Closing this one as PR was merged already.


use named tuple for readability and ease of code

it is easier to read and write attribute.name and attribute.type as opposed to attribute[0] and attribute[1]

Thanks for the PR. While I appreciate the PR making the code easier to use, it would be great if you could actually change the rest of the code to actually use the attribute names instead of [0] and [1].


Portal ignores destination

No matter which destination I choose for a portal (anchor, portal, world spawn, coordinates), MVP will teleport me to a faraway location on the map instead of the specified destination. Teleportation on a single map works. The bug only happens if I want to teleport between worlds.
There is no error in the console or debug file.
Server Version:
Spigot 1.14.4
Multiverse:
Core-4.1.1
Portal-4.1.1
Inventorys-3.0.1

Plugin List:
SimpleBroadcast, RemoteToolkitPlugin, Core, Commandspy, CoreProtect, dynmap, WorldEdit, Essentials_WarpGUI, CombatLog, OpenInv, ClearLag, WorldBorder, Votifier, ProtocolLib, VotingPlugin, SignColours, PermissionsEx, Microblocks, Vault, StopCountdown, AZRank, LWC, PlotSquared, HolographicDisplays, WorldGuard, WelcomeBookRecoded, ChestCommands, BungeeTabListPlus, TNTRun_reloaded, Essentials, MCBans, Jobs, ScoreboardStats, Multiverse-Core, Citizens, EssentialsChat, Plot2Dynmap, Multiverse-Portals, Landlord, ChestShop, TheNewEconomy, MobArena, Multiverse-Inventories, ServerSigns, CommandNPC, EssentialsSpawn, Bank, AreaShop, ServerTutorialPlus, Landlord-DynMap

Created issue on wrong thread.. Sorry


error with dllplugin

Do you want to request a feature or report a bug?
bug.

What is the current behavior?
I use webpack4.20.2 and Dllplugin to pack react and antd, but there are some errors caused by  uglyfyjs.
If the current behavior is a bug, please provide the steps to reproduce.
.babelrc
{
  "presets": [
    "env",
    "stage-0",
    "react"
  ],
  "plugins": [
    ["import", { "libraryName": "antd", "style": "css" }]
  ]
}

dll.config.js
module.exports = {
  entry: {
    vendor: ['react', 'react-dom', 'antd']
  },
  output: {
    filename: '[name].[chunkhash].js',
    path: dist,
    library: '[name].[chunkhash]'
  },
  plugins: [
    new webpack.DllPlugin({
      path: path.resolve(dist, 'manifest.json'),
      name: '[name].[chunkhash]'
    })
  ]
}

I run script npx webpack --config ./webpack/dll.config.js --mode production
error
ERROR in vendor.d2b0d173f1df51d080c7.js from UglifyJs
Unexpected token: punc (.) [vendor.d2b0d173f1df51d080c7.js:1,10]
error Command failed with exit code 2.

What is the expected behavior?
It should work, sorry for my english
If this is a feature request, what is motivation or use case for changing the behavior?
Please mention other relevant information such as the browser version, Node.js version, webpack version, and Operating System.

Use https://github.com/webpack-contrib/terser-webpack-plugin

thanks

also need to change script to npx webpack --config ./webpack/dll.config.js --mode development.it looks weird......................

finally I found the reason.Just change output.library and plugins.name into: '[name]_[chunkhash]'.The dot . seems destory everything.


rachnovo's editor

Great job @RachNovo!! 👏
The thing that I like the most about your page it's that you added some text so we can style it and see the changes on it.
I think the resume on the right side was not a good idea: it takes all the attention from the actual project and in the beginning, it made me think that I could also change its styling, but I can't.
It would have been nice to add the option to include my own HTML to style it.
Majo

Thanks for your comments :) I should have added a description to my pull request to give you a better idea of what my app was meant to do. It was supposed to be an editor for whatever web page was searched. I didn't get to that part yet though :)


Add docker build

Nice! Thanks @steinbrueckri
PS: I made a little change in docker way documentation, I hop it's not a problem :)


Provide more context for command line actions on the Get started page

Priority
Low
User Story
As an API provider ,
I want to understand the prerequisites and results of actions I take when following the Get started tutorial
so that I can learn how to create and configure Gateway services.

Test Case
ENV

[x] DEV
[x] TEST
[ ] PROD

TESTCASE
Navigate to the "Steps to create and configure your first Gateway" section on the Get started page on the Services Portal: https://api-gov-bc-ca.dev.api.gov.bc.ca/manager/gateways/get-started
EXPECTED

Additional context and expected results are provided for each command line code block. Refer to the DevHub Quick start tutorial for examples. Requires further discussion with the team as to the level of detail that should be included.
ACTUAL

Limited context is provided for each command line code block.
Notes
We received feedback during ns-to-gw user acceptance testing that users enjoyed the style and layout of the Get started page, but would like to see more detailed information akin to the Quick start tutorial.
I recall one of the previous design files included a button that brought up video examples executing the command line code, but I wasn't able to find it in the current Figma file. I will look a bit closer but we should discuss feasibility of incorporating this as it might benefit users onboarding to our service.

For many (or all?) of the commands I think a GIF would be totally adequate.


Yuzhu

Modified the clamav server.

It doesn't need to config the bucket before scanning.
It scans a single file with format:
'{"kind": "storage#object","name":"", "bucket": "" }'
It doesn't move the file after scanning.
The response is in Json with message "clean" "infected" or "not exists"

update the pr title to something more meaningful if possible


Move tracker code to within function parameters

#46  and #85 both relate to use of vars within function parameters causing problems with serializing the function.
A solution to both is to move the tracker code into the first function parameter. This:

Ensures tracker code executes within correct scope (intention is to capture vars outside the function).
Prevents execution of code within function parameters.

Input (demonstrating both issues):
let x = 1;
module.exports = function( y, z = x++ ) {
  const x = 0;
  return z;
}

Code that would be produced by Babel plugin:
const [livepack_tracker, livepack_getScopeId] = require("livepack/init")(__filename, module, require);
const livepack_scopeId_1 = livepack_getScopeId();

let x = 1;
module.exports = function(
  /*livepack_track:{"id":2,"scopes":[{"blockId":1,"varNames":["x"]}]}*/
  y = livepack_tracker([livepack_scopeId_1, x]),
  z = x++
) {
  const livepack_scopeId_2 = livepack_getScopeId();
  const x = 0;
  return z;
};

x in the call to livepack_tracker() now correctly refers to the outer x.
livepack_tracker() would return undefined normally.
When calling f() to extract its scope vars:

f() would be called with no arguments.
livepack_tracker() would throw an error to short-circuit execution of the function.

livepack_tracker() throwing would also prevent evaluation of any other param defaults/deconstruction (solving #46).
This solution also simplifies producing arguments to call the function with that never cause an error unintentionally if function has deconstructed params, as we now only need to consider the 1st param.
Function with no parameters
// Original
function f() {}

// Babelled
function f(...[livepack_temp = livepack_tracker()]) {}

NB ... spread is used to maintain f.length === 0. livepack_temp is never accessed.
Function with existing default on first param
// Original
function f(a = 123) {}

// Babelled
function f( a = livepack_tracker() || 123 ) {}

Object deconstruction in first function parameter
// Original
function f( {a} ) {}

// Babelled
function f( { [livepack_tracker() || 'a']: a } ) {}

f() would be called with args f({}).
NB This also deals with case where deconstruction uses a dynamic key.
Array deconstruction in first function parameter
// Original
function f( [a] ) {}

// Babelled
function f( [ a = livepack_tracker() ] ) {}

f() would be called with args f([]).
Spread in first param
// Original
function f(...args) {
  return args;
}

// Babelled
function f(...[livepack_temp1 = livepack_tracker(), ...livepack_temp2]) {
  let args = [livepack_temp1, ...livepack_temp2];
  return args;
}

Most of implementation complete in issue-86 branch. Just needs more tests and it's good to go.


Is it possible to call TensorBoard smooth function manually?

I have two arrays X and Y.
Is there a function I can call in tensorboard to do the smooth?
Right now I can do an alternative way in python like:
    sav_smoooth = savgol_filter(Y, 51, 3)
    plt.plot(X, Y)

But I didn't get a similar results as shown in tensorboard by doing so. Is there a function I can call?  Could you provide an API that allow this kind of operation?
Thanks.

@KaixiangLin I'm suspecting this function is implemented in javascript logic of TB so it would be hard to make available, but cc @dandelionmane just in case

@yaroslavvb  Thanks for the comment.
If directly call the function is not available right now, Could you briefly explain the method how tensorboard smooth the curve? @dandelionmane
Thanks a lot!

Please ask questions like these on Stackoverflow (or scicomp).  Github issues are for feature requests and comments.

@KaixiangLin You can find the smoothing logic here

Thank you.


How to uninstall in MacOS 11.3?

Hi,
How can I uninstall Atuin and revert back my original settings?
I am having difficulty recalling my previous history. Since Atuin maintains its own data.

Atuin would not touch your existing history file (only read) so you should just be able to remove the init line from your .rc fie (I assume .zshrc since you're on mac)


Revert 6580 cherry pick 6576 to release 0.17

Issue #, if available:
Description of changes:
This patch never applied to release 0.17. Originally, a patch was made such due to encountering an error upgrading from latest minor release in the controller on main.
status:
    failureMessage: 'cannot upgrade workload cluster to v0.17.0 while management cluster is an older version: v0.0.0'
    failureReason: EksaVersionInvalid

It only happened when trying to create a new cluster with the old bundle, but the old cluster created from the latest minor release will not have an EksaVersion, only BundlesRef.
Testing (if applicable):
Documentation added/planned (if applicable):
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/lgtm

/approve


Added has_and_belongs_to_many reification

HABTM associations are saved as attributes with the name
association_ids as an array of the associated model IDs. Changes
made to HABTM associations are stored on the model so on save the
original associations can be stored in the serialized object. On
reification, if the has_and_belongs_to_many option is not passed,
the serialized attributes are removed such that they are not
reified. If it is passed, the association is reified but if an
associated object no longer exists, it is not added to the
CollectionProxy.

Thanks for taking a stab at this @samboylett (Sam?). Rails has 6 association types:
    belongs_to
    has_one
    has_many
    has_many :through
    has_one :through
    has_and_belongs_to_many

Reification currently supports four or five of these, right? So adding HABTM support would be great!
@theRealNG (Ng?) recently added belongs_to support, in https://github.com/airblade/paper_trail/pull/730 so let's see if we can get him to look at this.
has_many reification was added by @bli, @lyfeyaj, and @NullVoxPopuli in https://github.com/airblade/paper_trail/pull/439 so maybe they can help too.

in our case we wanted to reify the associations and not the associated objects. before this patch there wasn't any way to achieve this. it was implemented as attributes because with HABTM there's no join model to version.

Won't this load the live (current) records?

in our case we wanted to reify the associations and not the associated objects.

All of the existing assoc. reification methods restore the associated objects. I think it will be misleading if HABTM works differently from all the rest.

fair enough, maybe it needs renaming or something then. the lack of this feature is really limiting though. we found the same with the current way the HMT association works, we didn't find it possible to restore the has_many record, and not the has_many through target.

I have added in a query to the versions table and some appropriate tests so HABTM should work as other association reifications (also added has_and_belongs_to_many: false to the options.merge for other reifiers)

tl;dr Tests look good, but I still have concerns about implementation, specifically persistence.

.. HABTM should [now] work as other association reifications (also added has_and_belongs_to_many: false to the options.merge for other reifiers)

Great! I've read through the tests as of c0f15f2ccd7253389b18301571047dd513045fe7. They demonstrate the behavior I'd expect and seem thorough. Given these tests, I'm pretty sure we'll be able to add this feature, it's just a question of making sure we have the right implementation.
It's important that we find the right implementation here, especially regarding persistence, because it'll be very difficult to change the format once people start recording data in production.
If I understand correctly, this implementation stores a list of ids in the versions.object column. However, that column was only designed to persist attributes, not associations. Using it to store associations would also be inconsistent with other association types, which use the version_associations table.
create_table :version_associations do |t|
  t.integer  :version_id
  t.string   :foreign_key_name, null: false
  t.integer  :foreign_key_id
end

In a Has Many Through (HMT) association, I think we insert one record into version_associations for each record in the "through table", and, in turn, for each record in the "target table". (to use the terminology from Reifier#reify_has_many_through)
Couldn't we still use this table for a HABTM association?
bar1 = BarHabtm.create
bar2 = BarHabtm.create
FooHabtm.create(bar_habtms: [bar1])
FooHabtm.update_attributes(bar_habtms: [bar2]) # line 4

On line 4, when the update event is recorded in the versions table, we could insert a record into the versions_associations table, with a foreign_key_name of bar_habtms and a foreign_key_id equal to bar1.id.
It seems that in this way we could use the version_associations for all association types. This consistency is desirable.

Hi, I have changed the implementation as per your suggestion, also added the option to save only the join table, such that the associated objects are shown in their current state if they are not paper trailed.

Please add a changelog entry.

Commit updated 👍🏼

Looks good to me. @batter any concerns?
CC: The people who have worked on associations: @theRealNG, @bli, @lyfeyaj, and @NullVoxPopuli your feedback still very much welcome.

It sounds like we're all generally happy with this, so I'm going to merge it.
@tlynam and @theRealNG Thanks for the review. Todd, good suggestions, feel like making a PR?
@samboylett and @mikecmpbll thanks for the contribution!


Adding IAuthenticationService for Unit Test purposes

Adding IAuthenticationService to make it Unit Test friendly

Published in QuickBooksSharp.1.6.2


Have you considered saving logs in k8s into different streams

Considering that a typical company's business logs are distributed across different applications, with some applications generating a very large volume of logs while most have a minimal amount of logs, we aim to have the default applications follow the standard stream for transmission. However, when we encounter applications with exceptionally high log traffic, we will create a new stream specifically for these applications. This approach has many benefits, as it allows for more efficient and application-friendly performance in both writing and querying logs.

A potential implementation approach: using k8s labels for routing

You can use routing processor to do this - https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/processor/routingprocessor/README.md


Hyperparameters for expert trajectories

The previous issue #2 seems to be closed, hence opening a new one.
I saw the link for the expert trajectories, but these does not include the hyperparameters or training script. Will it be possible for you to share these as well?
E.g. lr, noise, batch_size, etc.
Thank you,

Hi, this implementation of soft-actor-critic (https://github.com/denisyarats/pytorch_sac) (with default hyper-parameter) should work fine.

Yes, it does seem work! Thank you!


doc typo

https://github.com/ReactiveX/RxGo/pull/278

Fixed in https://github.com/ReactiveX/RxGo/pull/278


Update users_and_groups dependency

users_and_groups role v1.0 does not work anymore with Ansible 2.2.
Moreover, default variable values must be set.

We have flattened vars in #21 so should be fixed now.


Remove validation and constraint on Student state_id

We don't use this anywhere, and student records can be missing this in Somerville when they're first added.  This came up with deploying https://github.com/studentinsights/studentinsights/pull/2160

selfie


Enable better side effect optimization

Upgrades webpack & mini-css-extract-plugin for transitive side-effect detection and enables side effect optimization in production.


refactor: replace util/rebind with d3fc/d3fc-rebind

I've intentionally not replaced any instances of d3.rebind, that feels like an upgrade to v4 task.
Here's the link to d3fc-rebind for reference.

Looks really cool, a couple of comments here and PR / issue on d3fc-rebind

Changes pushed, please can you review the exclude('ticks') bit?

:+1:


IOError: [Errno 2] No such file or directory: u'Data/flowers/train/filenames.pickle'

python misc/preprocess_flowers.py
IOError: [Errno 2] No such file or directory: u'Data/flowers/train/filenames.pickle'

hey, I meet the same problem. how you solved this?


Keycloak.init is not called again when the initConfig prop changes

Keycloak allows you to pass in an initial token and refreshToken on init. However the componentDidUpdate in the KeycloakProvider only checks whether keycloak has changed.
Ok, so the steps to reproduce are not easily reproduced but I'll try and describe my situation.

Anonymous user opens application
Keycloak is initialized (without tokens in initConfig)
User registers in app and the API response contains tokens.
I update the initConfig with the tokens that is passed along as a prop to KeycloakProvider
No update occurs.

The expected behaviour is that init will fire after initConfig has been changed. I have tested this locally with this solution which seems to work.
componentDidUpdate({ initConfig: prevInitConfig, keycloak: prevKeycloak }) {
    if (
      this.props.keycloak !== prevKeycloak ||
      this.props.initConfig !== prevInitConfig
    ) {
      // De-init previous Keycloak instance
      prevKeycloak.onReady = null
      prevKeycloak.onAuthSuccess = null
      prevKeycloak.onAuthError = null
      prevKeycloak.onAuthRefreshSuccess = null
      prevKeycloak.onAuthRefreshError = null
      prevKeycloak.onAuthLogout = null
      prevKeycloak.onTokenExpired = null

      // Reset state
      this.setState({ ...initialState })
      // Init new Keycloak instance
      this.init()
    }
  }

Hi @VincentvD ,
Thanks for your feedback.
I just released a new version of react-keycloak (6.1.1) which includes the fix for this issue.
Just for reference I implemented a slightly modified version of your proposed solution because when dealing with Objects it is always better to do a deep compare (using functions like _.isEqual or deep-compare )  instead of a shallow compare (using ===).

Thanks for the quickfix. Indeed my proposed solution was too shallow...


LO - 2 - Getting Data

Draft content for block 2 of the workshop.
superset of issues #24, #25, #26.
Getting data from:

list of Genbank IDs (@KatherineCaley todo)
EnsemblLite (@GavinHuttley todo)
Published data (@YapengLang todo and is actually part of LO- 4)

Genbank
Trying to get a published reference dataset with REFSOIL

link to the publication (https://www.nature.com/articles/ismej2016168#Sec2)
what we want:

genome sequences and their annotations. I’m assuming the motivation for why annotations are necessary will have been mainly covered by this point.
i.e., we want the genbank files. Explain the general form of a genbank file.

what we can't get:

genbank sequences
screen grab of the process trying to get the data

what we can get:

list of NCBI accession numbers
screen grab of the process of using the NCBI command line tool

how we can get what we want:

script to download genbank files from a list of NCBI accession numbers

Ensembl
This will introduce the (currently under development) command line interface to Ensembl data.
Installation
Within the VS Code terminal, with your virtual environment activated, install EnsemblLite as
pip install git+https://github.com/cogent3/EnsemblLite.git

Notes
We will cover:

Downloading
Installing
Data summaries
Selecting related sequence types
Selecting aligned sequences with position types masked

Downloading GenBank files from a list of accession numbers
download_genbank.py takes a file with a list of NCBI accession numbers and downloads the associated GenBank file. Files are downloaded asynchronously for speed.
Installation
Create venv
$ mkdir venv
$ python3 -m venv venv/
$ source venv/bin/activate
$ pip install cogent3 rich click unsync

Example usage

For help and options

$ python3 download_genbank.py
Usage: download_genbank.py [OPTIONS]

  downloads limit accessions from GenBank

Options:
  -p, --path PATH      path to genbank accession file  [required]
  -o, --outdir PATH    path to write genbank formatted sequence files
                       [required]
  -l, --limit INTEGER  number of accessions to download  [default: 10]
  --help               Show this message and exit.

To download GenBank (.gb.gz) files for the first 10 accessions (default limit)

$ python3 download_genbank.py -p refsoil.txt -o refsoil

Notes
I commented out the use of rich.track() because the progress bar goes straight to 100% when using unsync.
@rmcar17

Slightly revamped genbank downloader with modified README based on the above by Fred.
genbank_downloader.zip
Important @khiron click needs to be added to the python pip installation in the docker file.
Instructions for wiki (taken from the README):
Downloading GenBank files from a list of accession numbers
download_genbank.py takes a file with a list of NCBI accession numbers and downloads the associated GenBank file. Files are downloaded asynchronously for speed.
Example usage

For help and options

$ python download_genbank.py
Usage: download_genbank.py [OPTIONS]

  downloads limit accessions from GenBank

Options:
  -p, --path PATH      path to genbank accession file  [required]
  -o, --outdir PATH    path to write genbank formatted sequence files
                       [required]
  -l, --limit INTEGER  number of accessions to download  [default: 10]
  --help               Show this message and exit.

To download GenBank (.gb.gz) files for the first 10 accessions (default limit)

$ python download_genbank.py -p refsoil_id.txt -o refsoil

To download GenBank (.gb.gz) files for the first 20 accessions

$ python download_genbank.py -p refsoil_id.txt -o refsoil -l 20

Note
Ensure the command is executed from the same directory as download_genbank.py.
You may need to run cd genbank_downloader first.

I'll do the screen grab of trying to get the refsoil data

https://github.com/cogent3/Cogent3Workshop/assets/36436914/b9a70c8a-db6a-4304-b421-d1509f8ca092
https://github.com/cogent3/Cogent3Workshop/assets/36436914/9358f8aa-732e-471a-9f48-0948511186b2

Screen casts for the figshare and python script methods on Dropbox.

@rmcar17 and @fredjaya rather than remove using track(), change usage to track(..., transient=True) and the progress bar disappears when completed. Why do this? If someone on a slow network, that progress bar is useful!

@GavinHuttley below is a modified version of the genbank downloader using click's progressbar in a thread safe manner. Our initial experience was that rich's track did not work with unsync.
genbank_downloader.zip


Generalize k8s_volumes and support mount pvc

What do these changes do?

Related issue number

Fixes #154

Codecov Report

Merging #156 (b5dc790) into main (055480b) will decrease coverage by 20.00%.
The diff coverage is 20.00%.

@@             Coverage Diff             @@
##             main     #156       +/-   ##
===========================================
- Coverage   78.55%   58.55%   -20.01%
===========================================
  Files          50       52        +2
  Lines        4579     4577        -2
===========================================
- Hits         3597     2680      -917
- Misses        982     1897      +915

Impacted Files
Coverage Δ

python/graphscope/client/session.py
60.89% <ø> (-11.89%)
:arrow_down:

...n/graphscope/deploy/kubernetes/resource_builder.py
62.24% <20.00%> (+1.59%)
:arrow_up:

python/graphscope/analytical/udf/patch.py
3.47% <0.00%> (-96.53%)
:arrow_down:

python/graphscope/analytical/udf/wrapper.py
25.80% <0.00%> (-74.20%)
:arrow_down:

python/graphscope/analytical/udf/decorators.py
21.25% <0.00%> (-73.75%)
:arrow_down:

python/graphscope/analytical/udf/compile.py
25.41% <0.00%> (-65.09%)
:arrow_down:

python/graphscope/analytical/udf/utils.py
36.17% <0.00%> (-35.64%)
:arrow_down:

python/graphscope/framework/context.py
52.29% <0.00%> (-31.20%)
:arrow_down:

python/graphscope/analytical/app/lpa.py
71.42% <0.00%> (-28.58%)
:arrow_down:

python/graphscope/analytical/app/cdlp.py
71.42% <0.00%> (-28.58%)
:arrow_down:

... and 19 more

Continue to review full report at Codecov.

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


Add new D-Bus API to check if a profile is dirty

This doesn't add use of new ratbag_profile_is_dirty API to ratbagc.py, but it never sets this property to anything other than False, and it's not used anywhere either. Probably something to address later: update the dirty property in RatbagdProfile in ratbagc.py, and show whether a profile is dirty in ratbagctl.


NPM and Github releases out of sync

NPM show 2.1.8 as the latest release https://www.npmjs.com/package/react-native-router-flux whereas Github show 2.1.4 as latest release

Yes, i don't post regular versions for github, because it is not automatic, so refer to NPM for latest release.


Tweak: DarkPapers - Settings App Freezes ...

Thanks for that🙃
iPhone: XS Max, iOS 13.3, Uncover 4.0.3
Cr4shed won‘t show anything.
So I can‘t provide a Crash Log.
I am experiencing some bugs lately
what information do you need?
(Tweaks installed?)
2/3 of the Time I got this:
Settings App Freezes when opening the Wallpapers section -> respring
1/3 of the Time I got this:
Everything in the Wallpapers section (when not freezing) is laggy/slow (choosing a Wallpaper for example or even getting there) [the Apple Original Wallpapers too]
After choosing a Wallpaper and applying it, the spinning circle with the (i dont remember the exact words) „applying Wallpaper“-Banner won't disapear and the Phone reboots (NO respring) or needs a „Hard Reboot“ after starting the Phone again and re-Jailbreaking it the „choosen“ Wallpaper is selected and working perfectly 😅
(I don't know if the reboot is needed for the Wallpaper Change or not)

Can you provide a tweak list? AnimationsBeFast and AnimationsBeFastPlus conflict with WallpaperLoader. In case you have either of those, try disabling them and see if the problem persists. Otherwise it is another tweak that’s conflicting with WallpaperLoader.


Getting error while turbo build

Select which package(s) are affected
@livekit/components-styles, @livekit/components-core
Describe the bug

Reproduction
Cloned and install dependency using yarn. Then hit the build command.
Logs
No response
System Info
System:
    OS: Windows 10 10.0.19045
    CPU: (8) x64 Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz
    Memory: 8.48 GB / 15.86 GB
  Binaries:
    Node: 18.16.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 9.6.4 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: 112.0.5615.138
    Edge: Spartan (44.19041.1266.0), Chromium (112.0.1722.58)
    Internet Explorer: 11.0.19041.1566

Severity
annoyance
Additional Information
No response

can you post the entire logs as text? it says "no files found" for the styles package, which is odd.
does the same happen on WSL ?

ah nice, does it also still work with escaped quotes \"**/*.scss\" ?

yes, it worked.

great! would you like to submit a PR to fix the issue?

yes, doing it


Replace RDBMS depedent Markov chain engine with custom engine

The current model's performance is very poor for generation. Create a new markov engine using a trie database. Instead of a neighbor system, we should embed the frequency of the distance the word occurs from others so we can calculate the probability it will be used in a certain position.

The engine is complete in the markov-chain-ng branch


Invalid link on Binary Agents challenge page that should direct to Mozilla documentation instead

Binary Agents
https://www.freecodecamp.com/challenges/binary-agents
Issue Description
One of the help links that's suppose to direct to Mozilla documentation on String.charCodeAt() instead points to https://www.freecodecamp.com/challenges/undefined
Browser Information

Browser Name, Version: Chrome
Operating System: OS X
Mobile, Desktop, or Tablet: Desktop

This issue is similar to #8402. We'll keep both of them open as their referencing different challenges.


Drop Python 2.7

Since most scientific Python modules will drop Python 2.7 in jan/2019, general Python 2.7 usage should start dropping. This is reminder to watch the number of downloads in the following months to decide when to drop Python 2.7 in DSS Python.
Tentative date: may/2019.

The number of downloads for Python 2.7 is getting low. In 2019, most downloads were from 3.6 and 3.7, while 2.7 had a lower number than 3.5. Soon, it should be dropped, at least for the master branch.

@kdheepak Any insight on this, especially about ODD.py?
Right now, from pypistats, it seems most users are using Python 3.6 and 3.7, while 2.7, 3.5 and 3.8 have about the small same share of users. Of course Python 3.8 should grow as time goes.

I think with the rewrite we can and should drop support for Py27. It'll allow us to use some nicer Python features and make it easier to maintain as well. I know there some users out there that are using Python 2.7 interfaces in some proprietary commercial software and interfacing with OpenDSS in the same process, but they will have to make do with the older versions of these packages.

Done in my local repo. I'll merge as soon as I finish some other changes for 0.11.x.


feat: conditional profiles

Description
This feature enables an option to configure profiles that will be automatically assigned based on a walk data.
Fixes # (issue)
Type of change
Please delete options that are not relevant.

[x] New feature

How Has This Been Tested?
Unit tests, manual tests, integration tests
Checklist

[x] My commit message is conventional
[x] I have run pre-commit on all files before creating the PR
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] 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 checked my code and corrected any misspellings

Codecov Report

Merging #713 (ad911c7) into develop (37439de) will decrease coverage by 3.48%.
The diff coverage is 15.90%.

:exclamation: Current head ad911c7 differs from pull request most recent head 87a7182. Consider uploading reports for the commit 87a7182 to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff             @@
##           develop     #713      +/-   ##
===========================================
- Coverage    86.94%   83.47%   -3.48%
===========================================
  Files           26       26
  Lines         1724     1809      +85
===========================================
+ Hits          1499     1510      +11
- Misses         225      299      +74

Impacted Files
Coverage Δ

splunk_connect_for_snmp/enrich/tasks.py
93.69% <ø> (ø)

splunk_connect_for_snmp/snmp/manager.py
80.55% <13.33%> (-3.70%)
:arrow_down:

splunk_connect_for_snmp/inventory/tasks.py
68.50% <16.43%> (-29.97%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:tada: This PR is included in version 1.8.7-beta.3 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Support default_tags propagation

Is your request related to a new offering from AWS?
No
Is your request related to a problem? Please describe.
The AWS provider's default_tags are not propagated to the instances created by the ASG. If I attempt to do this manually it causes apply churn in the related aws_launch_template resource.
There's a learn article on how to do this, but it involves doing a data lookup on aws_default_tags.
Describe the solution you'd like.
I would like provider default_tags to be properly propagated and not cause apply churn.
Describe alternatives you've considered.
I am currently passing the tags myself via a merge() in tags_as_map = merge(...) however this is causing apply churn on the aws_launch_template resource as it also has the provider default tags applied.
Additional context
The default_tags parameter was added in 3.38.0.

This issue has been resolved in version 4.9.0 :tada:


Identities and Identifiers section in both, protocol.base and dataspace.topology

content is more or less identical

I think we may want to get rid of the topology document once we cleanup the definitions section in each of the specs.

Not critical for first release.


sourcesanspro.xml

In the sourcesanspro.xml file, the regular font name in inconsistent. There is also no explanation of how the font attribute should relate to the font file names.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: c533e61a-a127-7c39-37f8-89d4004147d0
Version Independent ID: f7a5e26e-c060-1386-24ba-890022a45603
Content: Fonts - Xamarin
Content Source: docs/android/app-fundamentals/resources-in-android/fonts.md
Service: unspecified
GitHub Login: @topgenorth
Microsoft Alias: toopge

Thanks for bringing this to our attention. We're in the process of updating this guide based on your feedback.

No update on this? Where do we reference the actual .otf or .ttf file?

Typically apps will  reference the fonts by either using a font family resource, programmatically by using the GetFont method.

This is still absurd. Again, from your demo you have  app:font="@font/sourcesanspro_regular", does this mean the file is named "sourcesanspro_regular.otf"? Please just give an answer as this is the most vaguely written guide. It's shocking how difficult it is to do something basic like using fonts in Xamarin.


Require php 8.1

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

2 of 2 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.03%) to 98.515%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
199

Relevant Lines:
202

💛  - Coveralls


Remove feedback-less Help buttons from all dialogs

Currently the Help button is shown in every JFace dialog, even if clicking on it does nothing. To avoid confusion, we should remove these buttons expect in places where they actually do something (e.g. Add virtual column dialog).
Link to the original issue: #11618

verified


vim9script: E745: Using a List as a Number, when setloclist() is called as a method in :def functions

Describe the bug
Vim throws an error when setloclist() is called as a method in :def functions.
To Reproduce

Run vim --clean -S test.vim, with

" test.vim
vim9script
def Test()
    setloclist(0, [], ' ')
    [{'filename': 'foo.c'}]->setloclist(0, 'r')
enddef
Test()

Result:

Error detected while processing function <80><fd>R117_Test:
line    2:
E745: Using a List as a Number

The above method call works fine in legacy functions:

function Test()
    call setloclist(0, [], ' ')
    eval [{'filename': 'foo.c'}]->setloclist(0, 'r')
endfunction
call Test()

Expected behavior
No errors thrown when setloclist() is called as a method in :def functions.
Environment
Vim version 8.2.1152

Does this fall under the same issue as  #6305? If so, then this can be closed.


Autorest Regen Preview to 3.0.0-alpha.20230524.1 by Dapeng Zhang from refs/pull/3156/merge

Triggered from https://github.com/Azure/autorest.csharp/pull/3156

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.AI.AnomalyDetector


SimpleChannelPool::notifyConnect should tryFailure when an exception occurs

SimpleChannelPool::notifyConnect should tryFailure when an exception occurs
Motivation:
During the channelAcquired handler invocation if an exception occurred the application will hang
Modifications:
Call tryFailure of the promise if an exception occurred
Result:
After your change, the promise will fail and the system won't hang.

@diegolovison thanks for the PR. Can you please update your commit message and the PR description according to the commit message guideline
Also, have you signed the CLA?

Done

@diegolovison this looks good to me, since this also modifies FixedChannelPool, can you add a test for that too?
Also, a suggestion, force pushing during review loses review progress, so try to avoid it till review is completed.

Done. Are we going to squash before merging?

Are we going to squash before merging?

Yep!

Thanks a lot @diegolovison

Thanks a lot @diegolovison


ExposeTemplateHelpersMixin: how to override function in BlazeComponent

The ExposeTemplateHelpersMixin appear to be working.  You can see http://webix-components.meteor.com/ that the BlazeComponent correctly displays the value from the base Helper.
Now I want to override that helper function in my BlazeComponent so that I can "onRendered" provide a new & different view.
The template I am inheriting is atNavButton which has the {{text}} property
<template name="atNavButton">

{{text}}

</template>

How do I make my BlazeComponent WebixNavButton.js  override the "text" property of the mixin so I can use it in the new "Webix" view?  I tried defining the "text" function but it was never called.
I was hoping I could do something like the following, in that I could retrieve the value and do what I want.
value: function () {
  var value = this.callFirstWith(this, 'value');
  if (value) return value;
  var doc = Values.findOne(this.data().id);
  if (doc) return doc.value;
},

Thanks for your help

So I made a small but significant change after thinking about how I should approach this.
First look at http://webix-components.meteor.com/ so you can see the Webix button I'm exposing via the BlazeComponent.
So now I  have a different view presented and have access to the original helpers via the Mixin.
But I'm currently not accessing the "text" value via the Mixin as you can see below.
 var text = Blaze._getTemplateHelper(Template.atNavButton, 'text', Template.instance)();

So the template is now:
<template name="atNavButton">

</template>

How do I use the Mixin "text" value instead? The BlazeComponent atNavButton.js would be changed in the "onRendered" function.
// Simply 'inherites' helpers from AccountsTemplates
Template.atNavButton.helpers(AccountsTemplates.atNavButtonHelpers);

// Simply 'inherites' events from AccountsTemplates
Template.atNavButton.events(AccountsTemplates.atNavButtonEvents);

var atNavButton = BlazeComponent.extendComponent({
  template: function () {
    return 'atNavButton';
  },
  onRendered: function() {
    debugger;
    //This works but I'd rather use the Mixin
    var text = Blaze._getTemplateHelper(Template.atNavButton, 'text', Template.instance)();

    webix.ui({
      view:"button", label:text , width: 100
    }, $$('atNavButton'));

  },
  mixins: function () {
    return [ExposeTemplateHelpersMixin];
  },
  /*
  text: function() {
    debugger;
    return Blaze._getTemplateHelper(Template.atNavButton, 'text', Template.instance)();
  },
  */
  events: function () {
    return [{
      'click *': this.onClick
    }];
  },
  onClick: function (event) {
    console.log('WebixNavButton.onclick');
  }
}).register('atNavButton');

Ah, so easy, it's
this.text()

most Excellent!


Location And Calender Icon Fixed For RTL #6331

Issue Reference
Link: https://github.com/bagisto/bagisto/issues/6331

@devansh-webkul
Not working, still getting the same issue. Please find the screenshot Here


Work item description view toggle added

If there is no description text, and I click on it, 'undefined' is displayed.

Insert a quote behaviour:
On Git:

a
a
a

In work item description:

Functional test fails

@nimishamukherjee yeah that's a script injection test. We haven't decided about the current behavior of scripts in the description. Also, the code tag is not handled from the backend.


Audit request / response types

[ ] Consider improving PNP req/res types for new (non-legacy) PNP endpoints https://github.com/celo-org/celo-monorepo/blob/79c6bdbe530cf872de6a63d0567a407172298cc6/packages/phone-number-privacy/common/src/interfaces/requests.ts#L32
[ ] Investigate alias of GetBlindedMessageSig that is defined in @celo/identity sdk
[ ] investigate disable domain response types which are missing status
[ ] Also look into #9812
[ ] Check that pnp request/responses are backwards compatible (see https://github.com/celo-org/celo-monorepo/blob/3f09e7624dfe34e0a28936da6e3c2414393cbf58/packages/phone-number-privacy/common/src/interfaces/responses.ts#L38)

Sprint planning:

Eela - various things related to request/response types

Sprint planning:

Eela - Splitting request types is a little more involved. Alec/Eela agreed to do minimal changes short-term (timebox to end of week 1.5 dev days)


Invoke-Restmethod | If response is  I should still see the HTTP Status Code in the error?

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
I recently had quite a weird behaviour when using "Invoke-Restmethod";

I was doing a 'POST' with a payload ("body") that I wasn't actually sure was 100% right
The response even with the "-Verbose" parameter was;

VERBOSE: POST with 4475-byte payload
VERBOSE: received -byte response of content type application/json
Invoke-RestMethod:

Upon checking in Postman I can see that the response body was  but I could also see the actual issue; "Status 403 Forbidden" (I had only read-privileges' on the API which explained why my initial GET's where working)

Shouldn't the response from "Invoke-Restmethod" be "403 Forbidden" or similar even though the actual response body is ?
When running "Get-Error" to post this there I can clearly see that it is "403" but shouldn't this be shown directly when "Invoke-Restmethod" error out?
Best Regards
Expected behavior
Invoke-RestMethod : The remote server returned an error: (403) Forbidden.

Actual behavior
Invoke-RestMethod:
^ i.e. <null> after the semicolon

Error details
Exception             :
    Type       : Microsoft.PowerShell.Commands.HttpResponseException
    Response   : StatusCode: 403, ReasonPhrase: 'Forbidden', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:
                 {
                 Server: nginx/1.21.6
                 Date: Wed, 30 Mar 2022 12:46:38 GMT
                 Transfer-Encoding: chunked
                 Connection: keep-alive
                 Vary: Accept-Encoding
                 Cache-Control: no-cache, no-store, max-age=0, must-revalidate
                 Pragma: no-cache
                 X-Frame-Options: SAMEORIGIN
                 X-Robots-Tag: none
                 X-UA-Compatible: IE=Edge,chrome=1
                 X-Request-ID: 35820fb270233138b1f266f5c9dfaff8
                 X-Runtime: 0.070207
                 Strict-Transport-Security: max-age=15552000; includeSubDomains
                 Content-Type: application/json; charset=utf-8
                 Expires: Fri, 01 Jan 1990 00:00:00 GMT
                 }
    TargetSite :
        Name          : ThrowTerminatingError
        DeclaringType : System.Management.Automation.MshCommandRuntime, System.Management.Automation, Version=<IP_ADDRESS>0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
        MemberType    : Method
        Module        : System.Management.Automation.dll
    Message    : Response status code does not indicate success: 403 (Forbidden).
    Source     : System.Management.Automation
    HResult    : -2146233088
    StackTrace :
   at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
TargetObject          : Method: POST, RequestUri: 'https://api.meraki.com/api/v1/networks/<redacted>/groupPolicies', Version: 1.1, Content: System.Net.Http.ByteArrayContent, Headers:
                        {
                        Authorization: Bearer <redacted>
                        Accept: application/json
                        User-Agent: Mozilla/5.0
                        User-Agent: (Windows NT 10.0; Microsoft Windows 10.0.19044; en-US)
                        User-Agent: PowerShell/7.2.2
                        Content-Length: 4475
                        Content-Type: application/json
                        }
CategoryInfo          : InvalidOperation: (Method: POST, Reque…application/json
                        }:HttpRequestMessage) [Invoke-RestMethod], HttpResponseException
FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
ErrorDetails          :
InvocationInfo        :
    MyCommand        : Invoke-RestMethod
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : 30
    Line             : Invoke-Restmethod -Headers $headers -Method POST -Uri $($meraki_baseurl + $meraki_networks + "/" + $get_networkid_jpn + "/" + "groupPolicies") -Body $grouppolicy_json -PreserveAuthorizationOnRedirect -Verbose
    PositionMessage  : At line:1 char:1
                       + Invoke-Restmethod -Headers $headers -Method POST -Uri $($meraki_baseu …
                       + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    InvocationName   : Invoke-Restmethod
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1

Environment data
ame                           Value
----                           -----
PSVersion                      7.2.2
PSEdition                      Core
GitCommitId                    7.2.2
OS                             Microsoft Windows 10.0.19044
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals

Prerequisites

[x]  Write a descriptive title.
[x]  Make sure you are able to repro it on the latest released version
[x]  Search the existing issues.
[x]  Refer to the FAQ.
[x]  Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
I recently had quite a weird behaviour when using "Invoke-Restmethod";

I was doing a 'POST' with a payload ("body") that I wasn't actually sure was 100% right
The response even with the "-Verbose" parameter was;

VERBOSE: POST with 4475-byte payload
VERBOSE: received -byte response of content type application/json
Invoke-RestMethod:

Upon checking in Postman I can see that the response body was  but I could also see the actual issue; "Status 403 Forbidden" (I had only read-privileges' on the API which explained why my initial GET's where working)

Shouldn't the response from "Invoke-Restmethod" be "403 Forbidden" or similar even though the actual response body is ?
When running "Get-Error" to post this there I can clearly see that it is "403" but shouldn't this be shown directly when "Invoke-Restmethod" error out?
Best Regards
Expected behavior
Invoke-RestMethod : The remote server returned an error: (403) Forbidden.

Actual behavior
Invoke-RestMethod:
^ i.e. <null> after the semicolon

Error details
Exception             :
    Type       : Microsoft.PowerShell.Commands.HttpResponseException
    Response   : StatusCode: 403, ReasonPhrase: 'Forbidden', Version: 1.1, Content: System.Net.Http.HttpConnectionResponseContent, Headers:
                 {
                 Server: nginx/1.21.6
                 Date: Wed, 30 Mar 2022 12:46:38 GMT
                 Transfer-Encoding: chunked
                 Connection: keep-alive
                 Vary: Accept-Encoding
                 Cache-Control: no-cache, no-store, max-age=0, must-revalidate
                 Pragma: no-cache
                 X-Frame-Options: SAMEORIGIN
                 X-Robots-Tag: none
                 X-UA-Compatible: IE=Edge,chrome=1
                 X-Request-ID: 35820fb270233138b1f266f5c9dfaff8
                 X-Runtime: 0.070207
                 Strict-Transport-Security: max-age=15552000; includeSubDomains
                 Content-Type: application/json; charset=utf-8
                 Expires: Fri, 01 Jan 1990 00:00:00 GMT
                 }
    TargetSite :
        Name          : ThrowTerminatingError
        DeclaringType : System.Management.Automation.MshCommandRuntime, System.Management.Automation, Version=<IP_ADDRESS>0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
        MemberType    : Method
        Module        : System.Management.Automation.dll
    Message    : Response status code does not indicate success: 403 (Forbidden).
    Source     : System.Management.Automation
    HResult    : -2146233088
    StackTrace :
   at System.Management.Automation.MshCommandRuntime.ThrowTerminatingError(ErrorRecord errorRecord)
TargetObject          : Method: POST, RequestUri: 'https://api.meraki.com/api/v1/networks/<redacted>/groupPolicies', Version: 1.1, Content: System.Net.Http.ByteArrayContent, Headers:
                        {
                        Authorization: Bearer <redacted>
                        Accept: application/json
                        User-Agent: Mozilla/5.0
                        User-Agent: (Windows NT 10.0; Microsoft Windows 10.0.19044; en-US)
                        User-Agent: PowerShell/7.2.2
                        Content-Length: 4475
                        Content-Type: application/json
                        }
CategoryInfo          : InvalidOperation: (Method: POST, Reque…application/json
                        }:HttpRequestMessage) [Invoke-RestMethod], HttpResponseException
FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
ErrorDetails          :
InvocationInfo        :
    MyCommand        : Invoke-RestMethod
    ScriptLineNumber : 1
    OffsetInLine     : 1
    HistoryId        : 30
    Line             : Invoke-Restmethod -Headers $headers -Method POST -Uri $($meraki_baseurl + $meraki_networks + "/" + $get_networkid_jpn + "/" + "groupPolicies") -Body $grouppolicy_json -PreserveAuthorizationOnRedirect -Verbose
    PositionMessage  : At line:1 char:1
                       + Invoke-Restmethod -Headers $headers -Method POST -Uri $($meraki_baseu …
                       + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    InvocationName   : Invoke-Restmethod
    CommandOrigin    : Internal
ScriptStackTrace      : at <ScriptBlock>, <No file>: line 1

Environment data
ame                           Value
----                           -----
PSVersion                      7.2.2
PSEdition                      Core
GitCommitId                    7.2.2
OS                             Microsoft Windows 10.0.19044
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

Visuals

The error details field contains the page body that was returned, and that is what is shown in a short error. In this case its null. I just tried creating a 404 error and got masses of text in the message and where you have a blank line where you get the error.  Null pages or massively verbose ones aren't helpful. But there will be scripts out there which look for things in the body returned as a response when there is an error, so changing this would break things.