P18 Inverter Support Help

Hello, can you also adjust this project so that the Mppsolar Hybrid V2 is supported with the P18 Protocoll?
At that time I adjusted the code at JBlance / MPP solar so that almost all functions of the P18 protocoll are present.
But somehow I can't get along with the ESP code.
I have already flashed an ESP and I don't get an answer with the "normal" queries.
Unfortunately, I don't find the place in the code where the Commando is handed over. If someone can help me there would be great.
With the piri e.g. means the request ^P007PIRI instead of only QPIRI

# pipsolar.h

#define PIPSOLAR_SENSOR(name, polling_command, value_type) \
  PIPSOLAR_VALUED_ENTITY_(sensor::Sensor, name, polling_command, value_type)
#define PIPSOLAR_SWITCH(name, polling_command) PIPSOLAR_ENTITY_(switch_::Switch, name, polling_command)

[...]

class Pipsolar : public uart::UARTDevice, public PollingComponent {

[...]

  // QPIRI values
  PIPSOLAR_SENSOR(grid_rating_voltage, QPIRI, float)
  PIPSOLAR_SENSOR(grid_rating_current, QPIRI, float)
  PIPSOLAR_SENSOR(ac_output_rating_voltage, QPIRI, float)
  PIPSOLAR_SENSOR(ac_output_rating_frequency, QPIRI, float)
  PIPSOLAR_SENSOR(ac_output_rating_current, QPIRI, float)
  PIPSOLAR_SENSOR(ac_output_rating_apparent_power, QPIRI, int)
  PIPSOLAR_SENSOR(ac_output_rating_active_power, QPIRI, int)
  PIPSOLAR_SENSOR(battery_rating_voltage, QPIRI, float)
  PIPSOLAR_SENSOR(battery_recharge_voltage, QPIRI, float)
  PIPSOLAR_SENSOR(battery_under_voltage, QPIRI, float)

Does this help already?

In other words: If you use an entity (f.e. the battery_rating_voltage sensor) the implementation registers an additional polling_command here:
 public: \
  void set_##name(type *name) { /* NOLINT */ \
    this->name##_ = name; \
    this->add_polling_command_(#polling_command, POLLING_##polling_command); \
  }

If there are multiple sensors/entities requiring the same command the command is registered just once. You should get an idea which sensor measurements does ^P007PIRI return and define a sensor per value. The second task is to update this parser to the format/response of the P18 command: https://github.com/esphome/esphome/blob/dev/esphome/components/pipsolar/pipsolar.cpp#L428-L441
Thats all!
If you want to share your implementation here I would be happy to create another feature branch for the P18 protocol implementation.

Hi syssi,
Thank you that will help.
But now I have to wait for my new inverter comunucations board.
This has said goodbye. I don't even get a connection using Mppsolar Monitoring software. Apparently it dismantled the TX Optocopler.
The board is ordered and already on the go. Should arrive the next few days.

Sorry for your loss. Let me know if you get stuck converting this component.

I have now adjusted and tested a few things, but come to the conclusion that I absolutely need the character "^", i.e. "^P007PIRI"
but
POLLING_^P007PIRI = 0,
that does not work because the code is not compiled
how can i add this magic character to every request ?

in the python script the debug looks like this
2023-02-18 14:01:11,386:DEBUG:hidrawio:send_and_receive@50: send: b'^P007PIR', to_send: b'I\xee8\r'
2023-02-18 14:01:11,738:DEBUG:hidrawio:send_and_receive@47: multiple chunk send
2023-02-18 14:01:11,738:DEBUG:hidrawio:send_and_receive@50: send: b'I\xee8\r', to_send: b''
2023-02-18 14:01:14,143:DEBUG:hidrawio:send_and_receive@69: usb response was: b'^D0882300,217,2300,500,217,5000,5000,480,500,000,440,560,553,2,10,070,1,1,1,9,0,0,0,1,1,00[/\r'

and then I have to split the response into the respective components
ESP_LOGD(TAG, "Decode P007PIRI");
        sscanf(tmp, "(%f %f %f %f %f %d %d %f %f %f %f %f %d %d %d %d %d %d %d %d %d %d %f %d %d",

...

You could register the sensor like this:
  PIPSOLAR_SENSOR(grid_rating_voltage, P007PIR, float)
  PIPSOLAR_SENSOR(grid_rating_current, P007PIR, float)

And extend/change the
Pipsolar::add_polling_command_(const char *command, ENUMPollingCommand polling_command)

method and prefix the used_polling_command.command with the ^. The used_polling_command.identifier should stay untouched because it's used the match the ENUM values.

Hello, since I have the same problem I'm trying for days to insert the ^ character in the used_polling_command.command method. Since I am not very fit in the programming language c, I get this unfortunately not. can someone give me a tip how I can implement this?
Many greetings Christian

I gave it up. And prefer to use Python again, it runs stable and does what it should.
https://github.com/jblance/mpp-solar/

Hello and thanks for the info.
I could not be satisfied with it because I want to change settings from HA too.
I have now myself something me ESPHome zusammengebastelt. it is still a bit spümperhaft but it does its job.
I would like to change everything in the future still on Lambda but here I have to work myself in first.
I have a simple component for the UART communication erstell or copied from the Internet
#############################################################################
#include "esphome.h"
class UartReadLineSensor : public Component, public UARTDevice, public TextSensor {
public:
UartReadLineSensor(UARTComponent *parent) : UARTDevice(parent) {}
void setup() override {
// nothing to do here
}
int readline(int readch, char *buffer, int len)
{
static int pos = 0;
int rpos;
if (readch > 0) {
  switch (readch) {
    case '\n': // Ignore new-lines
      break;
    case '\r': // Return on CR
      rpos = pos;
      pos = 0;  // Reset position index ready for next time
      return rpos;
    default:
      if (pos < len-1) {
        buffer[pos++] = readch;
        buffer[pos] = 0;
      }
  }
}
// No end of line has been found, so return -1.
return -1;

}
void loop() override {
const int max_line_length = 80;
static char buffer[max_line_length];
while (available()) {
if(readline(read(), buffer, max_line_length) > 0) {
publish_state(buffer);
}
}
}
};
#############################################################################
in ESPHome I set certain values via a button and read the return value.
#############################################################################
substitutions:
name: pipsolar
esphome:
name: ${name}
platform: ESP8266
board: d1_mini
includes:
- uart_read_line_sensor.h
wifi:
ssid: "CkHome"
password: "0225451674274463"
captive_portal:
ota:
password: "12345678"
api:
Enable logging
logger:
baud_rate: 0
level: VERY_VERBOSE
hardware_uart: UART1
Enable Home Assistant
uart:
id: uart0
baud_rate: 2400
tx_pin: TX
rx_pin: RX
text_sensor:

platform: custom
lambda: |-
auto my_custom_sensor = new UartReadLineSensor(id(uart0));
App.register_component(my_custom_sensor);
return {my_custom_sensor};
text_sensors:
id: "uart_readline"
name: "EASUN_UART_Return"

button:

platform: template
name: "GetInfos"
on_press:

uart.write: "^P005GS\r"

platform: template
name: "Solar_first"
on_press:

uart.write: "^S009PCP0,0\xAC\r"

platform: template
name: "Solar_Utiluty"
on_press:

uart.write: "^S009PCP0,1\xAC\r"

platform: template
name: "Solar_Only"
on_press:

uart.write: "^S009PCP0,2\xAC\r"

platform: template
name: "Battery_load_40A"
on_press:

uart.write: "^S013MCHGC0,040"

platform: template
name: "Battery_load_50A"
on_press:

uart.write: "^S013MCHGC0,050"

platform: template
name: "Battery_load_40A"
on_press:

uart.write: "^S013MCHGC0,040"

platform: template
name: "GetInfos_II"
on_press:

uart.write: "^SP007PIRI"

interval:

interval: 10s
then:

uart.write: "^P005GS\r"
#############################################################################

I then extract the power values from the string via a homeassitant sensor..
#############################################################################

platform: template
sensors:
EASUN1 Power
easun1_power_watt:
friendly_name: Easun1PowerWatt
unit_of_measurement: W
device_class: power
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[16] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{easun1_value}}
easun1_battery_voltage:
friendly_name: Easun1BatteryVoltage
unit_of_measurement: V
device_class: voltage
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[7] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{(easun1_value | int / 10 ) | round(1)}}
easun1_battery_charging_current:
friendly_name: Easun1ChargingBatteryCurrent
unit_of_measurement: A
device_class: current
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[11] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{easun1_value | int}}
easun1_battery_discharging_current:
friendly_name: Easun1DischargingBatteryCurrent
unit_of_measurement: A
device_class: current
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[10] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{easun1_value | int}}
#############################################################################

It is not very already solved but it works

Hello and thanks for the info.
I could not be satisfied with it because I want to change settings from HA too.
I have now myself something me ESPHome zusammengebastelt. it is still a bit spümperhaft but it does its job.
I would like to change everything in the future still on Lambda but here I have to work myself in first.
I have a simple component for the UART communication erstell or copied from the Internet
#############################################################################
#include "esphome.h"
class UartReadLineSensor : public Component, public UARTDevice, public TextSensor {
public:
UartReadLineSensor(UARTComponent *parent) : UARTDevice(parent) {}
void setup() override {
// nothing to do here
}
int readline(int readch, char *buffer, int len)
{
static int pos = 0;
int rpos;
if (readch > 0) {
  switch (readch) {
    case '\n': // Ignore new-lines
      break;
    case '\r': // Return on CR
      rpos = pos;
      pos = 0;  // Reset position index ready for next time
      return rpos;
    default:
      if (pos < len-1) {
        buffer[pos++] = readch;
        buffer[pos] = 0;
      }
  }
}
// No end of line has been found, so return -1.
return -1;

}
void loop() override {
const int max_line_length = 80;
static char buffer[max_line_length];
while (available()) {
if(readline(read(), buffer, max_line_length) > 0) {
publish_state(buffer);
}
}
}
};
#############################################################################
in ESPHome I set certain values via a button and read the return value.
#############################################################################
substitutions:
name: pipsolar
esphome:
name: ${name}
platform: ESP8266
board: d1_mini
includes:
- uart_read_line_sensor.h
wifi:
ssid: ""
password: ""
captive_portal:
ota:
password: "12345678"
api:
Enable logging
logger:
baud_rate: 0
level: VERY_VERBOSE
hardware_uart: UART1
Enable Home Assistant
uart:
id: uart0
baud_rate: 2400
tx_pin: TX
rx_pin: RX
text_sensor:

platform: custom
lambda: |-
auto my_custom_sensor = new UartReadLineSensor(id(uart0));
App.register_component(my_custom_sensor);
return {my_custom_sensor};
text_sensors:
id: "uart_readline"
name: "EASUN_UART_Return"

button:

platform: template
name: "GetInfos"
on_press:

uart.write: "^P005GS\r"

platform: template
name: "Solar_first"
on_press:

uart.write: "^S009PCP0,0\xAC\r"

platform: template
name: "Solar_Utiluty"
on_press:

uart.write: "^S009PCP0,1\xAC\r"

platform: template
name: "Solar_Only"
on_press:

uart.write: "^S009PCP0,2\xAC\r"

platform: template
name: "Battery_load_40A"
on_press:

uart.write: "^S013MCHGC0,040"

platform: template
name: "Battery_load_50A"
on_press:

uart.write: "^S013MCHGC0,050"

platform: template
name: "Battery_load_40A"
on_press:

uart.write: "^S013MCHGC0,040"

platform: template
name: "GetInfos_II"
on_press:

uart.write: "^SP007PIRI"

interval:

interval: 10s
then:

uart.write: "^P005GS\r"
#############################################################################

I then extract the power values from the string via a homeassitant sensor..
#############################################################################

platform: template
sensors:
EASUN1 Power
easun1_power_watt:
friendly_name: Easun1PowerWatt
unit_of_measurement: W
device_class: power
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[16] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{easun1_value}}
easun1_battery_voltage:
friendly_name: Easun1BatteryVoltage
unit_of_measurement: V
device_class: voltage
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[7] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{(easun1_value | int / 10 ) | round(1)}}
easun1_battery_charging_current:
friendly_name: Easun1ChargingBatteryCurrent
unit_of_measurement: A
device_class: current
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[11] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{easun1_value | int}}
easun1_battery_discharging_current:
friendly_name: Easun1DischargingBatteryCurrent
unit_of_measurement: A
device_class: current
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[10] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{easun1_value | int}}
#############################################################################

It is not very already solved but it works

Hello and thanks for the info.
I could not be satisfied with it because I want to change settings from HA too.
I have now put something together myself. is still a bit fluffy, but it serves its purpose.
I would like to change everything in the future still on Lambda but here I have to work myself in first.
I have a simple component for the UART communication erstell or copied from the Internet
#############################################################################
#include "esphome.h"
class UartReadLineSensor : public Component, public UARTDevice, public TextSensor {
public:
UartReadLineSensor(UARTComponent *parent) : UARTDevice(parent) {}
void setup() override {
// nothing to do here
}
int readline(int readch, char *buffer, int len)
{
static int pos = 0;
int rpos;
if (readch > 0) {
  switch (readch) {
    case '\n': // Ignore new-lines
      break;
    case '\r': // Return on CR
      rpos = pos;
      pos = 0;  // Reset position index ready for next time
      return rpos;
    default:
      if (pos < len-1) {
        buffer[pos++] = readch;
        buffer[pos] = 0;
      }
  }
}
// No end of line has been found, so return -1.
return -1;

}
void loop() override {
const int max_line_length = 80;
static char buffer[max_line_length];
while (available()) {
if(readline(read(), buffer, max_line_length) > 0) {
publish_state(buffer);
}
}
}
};
#############################################################################
in ESPHome I set certain values via a button and read the return value.
#############################################################################
substitutions:
name: pipsolar
esphome:
name: ${name}
platform: ESP8266
board: d1_mini
includes:
- uart_read_line_sensor.h
wifi:
ssid: "xxx"
password: "xxx"
captive_portal:
ota:
password: "12345678"
api:
Enable logging
logger:
baud_rate: 0
level: VERY_VERBOSE
hardware_uart: UART1
Enable Home Assistant
uart:
id: uart0
baud_rate: 2400
tx_pin: TX
rx_pin: RX
text_sensor:

platform: custom
lambda: |-
auto my_custom_sensor = new UartReadLineSensor(id(uart0));
App.register_component(my_custom_sensor);
return {my_custom_sensor};
text_sensors:
id: "uart_readline"
name: "EASUN_UART_Return"

button:

platform: template
name: "GetInfos"
on_press:

uart.write: "^P005GS\r"

platform: template
name: "Solar_first"
on_press:

uart.write: "^S009PCP0,0\xAC\r"

platform: template
name: "Solar_Utiluty"
on_press:

uart.write: "^S009PCP0,1\xAC\r"

platform: template
name: "Solar_Only"
on_press:

uart.write: "^S009PCP0,2\xAC\r"

platform: template
name: "Battery_load_40A"
on_press:

uart.write: "^S013MCHGC0,040"

platform: template
name: "Battery_load_50A"
on_press:

uart.write: "^S013MCHGC0,050"

platform: template
name: "Battery_load_40A"
on_press:

uart.write: "^S013MCHGC0,040"

platform: template
name: "GetInfos_II"
on_press:

uart.write: "^SP007PIRI"

interval:

interval: 10s
then:

uart.write: "^P005GS\r"
#############################################################################

I then extract the power values from the string via a homeassitant sensor..
#############################################################################

platform: template
sensors:
EASUN1 Power
easun1_power_watt:
friendly_name: Easun1PowerWatt
unit_of_measurement: W
device_class: power
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[16] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{easun1_value}}
easun1_battery_voltage:
friendly_name: Easun1BatteryVoltage
unit_of_measurement: V
device_class: voltage
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[7] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{(easun1_value | int / 10 ) | round(1)}}
easun1_battery_charging_current:
friendly_name: Easun1ChargingBatteryCurrent
unit_of_measurement: A
device_class: current
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[11] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{easun1_value | int}}
easun1_battery_discharging_current:
friendly_name: Easun1DischargingBatteryCurrent
unit_of_measurement: A
device_class: current
value_template: >-
{% set m = ((states.sensor.easun_uart_return.state.split(","))[0] )[:2]   %}
{% if m == "^D" %}
{% set easun1_value = ((states.sensor.easun_uart_return.state.split(","))[10] )%}
{% else %}
{% set easun1_value = ((states.sensor.easun1_power_watt.state ))%}
{% endif %}
{{easun1_value | int}}
#############################################################################

It is not very already solved but it works

I've pushed a feature branch to visualize the required changes to implement the PI18 protocol.
I would be happy about some example responses retrieved using:
https://github.com/syssi/esphome-pipsolar/blob/pi18/esp8266-example.yaml
I'm a bit confused by the response example above because it doesn't match with the frame structure.

Hello Syssi and thank you for your commitment. I have flashed the firmware once but with me still no feedback comes from the esp. However, I have seen that the special character is sent. I think I can cope with it now. I will make the days times a few test and give a feedback. which concerns the Frames agrees however with my documentation of P18. I am however also not at the PIRI command but at the P005GS around the achievement values. Kind regards Christian

The proper decoding of the ^P007PIRI isn't implemented yet. Some example responses would be helpful here. I would like to add new commands step by step.

Thanks again, happy to support you with tester results. Here the response in my environment
[09:43:02][D][uart_debug:158]: >>> "^P007PIRI\xEE8\r"
[09:43:02][D][pipsolar:838]: Sending polling command : ^P007PIRI with length 9
[09:43:07][D][pipsolar:755]: timeout command to poll: ^P007PIRI

Alright. It looks like you cannot support here because your inverter doesn't support the command? ;-)

I have done a test with sending the command directly by uart. here i get a proper response for both commands
[10:48:08][D][uart_debug:158]: >>> "^P005GSX\x14\r"
[10:48:08][VV][scheduler:026]: set_timeout(name='', timeout=2000)
[10:48:08][D][uart_debug:158]: <<< "^D1062312,500,0000,000,0000,0000,000,518,000,000,000,004,036,027,000,000,0302,0000,2438,0000,0,2,0,0,1,2,2,0\xDC\x8E\r"
[10:48:10][VV][scheduler:206]: Running timeout '' with interval=2000 last_execution=3185572 (now=3187573)
[10:48:10][D][uart_debug:158]: >>> "^P007PIRI\xC3\xAE8\r"
[10:48:10][VV][scheduler:026]: set_timeout(name='', timeout=2000)
[10:48:10][D][uart_debug:158]: <<< "^D0892300,243,2300,500,243,5600,5600,480,500,520,480,554,540,2,010,060,0,0,2,9,1,0,0,0,1,00\xD6x\r"

Do you have an idea why the checksum of your ^P007PIRI request is different?

Sorry, i dont have an idea but that is what i senp via uart for the test
  - uart.write: "^P007PIRI\xEE8\r"
  - delay: 2s

I am also a little puzzled about the command that comes from the ESP. In the test in which I simply send the command via uart is sent a coherent string.

when I compile your code the ESP sends the following

Did you use the same baud rate for both tests?

Hi Sebastian,
Will this help? I released the following commands in Easun-Test.yaml
# Query protocol ID
- uart.write: "^P005PI\r"
- delay: 2s
  #  Query current time
  - uart.write: "^P004T\r"
  - delay: 2s

  #  Query total generated energy
  - uart.write: "^P005ET\r"
  - delay: 2s

  #  Query generated energy of year
  - uart.write: "^P009EY\r"
  - delay: 2s

  #  Query generated energy of month
  - uart.write: "^P011EM\r"
  - delay: 2s

  #  Query generated energy of day
  - uart.write: "^P013ED\r"
  - delay: 2s

  #  Device Serial Number inquiry
  - uart.write: "^P005ID\r"
  - delay: 2s

  #  Device CPU version inquiry
  - uart.write: "^P006VFW\r"
  - delay: 2s

  #  Query Max. charging current selectable values
  - uart.write: "^P009MCHGCR\r"
  - delay: 2s

  #  Query Max. AC charging current selectable values
  - uart.write: "^MUCHGCR\r"
  - delay: 2s

  # Query different rated information of parallel system
  - uart.write: "^P007PRI\r"
  - delay: 2s

  #  Query general status of parallel system
  - uart.write: "^P007PGS\r"
  - delay: 2s

  #  Query fault and warning status
  - uart.write: "^P005FWS\r"
  - delay: 2s

  #  Query default value of changeable parameters
  - uart.write: "^P005DI\r"
  - delay: 2s

  #  Device rated information
  - uart.write: "^P007PIRI\r"
  - delay: 2s

  #  Query general status
  - uart.write: "^P005GS\r"
  - delay: 2s

  #  Device working mode inquiry
  - uart.write: "^P006MOD\r"
  - delay: 2s

  #  Query enable/disable flag status
  - uart.write: "^P007FLAG\r"
  - delay: 2s

  #  Query AC charge time bucket
  - uart.write: "^P005ACCT\r"
  - delay: 2s

  #  Query AC supply load time bucket
  - uart.write: "^P005ACLT\r"
  - delay: 2s

this is the answer:
[11:02:48][D][uart_debug:158]: >>> "^P007PRI\r"
[11:02:48][D][uart_debug:158]: <<< "^D0401,00,0\x02001 020  00.000000,0,000,000,0]e\r"
[11:02:50][D][uart_debug:158]: >>> "^P007PGS\r"
[11:02:50][D][uart_debug:158]: <<< "^D1131,0,00,0000,171,0000,000,0000,0000,12338,12336,000,000,257,337,257,337,000,5535,2345,0514,0000,0,0,0,0,0,0,051e\xC1\r"
[11:02:52][D][uart_debug:158]: >>> "^P005FWS\r"
[11:02:52][D][uart_debug:158]: <<< "^D03900,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0\xA6|\r"
[11:02:54][D][uart_debug:158]: >>> "^P005DI\r"
[11:02:54][D][uart_debug:158]: <<< "^D0682300,500,0,408,540,564,460,540,060,30,0,0,1,0,0,0,1,0,0,1,1,0,1,1Q\xE6\r"
[11:02:56][D][uart_debug:158]: >>> "^P007PIRI\r"
[11:02:56][D][uart_debug:158]: <<< "^D0892300,243,2300,500,243,5600,5600,480,470,530,440,555,544,2,030,090,1,1,2,9,0,0,1,0,1,00\x82\xAE\r"
[11:02:58][D][uart_debug:158]: >>> "^P005GS\r"
[11:02:58][D][uart_debug:158]: <<< "^D1062422,499,2305,499,1475,1458,026,526,000,000,000,007,084,046,000,000,1924,0000,2654,0000,0,2,0,1,1,2,0,1\\xE8\r"
[11:02:59][D][uart_debug:158]: >>> "^P005PI\r"
[11:02:59][D][uart_debug:158]: <<< "^D00518;\x03\r"
[11:03:00][D][uart_debug:158]: >>> "^P006MOD\r"
[11:03:00][D][uart_debug:158]: <<< "^D00503\xB9Y\r"
[11:03:01][D][uart_debug:158]: >>> "^P004T\r"
[11:03:01][D][uart_debug:158]: <<< "^D01720230320114613\x0E\xAE\r"
[11:03:02][D][uart_debug:158]: >>> "^P007FLAG\r"
[11:03:02][D][uart_debug:158]: <<< "^D0201,1,1,0,0,1,0,1,0\xF6=\r"
[11:03:03][D][uart_debug:158]: >>> "^P005ET\r"
[11:03:04][D][uart_debug:158]: <<< "^D01100802946\x0Ey\r"
[11:03:04][D][uart_debug:158]: >>> "^P005ACCT\r"
[11:03:04][D][uart_debug:158]: <<< "^D0120000,0000\xC2\x1C\r"
[11:03:05][D][uart_debug:158]: >>> "^P009EY\r"
[11:03:06][D][uart_debug:158]: <<< "^0\e\xE3\r"
[11:03:06][D][uart_debug:158]: >>> "^P005ACLT\r"
[11:03:06][D][uart_debug:158]: <<< "^D0120000,0000\xC2\x1C\r"
[11:03:07][D][uart_debug:158]: >>> "^P011EM\r"
[11:03:08][D][uart_debug:158]: <<< "^0\e\xE3\r"
[11:03:09][D][uart_debug:158]: >>> "^P013ED\r"
[11:03:10][D][uart_debug:158]: <<< "^0\e\xE3\r"
[11:03:11][D][uart_debug:158]: >>> "^P005ID\r"
[11:03:11][D][uart_debug:158]: <<< "^D0251496132209100190000000\xB2[\r"
[11:03:13][D][uart_debug:158]: >>> "^P006VFW\r"
[11:03:13][D][uart_debug:158]: <<< "^D02007601,08028,00000\x00\xC2\r"
[11:03:15][D][uart_debug:158]: >>> "^P009MCHGCR\r"
[11:03:16][D][uart_debug:158]: <<< "^D050010,020,030,040,050,060,070,080,090,100,110,120z\xCB\r"
[11:03:17][D][uart_debug:158]: >>> "^MUCHGCR\r"
[11:03:17][D][uart_debug:158]: <<< "(NAKss\r"
[11:03:19][D][uart_debug:158]: >>> "^P007PRI\r"
[11:03:20][D][uart_debug:158]: <<< "^D0401,00,0\x02001 010  00.000000,0,000,000,0\x93\xB9\r"

Yes. This is helpful. Could you provide another log? I would be happy about 2-3 responses per command in total. I will provide the same commands including a checksum at the end to get an idea your inverter supports command incl. checksum too.

I am also a little puzzled about the command that comes from the ESP. In the test in which I simply send the command via uart is sent a coherent string.
when I compile your code the ESP sends the following

OK, this problem has cleared up. I use the RX, TX pins and had forgotten to change that and switch the logger to UART1.

Hello,
I made a local file pipsolar.h, pipsolar.cpp using P005GS.
I created the various protocol sensors and I tried to decorate it. I get in HA only 0
I realized that the answer I got was empty or incorrectly decoded.
I only left listening to the PIPSOLAR_TEXT_SENSOR(last_qpigs, P005GS)
#easun1.yaml
text_sensor:

platform: pipsolar
pipsolar_id: inverter0
last_qpigs:
name: "${name} last_qpigs"

For the sample in the pipsolar.cpp file I added this:
this->last_qpigs_->publish_state("test test");
this->last_qpigs_->publish_state(tmp);
I get this:
[15:51:28][D][pipsolar:848]: Sending polling command : ^P005GS with length 7
[15:51:29][D][pipsolar:453]: Decode P005GSs
[15:51:29][D][text_sensor:067]: 'easun1 last_qpigs': Sending state 'test test'
'
[15:51:29][D][pipsolar:848]: Sending polling command : ^P005GS with length 7
[15:51:30][D][pipsolar:453]: Decode P005GSs
[15:51:30][D][text_sensor:067]: 'easun1 last_qpigs': Sending state 'test test'
'
Here I have to see the answer to the buffer, and I see only " ' "
Is it possible "^" yes, it interferes with the buffer and if so how I can remove it before I start processing it. My knowledge is insignificant

@BeckoPopov Could you upload your code somewhere? Do you know how to use git?

no

<EMAIL_ADDRESS>

Done, you have mail

I think I found the problem
The buffer overflows and from there and the control amount is not true
#pipsolar.h
static const size_t PIPSOLAR_READ_BUFFER_LENGTH = 150;
From 110 to change to 150. It works for me.
I have already written almost all the sensors. After testing them, I will send them to Sebastian

Good job! I'm happy about your progress here.

The implementation doesn't allow a different handling for selected sensors. If the value doesn't change the value doesn't get published again and again. It gets published on every change only. I recommend to remove "useless" sensors from the YAML on the long run.

Nice adding :)

Hello all, I have today again started the attempt to connect my EASUN with PI18 with this module to HA. However, I get as soon as I connect tx after the first command was sentet only (NAKss\r from EASUN back. This does not stop by itself. Does anyone have an idea?
Many greetings
Christian


Unsafe access to uninitialized variables is allowed in any function

TypeScript Version:  3.3.1

Search Terms:
uninitialized variable, unsafe access
Code
function blowup() {
    ohNo.toLocaleLowerCase();
}

let ohNo: string;

blowup();

Expected behavior:
This should not compile when using strictNullChecks
Actual behavior:
It compiles, probably because the flow analysis abandonned.
This convenience is not worth the safety tradeoff, the compiler should enforce that ohNo be typed as string | undefined since the initialization code is not immediately following.
Playground Link:
https://www.typescriptlang.org/play/#src=function blowup() {
    ohNo.toLocaleLowerCase()%3B
}

let ohNo%3A string%3B

blowup()%3B
Related Issues:
Not really. It's somewhat related to the old bugs around class property initialization not being enforced.

We can't tell this example apart from
function blowup() {
    ohNo.toLocaleLowerCase();
}
function rescue() {
    ohNo = "";
}

let ohNo: string;
rescue();
blowup();

because we don't inline the flow-control effects of functions

Sure! But then why allow that type declaration in the first place then?
I'd say it should be consistent with class property initialization which must be either inline or done in the constructor... and since we don't have a constructor there... :)

Which part would be theoretically disallowed?

To make it easy for the compiler (and for the developers who maintain this code! after all, levels of indirection like a function call to initialize the var is just as difficult to follow for a dev), I would say:
"If a variable is not initialized immediately after its declaration (not following function calls flow), force it to be declared with | undefined"
So the disallowed thing here would be to declare ohNo as just a string

I'm unclear on the definition of "immediate" here. The Math.random call could indirect into code that observes ohYes; we have no way of knowing.
The line has to be drawn somewhere between "always allowed" and "always disallowed"; I agree we could shift that line a little bit one way or another, but moving it to fix one example but break others isn't really ideal in terms of not introducing random breaking changes.

"immediate" as in, direct code statements, not function calls, since functions seem to be the current limitation

What I mean is, the ohYes variable is not immediately initialized in your example, because there's an intervening possibly-undefined-observing function call between its declaration and its definite initialization. I suspect that will often be the case even for code that is well-formed.
We could add a flag but this could also be syntactically enforced by a lint rule, so I'd generally defer to that route, especially since the definition of "immediate" is really up for debate.

I've been wondering recently what things in Typescript can cause runtime errors even with everything strict, I guess this is one 😱
I expected this to be an error in strict mode, it should be required to be string | undefined if not initialized on the same line.
let ohNo: string;

Any complex initialization logic can be done in a function
let ohNo: string = computeOhNo();

function computeOhNo() {
   if (Math.random() > 0.5) {
     return 'biiig';
   }
   return 'nope';
}

Isn’t this a duplicated of #23305?

function invoke(fn: () => void) { fn() }

invoke(() => console.log(someVar)) // this will cause runtime errors

const someVar = 123


c21e: js fix for win-ia32

Summary
As part of updating cucumber-js to gherkin 7.0.4 (using the go binary), I'm hitting an issue when trying to run tests on appveyor (see screenshot)

Details
Appears ia32 is not properly mapped to 386, the way x32 is.

Motivation and Context
Want to be able to use gherkin go binaries as part of gherkin js on win ia32.

How Has This Been Tested?
Updated tests. Real test will be once this is released and no longer get this error on appveyor.

Screenshots (if appropriate):

Types of changes

[x] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).

Checklist:

[ ] The change has been ported to Java.
[ ] The change has been ported to Ruby.
[ ] The change has been ported to JavaScript.
[ ] The change has been ported to Go.
[ ] The change has been ported to .NET.
[ ] I've added tests for my code.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Gherkin 8 gets rid of the Go executables, so c21e won't be needed anymore. We're abandoning the embed-executable-in-packages approach completely, since too many corporate firewalls will block them.
So I don't think this is needed?

We should still add this fix, in case we change our mind later, but for now, c21e shouldn't be part of anything we release.

Hmm, okay good to know. Sorry to hear that.


C#: Recognize .proj files in autobuilder

When determining the target of msbuild or dotnet build, first look for .proj files, then .sln files, and finally .csproj/.vcxproj files. In all three cases, choose the project/solution file closest to the root.
@calumgrant @jf205

This pull request introduces 1 alert and fixes 1 when merging 1afc529e63a8682a3d8e14efbab4f544db71c158 into 4e2d40aad8d18c3279adfe069927710f5682b9bc - view on LGTM.com
new alerts:

1 for Generic catch clause

fixed alerts:

1 for Generic catch clause

Comment posted by LGTM.com

This pull request introduces 1 alert and fixes 1 when merging 8648c8e6a00631c1c005a21a1a5d802cb45fac86 into e062851709488e287a6644cba466ec48261dfc1c - view on LGTM.com
new alerts:

1 for Generic catch clause

fixed alerts:

1 for Generic catch clause

Comment posted by LGTM.com

This pull request introduces 1 alert and fixes 1 when merging 9d0cd1a6eaad42d3d89ec66ebec917c0f477d720 into 201f64ef8ebc8d86506be995cd15a16bbf074d54 - view on LGTM.com
new alerts:

1 for Generic catch clause

fixed alerts:

1 for Generic catch clause

Comment posted by LGTM.com

This pull request introduces 1 alert and fixes 1 when merging 743fc85ef1ed92027dbc3e2502a183ab358576b7 into 201f64ef8ebc8d86506be995cd15a16bbf074d54 - view on LGTM.com
new alerts:

1 for Generic catch clause

fixed alerts:

1 for Generic catch clause

Comment posted by LGTM.com

Rebased again.

This pull request introduces 1 alert and fixes 1 when merging<PHONE_NUMBER>aab2b619870bbfdac6dec997006ef3 into 4ad59235d8a9308104c42b6dfa711ccba52a71fa - view on LGTM.com
new alerts:

1 for Generic catch clause

fixed alerts:

1 for Generic catch clause

Comment posted by LGTM.com


#144937453 Users should receive a JWT on successful signup and login

What does this PR do?
This pull request assigns a JWT token to users on successful sign in and signup to the site.
Description of Task to be completed?

Users should receive a JWT on successful signup
Users should receive a JWT on successful login

How should this be manually tested?
After successful signup or login, check the local Storage for the JWT
Any background context you want to provide?
JWT is used majorly for authentication, once a user is logged in and assigned a JWT, each subsequent request will include the JWT assigned to the user.
What are the relevant pivotal tracker stories?
Users should receive a JWT on successful login #144937451
Users should receive a JWT on successful signup #144937453
Screenshots (if appropriate)

Questions:
N/A

Changes Unknown when pulling 4de7c21ab59f7d1f0029dba61671d5248dba02b8 on feature/144937453/users-should-receive-a-jwt-on-successful-login into ** on staging**.

Coverage remained the same at 0.0% when pulling a17cbd29f187b7307a10cbe316c944555fe05002 on feature/144937453/users-should-receive-a-jwt-on-successful-login into a0b4cf578b88673623435408a6531b49cc68d3f6 on staging.

Coverage remained the same at 0.0% when pulling 13a038fc98e0cea5e808018ea042f03f7592d742 on feature/144937453/users-should-receive-a-jwt-on-successful-login into a0b4cf578b88673623435408a6531b49cc68d3f6 on staging.


2.6.1 StringPrimary no longer accepts aggregate functions as argument(AVG, SUM, COUNT, MIN and MAX)

BC Break Report

Q
A

BC Break
yes

Version
2.6.1

Summary

After upgrading from 2.5.14 to 2.6.1 StringPrimary no longer accepts aggregate functions as argument(AVG, SUM, COUNT, MIN and MAX).
Which affects any functions depending on StringPrimary, for example CONCAT
Previous behavior
CONCAT(teable.field1, MAX(table.field2)) => '{text from field1}{maximum value of field2}'
Current behavior
CONCAT(teable.field1, MAX(table.field2)) => ERROR: Expected StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression, got 'MAX'
How to reproduce
pass any aggregate function to CONCAT (for example) as argument
PS
Old StringPrimary function looked like:
            case Lexer::T_CASE:
            case Lexer::T_COALESCE:
            case Lexer::T_NULLIF:
                return $this->CaseExpression();

            default:
                if ($this->isAggregateFunction($lookaheadType)) {
                    return $this->AggregateExpression();
                }
        }
        $this->syntaxError(
            'StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression'
        );

while new one missing part responsible for accepting aggregate expressions:
            case Lexer::T_CASE:
            case Lexer::T_COALESCE:
            case Lexer::T_NULLIF:
                return $this->CaseExpression();
        }
        $this->syntaxError(
            'StateFieldPathExpression | string | InputParameter | FunctionsReturningStrings | AggregateExpression'
        );

Creating this as separate issue from #7205, because this concerns any function relient on StringPrimary

https://github.com/doctrine/doctrine2/commit/866418e40f38e33f2c5dcf16ab9bccd3cdffa563#diff-3aff39fbb5b16ba9be6df33f2fcde380 is the culprit

#7296

Fixed via #7296 (for 2.6.2).


Add support for Phi3V

PR to add support for Phi3V.
Fixes #1108

NOTE: Testing is still pending.

I added you as a co-author in https://github.com/sgl-project/sglang/pull/2500, so your future commits will trigger CI automatically.
Can you fix the lint error? https://sgl-project.github.io/references/contributor_guide.html#format-your-code

How did you test the correctness of this model locally? Did you compare the logits against HF implements, similar to this one? https://github.com/sgl-project/sglang/pull/2365#discussion_r1872868614

How did you test the correctness of this model locally? Did you compare the logits against HF implements, similar to this one? #2365 (comment)

Thanks for the pointer @merrymercy. I'll test it out.
Currently, it seems that Phi3VConfig and Phi3VModel are not part of the transformers library. Instead, they reside in the model files. As a result, I need to add them to the transformers library first to make this PR functional.
In other words, the following imports currently throw an error:
from transformers import Phi3VConfig, Phi3Vmodel

@ravi03071991 Can you fix the error in CI? https://github.com/sgl-project/sglang/actions/runs/12452217969/job/34760948018?pr=2383#step:4:984 Please make sure you can run it locally.

@merrymercy yeah sure. I am still working on it.


I would like to add few Sorting Algorithms

I will add Selection Sort, Bubble Sort, Merge Sort and Quick Sort.

Go ahead

I would like to add some sorting algorithms in python


Use latest trivy version to finally solve the ratelimit issue :)

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

Solved in https://github.com/aquasecurity/trivy-action/pull/434 :)


BubbleSort

Bubble sort is a non-optimal sorting algorithm that works by comparison. As comparisons are done, the largest item will naturally bubble to the top.
Checklist

[ ] implementation
[ ] tests
[ ] jsdoc

Specifics

Notes

References

I can take this one

Added in v0.9


Copilot errors appearing in problem panel (typescript's language server is linting copilot's answers / vscode is checking copilot)

Screenshot:

Typescript output:
2024-03-01 11:46:40.819 [info] Using tsserver from: c:\Users\me\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\node_modules\typescript\lib\tsserver.js
2024-03-01 11:46:40.819 [info] <syntax> Forking...
2024-03-01 11:46:40.819 [info] <syntax> Starting...
2024-03-01 11:46:40.819 [info] <semantic> Forking...
2024-03-01 11:46:40.819 [info] <semantic> Starting...

Version: 1.87.0 (user setup)
Commit: 019f4d1419fbc8219a181fab7892ebccf7ee29a2
Date: 2024-02-27T23:41:44.469Z
Electron: 27.3.2
ElectronBuildId: 26836302
Chromium: 118.0.5993.159
Node.js: 18.17.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19045
Steps to Reproduce:

Open copilot chat panel.
Ask a question.
Observe Copilot's code being linted by typescript and appearing as errors in the problem panel.

I'm having the same issue!

same issue suddenly occurring for me as well

same!

HI thank you for posting this issue. I believe this is as designed. Copilot just inserts code into the editor, and it continues behaving as before, that is it continues to analyze the code in search for compiler error. Let me know if you meant something else.

Hi, I am not quite sure I understand fully. Could you include a GIF showing the error, so we can have a visual representation of what is happening? Following this, I will route the issue to the appropriate person.

Hello @aiday-mar,
After the latest update of VSCode, the TypeScript error checks seem to be scanning not just my project files but also the code snippets in Copilot's chat window. This results in some odd errors popping up in the problems window, like references to "resource": "6dcd1caf-c6e3-4804-90ad-57c8dca5cbb9", which are from the Copilot chat.
It's a bit confusing because it mixes up actual project errors with these irrelevant ones. Hope this can be looked into.
Please check the demo video below
https://github.com/microsoft/vscode-copilot-release/assets/136462994/287b5ace-2e9e-4f68-898b-07961285983a
Thanks!

I'm having the same problem, suddenly occurred for me as well this past week

I see thank you for the clarification. @mjbvz is this issue a duplicate of microsoft/vscode#206644?

I'm having the same problem, suddenly occurred for me as well this past week, I don't believe these are related

Hi @aiday-mar,
Any news?

Confirmed this with additional details here:   https://github.com/orgs/community/discussions/112621


add: kalendar-git

Check CI logs

Kalendar requires KFrameworks 5.88 and version 21.12 of the KDE PIM-related dependencies (e.g. Akonadi, kdepim-runtime) to be installed.
It will not build in debian stable. Only Ubuntu 22.04+

@wizard-28 what to do


Add cookie support

Initial implementation of #843; updates the bundled copy of six to v1.10.

One behavior in this revision that may be worth more discussion is handling the case where the ConnectionPool has a CookieJar already, and one is passed in the request method.
Currently, in that scenario, the method-passed CookieJar alone is used for both cookie retrieval and storage to avoid surprises; I think it'd be a bit odd if we pulled from a jar and didn't store in it, and even odder if we stored the same cookie in two places when a specific place to store it has been passed to us.
Of course, open to changes, though.

ce9394a2564608823019ad6b59276bfa82bad642 should be a separate pull request.

I would very very much prefer to keep the current pools unaware of cookies. Ideally we should have composition by using a higher-level class (such as SessionManager mentioned in the other thread) that contains/embeds a pool-like object and proxies requests/responses to these other pools, fiddling with headers along the way.

@shazow, the cost to going that way is that all the redirect logic happens inside ConnectionPool.urlopen(); we'd lose the chance to get cookies on 303s (not sure if that's a common use case). There's also the chance, if we're setting any headers in PoolManager or ConnectionPool, that we'll lose the Cookie header we set on the higher level.
Rather than having cookie logic inside ConnectionPool, what would the thoughts be on an optional Context object passed into ConnectionPool.urlopen() which, if present, gets sent a copy of the final request and response to manipulate? SessionManager could pass it into every request it makes, and ConnectionPool.urlopen() could use it in a relatively naïve manner - Context.retrieve(request) and Context.update(request, response), for example. Right now, that'd be a pretty thin wrapper for the SessionManager's instance CookieJar, but that could change in the future, and could have an API to expand its use.
Let me do some fiddling around a SessionManager and see where I get. This whole PR is a first draft, so I'm not too attached to it.

Cookies on redirects are remarkably common, and need to be handled.

You'll also want to be secure by default by using the right cookie jar policy so that you don't send unscoped cookies to every domain under the sun. (You also need to make sure you parse the cookie headers appropriately that way domains that don't specify a host are associated with one anyway.)

the cost to going that way is that all the redirect logic happens inside ConnectionPool.urlopen(); we'd lose the chance to get cookies on 303s (not sure if that's a common use case).

The redirect logic largely lives in the Retries abstraction. The piece that live inside of ConnectionPool is only a few lines long which I'd be happy to replicate or abstract into a shared helper. I don't feel that's a strong reason to keep it there, at least. Is there anything else?

There's also the chance, if we're setting any headers in PoolManager or ConnectionPool, that we'll lose the Cookie header we set on the higher level.

I think it's reasonable to make the assumption that if you're using a higher-level SessionManager, then mutating the state of the encapsulated Pool is out of scope of our guarantees.
The Context object proposal is not terrible but I'd prefer to avoid it if we can. I feel that's what the Retry object is basically right now, and if we go that route then we should merge that functionality somehow, and further creep the scope into request history also.

Okay! Lots of stuff here.
@sigmavirus24: the security concern should be getting handled by the default policy; I'll add some unit testing to ensure that's the case, and include an API in the SessionManager to let users set their own policy.
It sounds like encapsulation of the PoolManager/ConnectionPools is the name of the game, so we can definitely go that way. Essentially, I'll need to build the Response object out a bit so we can work with it at a higher level, and play with the redirect logic.
@shazow: Would you still prefer to avoid a Context object if it incorporated the items you mentioned (retry and request history)? That's work I'm happy to do if it shifts the balance.
Any other thoughts before I get to work on a second draft?

the security concern should be getting handled by the default policy

Yeah, you would hope that, but it is not the case. See https://github.com/kennethreitz/requests/issues/2576 for more details.

Very good to know. Looks like we'd want DomainStrict, then, unless I'm mistaken (as always, quite possible).

@haikuginger I would suggest avoiding the Context object if we can. That's going to be a bigger change than it seems because we're going to insist on merging a whole bunch of existing functionality in there. :)
In general, when possible, try to make the minimal amount of changes in existing components. This helps keep reduce the API surface that we're making compatibility commitments on. The other reason is that we want to be able to swap out functionality if needed (e.g. someone should be able to modify or bring their own cookie management logic).

I'm closing this PR as it's superseded by #849.


Showing multiple shared dbs for same shared dataset for a single user in worksheets view

Describe the bug
A User (UserA) belongs to Group1, Group2, and owns consumption role (CR-1) all within EnvX. When all 3 Groups request access and get a share successfully approved to 1 Dataset (DatasetZ), UserA can see 2 shared DBs show but only 1 works querying the data in Worksheets

I believe this is because of filtering to the shared Datasets (in searchEnvironmentDataItems) is not filtering for the group that owns the worksheet so a shared DB is showing for both Group1 and Group2 but when querying the data it is using the role mapped to the group that owns the worksheet

How to Reproduce

Create EnvX with Owner Group1
Invite Group2 and create a consumption role (CR-1) in EnvX
Have UserA belong to Group1 and Group2
Create a share request to a Dataset’s tables to Group1, Group2, and CR-1
As UserA, create a new Worksheet and try to query data shared to UserA in EnvX

Multiple DBs should appear but not all will work

Expected behavior
Only show 1 shared DB that is able to query data for the Group that owns the Worksheet
Your project
No response
Screenshots
No response
OS
N/A
Python version
N/A
AWS data.all version
v2.0
Additional context
No response

This should be solved with #1063


Failing/Unstable E2E: Language My Account Pages

regression/site-context/language/language-my-account-pages.e2e-spec.ts is unstable when running locally pointing to dev17.
Fix it so that the test is consistently passing.

Going to take over this ticket from Miro as his priority right now is working with the apparel

Merged to develop (prior to 1.0.1 branch change)

I don't see a fix neither on dev-com17, nor dev-com19.

adding the 2 - needs a fix in here from GH-3525
order-history-no order
and language-my-account
Above ss is not related because they are working.

PR: GH-3528


OperationalError: (1118, 'Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.')

I was testing the django-monit-collector using
Django 1.10
Mysql 5.5
And afters some time i start getting this error
OperationalError: (1118, 'Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline.')
I am not sure what to configure
but it has something to do with the storage in one row.

Each list is stored in django's TextField(), so those text fields can get quite long. I think the problem is the maximum row size limit of MySQL. Solutions:

Use PostgreSQL, which has a much larger limit. This is probably also the reason why the django ArrayField() class only works with PostgreSQL.

Maybe you can solve it by changing your configuration file my.cnf as explained here:
http://stackoverflow.com/questions/15585602/change-limit-for-mysql-row-size-too-large
then restart: /etc/init.d/mysqld restart

A quick but maybe not satisfying solution is to set MONIT_UPDATE_PERIOD to a larger value and/or MAXIMUM_STORE_DAYS to a smaller one to reduce the total number of data points.


Request for missed C++ cv::fisheye::projectPoints function.

The opencv::calib3d::fisheye_undistort_points Rust function corresponds to cv::fisheye::undistort_points C++ function.
But cv::fisheye::distort_points C++ function has not analog in Rust.
I expected to see something like opencv::calib3d::fisheye_distort_points.

Hi, sorry for the late reply, the function you're looking for is actually this one: https://docs.rs/opencv/latest/opencv/calib3d/fn.distort_points.html, it just doesn't have the fisheye_ prefix. I'll add the prefix in the next release, but for now you can use the function.

v0.69.0 has been released with this fix

P.S. CHANGES.md contains two 0.68.0 releases.


Adding TAC link

closes https://github.com/MicrosoftDocs/OfficeDocs-SkypeForBusiness/issues/9075

@ashishguptaiitb PR has been copyedited and is ready for final review, could you please check and merge? Thanks!

Closing as someone else has created the edit later.

Closing as someone else has created the edit later.

Thanks @get-itips for closing this. I updated the docs in a different PR for various links and not just this one. It went live last night. Appreciate your proactivity to close this promptly.


Doc comment has trailing space

TypeScript Version:  master
Code
/// <reference path='fourslash.ts'/>

// @Filename: quickInfoJsDocTags.ts
/////** Doc */
////const /**/x = 0;

verify.quickInfoAt("", "const x: 0", "Doc");

Expected behavior:
Test passes.
Actual behavior:
Test fails. Doc comment is actually "Doc ".

I'm interested in helping out with the JSDoc support in TypeScript.  Let me know if #26029 looks like a reasonable approach to this issue.  Thanks!

Related: #21123

thanks @tschaub!


Failure when installing

So I have NPM, I run the script/bootstrap script which appeared to work fine.
But then I had this show up in my terminal (This is on a rPi)
pi@domoticz:~/harmony-api $ sudo script/bootstrap
npm WARN deprecated<EMAIL_ADDRESS>use @xmpp/xml package <https://www.npmjs.com/package/@xmpp/xml>
npm WARN deprecated<EMAIL_ADDRESS>this package is deprecated please use https://www.npmjs.com/package/@xmpp/client
npm WARN deprecated<EMAIL_ADDRESS>This module is no longer maintained, try this instead:
npm WARN deprecated   npm i nyc
npm WARN deprecated Visit https://istanbul.js.org/integrations for other alternatives.
npm WARN deprecated<EMAIL_ADDRESS>this package is deprecated please use https://github.com/xmppjs/xmpp.js
npm WARN deprecated<EMAIL_ADDRESS>use @xmpp/jid package <https://www.npmjs.com/package/@xmpp/jid>
npm ERR! code 128
npm ERR! Command failed: git clone --depth=1 -q -b cdata-for-ltx-parser https://github.com/swissmanu/ltx.git /root/.npm/_cacache/tmp/git-clone-9a330a76
npm ERR! fatal: could not create leading directories of '/root/.npm/_cacache/tmp/git-clone-9a330a76': Permission denied
npm ERR!

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-06-19T18_51_17_875Z-debug.log
pi@domoticz:~/harmony-api $

not sure if this works on a raspberry pi, but I had the same issue on a debian 10 install.
run the following command before script/bootstrap
sudo - s


Explore instrumenting SkRefCnt to see if we can illustrate linkages between Dart and Skia objects

Skia allows defining SK_REF_CNT_MIXIN_INCLUDE to override the implementation of SkRefCnt.
A high level thought that I want to explore:

In debug (and maybe profile?), define this to provide an implementation that tracks actions that increase the reference count against Dart objects
Have our Dart native wrapper objects use these new methods to provide either references to the object or some signal-ing/signal-able object
Enhance the ability to debug which object(s) in the Dart heap are retaining Skia objects - particularly larger Skia objects like SkImages.

/cc @rmacnak-google @chinmaygarde @jason-simmons @mtklein @mehmetf @liyuqian

I'm going to close this as infeasible. SkRefCnt does not allow virtualization of the methods we'd need for this, and it's often hard to get information this way anyway since the referencing goes deep into objects that Flutter doesn't care about (nor should it).


cmd/update-report: use better wording when appropriate.

From reading https://github.com/orgs/Homebrew/discussions/3328: I
initially thought we should just change "Updated" to "Modified" when
appropriate. After conversation with Bo98, though, I thought more and
saw that we're already checking for outdated formulae here so, rather
than ever traverse through the formula history, look at the outdated
formula and list them unless we've set
HOMEBREW_UPDATE_REPORT_ALL_FORMULAE in which case we show the
modifications.
While we're here, also do a bit of reformatting and renaming to better
clarify intent.

Review period skipped due to critical label.

FYI @boblail hope you're happy with the various defaults and options now. If not: shout and we'll consider tweaking further. Although I didn't adopt your changes, thank you for asking the questions that motivated me into improving brew update behaviour!

@MikeMcQuaid, sorry, I was AFK while moving!
👍 These changes work for me!

@boblail Hope the move went well, glad you're OK with these changes!


Modify PubsubUnboundedSource and PubsubReader to use the PubsubMessage proto.

Diffbased on #10807
Modifies PubsubUnboundedSource and PubsubReader to only use the proto PubsubMessage internally.

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Choose reviewer(s) and mention them in a comment (R: @username).
[ ] Format the pull request title like [BEAM-XXX] Fixes bug in ApproximateQuantiles, where you replace BEAM-XXX with the appropriate JIRA issue, if applicable. This will automatically link the pull request to the issue.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.


Local File

Any idea? Just followed the code snippets shown in example EchoServer. The below error occurred while starting the finagle server.
[ERROR] 	at MyServer.main(MyServer.scala)
[ERROR] Caused by: java.io.FileNotFoundException: /Users/samuelstarling/Development/personal/finagle-prometheus/target/scala-2.11/scoverage-data/scoverage.measurements.1 (No such file or directory)
[ERROR] 	at java.io.FileOutputStream.open0(Native Method)
[ERROR] 	at java.io.FileOutputStream.open(FileOutputStream.java:270)
[ERROR] 	at java.io.FileOutputStream.<init>(FileOutputStream.java:213)
[ERROR] 	at java.io.FileWriter.<init>(FileWriter.java:107)
[ERROR] 	at scoverage.Invoker$$anonfun$1.apply(Invoker.scala:42)
[ERROR] 	at scoverage.Invoker$$anonfun$1.apply(Invoker.scala:42)
[ERROR] 	at scala.collection.concurrent.TrieMap.getOrElseUpdate(TrieMap.scala:901)
[ERROR] 	at scoverage.Invoker$.invoked(Invoker.scala:42)
[ERROR] 	at com.samstarling.prometheusfinagle.mapper.FinagleToPrometheusMapper.metricFamilySamples(FinagleToPrometheusMapper.scala:15)```

@deepakmohanakrishnan1984 how you make it work, because I am adding the pom dependency but it says as follows:
Dependency com.samstarling:finagle-prometheus_2.11:0.0.1 not found
Br,

Hey @deepakmohanakrishnan1984: sorry I never replied to this, I don't think Github ever notified me about it. It maybe looks like something related to the plugin that I use for generating code coverage. Can you paste the full exception? It looks like the first part of the stack trace has been omitted.

@furahm01 Are you still having problems with this? If the dependency isn't found, you might need to configure Maven to resolve from Bintray. I'm looking at ways to make this easier.

@furahm01 Good news: the library is now in Maven Central.

I'm going to close this due to lack of activity: please let me know if I can help with anything.


Multiple libraries added and dependency version checks

Adding #91 libzimg support

required additional build libraries m4, autoconf, automake and libtool

Adding #98 AMF hardware encoder support
Adding #101 support for 10-bit and HDR10+ metadata in x265
Adding librav1e support

requires cargo, not installed

Adding version check for dependencies
Moving LDFLAGS updates outside of if blocks, otherwise won't link if library doesn't have to be rebuilt
Resetting CPPFLAGS after libpng install, otherwise libwebp install will error sporadically
Hopefully passes all tests this time (still waiting for complete): https://github.com/cdgriffith/ffmpeg-build-script/actions/runs/1221919034

Waiting to see result of https://github.com/markus-perl/ffmpeg-build-script/pull/102 for 10-bit support for x265

Updated x265 to support 8, 10 and 12 bit properly with all tests passing https://github.com/cdgriffith/ffmpeg-build-script/actions/runs/1227763031
Tested videos to produce 8, 10 and 12bit videos.
ffmpeg -y -i video.mp4 -map 0:v -c:v libx265 -pix_fmt yuv420p  -preset:v ultrafast   -map_metadata -1 -map_chapters -1 -an -sn -dn  "8bit.mp4"
ffmpeg -y -i video.mp4 -map 0:v -c:v libx265 -pix_fmt yuv420p10le  -preset:v ultrafast   -map_metadata -1 -map_chapters -1 -an -sn -dn  "10bit.mp4"
ffmpeg -y -i video.mp4 -map 0:v -c:v libx265 -pix_fmt yuv420p12le  -preset:v ultrafast   -map_metadata -1 -map_chapters -1 -an -sn -dn  "12bit.mp4"

$ /usr/bin/ffprobe -hide_banner -show_entries stream=pix_fmt -print_format flat -loglevel panic 8bit.mkv
streams.stream.0.pix_fmt="yuv420p"

$ /usr/bin/ffprobe -hide_banner -show_entries stream=pix_fmt -print_format flat -loglevel panic 10bit.mkv
streams.stream.0.pix_fmt="yuv420p10le"

$ /usr/bin/ffprobe -hide_banner -show_entries stream=pix_fmt -print_format flat -loglevel panic 12bit.mkv
streams.stream.0.pix_fmt="yuv420p12le"

Tested with HDR10+ video source as well.
Format profile                           : Main 10@L4@Main
HDR format                               : SMPTE ST 2094 App 4, Version 1, HDR10+ Profile B compatible
Codec ID                                 : V_MPEGH/ISO/HEVC
Chroma subsampling                       : 4:2:0 (Type 0)
Bit depth                                : 10 bits
Writing library                          : x265 unknown:[Linux][GCC 9.3.0][64 bit] 10bit

Great. If all checks pass, I'm going to create a new release of the script.
New features:

8, 10, and 12 bit pixel formats for x265
DR10+ Profile support
librav1e if cargo is installed
AMF hardware decoder support
libzimg support

Thx for your work!


Unable to run manim from Spyder

Hello everyone,
I'm pretty new to Python and neither had to set up different environments nor install a package (or something for it) outside of Anaconda or without the simple conda install  command.
As stated, I use Anaconda 3 and usually work with Spyder 4 on Windows 10 Pro 64 Bit.
I somehow successfully installed the manim package and set up a manim environment by partially following a YT video and the instructions on this git.
I have the following problems:

I can't setup a terminal in Spyder with my manim env. I guess Spyder can't find my virtualenv?
I can choose the manim env in VSCode and successfully render the example_scenes but only if I go to my manim directory from the terminal first which is okay but I don't know if that's the only way or if I set up something wrong (I'm not used to be forced to do that, is there a way to import manim and call the methods like I'm used to independent of the directory of my terminal)? I'm just a simple engineer and I honestly have no clue how complex software works in the background, I only know how to run my math stuff..As I said it's currently working (just from VSCode) but I'm wondering if it is possible to get it to my usual workflow (running the manim env in Spyder and especially calling manim methods without going to the directory with cd .. commands first).
I'd appreciate a helping hand a lot and thanks a lot to this amazing community in advance.

Sincerely

Okay,
I managed to pin it down a bit. I got Anaconda to recognize my manim env and got it to the Spyder terminal. What's now still bothering me is, that I don't seem to be able to change directory in the IPython console of Spyder and therefore can't run the extraction. Again, it works perfectly in VSCode but I'd love to have the Spyder variable explorer for my purposes.
I'll post the console log asap.

Have you tried using an absolute path when specifying manim.py? Also, are you using a virtual environment?


[BUG] Absence of a Proper Loading skeleton for the AddBlog Section

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
Present  Loader widget is unresponsive and not matching the website theme

Expected Behavior
The AddBlog section should have a proper loading skeleton that is responsive and theme accurate.
Reproduction steps
1. Login in
2. Click on Add Blog button
3. Notice the error

Screenshots
Proposed design

Logs
No response
Browsers
Chrome
OS
Windows

May I know who is working on this bug ?
Is this project still active?

I'm actually working on this issue

@krishnaacharyaa
It would be great 😸 if you could assign the GSSOC label and the level label as well


a new annotation has been introduced (rx.internal.util.GwtIncompatible)

Trying to get this to work with Errai 4.1.0 but when adding autorest 0.7 I get this. Any clue?
Thanks
 [WARNING] java.lang.RuntimeException: a new annotation has been introduced (rx.internal.util.GwtIncompatible); you cannot currently introduce new annotations in devmode. Please restart. [WARNING] 	at org.jboss.errai.config.rebind.MetaClassBridgeUtil.populateMetaClassFactoryFromTypeOracle(MetaClassBridgeUtil.java:88) [WARNING] 	at org.jboss.errai.config.rebind.AbstractAsyncGenerator$2.run(AbstractAsyncGenerator.java:197) [WARNING] 	at org.jboss.errai.config.rebind.AsyncGenerationJob.notifyStarting(AsyncGenerationJob.java:86) [WARNING] 	at org.jboss.errai.config.rebind.AsyncGenerators.notifyStarting(AsyncGenerators.java:188) [WARNING] 	at org.jboss.errai.config.rebind.AsyncGenerators.startAll(AsyncGenerators.java:144) [WARNING] 	at org.jboss.errai.config.rebind.AsyncGenerators.getFutureFor(AsyncGenerators.java:55) [WARNING] 	at org.jboss.errai.config.rebind.AsyncGenerationJob.submit(AsyncGenerationJob.java:109) [WARNING] 	at org.jboss.errai.config.rebind.AbstractAsyncGenerator.startAsyncGeneratorsAndWaitFor(AbstractAsyncGenerator.java:203) [WARNING] 	at org.jboss.errai.ioc.rebind.ioc.bootstrapper.IOCGenerator.generate(IOCGenerator.java:62) ...

😨 yep, this is a rxjava-gwt bug. It only includes this GwtIncompatible as a super-source and looks like this is not a good idea. I'll release rxjava-gwt 1.3.4 during this week with this problem fixed. In the mean time you can just create the annotation in your project (ie. in your src/main/java folder). The file should look like:
package rx.internal.util;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.CLASS) @Documented
@Target({ ElementType.TYPE, ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.FIELD })
public @interface GwtIncompatible {
    String value() default "";
}

Thanks, and what you suggest works.

I have just released rxjava-gwt:1.3.4-gwt1 and verified that it fixes the errai generator problem. You need to add an explicit dependency to rxjava:1.3.4 and rxjava-gwt:1.3.4-gwt1. 👍

By the way, you can use rxjava2, AutoREST it is mainly a REST metadata extractor so you can create your own request easily, this means, creating your own RequestResourceBuilder is recommended and fun 😜. And so for example, you can start just copying the provided one and migrating to RxJava 2, hehe just fun! In a small project, it looks overkilling, but you pretty soon will see how easy and powerful it is. If you have doubts you can ask in gitter 👍.

Thanks, I would like to use rxjava2 but I think that requires a bit more examples on how to do that. I have not used AutoREST before so I had to go with the examples here in the README.
Very nice workflow with the autorest-openapi and a yaml/json spec 👍
The update works. I had to exclude rxjava-gwt from autorest-gwt:
<dependency> 		   <groupId>com.intendia.gwt.autorest</groupId> 		   <artifactId>autorest-gwt</artifactId> 		   <exclusions> 			   <exclusion> 				   <artifactId>rxjava-gwt</artifactId> 				   <groupId>com.intendia.gwt</groupId> 			   </exclusion> 		   </exclusions> 	   </dependency>


SWA app insights unavailable even when the resource is linked to functions

The static web app is linked to a functions API and I have verified the API is working. The SWA isn't working, and when I try to see the app insights, it says I have to link it to functions.
From my work, I think my SWA isn't building correctly with I do azd deploy but I don't have an indication from azd deploy --debug that the build failed.
To Reproduce
Steps to reproduce the behavior:

In portal, verify API is working
In portal, verify SWA is linked to API from the "API" section.
In portal, go to "Application Insights" section, see error "App Insights is only application to Static Web Apps with at least one function..."

I am seeing a similar issue.. I am testing linked API with the staging environment, but there is nothing in the SWA logs when querying requests or traces, trying to investigate a 401 when attempting to access the API.


When the SoapyAirspy is ready tasks

[x] - Basic instructions wiki: https://github.com/pothosware/SoapyAirspy/wiki
[x] - Add to list of supported modules in the sidebar
[x] - Add to homebrew package soapyairspy.rb
[ ] - Add to PothosSDR windows installer
[ ] - Debian packaging for drivers PPA
[ ] - Deprecate SoapyOsmo[AirSpy]/disable by default
[ ] - update SoapyOsmo wiki: https://github.com/pothosware/SoapyOsmo/wiki

Just curious; I don't have a way to test, but how far along is SoapyAirSpy? Can it replace SoapyOsmo's airspy at this point? ...Boost is becoming less of a dependency :-P

Some announcement: https://groups.google.com/forum/#!topic/pothos-users/pJoTi_QgSCg
So, almost done. Can anyone volunteer a SoapySDRUtil --probe output for the airspy?


Stacked Area Chart with Focus+Context via brushing

Having tried to combine the stacked area chart and focus+context via brushing tutorials into one glorious amalgam, I'm a bit stuck: It almost works, except that the brush only updates the x-axis and the lowest area, not all the areas.
I understand that the stacked area is complicated, because it's magically recalculating based on the previous area, but I'd have thought that would have a bigger impact on something that altered the y-axis, not the x-axis. Am I missing something?

Please try Stack Overflow or the d3-js Google group for help.


Resources::version_info() hardcodes language code as 1033

Apparently there doesn't need to be a US English VERSIONINFO resource - I've come across a DLL that only has a version info resource for language 1049 (Russian). This is an unnecessary problem if you're only after the VS_FIXEDFILEINFO structure, which is language-independent and doesn't require a language code to be provided to VerQueryValueW.
It would be useful to have a few methods (names are provisional, I'm happy to bikeshed them):

Resources::fixed_version_info() -> Option<&'a VS_FIXEDFILEINFO> for when you only want the language-independent bit
Resources::first_version_info() -> Result<VersionInfo<'a>, FindError> for when you don't know or care what language's version info to get
Resources::localised_version_info(language: u16) -> Result<VersionInfo<'a>, FindError> for when you know what language to try for

Alternatively, the latter two could be replaced by a method that returns a collection of all VersionInfo resources and leaves it up to the user to pick which to use. That would also make it easier to inspect what languages have VersionInfo structures available.
(The language for Resources::manifest() is also hardcoded to 1033, presumably that can have the same issue, but I haven't looked into it.)

With my work on extracting icons and cursors I took a cursory look at this again.
I've changed how Resources::version_info works by just taking the first RT_VERSION language it finds. This kinda blows but it should... 'work' I guess? You can use the new Resources::find_resource_ex and manually construct a VersionInfo if you know the specific language.
A single version info block has lang parameters everywhere. Are these used in practice? Meaning does a single version info contain information in multiple languages? What would it mean if there are different version info blocks at the resource level (but within each version info block the language is consistent)? Eg. this stackoverflow question has an example.
From looking around I get the impression that different language resources are in different 'mui' binaries...
If you want to inspect the detailed information use for_each_string and extract what you need is the best I can offer right now.

A while ago I tried implementing something like what I suggested above, but it turned out to be pretty complicated and I all I personally needed was to get the first language, whatever it was, so I didn't pursue it.
With your change to Resources::version_info(), my original issue is resolved without having to care about the structure of the resources so much, so thanks!

Hey @Ortham , I've further refactored the VersionInfo API in #194 it should now match semantics of VerQueryValue much closer.

Thanks, that turned this (from before your change last month):
let bytes = resources
    .find_dir(Path::new("/16/1"))?
    .entries()
    .next()
    .ok_or(FindError::NotFound)?
    .entry()?
    .data()
    .ok_or(FindError::UnDirectory)?
    .bytes()?;

VersionInfo::try_from(bytes)
    .map_err(FindError::Pe)?
    .query_value(&"ProductVersion")
    .map(String::from_utf16_lossy)

into this:
resources.version_info()?
    .translation()
    .and_then(|translations| translations.first())
    .and_then(|translation| version_info.value(*translation, "ProductVersion"))

which is a lot nicer! I think it would be even better if I could write that as:
resources.version_info()?
    .translations()
    .first()
    .and_then(|translation| version_info.value(*translation, "ProductVersion"))

I.e. instead of having translation() return an optional slice, rename it to translations() and where the Option would be None, return an empty slice instead. I personally think it's a bit redundant to return an optional collection, though in this case I know why it's done like that. A singular method name possibly returning multiple translations also feels a bit odd, though the Option wrapping them is singular, so I guess that makes sense. Both minor things though, thanks! 👍


Flutter Module can't run with a plugin imported but Flutter app can do

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

create a flutter module
change dependencies in pubspec.yaml, add my plugin
code some function in main.dart
flutter run with connected iPhone
error comes out: Could not build the precompiled application for the device.
Error (Xcode): Undefined symbol: OBJC_CLASS$_CaptchaOption
I create a new flutter app
add dependencies in  pubspec.yaml like above, copy code in main.dart above, flutter pub get, flutter run, and it runs.

by the way. my plugin is special, it wraps a native .xcframework, don't know if it makes a difference or not
Expected results
hope module runs successfully with my plugin imported like flutter app
Actual results
in flutter module, I run flutter run,  symbol in my plugin can not be founded.
it seems like my plugin isn't imported to module successfully
Code sample
this is flutter module on github:
https://github.com/WYK15/MFCaptcha
Screenshots or Video
No response
Logs
No response
Flutter Doctor output
[✓] Flutter (Channel stable, 3.16.4, on macOS 13.4 22F66 darwin-x64, locale zh-Hans-CN)
    • Flutter version 3.16.4 on channel stable at /Users/wangyankun/Documents/Environments/flutter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 2e9cb0aa71 (2 days ago), 2023-12-11 14:35:13 -0700
    • Engine revision 54a7145303
    • Dart version 3.2.3
    • DevTools version 2.28.4

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/wangyankun/Documents/Environments/AndroidEnvironment/android-sdk-macosx
    ✗ cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
    ✗ Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses.
      See https://flutter.dev/docs/get-started/install/macos#android-setup for more details.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E222b
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] VS Code (version 1.84.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.78.0

[!] Proxy Configuration
    • HTTP_PROXY is set
    ! NO_PROXY is not set

[✓] Connected device (3 available)
    • iPhone 8 white (mobile) • ee838f0919a8f547118d1ba72f5f7aa82aa4c5aa • ios            • iOS 14.4.2 18D70
    • macOS (desktop)         • macos                                    • darwin-x64     • macOS 13.4 22F66
      darwin-x64
    • Chrome (web)            • chrome                                   • web-javascript • Google Chrome
      118.0.5993.117
    ! Error: Browsing for iPhone 11 green (CoreDevice)  on the local area network. Ensure that the device is booted,
      unlocked, and discoverable via Bluetooth and WiFi, or attached with a cable. (code -27)

[✓] Network resources
    • All expected network resources are available.

Hi @WYK15.
Thanks for filing this.
I see this issue occurs only with iOS
Can you try deleting the iOS folder and running flutter create . to enable iOS in your project again?
Then try running the app, this should work fine afterwards.

@dam-ease
if I run flutter create .,a new ios directory is created, and it runs well.
but I just want to run ios project in the flutter module, there is a .ios directory in the flutter module,
I run flutter run or open  Runner.xcworkspace with Xcode, both can't work, report the same error:
Undefined symbol: OBJC_CLASS$_CaptchaOption.
Can the project in .ios directory run successfully without creating a new flutter project by flutter create .

Thanks for your response

Can the project in .ios directory run successfully without creating a new flutter project by flutter create .

Not sure I got this, does this work now or you will like to run it through Xcode?

nope, I just want the flutter module I uploaded to run successfully.
I have tried create a new flutter app by flutter create . and import my flutter plugin, it runs well.
but created a flutter module and imported the same plugin, error comes. so I uploaded the module project to github above.
Why does the same plugin work in a Flutter app but throw errors in a Flutter module.

It seems your question might be best suited for support channels like StackOverflow, please ask the same there for solutions if any. Please also see flutterhelp for resources and ask questions like this.
Closing from here as this is more of a how-to question rather than a bug or feature request. If you disagree, please comment with more information and I'll reopen this.
Thank you!


Feature request: highlighting

Hey!  I've been using your plugin a lot and absolutely love it; wiring up Cmd-S to elm linting makes a great environment to work in!  One request that I have, if at all possible, is to somehow highlight the bits that are in yellow in the Elm output that highlight exactly where the error is.  Quite often I find that I have to go to the console for long error messages to find out which bit is really throwing the error.
If its complicated to embed colours in Lighttable then even putting some other easily spotted indicator like the @ symbol around the offending item would be fine, e.g.
The type annotation for `view` does not match its definition.
The type annotation is saying:

    Signal.Address Action
    -> { students :
             List
                 { name : String
                 , pouchAttachments :
                       Maybe
                           { photo : { content_type : String, data : String } }
                 , pouchId : Maybe String
                 , pouchRev : Maybe String
                 }
    , units : List Unit.Unit
    }
    -> { ..., currentlyEditingStudent : @@ Maybe Student.Student @@ }
    -> Html

But I am inferring that the definition has this type:

    Signal.Address Action
    -> { students :
             List
                 { name : String
                 , pouchAttachments :
                       Maybe
                           { photo : { content_type : String, data : String } }
                 , pouchId : Maybe String
                 , pouchRev : Maybe String
                 }
    , units : List Unit.Unit
    }
    -> { ..., currentlyEditingStudent : @@ Editable @@ }
    -> Html

I've looked into this, and the problem is not really related to Light Table as such.
I'm getting a json back from elm-make, and what is shown as inline messages is an overview field and a details field from that Json. These are just text fields (but with formatting in terms of newlines and tabs/spaces, that's why the output looks fairly ok)
For me to replicate the coloring used in the system.out format from elm-make I would either need very detailed parsing of the text (with mapping to the format used by elm-make for all kinds of scenarios;records, params) or I need to partially parse and then apply some diffing algorithm for what is recognized as expected/actual pairs. The first alternative would be extremely brittle I think, the second might be less brittle but not exactly trivial to implement.
I'm open to suggestions, ideally something with a sensible cost (as in time)/benefit ratio !
In the mean time I can let you know that I'm working on improving the display of lint errors in general (marking code ranges for warnings/errors to give the messages more context, and also introduces the ability to show multiple errors/warnings per line, keyboard shortcuts for moving to next/previous lint result etc). I might even throw in the possibility to do "quick fixes" for a few errors/warnings that provide enough detail from elm-make to do so (unused import, typos and type annotation warnings might be feasible candidates).
I think that to do this properly the json report from elm-make would need to provide a lot more details

Sorry for the long delay - I had to go and work on non Elm stuff for a while :)
As a very temporary measure that could possibly be implemented without much effort what about simply doing a naive search/replace in the string returned from elm-make --report=json?  These are the codes for 'start yellow' and 'end yellow`:
\u001b[33m
\u001b[0m
If you turned these two patterns into @@ and strip out everything else as is currently happening then that would let us see where the errors are occurring without having to do any fancy parsing or anything.

With the latest distribution of elm-lang the ansi codes for colors are no longer part of the json output.
A little weird to make fixes and not upping the version number, but it was a quick fix from Evan to make the debugger not crash for elm-reactor I believe. (I also think the ansi codes didn't play well with elm-reactor...). I also think the reason they did show up in the json output (ref #4) was that the terminal detection feature of elm-make had a bug.
Short story is, I can't rely on the ansi color codes being present (:
Example output using the latest elm distribution (os/x)
elm-make Game.elm --report=json --output=/dev/null
[{"tag":"unused import","overview":"Module `Random` is unused.","details":"Best to remove it. Don't save code quality for later!","region":{"start":{"line":4,"column":1},"end":{"line":4,"column":14}},"type":"warning","file":"Game.elm"}]
[{"tag":"TYPE MISMATCH","overview":"The type annotation for `nisse` does not match its definition.","subregion":null,"details":"The type annotation is saying:\n\n    Int\n    -> { id : ..., isMine : ..., isRevealed : ..., threatCount : ... }\n    -> Int\n\nBut I am inferring that the definition has this type:\n\n    Int -> { b | idx : ... } -> a\n\nHint: I compared the record fields and found some potential typos.\n    \n    id <-> idx","region":{"start":{"line":16,"column":9},"end":{"line":16,"column":27}},"type":"error","file":"Game.elm"}]

command line:

I've added a feature request to elm-make. Currently tracked in https://github.com/elm-lang/elm-make/issues/98 will reopen when something surfaces.


PANIC at Lean.EnvExtensionInterfaceUnsafe.getState Lean.Environment:236:4: invalid environment extension has been accessed

Prerequisites

[x] Put an X between the brackets on this line if you have done all of the following:

Checked that your issue isn't already filed.
Reduced the issue to a self-contained, reproducible test case.

Description
I see lots of new error output in VS code using Lean 4.0.0-nightly-2022-06-28.   This does not happen in Lean (version 4.0.0-nightly-2022-06-24, commit 09c4af26fce8, Release).
Lean (version 4.0.0-nightly-2022-06-28, commit e49a81bb563f, Release)
PANIC at List.getLast! Init.Data.List.BasicAux:63:13: empty list
PANIC at List.head! Init.Data.List.BasicAux:31:12: empty list
PANIC at Lean.EnvExtensionInterfaceUnsafe.getState Lean.Environment:236:4: invalid environment extension has been accessed
PANIC at Lean.ScopedEnvExtension.getState Lean.ScopedEnvExtension:157:16: unreachable code has been reached
PANIC at Lean.EnvExtensionInterfaceUnsafe.getState Lean.Environment:236:4: invalid environment extension has been accessed
Error: index out of bounds
PANIC at Lean.EnvExtensionInterfaceUnsafe.getState Lean.Environment:236:4: invalid environment extension has been accessed
PANIC at Lean.ScopedEnvExtension.getState Lean.ScopedEnvExtension:157:16: unreachable code has been reached
PANIC at Lean.EnvExtensionInterfaceUnsafe.getState Lean.Environment:236:4: invalid environment extension has been accessed
Error: index out of bounds
...
and much more...
Steps to Reproduce

Install Lean 4.0.0-nightly-2022-06-28
Install VS Code extension lean4 v0.0.79
Clone https://github.com/leanprover/lean4-samples
cd HelloWorld
code .     -- to load HelloWorld folder in VS Code

Expected behavior:
no such errors.
Actual behavior:
see above.
Reproduces how often:
every time.
Versions
You can get this information from copy and pasting the output of lean --version,
please include the OS and what version of the OS you're running.
Additional Information
Any additional information, configuration or data that might be necessary to reproduce the issue.

It should have been fixed by https://github.com/leanprover/lean4/pull/1259
See https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/nightly.20updates/near/287747544

Ok, I'll try that PR #1259 and see if it works, it hasn't been merged yet.

I have verified that https://github.com/leanprover/lean4/pull/1259 does indeed fix the problem.


<EMAIL_ADDRESS>is unavailable in npm repository

I am unable to install 1.1.0 using npm. Below is the error I see when tried to install.
$ npm install<EMAIL_ADDRESS>npm error code ETARGET
npm error notarget No matching version found for<EMAIL_ADDRESS>npm error notarget In most cases you or one of your dependencies are requesting
npm error notarget a package version that doesn't exist.

Don't see this version listed in the npm duckdb version list also - https://www.npmjs.com/package/duckdb?activeTab=versions

https://www.npmjs.com/package/duckdb/v/1.1.0 is out, not all up but getting there.


Suggestions for autopilot

Earlier when trying to send a transaction to zigzag, got error message "payment_error": "unable to find a path to destination"
autopilot was on. Suggestion for autopilot - add option for list of "favorite" nodes/payment hubs in conf file, when autopilot is turned on, it will first prioritize opening channels that have routes to those in the "favorites" list, then open other channels as normal. Autopilot is pretty useless if the channels it opens don't have routes to the nodes that user's frequently spend at. And opening direct channels to each of those favorites defeats the purpose of routing over LN.
Edit - i'm new to submitting issues / suggestions through reddit, so forgive my ignorance if this isn't the place to write this and point me in the right direction pls.

Suggestion for autopilot - add option for list of "favorite" nodes/payment hubs in conf file, when autopilot is turned on, it will first prioritize opening channels that have routes to those in the "favorites" list, then open other channels as normal

FWIW, this can be done manually on the command line. We're aware that the current pilot code is pretty rudimentary, as atm, it's more of a PoC. In the near future, we're planning on putting some serious effort into improving the initial on boarding experience.

This can be achieved by utilizing the new NodeScores API: #2212


drivers: serial: fix problem for a possible overflow in serial drivers.

try to fix issue #80599 , a error of type transform(?) in serial drivers. For fifo_read it may cause wrong read data if parameter size is over 255, while endless looping for fifo_fill, if uart is running faster than cpu.

The patch looks fine but the your commit message doesn't meet our contribution guideline and the CI is going to fail, please take a look at https://docs.zephyrproject.org/latest/contribute/guidelines.html#commit-message-guidelines
Basically, you need something like this
drivers: serial: fix problem for a possible overflow in serial fifo_fill or fifo_read | <- this title is too long, max is 72 char, current is 86

commit message line 1                                                     | <- each line should be 75 chars or less
commit message line 2                                                     | <- each line should be 75 chars or less
..                                                                        | <- each line should be 75 chars or less
commit message line n                                                     | <- each line should be 75 chars or less

Signed-off-by: John Doe<EMAIL_ADDRESS>

drivers: serial: fix potential overflow in fifo_fill and fifo_read

Thanks, I didn't notice the length. I have re-push my commit with new legal commit message.

@ken4647 you still need an actual body to the commit message. You could just put the PR description there. In addition to that you also need a Signed-off-by line (git commit will auto-generate that for you when you pass -s to it).

@ken4647 you still need an actual body to the commit message. You could just put the PR description there. In addition to that you also need a Signed-off-by line (git commit will auto-generate that for you when you pass -s to it).

Sorry, I noticed it yet. I will read the guideline seriously to avoid the mistake.

The latest push is to eliminate the notices from CI for meeting the clang-format.

@dcpleung , can you help review


API Key as parameter

It should be possible to set the API Key via a property on MapView
We build enterprise applications and each customer will have their own API Key. We have a configuration layer that brings customer settings into our application from our backend.

I don't see anywhere in Google Maps API where you can setup dynamically the API_KEY 🤔 It seems it was possible in v1 to pass an API_KEY when creating a MapView in the Android SDK but I don't any reference of this anymore in the docs..
It would be an interesting feature, but we might be constrained by the SDK here ? To be confirmed though

@karlgunst I also think this is not possible for Android, as Google Docs says, that you need to put the API key in app manifest and therefore it must be in the app in compile time.. However, in iOS, you can set up API key in runtime.
See official docs for Android:
https://developers.google.com/maps/documentation/android-sdk/get-api-key
Stackoverflow responses:
https://stackoverflow.com/questions/27945759/setting-google-maps-v2-api-key-at-runtime
https://stackoverflow.com/questions/51297404/change-google-maps-api-key-at-run-time-in-android
If you are using only iOS version, you can either fork this repo, or patch it how you want using patch-package https://github.com/ds300/patch-package I think patching is probably better for your enterprise use-case.
Hope it helps.


[BEAM-5320] Finish Python 3 porting for testing module

This is is part of a series of PRs with goal to make Apache Beam PY3 compatible. The proposal with the outlined approach has been documented here: https://s.apache.org/beam-python-3
Post-Commit Tests Status (on master branch)

Lang
SDK
Apex
Dataflow
Flink
Gearpump
Samza
Spark

Go

---
---
---
---
---
---

Java

Python

---

---
---
---

R: @tvalentyn @splovyt @markflyhigh

LGTM. Thanks!

I just noticed in the logs that there was an error running the py27-gcp tests. However the Precommit says it has been successful. Is this a bug in the pipeline?

https://issues.apache.org/jira/browse/BEAM-6048 is tracking this issue. https://github.com/apache/beam/pull/7048 should fix it. Please rebase and test again.

LGTM
Thanks

FYI, it looks like this PR may have broken Python post-commit: https://builds.apache.org/job/beam_PostCommit_Python_Verify/6617/

Relevant error:
15:24:55 ======================================================================
15:24:55 FAIL: test_bigquery_tornadoes_it (apache_beam.examples.cookbook.bigquery_tornadoes_it_test.BigqueryTornadoesIT)
15:24:55 ----------------------------------------------------------------------
15:24:55 Traceback (most recent call last):
15:24:55   File "/home/jenkins/jenkins-slave/workspace/beam_PostCommit_Python_Verify/src/sdks/python/apache_beam/examples/cookbook/bigquery_tornadoes_it_test.py", line 73, in test_bigquery_tornadoes_it
15:24:55     test_pipeline.get_full_options_as_args(**extra_opts))
15:24:55   File "/home/jenkins/jenkins-slave/workspace/beam_PostCommit_Python_Verify/src/sdks/python/apache_beam/examples/cookbook/bigquery_tornadoes.py", line 90, in run
15:24:55     write_disposition=beam.io.BigQueryDisposition.WRITE_TRUNCATE)
15:24:55   File "/home/jenkins/jenkins-slave/workspace/beam_PostCommit_Python_Verify/src/sdks/python/apache_beam/pipeline.py", line 425, in exit
15:24:55     self.run().wait_until_finish()
15:24:55   File "/home/jenkins/jenkins-slave/workspace/beam_PostCommit_Python_Verify/src/sdks/python/apache_beam/pipeline.py", line 418, in run
15:24:55     return self.runner.run_pipeline(self)
15:24:55   File "/home/jenkins/jenkins-slave/workspace/beam_PostCommit_Python_Verify/src/sdks/python/apache_beam/runners/dataflow/test_dataflow_runner.py", line 67, in run_pipeline
15:24:55     hc_assert_that(self.result, pickler.loads(on_success_matcher))
15:24:55 AssertionError:
15:24:55 Expected: (Test pipeline expected terminated in state: DONE and Expected checksum is 83789a7c1bca7959dcf23d3bc37e9204e594330f)
15:24:55      but: Expected checksum is 83789a7c1bca7959dcf23d3bc37e9204e594330f Actual checksum is d860e636050c559a16a791aff40d6ad809d4daf0
15:24:55

This is probably related to how the hash is computed rather than an actual change in data. I will suggest:

Reverting to get tests back to green.
Looking at what in the failing tests is not resulting in a different hash result.
After (2) adjusting either the hash function or the expected output of the test.

My guess is (2) is hashing some non-string values which has a different hashing behavior now.

I agree with both assessments.

What is the best way to check this test? I see it is not being run in the precommit test suite.

It runs as part of post commit tests. You can add a comment "Run Python PostCommit" to trigger it.

https://github.com/apache/beam/pull/7112 -> cherry picking revert to release branch. After this I will assign bug back to you @RobbeSneyders for the fix and roll forward of this PR again.


[Feature][Rest api] Use jetty to replace Hazelcast native rest api

Purpose of this pull request

Does this PR introduce any user-facing change?

How was this patch tested?

Check list

[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist
Add ci label in label-scope-conf
Add e2e testcase in seatunnel-e2e
Update connector plugin_config

[ ] Update the release-note.

PS: I think we should merge this PR after 2.3.8 released. WDYT? @liunaijie @liugddx

PS: I think we should merge this PR after 2.3.8 released. WDYT? @liunaijie @liugddx

I agree. It needs to be stabilized for a while.

LGTM. I have one question, now we use hazelcast native rest api. when this feature merge, there would be 2 rest-api support. Do we has any plan to retire the hazelcast native rest api support when this feature verified after few versions?

Yes, we can maintain two sets of APIs at the same time in subsequent versions. We also recommend users to migrate to the v2 version of the API and then delete the v1 version of the API.

#7725


Remove Searchbox from Homepage

We have a search box on the homepage that doesn't actually do anything. If you would like to remove it, that would be awesome!
If you would like to claim this issue, leave a comment below and I will assign it to you. I can also explain the best way to implement this if you would like.

 Remove Searchbox from Homepage

hey, I would like to work on this issue and also would love to hear your explanation to implement this

Hey even i would like to contribute !

Hi @Aditya-A-G @iambharathpadhu – I'll assign you both, please make a PR! :smile: