JK  BMS B2A20S20P Heat CAN/RS485 problem with connection

Hello, I uploaded the following code for ESP8266 D1 mini and unfortunately nothing works - what am I doing wrong?
substitutions:
  name: jk-bms
  device_description: "Monitor a JK-BMS via UART-TTL"
  external_components_source: github://syssi/esphome-jk-bms@main
  tx_pin: GPIO1
  rx_pin: GPIO3

esphome:
  name: ${name}
  comment: ${device_description}
  project:
    name: "syssi.esphome-jk-bms"
    version: 1.4.0

esp8266:
  board: d1_mini

external_components:
  - source: ${external_components_source}
    refresh: 0s

api:
  encryption:
    key: "..."

ota:
  password: "..."

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Jk-Battery-01-Info"
    password: "..."

logger:
  baud_rate: 0
  level: DEBUG

# If you use Home Assistant please remove this `mqtt` section and uncomment the `api` component!
# The native API has many advantages over MQTT: https://esphome.io/components/api.html#advantages-over-mqtt

uart:
  - id: uart0
    baud_rate: 115200
    rx_buffer_size: 384
    tx_pin: ${tx_pin}
    rx_pin: ${rx_pin}
    debug:
     direction: BOTH

jk_modbus:
  - id: modbus0
    uart_id: uart0
    rx_timeout: 50ms

jk_bms:
  - id: bms0
    jk_modbus_id: modbus0
    update_interval: 5s

binary_sensor:
  - platform: jk_bms
    balancing:
      name: "${name} balancing"
    balancing_switch:
      name: "${name} balancing switch"
    charging:
      name: "${name} charging"
    charging_switch:
      name: "${name} charging switch"
    discharging:
      name: "${name} discharging"
    discharging_switch:
      name: "${name} discharging switch"
    dedicated_charger_switch:
      name: "${name} dedicated charger switch"
    online_status:
      name: "${name} online status"

sensor:
  - platform: jk_bms
    min_cell_voltage:
      name: "${name} min cell voltage"
    max_cell_voltage:
      name: "${name} max cell voltage"
    min_voltage_cell:
      name: "${name} min voltage cell"
    max_voltage_cell:
      name: "${name} max voltage cell"
    delta_cell_voltage:
      name: "${name} delta cell voltage"
    average_cell_voltage:
      name: "${name} average cell voltage"
    cell_voltage_1:
      name: "${name} cell voltage 1"
    cell_voltage_2:
      name: "${name} cell voltage 2"
    cell_voltage_3:
      name: "${name} cell voltage 3"
    cell_voltage_4:
      name: "${name} cell voltage 4"
    cell_voltage_5:
      name: "${name} cell voltage 5"
    cell_voltage_6:
      name: "${name} cell voltage 6"
    cell_voltage_7:
      name: "${name} cell voltage 7"
    cell_voltage_8:
      name: "${name} cell voltage 8"
    cell_voltage_9:
      name: "${name} cell voltage 9"
    cell_voltage_10:
      name: "${name} cell voltage 10"
    cell_voltage_11:
      name: "${name} cell voltage 11"
    cell_voltage_12:
      name: "${name} cell voltage 12"
    cell_voltage_13:
      name: "${name} cell voltage 13"
    cell_voltage_14:
      name: "${name} cell voltage 14"
    cell_voltage_15:
      name: "${name} cell voltage 15"
    cell_voltage_16:
      name: "${name} cell voltage 16"
    cell_voltage_17:
      name: "${name} cell voltage 17"
    cell_voltage_18:
      name: "${name} cell voltage 18"
    cell_voltage_19:
      name: "${name} cell voltage 19"
    cell_voltage_20:
      name: "${name} cell voltage 20"
    cell_voltage_21:
      name: "${name} cell voltage 21"
    cell_voltage_22:
      name: "${name} cell voltage 22"
    cell_voltage_23:
      name: "${name} cell voltage 23"
    cell_voltage_24:
      name: "${name} cell voltage 24"
    power_tube_temperature:
      name: "${name} power tube temperature"
    temperature_sensor_1:
      name: "${name} temperature sensor 1"
    temperature_sensor_2:
      name: "${name} temperature sensor 2"
    total_voltage:
      name: "${name} total voltage"
    current:
      name: "${name} current"
    power:
      name: "${name} power"
    charging_power:
      name: "${name} charging power"
    discharging_power:
      name: "${name} discharging power"
    capacity_remaining:
      name: "${name} capacity remaining"
    capacity_remaining_derived:
      name: "${name} capacity remaining derived"
    temperature_sensors:
      name: "${name} temperature sensors"
    charging_cycles:
      name: "${name} charging cycles"
    total_charging_cycle_capacity:
      name: "${name} total charging cycle capacity"
    battery_strings:
      name: "${name} battery strings"
    errors_bitmask:
      name: "${name} errors bitmask"
    operation_mode_bitmask:
      name: "${name} operation mode bitmask"
    total_voltage_overvoltage_protection:
      name: "${name} total voltage overvoltage protection"
    total_voltage_undervoltage_protection:
      name: "${name} total voltage undervoltage protection"
    cell_voltage_overvoltage_protection:
      name: "${name} cell voltage overvoltage protection"
    cell_voltage_overvoltage_recovery:
      name: "${name} cell voltage overvoltage recovery"
    cell_voltage_overvoltage_delay:
      name: "${name} cell voltage overvoltage delay"
    cell_voltage_undervoltage_protection:
      name: "${name} cell voltage undervoltage protection"
    cell_voltage_undervoltage_recovery:
      name: "${name} cell voltage undervoltage recovery"
    cell_voltage_undervoltage_delay:
      name: "${name} cell voltage undervoltage delay"
    cell_pressure_difference_protection:
      name: "${name} cell pressure difference protection"
    discharging_overcurrent_protection:
      name: "${name} discharging overcurrent protection"
    discharging_overcurrent_delay:
      name: "${name} discharging overcurrent delay"
    charging_overcurrent_protection:
      name: "${name} charging overcurrent protection"
    charging_overcurrent_delay:
      name: "${name} charging overcurrent delay"
    balance_starting_voltage:
      name: "${name} balance starting voltage"
    balance_opening_pressure_difference:
      name: "${name} balance opening pressure difference"
    power_tube_temperature_protection:
      name: "${name} power tube temperature protection"
    power_tube_temperature_recovery:
      name: "${name} power tube temperature recovery"
    temperature_sensor_temperature_protection:
      name: "${name} temperature sensor temperature protection"
    temperature_sensor_temperature_recovery:
      name: "${name} temperature sensor temperature recovery"
    temperature_sensor_temperature_difference_protection:
      name: "${name} temperature sensor temperature difference protection"
    charging_high_temperature_protection:
      name: "${name} charging high temperature protection"
    discharging_high_temperature_protection:
      name: "${name} discharging high temperature protection"
    charging_low_temperature_protection:
      name: "${name} charging low temperature protection"
    charging_low_temperature_recovery:
      name: "${name} charging low temperature recovery"
    discharging_low_temperature_protection:
      name: "${name} discharging low temperature protection"
    discharging_low_temperature_recovery:
      name: "${name} discharging low temperature recovery"
    total_battery_capacity_setting:
      name: "${name} total battery capacity setting"
    current_calibration:
      name: "${name} current calibration"
    device_address:
      name: "${name} device address"
    sleep_wait_time:
      name: "${name} sleep wait time"
    alarm_low_volume:
      name: "${name} alarm low volume"
    manufacturing_date:
      name: "${name} manufacturing date"
    total_runtime:
      name: "${name} total runtime"
#    start_current_calibration:
#      name: "${name} start current calibration"
    actual_battery_capacity:
      name: "${name} actual battery capacity"
#    protocol_version:
#      name: "${name} protocol version"

text_sensor:
  - platform: jk_bms
    errors:
      name: "${name} errors"
    operation_mode:
      name: "${name} operation mode"
    battery_type:
      name: "${name} battery type"
    password:
      name: "${name} password"
    device_type:
      name: "${name} device type"
    software_version:
      name: "${name} software version"
    manufacturer:
      name: "${name} manufacturer"
    total_runtime_formatted:
      name: "${name} total runtime formatted"

Please check the controls tab of the Android app.Do you see here a switch to choose between CAN and RS485?

Where did you buy the BMS?

Good question. In general your setup should work:

Your wiring sounds correct
You are using the hardware UART of an ESP8266 + the logger doesn't write to GPIO1/3 because of baud_rate: 0
You did enable the RS485 switch. This switch is new and wasn't available in the past.

Could you enable the debug mode of the uart component and provide some logs:
logger:
  baud_rate: 0
  level: DEBUG

uart:
  id: uart0
  baud_rate: 115200
  rx_buffer_size: 384
  tx_pin: ${tx_pin}
  rx_pin: ${rx_pin}
  debug:
    direction: BOTH

I would like to know there is no response at all or noise.

When I connect to the bms, once there something happens and it stops working and no longer connects via wi-fi....

That's not good! How do you power the ESP?

Do you mean a USB power plug? I would like to make sure you don't power the ESP using the battery + buck converter.

Your wiring looks good but the labels of your BMS are confusing. My left port is labeled as "CAN". The right port is labeled as GPS/RS485. May be the hardware layout has changed?!

I know the protocol description. It's the implemented protocol for the UART-TTL connection.

Could you do some measurements? I would like a complete documentation of your issue here.

Please measure the voltage between
GND <-> RX
GND <-> TX
GND <-> VBAT
Please measure the resistance between
GND <-> RX
GND <-> TX

On.

Hi,
i have a JK-BD6A20S10P. This works fine with the Bluetooth module.
I know wanted to connect it through RS485 also. I got stuck at the same Point. Connecting it to the "GPS" Port with the jst Connector but no Communication.
Mine looks the same as the above picture shows, but i don't have the settings in the APP (CAN/RS485).
When i connect everything my ESP still produces LOG files, so i guess it doesn't hang up like yours.
I will try some more things, including Voltage and resistance Measurements, but any idea is welcomed!
Waiting for your test's with your newly orderd BMS.
kind Regards
Max

@maxsarges Please provide the software and hardware version of your BMS too. I guess the CAN/RS485 switch is available since firmware version 11.

Hi,
I have Version 10, maybe thats the reason why i don't have the Button.

Please enable the debug output of the uart component:
https://github.com/syssi/esphome-jk-bms#debugging

>>> indicates outgoing traffic (the cell info requests).
<<< indicates incoming traffic.
It looks like your new BMS doesn't respond too. The received 0xFF looks like garbage. Please double check your data cable and make sure GND is attached properly and the cable length is less than 10 centimeters.

Does both devices work now?

My question was about your BMS (first and second one).

Could you tell me the model name, software and hardware version of the working BMS? I would like to extend the docs.

Good job! And happy birthday(?) ;-)

Your screenshot contains a birthday cake at the top. I guessed it's your birthday today. ;-)

Most buck convertes forward full input voltage to output if they fail, so there is that danger already.
In addition they could output voltage spikes if the output capacitor is small. The serial connections are very sensitiv to voltage spikes. Especially those, which can't handle 5V logic level. (ESP, the JK-BMS are both 3.3V)
So maybe you can avoid this dangers with a big capacitor after the buck converter + zener diodes which limit max voltage in addition. They need to be stronger than the converter, so they don't break if the converter fails. 😁

Hi all,
looking at the new Version 11 from the JK-BMS I got this information:
Hello Torsten,I had talked with factory and our purchase manager again.They said for these two version,they are just different software, the function is the same.As for the two functions you mentioned, the software just reserves them, but they cannot be used. If you need to use it, we need to buy another version from the factory.
So it seems to be the case, that there are no new HW components yet, only the SW is updated.

I have the version with CAN switch to RS485 and I can confirm that it will activate the modebus protocol (as somehow I managed to damage the gps circuit) also I can read some holding registers using an usb adapter, but not all the values are present or I don't know how to read them (only 0-29 works), I'm waiting for a rs485 to ttl adapter to see if I can use it on esp

@lucize Could you provide the pinout of the CAN/RS485 port and a request + response example?

sorry, I'm not good with modebus, for the moment I have this:
can/rs485       |    gps
GND - B - A    |    ....
values should be interger, as the temp is negative for my faulty board

I've tried it yesterday many times with different settings, boards and UART's.
But so far no success. Maybe the Board is faulty, but i don't think so.
Maybe it has something to do with GND. Both signals refer to GND of the BMS.
I have for sure connected TX / RX and GND to my ESP32. But maybe the ESP boards differ a little bit. So far this is the only guess i have, but until know i have no solution for that.
Does anybody has another idea what i can do?
Kind regards Max

@maxsarges Could you create a new issue an describe your setup + provide some photos of the wiring? These details are important:

BMS model
Software and hardware version of the BMS
Where did you buy the BMS?
Did you buy the model with or without CAN support?
How do you power your ESP?
Which GPIOs do you use?

Here you go @syssi , mine not working at all too:
BMS model - JK_B2A24S15P
Software and hardware version of the BMS - Hard: V11.XW Soft: V11.25
Where did you buy the BMS? - Hankzor
Did you buy the model with or without CAN support? - With CAN
How do you power your ESP? - USB-C
Which GPIOs do you use? 1/3
Tried also with MAX232 UART-TTL
My code:
`substitutions:
name: jk-bms
device_description: "Monitor a JK-BMS via UART-TTL"
external_components_source: github://syssi/esphome-jk-bms@main
tx_pin: GPIO1
rx_pin: GPIO3
esphome:
name: ${name}
comment: ${device_description}
project:
name: "syssi.esphome-jk-bms"
version: 1.5.0
esp8266:
board: d1_mini
external_components:

source: ${external_components_source}
refresh: 0s

wifi:
ssid: !secret wifi_ssid
password: !secret wifi_password
ota:
logger:
baud_rate: 0
level: DEBUG
api:
uart:

id: uart_0
baud_rate: 115200
rx_buffer_size: 384
tx_pin: ${tx_pin}
rx_pin: ${rx_pin}

jk_modbus:

id: modbus0
uart_id: uart_0
rx_timeout: 50ms

jk_bms:

id: bms0
jk_modbus_id: modbus0
update_interval: 5s

binary_sensor:

platform: jk_bms
balancing:
name: "${name} balancing"
balancing_switch:
name: "${name} balancing switch"
charging:
name: "${name} charging"
charging_switch:
name: "${name} charging switch"
discharging:
name: "${name} discharging"
discharging_switch:
name: "${name} discharging switch"
dedicated_charger_switch:
name: "${name} dedicated charger switch"
online_status:
name: "${name} online status"

sensor:

platform: jk_bms
min_cell_voltage:
name: "${name} min cell voltage"
max_cell_voltage:
name: "${name} max cell voltage"
min_voltage_cell:
name: "${name} min voltage cell"
max_voltage_cell:
name: "${name} max voltage cell"
delta_cell_voltage:
name: "${name} delta cell voltage"
average_cell_voltage:
name: "${name} average cell voltage"
cell_voltage_1:
name: "${name} cell voltage 1"
cell_voltage_2:
name: "${name} cell voltage 2"
cell_voltage_3:
name: "${name} cell voltage 3"
cell_voltage_4:
name: "${name} cell voltage 4"
cell_voltage_5:
name: "${name} cell voltage 5"
cell_voltage_6:
name: "${name} cell voltage 6"
cell_voltage_7:
name: "${name} cell voltage 7"
cell_voltage_8:
name: "${name} cell voltage 8"
cell_voltage_9:
name: "${name} cell voltage 9"
cell_voltage_10:
name: "${name} cell voltage 10"
cell_voltage_11:
name: "${name} cell voltage 11"
cell_voltage_12:
name: "${name} cell voltage 12"
cell_voltage_13:
name: "${name} cell voltage 13"
cell_voltage_14:
name: "${name} cell voltage 14"
cell_voltage_15:
name: "${name} cell voltage 15"
cell_voltage_16:
name: "${name} cell voltage 16"
cell_voltage_17:
name: "${name} cell voltage 17"
cell_voltage_18:
name: "${name} cell voltage 18"
cell_voltage_19:
name: "${name} cell voltage 19"
cell_voltage_20:
name: "${name} cell voltage 20"
cell_voltage_21:
name: "${name} cell voltage 21"
cell_voltage_22:
name: "${name} cell voltage 22"
cell_voltage_23:
name: "${name} cell voltage 23"
cell_voltage_24:
name: "${name} cell voltage 24"
power_tube_temperature:
name: "${name} power tube temperature"
temperature_sensor_1:
name: "${name} temperature sensor 1"
temperature_sensor_2:
name: "${name} temperature sensor 2"
total_voltage:
name: "${name} total voltage"
current:
name: "${name} current"
power:
name: "${name} power"
charging_power:
name: "${name} charging power"
discharging_power:
name: "${name} discharging power"
capacity_remaining:
name: "${name} capacity remaining"
capacity_remaining_derived:
name: "${name} capacity remaining derived"
temperature_sensors:
name: "${name} temperature sensors"
charging_cycles:
name: "${name} charging cycles"
total_charging_cycle_capacity:
name: "${name} total charging cycle capacity"
battery_strings:
name: "${name} battery strings"
errors_bitmask:
name: "${name} errors bitmask"
operation_mode_bitmask:
name: "${name} operation mode bitmask"
total_voltage_overvoltage_protection:
name: "${name} total voltage overvoltage protection"
total_voltage_undervoltage_protection:
name: "${name} total voltage undervoltage protection"
cell_voltage_overvoltage_protection:
name: "${name} cell voltage overvoltage protection"
cell_voltage_overvoltage_recovery:
name: "${name} cell voltage overvoltage recovery"
cell_voltage_overvoltage_delay:
name: "${name} cell voltage overvoltage delay"
cell_voltage_undervoltage_protection:
name: "${name} cell voltage undervoltage protection"
cell_voltage_undervoltage_recovery:
name: "${name} cell voltage undervoltage recovery"
cell_voltage_undervoltage_delay:
name: "${name} cell voltage undervoltage delay"
cell_pressure_difference_protection:
name: "${name} cell pressure difference protection"
discharging_overcurrent_protection:
name: "${name} discharging overcurrent protection"
discharging_overcurrent_delay:
name: "${name} discharging overcurrent delay"
charging_overcurrent_protection:
name: "${name} charging overcurrent protection"
charging_overcurrent_delay:
name: "${name} charging overcurrent delay"
balance_starting_voltage:
name: "${name} balance starting voltage"
balance_opening_pressure_difference:
name: "${name} balance opening pressure difference"
power_tube_temperature_protection:
name: "${name} power tube temperature protection"
power_tube_temperature_recovery:
name: "${name} power tube temperature recovery"
temperature_sensor_temperature_protection:
name: "${name} temperature sensor temperature protection"
temperature_sensor_temperature_recovery:
name: "${name} temperature sensor temperature recovery"
temperature_sensor_temperature_difference_protection:
name: "${name} temperature sensor temperature difference protection"
charging_high_temperature_protection:
name: "${name} charging high temperature protection"
discharging_high_temperature_protection:
name: "${name} discharging high temperature protection"
charging_low_temperature_protection:
name: "${name} charging low temperature protection"
charging_low_temperature_recovery:
name: "${name} charging low temperature recovery"
discharging_low_temperature_protection:
name: "${name} discharging low temperature protection"
discharging_low_temperature_recovery:
name: "${name} discharging low temperature recovery"
total_battery_capacity_setting:
name: "${name} total battery capacity setting"
current_calibration:
name: "${name} current calibration"
device_address:
name: "${name} device address"
sleep_wait_time:
name: "${name} sleep wait time"
alarm_low_volume:
name: "${name} alarm low volume"
manufacturing_date:
name: "${name} manufacturing date"
total_runtime:
name: "${name} total runtime"

start_current_calibration:
name: "${name} start current calibration"
actual_battery_capacity:
  name: "${name} actual battery capacity"

protocol_version:
name: "${name} protocol version"
text_sensor:

platform: jk_bms
errors:
name: "${name} errors"
operation_mode:
name: "${name} operation mode"
battery_type:
name: "${name} battery type"
password:
name: "${name} password"
device_type:
name: "${name} device type"
software_version:
name: "${name} software version"
manufacturer:
name: "${name} manufacturer"
total_runtime_formatted:
name: "${name} total runtime formatted"
`

Tried also with MAX232 UART-TTL

What does this mean? Did you attach the MAX232 to the RS232 port of your computer? I hope you haven't pushed -12/+12V into the UART-TTL port.

Port is working good for sure, used it before with other software monitor via usb to serial converter

@vjlb Could you verify the other software monitor via the serial converter is still working? It's super interesting one software works and the other  / this project isn't working.

@vjlb Could you change your YAML to this feature branch + flash the ESP and provide another log? I would like to know some more details about the invalid header warnings:
substitutions:
  external_components_source: github://syssi/esphome-jk-bms@debug-decoder

Tried also with MAX232 UART-TTL

What does this mean? Did you attach the MAX232 to the RS232 port of your computer? I hope you haven't pushed -12/+12V into the UART-TTL port.

Not to PC mate, connected like this:

I use same connection on this software to monitor my inverter over MQTT:
https://github.com/softwarecrash/Solar2MQTT

Port is working good for sure, used it before with other software monitor via usb to serial converter

@vjlb Could you verify the other software monitor via the serial converter is still working? It's super interesting one software works and the other / this project isn't working.

That's the one i used before to monitor BMS over USB to Serial, but i prefer the ESP solution over the Raspberry PI:
https://github.com/dj-nitehawk/Hybrid-Inverter-Monitor
Will test the branch you suggested

@vjlb Could you change your YAML to this feature branch + flash the ESP and provide another log? I would like to know some more details about the invalid header warnings:
substitutions:
  external_components_source: github://syssi/esphome-jk-bms@debug-decoder

Is this my bad?
Trying it wirelessly
INFO ESPHome 2023.5.5
INFO Reading configuration /config/esphome/jk-bms.yaml...
INFO Updating https://github.com/syssi/esphome-jk-bms.git@debug-decoder
INFO Generating C++ source...
INFO Compiling app...
Processing jk-bms (board: d1_mini; framework: arduino; platform<EMAIL_ADDRESS>HARDWARE: ESP8266 80MHz, 80KB RAM, 4MB Flash
Dependency Graph
|-- ESP8266WiFi @ 1.0
|-- ESP8266mDNS @ 1.2
Compiling /data/jk-bms/.pioenvs/jk-bms/src/esphome/components/jk_modbus/jk_modbus.cpp.o
Compiling /data/jk-bms/.pioenvs/jk-bms/src/main.cpp.o
In file included from src/esphome/components/uart/uart.h:6,
from src/esphome/components/jk_modbus/jk_modbus.h:4,
from src/esphome/components/jk_modbus/jk_modbus.cpp:1:
src/esphome/components/jk_modbus/jk_modbus.cpp: In member function 'virtual void esphome::jk_modbus::JkModbus::loop()':
src/esphome/components/jk_modbus/jk_modbus.cpp:13:14: error: 'format_hex_pretty' was not declared in this scope
13 |              format_hex_pretty(&this->rx_buffer_.front(), this->rx_buffer_.size()).c_str());
|              ^~~~~~~~~~~~~~~~~
src/esphome/core/log.h:114:88: note: in definition of macro 'esph_log_w'
114 |   esp_log_printf_(ESPHOME_LOG_LEVEL_WARN, tag, LINE, ESPHOME_LOG_FORMAT(format), ##VA_ARGS)
|                                                                                ^~~~~~~~~~~
src/esphome/components/jk_modbus/jk_modbus.cpp:12:5: note: in expansion of macro 'ESP_LOGW'
12 |     ESP_LOGW(TAG, "Buffer cleared due to timeout: %s",
|     ^~~~~~~~
src/esphome/components/jk_modbus/jk_modbus.cpp:25:16: error: 'format_hex_pretty' was not declared in this scope
25 |                format_hex_pretty(&this->rx_buffer_.front(), this->rx_buffer_.size()).c_str());
|                ^~~~~~~~~~~~~~~~~
src/esphome/core/log.h:114:88: note: in definition of macro 'esph_log_w'
114 |   esp_log_printf_(ESPHOME_LOG_LEVEL_WARN, tag, LINE, ESPHOME_LOG_FORMAT(format), ##VA_ARGS)
|                                                                                ^~~~~~~~~~~
src/esphome/components/jk_modbus/jk_modbus.cpp:24:7: note: in expansion of macro 'ESP_LOGW'
24 |       ESP_LOGW(TAG, "Buffer cleared due to reset: %s",
|       ^~~~~~~~
*** [/data/jk-bms/.pioenvs/jk-bms/src/esphome/components/jk_modbus/jk_modbus.cpp.o] Error 1
========================== [FAILED] Took 2.56 seconds ==========================

I've pushed a probably missing include. Please try again!

Please don't use a MAX232 with a JK-BMS! The high logic level could destroy the opto-couplers / UART-TTL port of the BMS.

Please don't use a MAX232 with a JK-BMS! The high logic level could destroy the opto-couplers / UART-TTL port of the BMS.

Noted!
Will test with other software to make sure it works

Just finished install on RPI, it's working with other monitor software over the same port:

Here is the log, very fast outputing those errors BTW:
"Buffer cleared timeout"
logs_jk-bms_logs (1).txt

Looks like sometimes i now get some tiny data, but i lowered the cable lenght
logs_jk-bms_logs (2).txt

This is my code & connect to HA through ESP32 via Bluetooth

merci je galère depuis 3 jours et j'étais dans le même cas et en Bluetooth ca fonctionne

@JakobTewes I cannot provide a good answer. I'm a software developer with limited skills in electrical circuits. I'm just aware of users who release magic smoke (destroyed the serial port of the BMS, ESP or buck converter).

Can you assist me i have the same issue
how does one upgrade the firmware?


Suggestion:

Hi! I had a very similar idea the other day about a mod that would do the exact same thing. The only difference is that instead of a glass pane, I though to use an Amethyst shard. My line of thought was that it would make it even better to find a Geode and give it another reason to find one. Since amethysts are renewable, new and kinda magical, I think it's a better option. What do you think? 😄

I agree that an amethyst shard would be a good option for this mechanic, however, I will likely not change the item as it would result in disparity for existing worlds (frames previously made invisible with a glass pane now dropping amethyst shards). I may look into making it configurable for those who want to change it.


Update usb-device to 0.3

Hello, and thanks for creating this crate!  The current usb-device implementation requires that all of a devices' crates use the same version of usb-device - this PR just updates usbd-dfu-rt to work with the current usb-device.

Thanks. It seems that the example needs updating, but stm32-usbd does not support usb-device 3.0. There's a PR but it's not yet merged. I was able to run it with the following changes https://github.com/ianrrees/usbd-dfu-rt/compare/update-usb-device...jedrzejboczar:usbd-dfu-rt:jb/usb-device-3-stm32-usbd, but it requires [patch] in Cargo.toml.
I'm not sure if it's better to wait some time or to merge this PR now. On one hand stm32-usbd is just needed for the example, so I'm probably blocking development for some other users of usbd-dfu-rt, on the other hand I don't know if stm32-usbd is even maintained, e.g. my PR is there since 2022: https://github.com/stm32-rs/stm32-usbd/pull/30. However the developer seems to be active on GitHub so maybe we can wait just some more time to see if we could merge this without patch sections. If we merge this PR I'll soon may need to maintain separate branch of usbd-dfu-rt for usb-device 2 (beside separate stm32-usbd and some others) to keep support for my project.
Or maybe you could provide an example for some other device? This way there would be at least one non-hacky example. Have you tested this on some hardware? (though I doubt there would be any problems due to migration to usb-device 3).
Anyway, I think I'll wait some time and if there's no update to stm32-usbd then I'll just merge this PR with my fixes from jb/usb.

Yes I have this working on real hardware.  I'd be happy to make a SAMD21 example, however I think in a sense that might make the problem worse, because we'd then have a broken example when the required usb-device is ahead of either the ATSAM or the STM32 HALs...
Sorry I'm not very familiar with STM32 - did ask about this in the Rust USB matrix channel and @ryan-summers said he's using usb-device on STM32 but I'm not 100% sure whether it's with stm32-usbd.
I think you're right that the HAL should update first anyway, will aim to discuss it in chat next week when I'm back at work.  Thanks!

stm32-usbd is indeed less used than the synopsys-usb-otg driver.
Just an FYI, it looks like the PR for stm32-usbd is merged now, and I might plan on releasing a usb-device 0.4.0 soon. Sorry for the delay on answering here, this notification came in while I was on vacation :)

Any plans to integrate this PR? I t would be great if this crate could be used in connection with usb-device 0.3.


Identifiers declared as constants are local compile-time known

Following the discussion #1305, this PR clarifies that identifiers declared as constants with the const keyword is local compile-time known instead of compile-time known.
Also, I made a corresponding change in the constant declaration section (11.1) that the initializer for a constant should be local compile-time known.

LGTM. @rcgoodfellow wanna TAL? Otherwise, if I hear no complaints, I'll merge in 3 days.


Possibility to install Supermium to C:\Program Files in stead of C:\Users ?

Like the title suggests - I'd like to be able to install to C:\Program Files.
Since updating to v. 119, my iT department has been pinging Supermium under MS Defender "Attack Surface Reduction" and not letting it run. I didn't have this problem with v. 118.
I have tried adding an exception in Group Policy - which works for a while, but then the iT department reverts my exception and Supermium is blocked again.
I'm guessing that if the browser is installed in C:\Program Files then this might not happen...?

Pure zipped versions of the browser packages would probably help - an official installer would be even better. On top of the MS Defender "Attack Surface Reduction", I'm also getting this:

I didn't have any of these problems with v. 118, hope these issues can be resolved...

It is already possible to do what the issue requests - all you need to do is extract mini_installer.exe from the Supermium 119 install exe, then run that with the command-line parameter --system-level (you'll know it worked if you get a UAC prompt subsequently, assuming you executed mini_installer from an unelevated prompt, and if Supermium subsequently installs to Program Files).

Thanks a lot for the info, I had no idea of the --system-level parameter, I'll give it a go.

Detection-wise, only a single AV out of a pool of 69 on VirusTotal flagged a detection for the mini_installer.exe binary when extracted from supermium_119_64_setup.exe. On the other hand, supermium_119_64_setup.exe flagged up detections from 4 AVs out of a pool of 66, so maybe the use of that wrapped installer causes some trouble for AV software. In all cases though, the AVs that did flag the installers were, to put it bluntly, no-name garbage, so I'd safely write off all their detections as merely being false-positives.

I have written an application that tripped Microsoft Defender before. All it did was create a ppm file containing a flag. A few other less-reputable AVs had problems with it as well and the things that would trigger their heuristics were quite odd. For example, the Symantec engine stopped flagging the application after a check for a user-inputted parameter (including a printf statement and a return statement) was removed.

I'm also getting this:

"MS Defender SmartScreen stopped an inrecognized app from starting... Publisher: Unknown publisher"

That's normal for a newly published app. Just click More info... then Run anyway. It's because the file is too new for SmartScreen to have much data about its harmfulness, so it warns you that it might be malicious regardless.

Referring to MS Defender, I don't know why but for some reason Edge browser on Windows 11 prevents me from saving the installer and also virustotal shows 5/70 detections...

I almost wonder if it's Edge trying to force you to use Edge instead of your preferred browser. As we all know, Microsoft desperately wants you to use Edge...

I also had a program with a lot of false positives on one of my projects, I was able to remove half of them by using an old NSIS installer version, and most of the rest was removed just by disabling dependence to msvcrt.dll, I am also quite sure that just changing compiler flags would make appear/disappear some av vendors on Virustotal.
Basically on virustotal, as soon as your program is not super normal you will get flagged, as an illustration, up to 5 positives is considered as non suspicious by the chocolatey package manager.

Can the option --system-level be handled properly by setup? It now causes elevation when installing, but the browser is anyway deployed to %APPDATA% (i.e. for current user only).
PS: it seems current comments went a bit offtopic. Probably it is worth enabling Discussions in this repo, so general topics can be discussed there :)

@Anton-V-K For now, you’ll need to extract mini_installer from the setup binary, and run that with —system-level, based on my own testing. Having the Supermium wrapper/installer handle it properly though would be nice though, did make a note of that in an earlier comment of mine somewhere in this issue.

32 and 64 bit installers were just revised. Tested with --system-level passed to the supermium_119_xx_setup.exe executables and it worked for both.

Thanks for all your replies. I feel bad about asking for the possibility to install to C:\Program Files in stead of C:\Users, when in fact being able to do so didn't help my problem at all!
My original problem was that MS Defender (run by the IT department) kept pinging the install .exe under "Attack Surface Reduction".  And every ½ hour the network surveillance resets whatever exceptions I'd made in gpedit.
By digging around I found the following solution, which oddly enough doesn't get reset by IT afterwards:

Open powershell with admin priviledges

If you've installed to C:\Users, type the command:

Add-MpPreference -AttackSurfaceReductionOnlyExclusions "%localappdata%\Supermium\Application\chrome.exe"
If you've installed to C:\Program Files, write instead:
Add-MpPreference -AttackSurfaceReductionOnlyExclusions "%programfiles%\Supermium\Application\chrome.exe"
Just throwing this out there if anyone experiences the same issue...

you can install it to program files by passing --system-level to the installer, amazing how nobody knows this


[FLINK-10932]Initial flink-kubernetes module with empty implementation

What is the purpose of the change
Initialize the skeleton module to start native k8s integration, related to FLINK-10932
Brief change log
(for example:)

Add flink-kubernetes module
Add Interface of Kubernetes client

Verifying this change
This change is an initial empty implementation, verified by mvn clean install and Travis CI.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): (no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (no)
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (yes)
If yes, how is the feature documented? (the document will be introduced in later pull requests)

@tillrohrmann Thanks for your comments, I have updated this PR, please take a look, thanks very much!

@tillrohrmann I added dependency relocation, please take a look, thanks!

Add direct dependency could not solve dependency conflict in kubernetes-client (see https://travis-ci.org/apache/flink/builds/542176004?utm_source=github_status&utm_medium=notification), so I would keep dependencyManagement.

@tillrohrmann According to the discuss above, do you have some other comments? Since this PR pending for couple of days, could we merge this and continue to work? thanks a lot!

Hi, @tianchen92
I think you should remove the dependencyManagement and do as the following steps.

Add the exclusions of jackson-core jackson-annotations jackson-databind in the kubernetes-client dependency.
Add the direct dependency with the specific version of the above exclusions.
Set shaded plugin.

@wangyang0918 Thanks for your comments, it looks reasonable to me. I have updated this PR @tillrohrmann

Thanks a lot for your comments @wangyang0918 , updated this PR

Hi, @tillrohrmann
@tianchen92 has updated the PR. Would you mind taking look again?

After offline discussion with @tianchen92 , we come to a conclusion maven-shade-plugin (includes filters and relocations) should be used to build a clean flink-kubernetes jar. All the dependencies should be shaded. Please update the PR.

After offline discussion with @tianchen92 , we come to a conclusion maven-shade-plugin (includes filters and relocations) should be used to build a clean flink-kubernetes jar. All the dependencies should be shaded. Please update the PR.

Thanks a lot, fixed now.


Fixing problem selecting TMS as base layer

Updated with last CartoDB.js v4 changes.
Fixes https://github.com/CartoDB/cartodb/issues/9398.
CR: @matallo

LGTM
On Sep 27, 2016 11:50 AM, "Javier Álvarez Medina"<EMAIL_ADDRESS>wrote:

Updated with last CartoDB.js v4 changes.
Fixes #9398 https://github.com/CartoDB/cartodb/issues/9398.
CR: @matallo https://github.com/matallo
You can view, comment on, or merge this pull request online at:
https://github.com/CartoDB/cartodb/pull/9894
Commit Summary

Set TMS basemap model property to false by default
npm shrinkwrap updated with last CartoDB.js changes

File Changes

M lib/assets/javascripts/cartodb3/editor/layers/
basemap-content-view.js
https://github.com/CartoDB/cartodb/pull/9894/files#diff-0 (1)
M lib/assets/javascripts/cartodb3/editor/layers/
basemap-content-views/basemap-model.js
https://github.com/CartoDB/cartodb/pull/9894/files#diff-1 (1)
M npm-shrinkwrap.json
https://github.com/CartoDB/cartodb/pull/9894/files#diff-2 (59)

Patch Links:

https://github.com/CartoDB/cartodb/pull/9894.patch
https://github.com/CartoDB/cartodb/pull/9894.diff

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/CartoDB/cartodb/pull/9894, or mute the thread
https://github.com/notifications/unsubscribe-auth/AACPROL2ZqdMgz_ynD9sTf3EltemFcEuks5quOb5gaJpZM4KHd4t
.

Frontend tests from Travis passed, merging @matallo.


InlineRouteParameterParser shouldn't exist

From @rynowak on Tuesday, October 17, 2017 5:54:42 PM
InlineRouteParameterParser is a separate static class from the TemplateParser with its own public entry point that is responsible for parsing the contents of a parameter.
Example:
{controller=Home}/{action=Index}/{id?}
In this case it would be called once for controller, once for action and once for id?.
There are some layering problems with this API overall

It doesn't handle escaping
It is called with the contents of the parameter, not the whole parameter
It doesn't need to be public, it's a detail of the template parser
It can't report errors, it always returns a 'parameter', even if it's in valid

We should obsolete this method in Microsoft.AspNetCore.Routing and remove it in 3.0. For the dispatcher we should fix all of the above issues and not make this functionality public.
Copied from original issue: aspnet/Routing#475

Closing as low-value work


Command appearing with SCSS

I saw in other issues that SCSS isn't supported by autoprefixer. However, when opening both a CSS and a SCSS file in Atom, the Autoprefix command appears in the command palette because of the CSS file, but I can use it on the SCSS file too. And it seems to work perfectly from what I saw.

It's not locked to only CSS files but it's not guaranteed to work in Sass or Less etc.


add mail address for reuse tool and code of conduct

Fyi, the dep5 example places the contact address between angle brackets: https://reuse.software/spec/#dep5


Use much faster DashMap with vmod_kv example

A few followups to this:

pub struct should NOT be allowed inside the vmod - it should be defined outside of it. Not sure why it is currently allowed.
We may need to rethink Send/Sync requirements for objects.  Technically, the ownership of the object is sent to Varnish ... which I guess is like another thread - so must be Send?

I'm pretty reluctant adding a new dependency here unless it's proven to make things better, either speed wise (i.e. it may not matter it the data structure is twice as fast if the time spent on it is dwarfed by the rest of the processing), or CPU wise

Pointing to the crate that has been downloaded over 80 million times... well, its a good practice :)
something something right-align :-)

but, yeah ok, the crate is solid and I get the educational argument


Modify Edit Attribute UI to enable Editing larger Strings

-User should  have of option to maximize his edit Attribute window.
-This should help user in modifying larger strings easily.

Currently the attribute pane shows up in the middle of the screen instead of next to the pencil. This needs to be fixed.


Publish package?

https://github.com/google/eddystone/tree/master/libraries/javascript/eddystone-advertising
Is there a reason this is not published as an npm package, perhaps named "chromeos-eddystone-advertising"?

Closing issue for inactivity


feat: add testground to ci [work in progress]

See #311.
This is a draft PR because it's not working currently. I'm running into https://github.com/testground/testground/issues/1541. Interestingly, this only happens when using Github workflows and never when running the test plans locally. The problem is that the directories for the current run are not created at /root/.config/testground/data/outputs/local_docker/fetching/<run-id>/<plan>/<index>. The directory /root/.config/testground/data/outputs exists. Manually creating these directories might be a quick fix but won't solve the underlying issue.
I created a discussion in the testground repo for this issue: https://github.com/testground/testground/discussions/1568
Another thing to note:
At the moment, we are pulling the ursa crates from the ursa git repository. This can be seen for example here: https://github.com/fleek-network/ursa/blob/main/test-plans/fetching/Cargo.toml. This is fine but defeats the purpose of running the test plans on every PR. For this, we have to use the code from the current commit. The most straightforward way that I came up with to achieve this is to copy the code from the ursa crates into the test plan directories and then temporarily overwriting the corresponding Cargo.toml.
I added a script scripts/run_testground.sh that takes care of this when running testground locally.

Thanks for taking this on!
Will the CI only validate that the tests build or that they ran successfully? The latter will be more complex right?

Thanks for taking a look! If the test plans would actually run without errors, then the CI will validate that they run successfully. In this line, the --wait argument will make the command wait for the test plan to complete and the exit status will be 0 only if the test plan succeeded. The github ci then picks up on the exit status, so it should all work out.

looks good

Hey folks, this might interest you: https://github.com/libp2p/test-plans/issues/103

Should we close this, given the move away from test ground?


Createfile fails with error code 5 in test application

Can you suggest why createfile fails for test application ?
Any help appreciated.!

Do you run as administrator?

Which platform do you have? Windows Xp/7/10, win32 or x86_64? This driver is unsigned, so it can't run in x64 platform.


How to use 'BinaryFormatter' in asp.net 5?

I did not find this class in Dnx Core 5.0 .

Hi @jiangzm , please file this in the CoreFx repo: https://github.com/dotnet/corefx/issues
Thanks!


Availability of Bird-SQL data

Hi,
Thanks for the exciting work on Bird-SQL data for text-to-SQL.
Any updates on the data availability?
Thanks!

You can download it here: https://bird-bench.github.io/
But I cannot run the code - there is some bug with openai API request

@jacekplocharczyk sorry for it, could you provide some detail error trace for the bug?

Hi @jacekplocharczyk! Thank you for your interest in our work. We appreciate you mentioning this. It seems like you're facing an issue with the OpenAI keys. In our project, we utilized Azure OpenAI API keys to evaluate the performance of ChatGPT. To fetch the results, we used the openai.Completion.create() function, which is consistent with other models such as code-davinci-002 and text-davinci-003.
However, we observed that for the regular keys, you should refer to the documentation at https://platform.openai.com/docs/api-reference/chat and use openai.ChatCompletion.create() instead. Additionally, for prompt design, please follow the instructions provided in the chatlm tag documentation at https://github.com/openai/openai-python/blob/main/chatml.md#few-shot-prompting. In this case, you will need to place your tag within the message parameter instead of prompt.
During our experiments, we found that the performance of ChatGPT with Azure OpenAI Key is superior to ChatGPT with the regular OpenAI key, and we only reported the best performance in our paper. However, we are actively working on updating the standard methods for calling ChatGPT in the regular account. Thanks a lot

Thanks @accpatrick - using 'text-davinci-003' worked :)


Create an ESM bundle

Exports the code as an ECMAScript module and stops calling the sort function on page load. In a web application, as opposed to a browser extension, this should be left to developers when to call sorting. There are scenarios with no initial tables (tables are loaded dynamically and the sort function is called when required). As for file extension, it can be ".mjs", which is the standard or alternatively, something like ".esm.js"

stops calling the sort function on page load.

Technically it doesn't sort on the pages content loading it just adds the event listener and sets the table up to be sortable on click.

There are scenarios with no initial tables (tables are loaded dynamically and the sort function is called when required).
Yeah, I think if the tables are loaded from a database etc (is this your use case?). We could probably do a better job of handling this, probably with a class to override, or something.

The main problem I have with this PR is that I would have to maintain two different scripts each with different logic (and would have to setup tests for this new file).
I think if you want an .mjs file it should be made from the public/table-sort.js script on deploy/release and the script itself should  detect the file extension and use export (and select whatever logic is relevant for it as a module ) if the file is a .mjs
The code below is used for testing.
if (typeof module == "object") {
  module.exports = tableSortJs;
}```

Currently, the following line fails with the error message: The requested module doesn't provide an export named 'tableSortJs'
import { tableSortJs } from 'path to table-sort.js';

As a result, your package can't be used in JavaScript modules, whether I use the file as table-sort.js or table-sort.mjs. Your project lacks support for JavaScript modules.
You won't have to maintain two different scripts. Upon releasing a new version, you only need to copy the whole code from table-sort.js to table-sort.mjs and add "export" before function declaration (export function tableSortJs). Alternatively, you can add export { tableSortJs }; to the end of table-sort.mjs. That's all.
As an example, Color.js offers different bundles including an ESM bundle. The package can be readily imported as a JavaScript module. This file shows that the process can be automated.
As for the other requested change, I didn't mean tables are sorted on page load but that tableSortJs function is executed on page load. It might be useful for a browser extension to force its code execution on page load but generally, load events should be managed by those who use your package in their projects. This change could be discussed separately but since a typical JavaScript component does not have a load event, I thought I could request both changes at the same time. We can skip this change and focus on the necessity of an ESM bundle for your project.

Currently, the following line fails with the error message: The requested module doesn't provide an export named 'tableSortJs'
import { tableSortJs } from 'path to table-sort.js';

What about like this where you just import the whole library does this work?
import tableSort from "table-sort-js/table-sort.js";

Calling it in React:
  useEffect(() => {
    tableSort()
  },[]);

What about like this; where you just import tableSort without brackets, does this work? (this should export the whole thing as a module)?
import tableSort from "table-sort-js/table-sort.js";

It doesn't work. The difference between import X and import { X } is a matter of export vs export default. Your project does not support JavaScript modules, whether in the form of export { tableSortJs } or export default tableSortJs.

It doesn't work.

How are you installing it?,  from npm? I find it hard to believe it doesn't work, because I have used it myself. However, you might be right in that it doesn't have a default export, so why does it still work for me? and I assume other people ( because why has no one complained up till now if it doesn't work)?

Please read about different types of modules here. Node.js projects typically use CommonJS. This type of module does not work in the browser (it is a back-end module). React, Vue, etc. use back-end technologies and that's probably why no one has complained so far :) They are transpiled before they can be understood by browsers. I'm requesting support for native JavaScript module called ESM. It works directly in the browser. NPM is not just for Node.js projects. It is also used to install Bootstrap, icon libraries, etc. As I mentioned before, Color.js is a good sample of projects that support different types of modules.

@alijsh Yeah, I'm not opposed to making .mjs file. I was just curious why it was working currently. Do we need named exports or just a default export? , I think the easiest way is just add a export default onto the end of the file after copying form public/table-sort.js -> public/table-sort.mjs using a bash script i.e https://github.com/LeeWannacott/table-sort-js/blob/master/deploy.sh.
I don't think we need the following, as I think they are doing this for the minifier (terser), jsDelivr would make a minifier url for the .mjs anyway.
https://github.com/color-js/color.js/blob/main/_build/rollup.config.js

load events should be managed by those who use your package in their projects

I think if table-sort.js is loaded from a

Do we need named exports or just a default export? , I think the easiest way is just add a export default onto the end of the file after copying form public/table-sort.js -> public/table-sort.mjs using a bash script i.e https://github.com/LeeWannacott/table-sort-js/blob/master/deploy.sh.

Both are possible but we can go for what you find the easiest. You just add export default tableSortJs; to the end of table-sort.mjs and it's ready to be imported as an ESM module in other files: import tableSortJs from 'path/to/table-sort.mjs';.

I think if table-sort.js is loaded from a


Vfio passthrough

This add support for passing in vfio devices to the VM.
Requires ciao PR to be merged first:
https://github.com/ciao-project/ciao/pull/1444

Coverage decreased (-0.3%) to 65.67% when pulling ee7d716a3fc2e8c4b81dc4e11ea96688976fbf28 on amshinde:vfio-passthrough into e1bbacca02c1276a31547ca3a7a5944f62154261 on containers:master.

Coverage decreased (-0.3%) to 65.67% when pulling ee7d716a3fc2e8c4b81dc4e11ea96688976fbf28 on amshinde:vfio-passthrough into e1bbacca02c1276a31547ca3a7a5944f62154261 on containers:master.

Coverage increased (+0.2%) to 66.103% when pulling a993f721b46dabcbff7c7da6858b805b2a0168fa on amshinde:vfio-passthrough into e1bbacca02c1276a31547ca3a7a5944f62154261 on containers:master.

@sameo  Can you take a look at this. I have moved devices to containers and added a factory method for creating specific device implementations.

Coverage decreased (-0.2%) to 65.68% when pulling 5c67a24b3f9730f38b790e0771b55712d65b94e5 on amshinde:vfio-passthrough into 60cbf043705577be11538157ed029300b8e3eb1a on containers:master.

Coverage decreased (-0.2%) to 65.68% when pulling e445639c11d00203678ab699dd3297e9e272f949 on amshinde:vfio-passthrough into 60cbf043705577be11538157ed029300b8e3eb1a on containers:master.

Coverage decreased (-0.2%) to 65.68% when pulling c26b825ae22095b4e8add572ceb23906fb43461d on amshinde:vfio-passthrough into 60cbf043705577be11538157ed029300b8e3eb1a on containers:master.

Coverage decreased (-0.2%) to 65.68% when pulling f3f30c370afa07a4d7a99eee80a48689f0f5fe3f on amshinde:vfio-passthrough into 60cbf043705577be11538157ed029300b8e3eb1a on containers:master.

Coverage decreased (-0.2%) to 65.688% when pulling 77b5ef7bae3517da491b24fe5e5842ccbc2c3907 on amshinde:vfio-passthrough into d2ef27814f30f4d32d660578d4c4685da8d062ff on containers:master.

@jodh-intel go ahead and merge it if you're okay with the latest version of this PR.


Valued variants are not supported.

Change the readme example by adding a value to one of the variants
use serde_variant::to_variant_name;
use serde_derive::*;

#[derive(Serialize)]
enum Foo {
  Var1,
  #[serde(rename = "VAR2")]
  Var2(i32),
}

fn main() {
    assert_eq!(to_variant_name(&Foo::Var1).unwrap(), "Var1");
    assert_eq!(to_variant_name(&Foo::Var2(42)).unwrap(), "VAR2");
}

and it fails:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: UnsupportedType { method: "serialize_newtype_variant" }', src/main.rs:13:48

... which makes this crate much less useful than it could have been.

Yeah, I only added the functionality I immediately needed. Shouldn't be hard to add. Will do it later.

I added support for a few more types and published 0.1.1. Closing.

Thanks for a quick turnaround!
Unfortunately, this doesn't work for internally/adjacently tagged enums :(
#[derive(Serialize)]
#[serde(tag="tag", content="content")]
enum Foo {
  Var1,
  Var2(i32),
}

You are free to create a pull request.

I would, but I don't know how to fix this one.

Yeah, I am not sure it is possible to get that working, given that serde serializes that as a struct and we'd actually need to peek into the generic values from a non-generic context. Without specialization I am not sure it can be done.


ACCUMULO-2972: fixed description for instance.secret

1.6 documentation fix for ACCUMULO-2972

Made English better in 0ecc47161cc5b019f856dccd78bec48c4ba70e13


Mark deleted rule's series as stale on next evaluation.

Fixes #5755
Signed-off-by: Brian Brazil<EMAIL_ADDRESS>

:+1:


Fixed broken links in README caused by the newly introduced unicode i…

…cons

You can test out the fixed README here: https://github.com/martisaw/micronaut-camunda-bpm/tree/bug-fix


Titolone

ufhwsofihwofi:

Current dependencies on/for this PR:

main

PR #8   👈

This stack of pull requests is managed by Graphite.

Merge activity

Feb 6, 4:37 AM EST: @Gruppio started a stack merge that includes this pull request via Graphite.


Create an error handling middleware

ErrorHandlerFunc is a function type that matches the handlers' signature.

Update the handler and service to match the error handling middleware.

[ ] post handler and post service
[ ] user handler and user service

Update the handler and service to match the error handling middleware.

[x] post handler and post service

GetAllPosts

[x] user handler and user service

GetAllUsers


Cherry-pick of #2926 into Release-2.0.0 branch

R: @davorbonaci
Upgrades Bigtable to <IP_ADDRESS>

Update commit description from "closes" to "cherry-picks".


Haptic feedback on new notification when the app is open/active

No content

Issue created by BlueBubbles Bot in the BlueBubbles commnity on behalf of @zach in #feedback.

The user should get haptic feedback so long as 2 conditions are met:

The app is in the foreground
the chat for the notification is not already open


bn momentum is different

Dear all,
Even if navigate into this code is harder than the 10 years journey of Odisseo, I have noticed that in _global_params you set batch_norm_momentum to 0.99, if you print the model you can see that
EfficientNet(
  (_conv_stem): Conv2dStaticSamePadding(
    ...
  )
  (_bn0): BatchNorm2d(32, eps=0.001, momentum=0.010000000000000009, affine=True, track_running_stats=True)
  (_blocks): ModuleList(
    ....

is set to 0.010.
Now, since it is a google paper basically nothing is really explained. Can somebody tell me what is the correct value?
Stay safe!
Best Regards

hi mate
did you try a tensorflow version of efficientnet?
I'm not a tensorflow guy... but I think they have an official repo for efficientnet
you could probably make some guesses there.
hope it helped
and if it does, could you share us your result? I'm also interested

https://stackoverflow.com/a/48950072

Thank you!


Add GAE and GKE fluentd Handlers

On GAE and GKE with the plugin installed, there is a fluentd plugin that collects logs from files. However without the right formatting, metadata like log_level is lost. Furthermore, the fluentd agents are configured to set the  correct resources types, which could be  done in the main handler as well, but it’s easier to rely on the fluentd configurations.
This adds two new handlers and some helper functions to detect when they should be used.

@dhermes /cc @jonparrott

Think I addressed all comments, let me make sure Travis is passing and then I'll do another once-over before I request another review.

@waprin Pretty please squash (either in the GitHub UI or in your local copy).
@jonparrott Do you want to do a final pass?


ADD self.lift() to popup the widget raise ( line 202 in drop_downmenu.py)

thank for this widget man


Parallelize building and pushing Docker images

This PR contributes two new Actions:

Build Docker Images: Extension of build-docker-image which builds Docker images in parallel.
Push Docker Images: Extension of push-docker-image which pushes Docker images in parallel.

Nice parallelisation! ⚡ 👷♂ Only question is how did you test this works?

Thanks! I tested these changes by running the Actions from a Workflow in another repository. You should be tagged as a reviewer on that other PR too!


The Wordpress Helm chart used within this quickstart does not exist in azure helm repo.

While testing the deployment of the osba for azure, I got the msg :
Error: Failed to fetch https://kubernetescharts.blob.core.windows.net/azure/wordpress-0.10.1.tgz : 404 The specified blob does not exist.
I do not see who to get this chart ready to make a use of osba
THx

+1 Can confirm same error. We just pushed the 0.10.1 release a few days ago. I will file an issue on the azure/wordpress repo. In the meantime, workaround is: to use --version flag with 0.10.0 release.
helm install azure/wordpress --name osba-quickstart --namespace osba-quickstart --version 0.10.0

This has been fixed. There was a bug in the newer version of the Dockerized toolset we use for publishing charts to Azure Storage. We've rolled back to the previous version of the toolset until the issue with those tools can be properly corrected.


Proteus is generating a proto message even when the struct is not marked for generation:

the structs are not marked for generation but proteus is generating a proto file with a Address message related to Address type from go code. Check below what I am doing:
package order

type Address struct {
	City    string
	Country string
	Line1   string
	Line2   string
	ZipCode string
	State   string
}

type Shipping struct {
	Address        *Address
	Carrier        string
	FirstName      string
	LastName       string
	Phone          string
	TrackingNumber string
}

Output after proteus execution:
syntax = "proto3";
package example.pkg.order;

import "github.com/gogo/protobuf/gogoproto/gogo.proto";

option (gogoproto.protosizer_all) = true;
option (gogoproto.sizer_all) = false;
option go_package = "order";

message Address {
	option (gogoproto.goproto_getters) = false;
	option (gogoproto.typedecl) = false;
	string city = 1;
	string country = 2;
	string line1 = 3;
	string line2 = 4;
	string zip_code = 5;
	string state = 6;
}

Expected output:
syntax = "proto3";
package example.pkg.order;

import "github.com/gogo/protobuf/gogoproto/gogo.proto";

option (gogoproto.protosizer_all) = true;
option (gogoproto.sizer_all) = false;
option go_package = "order";

I think that is a bug because it is working proper if the Address type is embedded in the Shipping type for example:
package order

type Address struct {
	City    string
	Country string
	Line1   string
	Line2   string
	ZipCode string
	State   string
}

type Shipping struct {
	Address
	Carrier        string
	FirstName      string
	LastName       string
	Phone          string
	TrackingNumber string
}

I'm seeing this as well


fix strings that weren't escaped correctly

I'm not sure how this file got into the repo in the first place. I haven't investigated it, but my guess is that older versions of pycodestyle weren't configured to report this kind of error by default, and an update to pycodestyle made our travis build start detecting this error.


Is there any example for graphVAE implementation?

I was wondering if there is there any example for graphVAE implementation?

Please have a look at the autoencoder example.

I may also fix something up sometime soon.


Add live test

To access Flojoy-studio build from this pull request, you can use the following URLs:
Windows installation: http://547_windows.flojoy-test.com:3000
Linux installation: http://547_linux.flojoy-test.com:3000
Please note that it may take a few minutes for the instance to start up, so please be patient.
It is important to know that the instance will automatically shut down after 4 hours to conserve resources. If you wish to start the instance again after it shuts down (or restart it to pickup new changes), you can use this API :
Windows: https://kgpsoscpc4q52d4mtwuu7jhvie0qdiso.lambda-url.us-east-1.on.aws/start_instance?instance_id=i-05aad69599e8efa95&domain=547_windows
Linux: https://kgpsoscpc4q52d4mtwuu7jhvie0qdiso.lambda-url.us-east-1.on.aws/start_instance?instance_id=i-0a5e76c75a858edc2&domain=547_linux


Add openshift client oc in the bundle

This decorrelates a little bit more a CodeReady Container version
from an openshift version. crc will now have to pick the oc client in
the bundle instead of downloading and adding it in his static
resources.
Relates to https://github.com/code-ready/crc/pull/1511 - it will simplify it.

/retest

cc @cgruver

Excellent!  I'll rework my CRC PR based on this change.


hover: Failed to change file permissions for {{.executableName}}.desktop file: chmod /tmp/hover-build-flutter_app-linux-appimage176916164/flutter_app.desktop: no such file or directory

hover: Failed to change file permissions for {{.executableName}}.desktop file: chmod /tmp/hover-build-flutter_app-linux-appimage176916164/flutter_app.desktop: no such file or directory

EXACT same issue as https://github.com/go-flutter-desktop/go-flutter/issues/518


Inconsistency: publishToMavenLocal vs publishAllRepositoriesToMavenLocal

Currently, there is a shortcut task to publish all repositories to mavenLocal: publishToMavenLocal.
It's useful but it breaks the pattern of other publish tasks which are named publishAllPublicationTo${repoName}Repository
Would it be possible to add mavenLocal() by default to the repositories so everything is consistent ? Something equivalent to:
publishing {
  repositories {
    mavenLocal() // add this automatically
  }
}

This is a historical situation. Given that our position towards Maven local is to discourage its use, or at least strongly limit it, it is quite unlikely that we ever add Maven local there by default.
One thing that could be considered is starting to deprecate the usage of publishToMavenLocal and instead require users to explicitly add it to the publication repositories.
Note that the later already works, if you add mavenLocal() as a publication repository, you get tasks added according to the publish${publication}ToMavenLocalRepository.
However this short circuits the special handling done for Maven local which creates maven-metadata-local.xml files instead of maven-metadata.xml ones.
If this is something you feel strongly about, you should consider working on this. Otherwise, this is unlikely to be a Gradle priority in the short to medium term.

Thanks for the quick reply. Completely understand it's not a priority. I'll see if I can add some deprecation to publishToMavenLocal

Hi folks,
I find this interesting

One thing that could be considered is starting to deprecate the usage of publishToMavenLocal and instead require users to explicitly add it to the publication repositories.

Agree with this, although a lot of folks are used to this and training the muscle memory to do something different might take some time.
Wonder if gradle should also have a set of tasks to publish to a folder inside build for testing purposes, such as make sure that generated metadata is valid. For this cases you might not even need publishing to maven local since you are not planning to consume it
thoughts?

Wonder if gradle should also have a set of tasks to publish to a folder inside build for testing purposes, such as make sure that generated metadata is valid. For this cases you might not even need publishing to maven local since you are not planning to consume it

We do that manually actually. We add a repo inside build for tests. Having gradle do it by default would be handy. The only downside I can see is that it will add more tasks to ./gradlew tasks. See https://github.com/gradle/gradle/issues/10132

oh that makes sense... yeah we do the same ourselves and definitely would be handy. But that ticket has great points


Further corrections to Welsh lang after feedback

Use links to Welsh language pages #233
Add missing tooltip translations
Show full dates #233
Try to ensure no random line breaks
Localise result types as required #233
Fix mutation error

@bogdanadrianmarc Good spot on version & changelog, thanks


Manual references get ignored by the robot

Subject: Manual references get ignored by the robot
Description:
I wrote a reference directly for my guest via their profile. The hosting robot still nags "Write them a reference" and the "Write a reference" button still appears on the chat
Results:
The robot needs to check if a reference between two accounts was written and stop nagging.
Backend version: develop-d6739683
Frontend version:
User Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
Page: https://couchers.org/dashboard
User: icecream (1770)

dupe #3530


SonarQuebe link is not redirecting to a valid website

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[ ] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
we have sonarquebe website url in source code of sonar.rb to help with understanding the sonar action functionalities, but the link is broken
link which is broken - http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner
Command executed
NA
Complete output when running fastlane, including the stack trace and command used
NA
Environment
NA

I've exactly the same problem. I've put my sonarqube domain name but my redirect_uri is localhost:9000... It's maybe a problem with the sonarqube configuration because its default listen port is 9000 (for me, sonarqube run in a container and i've bind <IP_ADDRESS>:57563 with 9000/tcp)

Thanks for the information, I will try to figure it out for more. Keep sharing such informative post keep suggesting such post.


Add stshine to try

r? @jdm

This change is

@bors-servo: r+

:pushpin: Commit 5d68a14 has been approved by jdm

:zap: Test exempted - status


Access PIN_A, PIN_B on VoiceBonnet + RaspberryPi 4

I'm trying to port a working script from an original RaspberryPi WH Zero+VoiceBonnet to a Raspberry Pi4 + VoiceBonnet setup. The RPI4+VoiceBonnet have the speaker and mic working properly, with the latest AIY-VoiceKit image (2019-11) flashed on microSD. The script turns on and off a solenoid. I need to move it to a RPI4 because I need to connect with an USB mic.
But when I try to access the GPIO pins from Python script, it doesn't found the AIY_USER0 and AIY_USER1 pins.
The script halts at the following:
from gpiozero import LED
from aiy.pins import PIN_B, PIN_A
sol_A = LED(PIN_A)
sol_B = LED(PIN_B)

When executed, the script doesn't exit but freezes, and when I terminate it with Control+C, the traceback shows:
FileNotFoundError: [Errno 2] No such file or directory: '/sys/class/gpio/AIY_USER0/active_low'
When I ls /sys/class/gpio/,  it only shows AIY_PA16.
I checked on a WH Zero+VoiceBonnet, and ls /sys/class/gpio/ shows AIY_USER0 and AIY_USER1.
I tried to change in AIY-projects-python/src/aiy/pins.py as the following:
l108    PIN_A = AIYPinSpec(GpioSpec(PIN_OFFSET, 2, 'AIY_PA16', active_low=False), PwmSpec(0, 'pwm0'))
l109    PIN_B = AIYPinSpec(GpioSpec(PIN_OFFSET, 3, 'AIY_PA17', active_low=False), PwmSpec(1, 'pwm1'))
l110    PIN_C = AIYPinSpec(GpioSpec(PIN_OFFSET, 8, 'AIY_USER2', active_low=False), PwmSpec(2, 'pwm2'))
l111    PIN_D = AIYPinSpec(GpioSpec(PIN_OFFSET, 9, 'AIY_USER3', active_low=False), PwmSpec(3, 'pwm3'))

I also tried to manually adding to the GPIO:
echo $((497 + 2)) > /sys/class/gpio/export
but it returns -bash: echo: write error: Device or resource busy.
Is there any way to access PIN_A and PIN_B from Raspberry Pi 4?

I checked on my pi4 and voicebonnet and also saw the same behavior.
I have created a shell script to get the pins to show up. I hope this will be able to help you too. I am meanwhile looking into the kernel module to try to understand whats going wrong with it.
#!/bin/bash

base=`ls -al /sys/class/gpio/gpiochip* | grep aiy | grep -Po '[0-9]+$'`
offset=0

while [ $offset -lt 15 ]; do
    sudo sh -c "echo $(($base + $offset)) > /sys/class/gpio/export"
    offset=$(($offset + 1))
done

Went through the kernel module code. That looks good.
Instead the issue is here
The offset is hardcoded. The offset is 497 for pi zero, but it comes as 489 for pi 4. so you should be able to fix the issue by changing the value of PIN_OFFSET in aiy/pins.py file.

Thank you! That's fixed in the latest source code and SD card image.


provide create action

cherry picked to PR #78. Released now as of 1.5.14. Updated to supermarket.


Add an ingress template to the seq chart

Checklist

[x] DCO signed
[x] Chart Version bumped
[x] Variables are documented in the README.md

/assign nblumhardt

/unassign nblumhardt
/cc nblumhardt

@msschl can you bump the version number to 0.1.3 so the ci tests can run.

@gertjvr done

/approve

/lgtm


Mardown not parsed inside HTML tags

It seems that the parser doesn't parse inside HTML tags:
f.in
    \

      \**BOLD**
      \*Italic*
    \

python2 -m markdown f.in -f f.out
f.out
\

  \**BOLD**
  \*Italic*
\

F.out should contain BOLD instead of **BOLD**, and Italic instead of *Italic*
It works well with 2.0.3.

This is not a bug. In fact, it was a bug in 2.0 which has since been fixed. Therefore, I'm closing this as wontfix.
Check your sample input here: http://daringfireball.net/projects/markdown/dingus
The relevant part of the syntax rule states:

Note that Markdown formatting syntax is not processed within block-level HTML tags. E.g., you can’t use Markdown-style emphasis inside an HTML block.

If you'd like to have markdown syntax processed inside raw HTML blocks, then use the Extra extension. The feature is currently a little buggy (see issue #52) and therefore undocumented, but it's patterned after PHP Markdown Extra's behavior. That documentation will  tell you how to use it. Just run python-markdown with the 'extra' extension.


Revert "Add support for multiroot scheme to PackageUriMapper"

Reverts flutter/flutter#27207

The test passes internally if we update the line to Uri.file(name, windows: platform.isWindows).toString()) and remove the lib/. I can add the lib to the root instead.

If you're confident that that's a valid fix, then I can close this in favor of your fix.


Require socket in the file that needs it

Closes #5533

I'd love ideas on how to test it is necessary.

Something similar happened to me on #4083 and I didn't add a test.
Not sure if it's necessary (given that the file actually needs Socket anyways.)

@bundlerbot r+


Improve the multithread support

Currently we have some of issue that are well known:

rayon can be better
compute_lookahead_data should happen in a separate thread

The upcoming rayon solves its problems neatly:

And we have compute_block_importances and compute_lookahead_data that could happily live in a separate thread and not stall the rest of the encoding.

I believe compute_block_importances could be split into multiple threads similar to tiling.

Ah, compute_block_importances should be tiled anyway or the block importances will be inaccurate for blocks that move across tile boundaries.

https://github.com/xiph/rav1e/commit/8cc2268f8ae16451d79d58f3b1bee32a33e43f0c and https://github.com/xiph/rav1e/commit/1e0a8ce78a8db533bb813641dbd4e2a17c30d48b resulted in ~21% speedup over Chimera 1080p with 8 tiles and >8 threads.


Change focus to Pulumi Template

@rawkode created equinix-labs/kubernetes-cloud-init based on packet-labs/kubernetes-cloud-init. These two projects were not directly descendent but many of the files were common and a history could be derived.
Because packet-labs/kubernetes-cloud-init was scheduled for removal, I've rebased equinix-labs/kubernetes-cloud-init on packet-labs/kuberetes-cloud-init, deleted equinix-labs/kubernetes-cloud-init, and renamed packet-labs/kuberetes-cloud-init to equinix-labs/kubernetes-cloud-init (changing the default branch to main).
This branch/PR represents the change from the old project to the new project.
By merging this PR, the old packet-labs history and the current equinix-labs repo will both be preserved.

@displague Let me know if you need any help with this 👍🏻


[composer] add to space button on space page doesn't work

should bring up "add item" palette?

I've removed this button for now. It didn't work because the "add item" palette is inside the navtree. This will be resolved by #5186


40 add parser for paket.dependencies file

Hi,
i added a parser for paket.dependencies file - it has implementation and tests for all the functions;
It can currently check outdated dependencies only for Nuget packages. I've no idea how to check versions for packages imported from github, git, gist and http.
Paket also supports s.o dependency strategy for conflicting dependency, which is not implemented. It may need changes for VersionService and NaturalSorter to implement this feature properly. I skipped that feature because i wasn't able to find a real Github project that uses this feature.

Thank you! For the first version it should be fine with limited feature set. Currently I'm reviewing the code.


InputFilter not used for filtering POST data

Hello,
I have a question or an issue, but I am not sure which of the two it is since I don't know if the behavior is wrong or expected. Let me explain.
When I register an inputFilter for a certain entity and patch an entity with data (a field) that is not registered in the inputFilter I get an ApiProblem response with status 400 and a message "Unrecognized field name".
Now in another case I post data for creating a new entity and I include the same invalid field in the data. When I look at the $data object in the create method in my ResourceListener the $data is apparently not filtered by the inputFilter, because unknown data is still present in the $data object. Normally I would expect the inputFilter to take care of unknown/unwanted by filtering it. Something like this:
$inputFilter->setData($unfilteredData);
if(!$inputFilter->isValid()){
    ...throw exception or return ApiProblem
}
$filteredData = $inputFilter->getValues();

Is the module (as the name would suggest) only for validation of data and that is why the registered inputFilters are not used for filtering POST data at all? Does it mean I still manually have to pull the data trough the filter in my ResourceListener.
I also looked at the zfcampus/zf-content-validation src files but could not find anything related to actually filtering the data.
Thanks.

@weierophinney Is this issue still existing ? If yes, I could suggest a PR to add the flag.

Until now exist a global option like:  'filter_resource_listeners_data_for_all_methods' => true, to be by default filtered data not raw data? To know.

When using pre and post event listeners and resolving the data from the param from the event it turns out the data array also holds the unfiltered data (raw post data).
I think it is a design mistakes inside the Apigility/zf-rest architecture to pass raw unfiltered data to the RestController classes, the ResourceListener and post and pre controller events. I don't think people expect raw post values in this stage of their application process (after dispatch). I strongly believe mistakes are bound to happen.
I know that filtered values can be resolved indirectly from the event like this:
    $restController = $event->getTarget();
    $resource = $restController->getResource();
    $inputFilter = $resource->getInputFilter();
    $data = $inputFilter->getValues();

But I would strongly suggest passing filtered data to the controller class methods and the pre and post events in the RestController. It would surely be much more intuitive.

For those ending up here there are two flags that can be used for setting this up according to the documentation here: https://apigility.org/documentation/modules/zf-content-validation#user-configuration:

use_raw_data: if NOT present, raw data is ALWAYS injected into the "BodyParams" container (defined by zf-content-negotiation). If this key is present and a boolean false, then the validated, filtered data from the input filter will be used instead.

allows_only_fields_in_filter: if present, and use_raw_data is boolean false, the value of this flag will define whether or not additional fields present in the payload will be merged with the filtered data.


feat(validator): Adding error, warn, info categories support.

feat(validator): Adding various categories support for validators like error, warn, info etc...

Fixes #168
Description of changes:

Added ValidationRule type for better type safety
Accepting either strings or objects with categories as valid parameters for validators

Tag a reviewer: @ayoayco
Tasks:

[x] I have ran the build command to make sure apps are working: npm run build
[x] I have ran the tests to make sure nothing is broken: npm run test
[x] I have ran the linter to make sure code is clean: npm run lint
[x] I have reviewed my own code to remove changes that are not needed

Hi @ayoayco, finally I fixed tests/lint issues with this PR 😅, it's ready to be merged now! Although I haven't added test cases for various categories of validators, I think I will open a separate PR for that if that's ok with you.


README should mention running psc-package install

I know JS and TypeScript but I never used PureScript before and I had no idea I had to run psc-package install.

I also needed to have libtinfo5 installed on Debian.

Updated the README: https://github.com/justinwoo/format-nix/commit/ceeb5a59f7a5f361f51d286c00720d768e7864e3
Don't know about what to do about the missing dep on Debian.

Closing for inactivity


A5M2 update

I found A5M2 release 2.15.0 available and update hash.
Would you apply this modification to your bucket?
Thank you for useful bucket.

Thanks.


Pod rewrite checklist

Pods: http://k8sdocs.github.io/docs/pod/

[x] - Configuring container restarts on failure (restartPolicy)
[ ] - * Gracefully shutting down containers (terminationGracePeriodSeconds)
[x] - Explicitly scheduling a pod to a node (nodeSelector)
[ ] - * Preventing a pod from being scheduled on a node (nodeSelector)
[ ] - Configuring access control and identities for container processes (Service Accounts)
[x] - Pulling images from a private registry (imagePullSecrets)
[ ] - Landing page for Volume/Storage tasks
[ ] - Landing page for Networking tasks (service, discovery, load balancing)

Containers:

[ ] - 2. Defining commands and arguments in a container (container.command, container.args)
[ ] - Checking whether a pod can recieve traffic (container.readinessProbe)
[ ] - Checking whether a pod should be restarted (container.livenessProbe)
[ ] - Writing debug messages (terminationMessagePath, stdout logging, fluentd)
[ ] - Restricting the pulling of new images (container.imagePullPolicy)
[ ] - 3. Defining container environment variables (container.env, Downward API?)
[ ] - Attaching functions to container lifecycle events (container.postStart, container.preStop)
[ ] - Assigning CPU and RAM resources to a container (container.resources)
[ ] - 1. Using ports with containers
[ ] - *Limiting allowable shutdown time for a container (terminationGracePeriodSeconds)
[ ] - *Defining a maximum execution time for a container (activeDeadlineSeconds)
[ ] - *Configuring OS-level security privileges (Security Context)
[ ] - *Using the host network with your container (hostNetwork)
[ ] - **Using the host PID namespace for container processes (hostPID)
[ ] - **Using the host IPC namespace for container processes (hostIPC)

Services:

[ ] - Load Balancing Traffic Across Pods
[ ] - Making Pods Externally Accessible

cc @pwittrock @janetkuo

See also https://github.com/kubernetes/kubernetes/issues/15244

The specific list topics has drifted a bit from what is described in this issue. But I think we have addressed the concerns expressed here. Please reopen if you think otherwise.
See the set of topics under /docs/tasks/configure-pod-container/, starting with
Assign Memory Resources to Containers and Pods
See the set of topics under /docs/tasks/inject-data-applications/, starting with
Define a Command and Arguments for a Container
See the set of topics under /docs/tasks/run-application/, starting with
Run a Stateless Application Using a Deployment
See the set of topics under /docs/tasks/access-application-cluster/. Example:
Use Port Forwarding to Access Applications in a Cluster


ES6 Class Definitions

I noticed in the examples that you use ES6 syntax for everything short of defining React classes. I revised the todo example to use ES6 syntax for everything. One advantage is that I was able to leave the react 'props' object empty in class 'ToList' and substitute 'this store' for 'this.props.store' in the two function definitions. The last three lines of the file are:
let TodoView = mobservable.reactiveComponent(ToView);
let TodoList = mobservable.reactiveComponent(ToList);
React.render(<TodoList />, document.getElementById('approot'));

React 'props' creation was still very useful in creating ToView components on the fly.
Maybe it would be a good idea to include some examples that not only use ES6 syntax for most things, but also use it to create classes by extending React.Component. If you like, I will make a pull request to include the following example along with package.json and webpack-config.js files so a user could get up and running with 'npm install', 'webpack', and whatever web server they like. I could add webpack-dev-server. I have 'warp' globally install so wherever there is an index.html file, the command 'warp' loads in on port 3000. 'ALT backtick right arrow' on the keyboard followed by 'CTL R' shows me a reloaded webpage. 'ALT backtick right arrow' again takes me back to my 'lilyterm' terminal. I don't feel any pressing need to start using automatic web page reloading again.
Here is my proposed ES6 version of the todo file:
import mobservable from 'mobservable';
import React from 'react';
var todoStore = mobservable.makeReactive({
    todos: [
        {
            title: 'Find a clean mug',
            completed: true
        },
        {
            title: 'Make coffee',
            completed: false
        }
    ],
    completedCount: function() {
        return this.todos.filter((todo) => todo.completed).length;
    },
    pending: 0
});

todoStore.addTodo = (title) => {
    todoStore.todos.push({
        title: title,
        completed: false
    });
};

todoStore.removeTodo = (todo) => {
    todoStore.todos.splice(todoStore.todos.indexOf(todo), 1);
};

todoStore.loadTodosAsync = () => {
    todoStore.pending++;
    setTimeout(function() {
        todoStore.addTodo('Asynchronously created todo');
        todoStore.pending--;
    }, 2000);
};

class ToList extends React.Component{
  constructor(props) {
    super(props);
    this.store = todoStore;
  }
    render = () => {
        var store = this.store;
        return (

                { store.todos.map((item, idx) =>
                    (<TodoView store={ store } todo={ item } key={ idx } />)
                ) }
                { store.pending ? (
Loading more items...
) : null }

            Completed { store.completedCount } of { store.todos.length } items.

            <button onClick={ this.onNewTodo }>New Todo</button>
            <button onClick={ this.loadMore }>Load more...</button>

);
    }

    onNewTodo = () => {
        this.store.addTodo(prompt('Enter a new todo:', 'Try mobservable at home!'));
    }

    loadMore = () => {
        this.store.loadTodosAsync();
    }
};

class ToView extends React.Component{
    render = () => {
        var todo = this.props.todo;
        return (

            <input type='checkbox' checked={ todo.completed } onChange={ this.onToggleCompleted } />
            {todo.title}{' '}
            [edit]
            [remove]

);
    }

    onToggleCompleted = () => {
        this.props.todo.completed = !this.props.todo.completed;
    }

    onEdit = (e) => {
        e.preventDefault();
        this.props.todo.title = prompt('Todo:', this.props.todo.title);
    }

    onRemove = (e) => {
        e.preventDefault();
        this.props.store.removeTodo(this.props.todo);
    }
};
let TodoView = mobservable.reactiveComponent(ToView);
let TodoList = mobservable.reactiveComponent(ToList);
React.render(<TodoList />, document.getElementById('approot'));

Hi @dschalk,
thanks for the suggestion! There is a simple getting started project that bundles the todo list code in a webpack here: https://github.com/mweststrate/react-mobservable-boilerplate
As you can see in its change log, I have been quite searching whether to express the example in ES5 or ES6. On one hand I wanted to use ES6 because it is convenient, but on the other hand I didn't want to expose constructions that might be alien to people not comfortable with ES6 yet. So thats why I ended up with a mix that uses the old createClass (to avoid binding issues) but also some ES6 constructions like arrow functions and imports (I guess anyone will understand at least what the syntax means).
But I get this question more, so I think I'm gonna extend the api documentation with some example code that is flavored in both ES5, ES6 and TS.
I really like your binding alternative, I thought that wasn't possible yet in ES6, so I'm gonna definitely use that.
Just an idea: maybe it is fun to expose different branches of the boilerplate project, one for ES5, and one for full ES6, so that people can choose.
Apologies for the late reply btw, I was sort of on holiday ;) Thanks for thinking along!

Hi David,
I've added some possible syntax examples to the docs:
https://github.com/mweststrate/mobservable/blob/master/docs/syntax.md
and
https://github.com/mweststrate/mobservable/blob/master/docs/api.md#reactivecomponentcomponent
I hope that suffices for most people.
Thanks for the feedback,
Michel.


Added support for run_session with callbacks using rust closures

great job, maybe add dynamic model support in inspect 👍

no


Feature Request: Output current song to text file

I know there is a json file that has the info in it, but it is really confusing to use it in streaming software like OBS. If there was a file that simply had "Artist - Song Name" and nothing else, it would be really helpful for people that want to display that information on stream.

I don't stream but I can see how this would be nice.  I think we could possibly add a text field in settings with variables so it can be configured. Ultimately up to Marshall of sound, and if accepted it would be blocked until he's finished rewriting the settings panel into react.

In the past I have declined this request for the following reason.
The important thing to see here is that I offer an API, I don't offer integrations with streaming providers or screensavers or a whole bunch of other stuff people have asked for over time.  That's because at it's core an API offers data, not a service.
This means that if people want a text file they should read data from the API and output it themselves 👍 .  In Node.JS this is ridiculously easy
watch('/path/to/json/file', (fileContent) => {
  const data = JSON.parse(fileContent);
  fs.writeFile('path/to/output', data.track.title + ' - ' + data.track.artist);
});

Literally 4 lines of code. 😆
I'll think about this for a while because I kind of like the idea

think we could possibly add a text field in settings with variables so it can be configured.

But also

it would be blocked until he's finished rewriting the settings panel into react.

Closing this out as https://github.com/GPMDP/gpmdp-plugin-now-playing-text-file now exists.  Just need to finalize plugin support post v4


NodeJS Version for Lambda Functions

Please, update NodeJS version from 10 to 14 in order to be able to launch new applications

The fix seems to be pretty straight-forward with grep -rn "nodejs" .:
./.circleci/config.yml:16:      - image: nikolaik/python-nodejs:python3.7-nodejs10
./template.yml:84:    Runtime: nodejs10.x


Update CircleCI config to sign MacOS binaries

Description
We are already able to sign the binaries of internal projects, like patcher-cli and terrapatch-cli.
I am replicating the same process in Terragrunt, the MacOS binaries will be signed and notarized before generating the sha256sum.
Test release: https://github.com/gruntwork-io/terragrunt/releases/tag/v0.48.7-test-signing-binaries

TODOs
Read the Gruntwork contribution guidelines.

[ ] Update the docs.
[x] Run the relevant tests successfully, including pre-commit checks.
[X] Ensure any 3rd party code adheres with our license policy or delete this line if its not applicable.
[x] Include release notes. If this PR is backward incompatible, include a migration guide.

Release Notes (draft)
Signing MacOS binaries from now on! 🎉

Output of codesign for both binaries:
> codesign -dv --verbose=4 terragrunt_darwin_amd64                                                                                12:24:01
Executable=/Users/marina/Downloads/terragrunt_darwin_amd64
Identifier=terragrunt_darwin_amd64
Format=Mach-O thin (x86_64)
CodeDirectory v=20500 size=358691 flags=0x10000(runtime) hashes=11203+2 location=embedded
VersionPlatform=1
VersionMin=658688
VersionSDK=658688
Hash type=sha256 size=32
CandidateCDHash sha256=090e26dc9854fc87afe79cfc7c5cddcb1dde2f1a
CandidateCDHashFull sha256=090e26dc9854fc87afe79cfc7c5cddcb1dde2f1af2bbe2b447fdfbcbb6383bf1
Hash choices=sha256
CMSDigest=090e26dc9854fc87afe79cfc7c5cddcb1dde2f1af2bbe2b447fdfbcbb6383bf1
CMSDigestType=2
Executable Segment base=0
Executable Segment limit=32075776
Executable Segment flags=0x1
Page size=4096
Launch Constraints:
	None
CDHash=090e26dc9854fc87afe79cfc7c5cddcb1dde2f1a
Signature size=9050
Authority=Developer ID Application: Gruntwork, Inc. (39Y4Q5CHUA)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=11. Aug 2023 at 12:16:20
Info.plist=not bound
TeamIdentifier=39Y4Q5CHUA
Runtime Version=10.13.0
Sealed Resources=none
Internal requirements count=1 size=184
/Users/marina/Downloads

> codesign -dv --verbose=4 terragrunt_darwin_arm64                                                                                12:23:46
Executable=/Users/marina/Downloads/terragrunt_darwin_arm64
Identifier=terragrunt_darwin_arm64
Format=Mach-O thin (arm64)
CodeDirectory v=20500 size=351203 flags=0x10000(runtime) hashes=10969+2 location=embedded
VersionPlatform=1
VersionMin=720896
VersionSDK=720896
Hash type=sha256 size=32
CandidateCDHash sha256=5d08e775141c882264ce2b16a95ed34e341de644
CandidateCDHashFull sha256=5d08e775141c882264ce2b16a95ed34e341de6441dad56e767691fc52016ceec
Hash choices=sha256
CMSDigest=5d08e775141c882264ce2b16a95ed34e341de6441dad56e767691fc52016ceec
CMSDigestType=2
Executable Segment base=0
Executable Segment limit=17711104
Executable Segment flags=0x1
Page size=4096
Launch Constraints:
	None
CDHash=5d08e775141c882264ce2b16a95ed34e341de644
Signature size=9049
Authority=Developer ID Application: Gruntwork, Inc. (39Y4Q5CHUA)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=11. Aug 2023 at 12:17:58
Info.plist=not bound
TeamIdentifier=39Y4Q5CHUA
Runtime Version=11.0.0
Sealed Resources=none
Internal requirements count=1 size=184

Thank you both for reviewing!


Fix syntax issues warned by lint

This pr modified code a little to fix errors posted after running just precommit locally and online Github CI test.
By the way, the lint posted for get_dart_object and drop_dart_object may need a detailed description, it'd better be written by the one who wrote these methods.

LGTM, good job :)


Deprecate dwavebinarycsp

I didn't add messages to all of the docstrings, but I did add messages pretty much everywhere else.

Shouldn't the deprecation not also be added to sdk_index.rst?

Yes, see this comment


set the id

Hi @banushanv! I don't think we need to set the id attribute of these elements. We specify the key attribute for v-for, and use the form-row class to style. I'm going to close this PR for now, but let me know if I've missed anything!


Certain window sizes cause artifacts in text

Hyprland Version
 System/Version info
Hyprland, built from branch main at commit 754eaf5b8b65c9764abe67ec2d599036cd51e381 dirty (pluginapi: fix hooks with negative rip offsets).
Date: Wed Jan 24 14:53:18 2024
Tag: v0.34.0-61-g754eaf5b

flags: (if any)

System Information:
System name: Linux
Node name: apg
Release: 6.7.1-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Sun, 21 Jan 2024 22:14:10 +0000

GPU information:
03:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Navi 23 [Radeon RX 6650 XT / 6700S / 6800S] [1002:73ef] (rev c2) (prog-if 00 [VGA controller])
37:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Rembrandt [Radeon 680M] [1002:1681] (rev c7) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:
  hycov by DreamMaoMao ver 0.1

Bug or Regression?
Regression
Description
At certain window sizes, text rendering gets wonky and it makes it hard to read. Here are a few examples on Armcord; I have also seen it in foot:

How to reproduce
/shrug no idea
It notice it most often when a window is 1011 pixels wide (using 1.25 scaling on a 1600x1440 display, with one window tiled on each side, this is the window size that I always get), and it seems to happen to random characters. It goes away if I resize the window even by a single pixel. If I align another of the same character vertically, the new character also gets the bug (see second screenshot).
Crash reports, logs, images, videos
No response

after effect of #4225
For oversized we could clip the last column / row come to think of it.

That would explain why it's only started happening recently. It makes text really hard to read when it happens, I'm all for losing one pixel on the edge and not have this artifact :)


Add Jakarta support to ORRA stack

Under demos, let's create a new folder named OH-EXF-Jakarta with support for deploying the Jakarta release of EdgeX Foundry in Open Horizon.  This will only use the specific services needed for a specific retail use case.  It will include support for an ONVIF device and DL Streamer service.

Dependency chart and required services:

#10 PR merged should close this issue.


Autogenerate nickel.lock.ncl

Re-generate expected contents of nickel.lock.ncl on every importNcl call, check if it matches one in the sources and generate a new source tree with new nickel.lock.ncl if it doesn't. Note that expected lockfile contents depend only on flake parameters. Also note that when lockfile contents don't match the expected value, we'll make a full copy of the source tree during evalutaion of Nickel file.
Fixes #105
Fixes #116

@thufschmitt Now we generate and compare lockfile contents in Nix and don't use additional IFD for that.
Note that lockfile contents currently contain an additional newline in the end. I'll fix it a bit later.


Map type id

How to apply existing or custom map type id. I tried through setMapOptions() but with no success. Can you share an example?

@izupet sorry, not supported right now. You can send a PR if you have time.

#682