Cerbox GX crashed by USB RS485 original Victron Adapter

Describe the problem
Hello, I currently have four USB RS485 adapters. They each connect a Seplos battery.
The problem is that the CERBO GX crashes and restarts after an indefinite period of time.
Driver version
the latest Ninja Version, actual installied from 21.01.2024
Venus OS device type
Cerbo GX
Venus OS version
3.13
BMS type
Seplos
Cell count
16
Battery count
4
Connection type
Serial USB adapter to RS485
Config file
[DEFAULT]

; --------- Set logging level ---------
; ERROR: Only errors are logged
; WARNING: Errors and warnings are logged
; INFO: Errors, warnings and info messages are logged
; DEBUG: Errors, warnings, info and debug messages are logged
LOGGING = INFO

; --------- Battery Current limits ---------
MAX_BATTERY_CHARGE_CURRENT    = 80.0
MAX_BATTERY_DISCHARGE_CURRENT = 90.0

; --------- Cell Voltages ---------
; Description: Cell min/max voltages which are used to calculate the min/max battery voltage
; Example: 16 cells * 3.45V/cell = 55.2V max charge voltage. 16 cells * 2.90V = 46.4V min discharge voltage
MIN_CELL_VOLTAGE   = 2.900
; Max voltage (can seen as absorption voltage)
MAX_CELL_VOLTAGE   = 3.50
; Float voltage (can be seen as resting voltage)
FLOAT_CELL_VOLTAGE = 3.40

; --------- SOC reset voltage ---------
; Description: May be needed to reset the SoC to 100% once in a while for some BMS, because of SoC drift.
;              Specify the cell voltage where the SoC should be reset to 100% by the BMS.
;                - JKBMS: SoC is reset to 100% if one cell reaches OVP (over voltage protection) voltage
;              As you have to adopt this value to your system, I reccomend to start with
;              OVP voltage - 0.030 (see Example).
;                - Try to increase (add) by 0.005 in steps, if the system does not switch to float mode, even if
;                  the target voltage SOC_RESET_VOLTAGE * CELL_COUNT is reached.
;                - Try to decrease (lower) by 0.005 in steps, if the system hits the OVP too fast, before all
;                  cells could be balanced and the system goes into protection mode multiple times.
; Example: If OVP is 3.650, then start with 3.620 and increase/decrease by 0.005
; Note: The value has to be higher as the MAX_CELL_VOLTAGE
SOC_RESET_VOLTAGE  = 3.550
; Specify after how many days the soc reset voltage should be reached again
; The timer is reset when the soc reset voltage is reached
; Leave empty if you don't want to use this
; Example: Value is set to 15
; day 1: soc reset reached once
; day 16: soc reset reached twice
; day 31: soc reset not reached since it's very cloudy
; day 34: soc reset reached since the sun came out
; day 49: soc reset reached again, since last time it took 3 days to reach soc reset voltage
SOC_RESET_AFTER_DAYS = 5

; --------- Bluetooth BMS ---------
; Description: Specify the Bluetooth BMS and it's MAC address that you want to install. Leave emty to disable
; -- Available Bluetooth BMS:
; Jkbms_Ble, LltJbd_Ble
; Example for one BMS:
; BLUETOOTH_BMS = Jkbms_Ble C8:47:8C:00:00:00
; Example for multiple BMS:
; BLUETOOTH_BMS = Jkbms_Ble C8:47:8C:00:00:00, Jkbms_Ble C8:47:8C:00:00:11, Jkbms_Ble C8:47:8C:00:00:22
BLUETOOTH_BMS =

; --------- CAN BMS ---------
; Description: Specify the CAN port(s) where the BMS is connected to. Leave empty to disable
; -- Available CAN BMS:
; Daly_Can, Jkbms_Can
; Example for one CAN port:
; CAN_PORT = can0
; Example for multiple CAN ports:
; CAN_PORT = can0, can8, can9
CAN_PORT =

; --------- BMS disconnect behaviour ---------
; Description: Block charge and discharge when the communication to the BMS is lost. If you are removing the
;              BMS on purpose, then you have to restart the driver/system to reset the block.
; False: Charge and discharge is not blocked on BMS communication loss
; True: Charge and discharge is blocked on BMS communication loss, it's unblocked when connection is established
;       again or the driver/system is restarted
BLOCK_ON_DISCONNECT = False

; --------- Charge mode ---------
; Choose the mode for voltage / current limitations (True / False)
; False is a step mode: This is the default with limitations on hard boundary steps
; True is a linear mode:
;     For CCL and DCL the values between the steps are calculated for smoother values (by WaldemarFech)
;     For CVL max battery voltage is calculated dynamically in order that the max cell voltage is not exceeded
LINEAR_LIMITATION_ENABLE = True

; Specify in seconds how often the linear values should be recalculated
LINEAR_RECALCULATION_EVERY = 20
; Specify in percent when the linear values should be recalculated immediately
; Example: 5 for a immediate change, when the value changes by more than 5%
LINEAR_RECALCULATION_ON_PERC_CHANGE = 2

; --------- Charge Voltage limitation (affecting CVL) ---------
; Description: Limit max charging voltage (MAX_CELL_VOLTAGE * cell count), switch from max voltage to float
;              voltage (FLOAT_CELL_VOLTAGE * cell count) and back
;     False: Max charging voltage is always kept
;     True: Max charging voltage is reduced based on charge mode
;         Step mode: After max voltage is reached for MAX_VOLTAGE_TIME_SEC it switches to float voltage. After
;                    SoC is below SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT it switches back to max voltage.
;         Linear mode: After max voltage is reachend and cell voltage difference is smaller or equal to
;                      CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_UNTIL it switches to float voltage after 300 (fixed)
;                      additional seconds.
;                      After cell voltage difference is greater or equal to CELL_VOLTAGE_DIFF_TO_RESET_VOLTAGE_LIMIT
;                      OR
;                      SoC is below SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT
;                      it switches back to max voltage.
; Example: The battery reached max voltage of 55.2V and hold it for 900 seconds, the the CVL is switched to
;          float voltage of 53.6V to don't stress the batteries. Allow max voltage of 55.2V again, if SoC is
;          once below 80%
;          OR
;          The battery reached max voltage of 55.2V and the max cell difference is 0.010V, then switch to float
;          voltage of 53.6V after 300 additional seconds to don't stress the batteries. Allow max voltage of
;          55.2V again if max cell difference is above 0.080V or SoC below 80%.
; Charge voltage control management enable (True/False).
CVCM_ENABLE = True

; -- CVL reset based on cell voltage diff (linear mode)
; Specify cell voltage diff where CVL limit is kept until diff is equal or lower
CELL_VOLTAGE_DIFF_KEEP_MAX_VOLTAGE_UNTIL = 0.010
; Specify cell voltage diff where CVL limit is reset to max voltage, if value get above
; the cells are considered as imbalanced, if the cell diff exceeds 5% of the nominal cell voltage
; e.g. 3.2 V * 5 / 100 = 0.160 V
CELL_VOLTAGE_DIFF_TO_RESET_VOLTAGE_LIMIT = 0.080

; -- CVL reset based on SoC option (step mode & linear mode)
; Specify how long the max voltage should be kept
;     Step mode: If reached then switch to float voltage
;     Linear mode: If cells are balanced keep max voltage for further MAX_VOLTAGE_TIME_SEC seconds
MAX_VOLTAGE_TIME_SEC = 240
; Specify SoC where CVL limit is reset to max voltage
;     Step mode: If SoC gets below
;     Linear mode: If cells are unbalanced or if SoC gets below
SOC_LEVEL_TO_RESET_VOLTAGE_LIMIT = 80

; --------- Cell Voltage Current limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be in-/decreased depending on min and max cell voltages
; Example: 18 cells * 3.55V/cell = 63.9V max charge voltage
;          18 cells * 2.70V/cell = 48.6V min discharge voltage
;          But in reality not all cells reach the same voltage at the same time. The (dis)charge current
;          will be (in-/)decreased, if even ONE SINGLE BATTERY CELL reaches the limits

; Charge current control management referring to cell-voltage enable (True/False).
CCCM_CV_ENABLE = True
; Discharge current control management referring to cell-voltage enable (True/False).
DCCM_CV_ENABLE = True

; Set steps to reduce battery current
; The current will be changed linear between those steps if LINEAR_LIMITATION_ENABLE is set to True
CELL_VOLTAGES_WHILE_CHARGING   = 3.55, 3.45, 3.45, 3.30
MAX_CHARGE_CURRENT_CV_FRACTION =    0, 0.05,  0.5,    1

CELL_VOLTAGES_WHILE_DISCHARGING   = 2.70, 2.80, 2.90, 3.10
MAX_DISCHARGE_CURRENT_CV_FRACTION =    0,  0.1,  0.5,    1

; --------- Temperature limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be in-/decreased depending on temperature
; Example: The temperature limit will be monitored to control the currents. If there are two temperature senors,
;          then the worst case will be calculated and the more secure lower current will be set.
; Charge current control management referring to temperature enable (True/False).
CCCM_T_ENABLE = True
; Charge current control management referring to temperature enable (True/False).
DCCM_T_ENABLE = True

; Set steps to reduce battery current
; The current will be changed linear between those steps if LINEAR_LIMITATION_ENABLE is set to True
TEMPERATURE_LIMITS_WHILE_CHARGING = 0,   2,   5,  10,  15, 20, 35,  40, 55
MAX_CHARGE_CURRENT_T_FRACTION     = 0, 0.1, 0.2, 0.4, 0.8,  1,  1, 0.4,  0

TEMPERATURE_LIMITS_WHILE_DISCHARGING = -20,   0,   5,  10, 15, 45, 55
MAX_DISCHARGE_CURRENT_T_FRACTION     =   0, 0.2, 0.3, 0.4,  1,  1,  0

; --------- SOC limitation (affecting CCL/DCL) ---------
; Description: Maximal charge / discharge current will be increased / decreased depending on State of Charge,
;              see CC_SOC_LIMIT1 etc.
; Example: The SoC limit will be monitored to control the currents.
; Charge current control management enable (True/False).
CCCM_SOC_ENABLE = False
; Discharge current control management enable (True/False).
DCCM_SOC_ENABLE = False

; Charge current SoC limits
CC_SOC_LIMIT1 = 98
CC_SOC_LIMIT2 = 95
CC_SOC_LIMIT3 = 91

; Charge current limits
CC_CURRENT_LIMIT1_FRACTION = 0.1
CC_CURRENT_LIMIT2_FRACTION = 0.3
CC_CURRENT_LIMIT3_FRACTION = 0.5

; Discharge current SoC limits
DC_SOC_LIMIT1 = 10
DC_SOC_LIMIT2 = 20
DC_SOC_LIMIT3 = 30

; Discharge current limits
DC_CURRENT_LIMIT1_FRACTION = 0.1
DC_CURRENT_LIMIT2_FRACTION = 0.3
DC_CURRENT_LIMIT3_FRACTION = 0.5

; --------- Time-To-Go ---------
; Description: Calculates the time to go shown in the GUI
;              Recalculation is done based on TIME_TO_SOC_RECALCULATE_EVERY
TIME_TO_GO_ENABLE = True

; --------- Time-To-Soc ---------
; Description: Calculates the time to a specific SoC
; Example: TIME_TO_SOC_POINTS = 50, 25, 15, 0
;          6h 24m remaining until 50% SoC
;          17h 36m remaining until 25% SoC
;          22h 5m remaining until 15% SoC
;          28h 48m remaining until 0% SoC
; Set of SoC percentages to report on dbus and MQTT. The more you specify the more it will impact system performance.
; [Valid values 0-100, comma separated list. More that 20 intervals are not recommended]
; Example: TIME_TO_SOC_POINTS = 100, 95, 90, 85, 75, 50, 25, 20, 10, 0
; Leave empty to disable
TIME_TO_SOC_POINTS =
; Specify TimeToSoc value type [Valid values 1, 2, 3]
; 1 Seconds
; 2 Time string <days>d <hours>h <minutes>m <seconds>s
; 3 Both seconds and time string "<seconds> [<days>d <hours>h <minutes>m <seconds>s]"
TIME_TO_SOC_VALUE_TYPE = 1
; Specify in seconds how often the TimeToSoc should be recalculated
; Minimum are 5 seconds to prevent CPU overload
TIME_TO_SOC_RECALCULATE_EVERY = 30
; Include TimeToSoC points when moving away from the SoC point [Valid values True, False]
; These will be as negative time. Disabling this improves performance slightly
TIME_TO_SOC_INC_FROM = False

; --------- Additional settings ---------
; Specify one or more BMS types to load else leave empty to try to load all available
; -- Available BMS:
; Daly, Ecs, HeltecModbus, HLPdataBMS4S, Jkbms, Lifepower, LltJbd, Renogy, Seplos
; -- Available BMS, but disabled by default (just enter one or more below and it will be enabled):
; ANT, MNB, Sinowealth
BMS_TYPE =

; Exclute this serial devices from the driver startup
; Example: /dev/ttyUSB2, /dev/ttyUSB4
EXCLUDED_DEVICES =

; Enter custom battery names here or change it over the GUI
; Example:
;     /dev/ttyUSB0:My first battery
;     /dev/ttyUSB0:My first battery,/dev/ttyUSB1:My second battery
CUSTOM_BATTERY_NAMES = /dev/ttyUSB0:AkkuPack3,/dev/ttyUSB1:AkkuPack2,/dev/ttyUSB2:AkkuPack1,/dev/ttyUSB3:AkkuPack4

; Auto reset SoC
; If on, then SoC is reset to 100%, if the value switches from absorption to float voltage
; Currently only working for Daly BMS and JK BMS BLE
AUTO_RESET_SOC = True

; Publish the config settings to the dbus path "/Info/Config/"
PUBLISH_CONFIG_VALUES = 1

; Select the format of cell data presented on dbus [Valid values 0,1,2,3]
; 0 Do not publish all the cells (only the min/max cell data as used by the default GX)
; 1 Format: /Voltages/Cell (also available for display on Remote Console)
; 2 Format: /Cell/#/Volts
; 3 Both formats 1 and 2
BATTERY_CELL_DATA_FORMAT = 1

; Simulate Midpoint graph (True/False).
MIDPOINT_ENABLE = False

; Battery temperature
; Specify how the battery temperature is assembled
; 0 Get mean of temperature sensor 1 to sensor 4
; 1 Get only temperature from temperature sensor 1
; 2 Get only temperature from temperature sensor 2
; 3 Get only temperature from temperature sensor 3
; 4 Get only temperature from temperature sensor 4
TEMP_BATTERY = 0

; Temperature sensor 1 name
TEMP_1_NAME = Temp 1

; Temperature sensor 2 name
TEMP_2_NAME = Temp 2

; Temperature sensor 2 name
TEMP_3_NAME = Temp 3

; Temperature sensor 2 name
TEMP_4_NAME = Temp 4

; --------- BMS specific settings ---------

; -- LltJbd settings
; SoC low levels
; NOTE: SOC_LOW_WARNING is also used to calculate the Time-To-Go even if you are not using a LltJbd BMS
SOC_LOW_WARNING = 15
SOC_LOW_ALARM   = 5

; -- Daly settings
; Battery capacity (amps), if the BMS does not support reading it
BATTERY_CAPACITY = 50
; Invert Battery Current. Default non-inverted. Set to -1 to invert
INVERT_CURRENT_MEASUREMENT = 1

; -- ESC GreenMeter and Lipro device settings
GREENMETER_ADDRESS  = 1
LIPRO_START_ADDRESS = 2
LIPRO_END_ADDRESS   = 4
LIPRO_CELL_COUNT = 15

; -- HeltecModbus (Heltec SmartBMS/YYBMS) settings
; Set the Modbus addresses from the adapters
; Separate each address to check by a comma like: 1, 2, 3, ...
; factory default address will be 1
HELTEC_MODBUS_ADDR = 1

; --------- Voltage drop ---------
; If you have a voltage drop between the BMS and the charger because of wire size or length
; then you can specify the voltage drop here. The driver will then add the voltage drop
; to the calculated CVL to compensate.
; Example:
;     cell count: 16
;     MAX_CELL_VOLTAGE = 3.45
;     max voltage calculated = 16 * 3.45 = 55.20
;     CVL is set to 55.20 V and the battery is now charged until the charger reaches 55.20 V.
;     The BMS now measures 55.05 V since there is a voltage drop of 0.15 V on the cable.
;     Since the dbus-serialbattery reads the voltage of 55.05 V from the BMS the max voltage
;     of 55.20 V is never reached and max voltage is kept forever.
;     By setting the VOLTAGE_DROP to 0.15 V the voltage on the charger is increased and the
;     target voltage on the BMS is reached.
VOLTAGE_DROP = 0.00

Relevant log output
@4000000065ace82c0c3144ec INFO: Create daemontools service vedirect-interface.ttyUSB3
@4000000065ace82e1ae53f0c INFO: Start service vedirect-interface.ttyUSB1 once
@4000000065ace83004e77094 INFO: Start service dbus-serialbattery.ttyUSB0 once
@4000000065ace83026e8422c INFO: Start service vedirect-interface.ttyUSB2 once
@4000000065ace832193febac INFO: Start service vedirect-interface.ttyUSB3 once
@4000000065ace834126f6604 INFO: Start service dbus-serialbattery.ttyUSB1 once
@4000000065ace8360c812624 INFO: Start service dbus-serialbattery.ttyUSB2 once
@4000000065ace8380409514c INFO: Start service dbus-serialbattery.ttyUSB3 once

// tty0 USB current file is empty

//
@4000000065ace7f70f6012c4 *** CCGX booted (30253) ***
@4000000065ace828268941dc INFO:SerialBattery:
@4000000065ace82828a4423c INFO:SerialBattery:Starting dbus-serialbattery
@4000000065ace82828c80a64 INFO:SerialBattery:dbus-serialbattery v1.0.20231117dev
@4000000065ace8382c2f3dbc INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
@4000000065ace8382c2f5cfc INFO:SerialBattery:Testing Daly at address "\x40"
@4000000065ace838343afe9c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace838343b25ac INFO:SerialBattery:Testing Daly at address "\x80"
@4000000065ace839013e1b8c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace839013e3eb4 INFO:SerialBattery:Testing Ecs
@4000000065ace839054bacbc ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace839054bd3cc INFO:SerialBattery:Testing HeltecModbus
@4000000065ace83c362e4ed4 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83c363ef0a4 INFO:SerialBattery:Testing HLPdataBMS4S
@4000000065ace83d2bd127cc ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83d2bdeef24 INFO:SerialBattery:Testing Jkbms
@4000000065ace83e047de50c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83e0509833c INFO:SerialBattery:Testing Lifepower
@4000000065ace83e192f1afc ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83e19f608c4 INFO:SerialBattery:Testing LltJbd
@4000000065ace83e38f0a324 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83e398fb5cc INFO:SerialBattery:Testing Renogy at address "\x30"
@4000000065ace83f1652784c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83f16ce5354 INFO:SerialBattery:Testing Renogy at address "\xf7"
@4000000065ace83f29d23704 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83f2a2e39b4 INFO:SerialBattery:Testing Seplos
@4000000065ace84100f6f89c INFO:SerialBattery:Connection established to Seplos
@4000000065ace84101074094 INFO:SerialBattery:Battery Seplos connected to dbus from /dev/ttyUSB1
@4000000065ace841011390ec INFO:SerialBattery:========== Settings ==========
@4000000065ace8410127305c INFO:SerialBattery:> Connection voltage: 53.58V | Current: 0.0A | SoC: 77.8%
@4000000065ace8410130310c INFO:SerialBattery:> Cell count: 16 | Cells populated: 0
@4000000065ace84101782304 INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
@4000000065ace841019071ac INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 80.0A | MAX BATTERY DISCHARGE CURRENT: 90.0A
@4000000065ace84101c145ac INFO:SerialBattery:> CVCM:     True
@4000000065ace84101fc5e94 INFO:SerialBattery:> MIN CELL VOLTAGE: 2.9V | MAX CELL VOLTAGE: 3.5V
@4000000065ace84102697c2c INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
@4000000065ace84102699f54 INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
@4000000065ace841034ac40c INFO:SerialBattery:> CCCM SOC: False | DCCM SOC: False
@4000000065ace841035ea9cc INFO:SerialBattery:Serial Number/Unique Identifier: SeplosBMS16cells_287.0Ah
@4000000065ace84115023a2c INFO:SerialBattery:DeviceInstance = 2
@4000000065ace84115170e34 INFO:SerialBattery:com.victronenergy.battery.ttyUSB1
@4000000065ace84121c5a334 INFO:SerialBattery:publish config values = 1

//
@4000000065ace7f70fc9a61c *** CCGX booted (30253) ***
@4000000065ace8283453418c INFO:SerialBattery:
@4000000065ace82837f088a4 INFO:SerialBattery:Starting dbus-serialbattery
@4000000065ace82838168f04 INFO:SerialBattery:dbus-serialbattery v1.0.20231117dev
@4000000065ace83838c0ec4c INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
@4000000065ace83838d05d6c INFO:SerialBattery:Testing Daly at address "\x40"
@4000000065ace8390513473c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace8390559608c INFO:SerialBattery:Testing Daly at address "\x80"
@4000000065ace8390ec2500c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace8390ecc9cc4 INFO:SerialBattery:Testing Ecs
@4000000065ace839136bd31c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace8391379b1e4 INFO:SerialBattery:Testing HeltecModbus
@4000000065ace83d0bb6b204 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83d0bb6e0e4 INFO:SerialBattery:Testing HLPdataBMS4S
@4000000065ace83e01732994 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83e017350a4 INFO:SerialBattery:Testing Jkbms
@4000000065ace83e17135364 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83e184e9a54 INFO:SerialBattery:Testing Lifepower
@4000000065ace83e33b94b7c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83e3536b034 INFO:SerialBattery:Testing LltJbd
@4000000065ace83f11d7489c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83f126ae994 INFO:SerialBattery:Testing Renogy at address "\x30"
@4000000065ace83f25793d24 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83f2624afc4 INFO:SerialBattery:Testing Renogy at address "\xf7"
@4000000065ace83f38ccb7d4 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83f39594064 INFO:SerialBattery:Testing Seplos
@4000000065ace84107aa844c INFO:SerialBattery:Connection established to Seplos
@4000000065ace84107c2a02c INFO:SerialBattery:Battery Seplos connected to dbus from /dev/ttyUSB2
@4000000065ace84107d80c8c INFO:SerialBattery:========== Settings ==========
@4000000065ace84107e96dc4 INFO:SerialBattery:> Connection voltage: 53.57V | Current: 0.0A | SoC: 75.9%
@4000000065ace841086eaf0c INFO:SerialBattery:> Cell count: 16 | Cells populated: 0
@4000000065ace84108830de4 INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
@4000000065ace8410896efbc INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 80.0A | MAX BATTERY DISCHARGE CURRENT: 90.0A
@4000000065ace84108ade2bc INFO:SerialBattery:> CVCM:     True
@4000000065ace84108c3668c INFO:SerialBattery:> MIN CELL VOLTAGE: 2.9V | MAX CELL VOLTAGE: 3.5V
@4000000065ace84108d5f48c INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
@4000000065ace84108e3d73c INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
@4000000065ace84108f1351c INFO:SerialBattery:> CCCM SOC: False | DCCM SOC: False
@4000000065ace84109048a54 INFO:SerialBattery:Serial Number/Unique Identifier: SeplosBMS16cells_287.0Ah
@4000000065ace84116c425dc INFO:SerialBattery:DeviceInstance = 3
@4000000065ace84116e4409c INFO:SerialBattery:com.victronenergy.battery.ttyUSB2
@4000000065ace841267081ec INFO:SerialBattery:publish config values = 1

//
@4000000065ace7f710318bc4 *** CCGX booted (30253) ***
@4000000065ace8283136daa4 INFO:SerialBattery:
@4000000065ace828350b950c INFO:SerialBattery:Starting dbus-serialbattery
@4000000065ace828353f8204 INFO:SerialBattery:dbus-serialbattery v1.0.20231117dev
@4000000065ace83835e3efc4 INFO:SerialBattery:-- Testing BMS: 1 of 3 rounds
@4000000065ace83835e412ec INFO:SerialBattery:Testing Daly at address "\x40"
@4000000065ace839025fbffc ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace8390279febc INFO:SerialBattery:Testing Daly at address "\x80"
@4000000065ace8390aa5af64 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace8390ab54f64 INFO:SerialBattery:Testing Ecs
@4000000065ace8390fb6ed24 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace8390fb71c04 INFO:SerialBattery:Testing HeltecModbus
@4000000065ace83d075ef0a4 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83d0786912c INFO:SerialBattery:Testing HLPdataBMS4S
@4000000065ace83d3aa2fe74 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83d3ab507a4 INFO:SerialBattery:Testing Jkbms
@4000000065ace83e110e7674 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83e119b0abc INFO:SerialBattery:Testing Lifepower
@4000000065ace83e2e1a4cac ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83e2fa47ad4 INFO:SerialBattery:Testing LltJbd
@4000000065ace83f0ecc799c ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83f0f53ed64 INFO:SerialBattery:Testing Renogy at address "\x30"
@4000000065ace83f21ac9524 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83f22243a0c INFO:SerialBattery:Testing Renogy at address "\xf7"
@4000000065ace83f34e655e4 ERROR:SerialBattery:>>> ERROR: No reply - returning
@4000000065ace83f354b0354 INFO:SerialBattery:Testing Seplos
@4000000065ace8410640e9fc INFO:SerialBattery:Connection established to Seplos
@4000000065ace841064ec0f4 INFO:SerialBattery:Battery Seplos connected to dbus from /dev/ttyUSB3
@4000000065ace841065c613c INFO:SerialBattery:========== Settings ==========
@4000000065ace84106699bf4 INFO:SerialBattery:> Connection voltage: 53.6V | Current: 0.0A | SoC: 69.8%
@4000000065ace8410738ee2c INFO:SerialBattery:> Cell count: 16 | Cells populated: 0
@4000000065ace8410739153c INFO:SerialBattery:> LINEAR LIMITATION ENABLE: True
@4000000065ace841073920f4 INFO:SerialBattery:> MAX BATTERY CHARGE CURRENT: 80.0A | MAX BATTERY DISCHARGE CURRENT: 90.0A
@4000000065ace84107393094 INFO:SerialBattery:> CVCM:     True
@4000000065ace841074e9524 INFO:SerialBattery:> MIN CELL VOLTAGE: 2.9V | MAX CELL VOLTAGE: 3.5V
@4000000065ace841074eac94 INFO:SerialBattery:> CCCM CV:  True  | DCCM CV:  True
@4000000065ace8410757dc24 INFO:SerialBattery:> CCCM T:   True  | DCCM T:   True
@4000000065ace84107649dc4 INFO:SerialBattery:> CCCM SOC: False | DCCM SOC: False
@4000000065ace84107720374 INFO:SerialBattery:Serial Number/Unique Identifier: SeplosBMS16cells_287.0Ah
@4000000065ace84119ac902c INFO:SerialBattery:DeviceInstance = 5
@4000000065ace84119c30dfc INFO:SerialBattery:com.victronenergy.battery.ttyUSB3
@4000000065ace8412956254c INFO:SerialBattery:publish config values = 1

Any other information that may be helpful
My final result is that i use 8 USB RS485. Is that possible ?

I have just noticed that my fourth adapter does not appear in the current files and no values are displayed

What is your system load?
The question is what causes the Cerbo to crash?

Please check this issue https://github.com/Louisvdw/dbus-serialbattery/issues/808

Ive had the same issue and i tried hard with mr-manuels support also #808 doesn't finally help. Nodered + serial driver on the Cerbo crashed on my installation again and again. The final solution to let both work is to run serial driver on the Cerbo and nodered on a dedicated Raspberry pi- but still the CPU load on the Cerbo only with the serial driver is at 50-70%. Think the high CPU load it's related true the 4 Batteries with 4 JKBMS im running. I tested with less than 4 Batteries and the load went down. Due to separate Nodered the system never rebooted anymore

I rather would recommend using the more powerful Raspberry Pi to connect the BMS, aggregate the data and send the aggregated data to the cerbo. On the cerbo use dbus-mqtt-battery to retrieve the data.

ok thanks for your recommendation - sounds a better solution due to more powerful raspi than mine.
But how could the setup look like. Which Software should /must run on the raspi to connect the serial driver? Which connection could i use for this? RS485, bluetooth ?

Install Venus OS on the Raspberry Pi with the dbus-serialbattery driver and a battery aggregator. Install dbus-mqtt-battery on your Cerbo GX. Use Node-RED to fetch the aggregated battery data from the Raspberry Pi, combine the data to one topic and feed the dbus-mqtt-battery with this data.

ok, that is of course very, very weak from the CERBO GX.
But what I see in the htop is that even the dbus mqtt is partially at 50%.
But I'm still not sure whether the performance of the Cerbo should really be questioned here.
I am very poorly positioned at Linux level. Is there any way to log the services that are listed in the "htop"?

I am very poorly positioned at Linux level. Is there any way to log the services that are listed in the "htop"?

You could do it with Telegraf, an InfluxDB and visualize it with Grafana.

I have just noticed that my fourth adapter does not appear in the current files and no values are displayed

Check if in the logs all Serial Number/Unique Identifier: are the same. If yes, then you have to change the capacity of each battery to be individual. +/- 5 Ah does not change much, but help to identify every single battery.

What do you mean exactly ?
Then again the question about the crashes.
Until a few weeks ago, I only had two RS485 adapters in use.
Since I've been using the four adapters, the problems have increased dramatically.
I don't know exactly how to solve the problem?
My main aim is to use 7 of these adapters for the battery packs in the near future.
I currently see the problem that it might not work at all.
What is your opinion on this?
Translated with DeepL.com (free version)

at the moment i see at "htop" that the service from the GUI have 40-55% !!!

Why the system reboots: https://github.com/Louisvdw/dbus-serialbattery/issues/808#issuecomment-1724240488
How to solve the problem: https://github.com/Louisvdw/dbus-serialbattery/issues/930#issuecomment-1902663820

What do you mean exactly ?

Every battery has to have another unique identifier else it won't work with the latest driver version. The unique identifier in your case is created from the hardware version and the capacity, since there is no unique value that could be read from your BMS. To make every unique identifier unique the capacity of the batteries can't be the same.
If you have 11 batteries with 280 Ah you could do:

battery: 275 Ah
battery: 276 Ah
battery: 277 Ah
battery: 278 Ah
battery: 279 Ah
battery: 280 Ah
battery: 281 Ah
battery: 282 Ah
battery: 283 Ah
battery: 284 Ah
battery: 285 Ah

ok, i do it ...
ok, but your suggestion is not the solution to make the system more stable, is it?
I'll take a look at the other topics too.
I have also seen that the GUI takes up a lot of time here.

You say that there is no unique feature for integrating the adapters.
When I look at the attributes, each adapter has the serial number as an attribute.
ATTRS{serial} == "FT8DK8RE"

It depends what you exactly mean with "to make the system mor stable". If your system is too weak for the tasks you have to split the tasks to more powerful systems.

You say that there is no unique feature for integrating the adapters.

I didn't said that. I said that there is no unique data we get from the Seplos BMS via serial connection. If you know how to get some, you are very welcome to improve the driver.
I know that some users have different serial adapters with different ID's, but that's not what we are looking for. The BMS has to have an unique ID, so that if you swap adapter or USB port the VRM ID stays the same.

by more stable I meant whether your suggestion would lead to fewer crashes if you set the capacity of the battery packs to different power ratings.
Wouldn't it be enough to read the serial number from the RS485 to recognize the adapters?

by more stable I meant whether your suggestion would lead to fewer crashes if you set the capacity of the battery packs to different power ratings.

No, if you don't do that the latest version of the driver will not load all BMS.

Wouldn't it be enough to read the serial number from the RS485 to recognize the adapters?

Sure, but this is the theory. If you are able to do so in the practical way feel free to open a PR for that :-) I spend hours and was not able to. Also not all BMS are sending this data.

Hi,
the data does not come from the BMS. The data can be read out via the PI with the command
dmesg | grep ttyUSB
all USB active adapters are displayed here
udevadm info --name=/dev/ttyUSB0 --attribute-walk
the command displays the USB attributes for each port
how the adapter is connected.
Maybe it would be a way to give the user this possibility, i.e. to use it on the PI and to be able to enter these attributes in the config file, e.g. the MAC address of the BLE. Since you can
then creates the assignment.

There is a long history behind that. We will not change that. You can search all issues for VRM ID and read the issues to understand it.

?? I dont understand this.
The source code have to detect how many USB Driver are available and so on.
In the config file is it possible to define the name for the usb.
Ok. Another question.
Why need only one USB Driver e.g. 3-6% of one USB sriver binding into the VENUS ?


modified tests and and benchmarks to test aedes with aedes-persistance-redis and mqemitter-redis

@mcollina
I have modified tests and and added a benchmark to test aedes with aedes-persistance-redis and mqemitter-redis.
The tests currently pass, and benchmarking server-redis_mqemitter-redis as I have described fails.

I'm kind of 👎  on the test changes.
We need some integration tests between the various persistences, but these tests are designed to be unit, and I truly do not want any I/O to happen in there.
Not having an in-isolation test suite is one of the biggest issue in Mosca design, and I am not going through that route again.
Where you able to identify the bug?

@mcollina , changed unit test didn't show any problems, you can reproduce the bug with benchmark as I have described.
How do you see testing aedes with different persistences then? The only change I have made to the test system is that I've made the aedesConfig variable declarable to support other than the default persistence.

Running the multiple persistence tests in the Mosca repo is the source of flakyness in tests. Because after we have added redis, we have to add MongoDB, and then whatever other combo. This is not the place for the integration tests.

@mcollina , so what would be your suggestion? Creating a separate repo with integration tests?

Yes! Really, spawning up a server (in a different process, ideally) and then calling it via MQTT.js, but test only basic cases.


Unsupported mixin objects with dependencies

Laravel Version
11.4.0
PHP Version
8.3.6
Database Driver & Version
No response
Description
When creating a macro, we can pass any dependencies that we may need using the use keyword when defining the closure. For example, we could define the following macro in a Service Provider and it would work with no issues:
$apiVersionResolver = $this->app->get(ApiVersionResolver::class);

Request::macro('apiVersion', function () use ($apiVersionResolver): string {
    return $apiVersionResolver->resolve($this);
});

However, there is no way to achieve the same result using a mixin. Trying to do so results in an exception:
class RequestMixin
{
    public function __construct(
        private readonly ApiVersionResolver $apiVersionResolver
    ) {
    }

    public function apiVersion(): \Closure
    {
        $apiVersionResolver = $this->apiVersionResolver;

        return function () use ($apiVersionResolver): string {
            return $apiVersionResolver->resolve($this);
        };
    }
}

// In a Service Provider:
$apiVersionResolver = $this->app->get(ApiVersionResolver::class);
Request::mixin(new RequestMixin($apiVersionResolver));

Exception:
ArgumentCountError: Too few arguments to function App\Http\RequestMixin::__construct(), 0 passed and exactly 1 expected

The exception is thrown in Illuminate\Support\Traits\Macroable:51, when it invokes the __constructor() method.
I have tested and excluding __constructor() methods within Macroable::mixin() would solve the problem.
Please, correct me if I'm wrong, but I'm unable to think of a case where someone would want the constructor copied over. Even if defined in the mixin object, most macroable classes will define their own.
Happy to submit a PR if there is no opposition to it.
Steps To Reproduce
Given a class:
class ApiVersionResolver {

    public function resolve(Request $request): string
    {
        return 'v2'; // Hard-coded for simplification.
    }
}

Define a mixin which depends on the above class:

class RequestMixin
{
    public function __construct(
        private readonly ApiVersionResolver $apiVersionResolver
    ) {
    }

    public function apiVersion(): \Closure
    {
        $apiVersionResolver = $this->apiVersionResolver;

        return function () use ($apiVersionResolver): string {
            return $apiVersionResolver->resolve($this);
        };
    }
}

Register the mixin in a Service Provider:

$apiVersionResolver = new ApiVersionResolver();
Illuminate\Http\Request::mixin(new RequestMixin($versionResolver));

Perform any action that loads the application, for example running an artisan command:

php artisan about

Hi @itsDavidSQ. This atm seems more like a feature request to me than a bug. Feel free to attempt that PR to see if Taylor wants to accept it as a use case, thanks!


Also log vehicle status RC loss flag

because only that will tell if the manual input was lost

@AndreasAntener: that one is not enough, right?
https://github.com/PX4/Firmware/blob/master/src/modules/sdlog2/sdlog2_messages.h#L194

@julianoes no because it only relates to an actual RC, but not to what the commander sees as RC input, which could also be a joystick

@AndreasAntener ah right!

Fixed by new logger.


[Custom CSS]

Describe the Bug

Expected Behavior

Screenshots

Discord Version

Additional Context

So where’s the bug report?

I have a problem I believe Dillian is trying to talk about. The custom css tab does nothing when clicked on. My existing custom css is still running just fine, but I cannot access or edit the custom css, the entire editor does not work at all, but only on the css tab. The editor still works on the plugin and themes settings tabs. Maybe his error is completely different but he did not really put any info

I have a problem I believe Dillian is trying to talk about. The custom css tab does nothing when clicked on. My existing custom css is still running just fine, but I cannot access or edit the custom css, the entire editor does not work at all, but only on the css tab. The editor still works on the plugin and themes settings tabs. Maybe his error is completely different but he did not really put any info

This issue was already closed ( #949 ) because it was alrady fixed in 87efffb

I can confirm that the fix referenced in issue 949 works.


board/sim: Change CONFIG_SYSTEM_USRSOCK_RPMSG to CONFIG_NETUTILS_USRS…

…OCK_RPMSG
follow up the apps side change
Signed-off-by: Xiang Xiao<EMAIL_ADDRESS>Summary
Need work with https://github.com/apache/incubator-nuttx-apps/pull/234
Impact
Testing

@xiaoxiang781216 This probably won't build without https://github.com/apache/incubator-nuttx-apps/pull/234 and that 234 probably depends on this change too.  How do you propose to get past the PR checks?

@xiaoxiang781216 This probably won't build without apache/incubator-nuttx-apps#234 and that 234 probably depends on this change too. How do you propose to get past the PR checks?

Since @btashton action improvement isn't ready yet, we have to review the change carefully and merge the patch and monitor what happen:(.

@xiaoxiang781216  Okay.. I will do the merge and we can.  If there is breakage after the merge, then we just need to repair as soon as possible.


Pass through swift-testing's experimental JSON streams from swift test

This PR adds two undocumented/unsupported experimental options to swift test to allow passing through JSON files/streams for input and output. These streams are still under development in swift-testing, so these options are not yet supported, but this change will allow interested coders to experiment with them.

@swift-ci please test

@swift-ci please test

@swift-ci please test Windows

@swift-ci please test Windows

@swift-ci please test Windows


az functionapp show should not show webapps

Describe the bug
az functionapp show can be used to show webapps. There should be a type check to prevent this.
Command Name
az functionapp show
Errors:
Shows webapp

To Reproduce:

az functionapp show -n {webapp_name}

Expected Behavior
Should give an error that functionapp could not be found.
Environment Summary
Windows-10-10.0.19043-SP0
Python 3.8.10
Installer: PIP

azure-cli 2.27.2

Additional Context

route to service team


maintainers/haskell/package-list: Only read one line from password-cmd

This is an alternative to #131971.
Only the first output line of the password command specified in the .cabal/config will be read by the package-list update script. This way we are compatible with cabal.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Relase notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 132209 run on x86_64-linux 1

Result of nixpkgs-review pr 132209 run on x86_64-linux 1

@maralorn it means no rebuilds


Warning

When a try run the code:
xgboster_focal.fit(X_test, y_test)
I have this Warning
[00:02:37] WARNING: ../src/learner.cc:516:
Parameters: { silent } might not be used.
This may not be accurate due to some parameters are only used in language bindings but
passed down to XGBoost core.  Or some parameters are not used but slip through this
verification. Please open an issue if you find above cases.
Can you helpme ?

Thanks for letting us know. We'll take a look at this issue. From memory, I think it's probably the issue of version compatibility -- there was a version that you had to specify `silent.'
For the purpose of an application, you can ignore the warning for now, and if you don't want to disable all warnings, I believe Python offers warning control on specific lines/messages.

The issue has been resolved in version 0.8.1. Indeed the warning was because the argument `silent' was deprecated in the newer xgboost releases.


MNT: Update deprecated zmq.asyncio usage.

Closes #1108
Works interactively but the tests fail locally. Leaving this here in a
half-finished state so I don't lose track of the work.

closing as the error is no longer experienced and the issue got closed


AlterTableMigration not working properly

Hi,
I am supposed to add a column in a existing database so, I wrote a migration which is
Migration(version = 2, databaseName = AppDatabase.NAME)
public class LocationMigration extends AlterTableMigration {
public LocationMigration() {
    super(Location.class);
}

@Override
public void onPreMigrate() {
    super.onPreMigrate();
    addColumn(Integer.class, "allow_bookings");
}

}
and in my Location model I also added column name with its setter and getters as
@Column(name = "allow_bookings")
private int allowBookings;
public int getAllowBookings() {
    return allowBookings;
}

public void setAllowBookings(int allowBookings) {
    this.allowBookings = allowBookings;
}

But, when while execution I am getting an error saying that
E/SQLiteLog: (1) table Location has no column named ALLOW_BOOKINGS.
Can someone guide me in the right directions thanks.

Hi,
Have you increased your database version number also? Ex:
@Database(name = AppDatabase.NAME, version = AppDatabase.VERSION)
public class AppDatabase {

  public static final String NAME = "AppDatabase";

  public static final int VERSION = 2;
}

Thanks fabiendem for the quick response.
There was something wrong with my Android Studio as it magically worked after a restart.

maybe it was instant run?


Can't install Sentry - Composer error

Laravel Version: 5.8
PHP Version: 7.2.19

Description:
I can't install the package through composer.
Required package "sentry/sentry" is not installed: cannot detect its version
Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1
Installation failed, reverting ./composer.json to its original content.

What command do you run to install Sentry and are you able to share your full composer.json so I can try to reproduce?

from the docs
composer require sentry/sentry-laravel:1.3.1

Can you share your full composer.json so I can try to reproduce?

{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": [
        "framework",
        "laravel"
    ],
    "license": "MIT",
    "require": {
        "php": "^7.1.3",
        "barryvdh/laravel-cors": "^0.11.3",
        "fideloper/proxy": "^4.0",
        "laravel/framework": "5.8.*",
        "laravel/tinker": "^1.0",
        "tymon/jwt-auth": "^1.0"
    },
    "require-dev": {
        "beyondcode/laravel-dump-server": "^1.0",
        "filp/whoops": "^2.0",
        "fzaninotto/faker": "^1.4",
        "mockery/mockery": "^1.0",
        "nunomaduro/collision": "^3.0",
        "nunomaduro/phpinsights": "^1.7",
        "phpunit/phpunit": "^7.5"
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "minimum-stability": "dev",
    "prefer-stable": true,
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    }
}

Could you try removing your composer.lock file and running composer install and than try again running composer require sentry/sentry-laravel:1.3.1?
I think something somehow got messed up, it seems to work for me with your composer.json. I'm a bit puzzled why this is an issue.

I deleted composer.lock, than I ran the command composer install and than composer require sentry/sentry-laravel:1.3.1
result: same error
I made another attempt:
I deleted composer.lock and vendor folder, than I ran the command composer clearcache and  composer install and than composer require sentry/sentry-laravel:1.3.1
result: same error

@Jean85 do you have some things to try and figure it out, I can't replicate the issue but it does look like it comes from the package version detection and I know we had some problems with that before.

@heartbeatLV it is correct sentry/sdk has no download since that is a package that is only there to include some other packages. It's a so-called meta package and has no code: https://github.com/getsentry/sentry-php-sdk#sentry-pre-configured-php-sdk

The issue is probably the same as https://github.com/getsentry/sentry-laravel/issues/274#issuecomment-536901862
You cannot reproduce because you probably have the package-versions already installed; it won't probably work if you remove that. It's a race condition between post-install hooks. I will try to report this upstream.

The issue was in Ocramius/PackageVersions package.
They fixed issue in 1.5.0, so upgrade  Ocramius/PackageVersions to 1.5.0

Oh so the issue is probably solved by https://github.com/Ocramius/PackageVersions/pull/82. Thanks for reporting back on this.
Closing as solved, please reply further if that doesn't solve this issue. Since that feature is in a tagged version that requires PHP 7.3, we could open a PR to backport it.

I've backported https://github.com/Ocramius/PackageVersions/pull/82 with https://github.com/Ocramius/PackageVersions/pull/112, and it got released as 1.4.1, which is compatible with PHP 7.1.
This issue should no longer be present.


GRPC - cannot simulate gRPC error status, false positive mock response

Describe the bug
Hi, apologies in advance if the answer to my question is trivial but I don't have any experience with gRpc and protobufs.
What I would like to achieve is:

Simulate an error status (e.g return standard gRPC error codes: https://grpc.github.io/grpc/core/md_doc_statuscodes.html): It's not documented in camouflage and I did not manage to create an error stub using this spec: https://cloud.google.com/apis/design/errors
Simulate a successful response - it's working but I cannot define request patterns in the stubs

To Reproduce
Steps to reproduce the behavior:

Mock File Content

https://github.com/stargate/stargate/tree/master/grpc-proto/proto

File structure:

mocks:
./mocks/stargate/Stargate/ExecuteBatch.mock

protos:
./protos/query.proto
./protos/stargate.proto

Docker-compose:

version: "3.9"
networks:
  camouflage:
    driver: bridge

volumes:
  prometheus_data: {}
  grafana_data: {}
  camouflage_data: {}

services:
  camouflage_ui:
    image: shubhendumadhukar/camouflage-filemanager:latest
    container_name: camouflage_ui_2
    volumes:
      - camouflage_data:/opt/virtual_services
    environment:
      FS_ROOT: /opt/virtual_services
      WRITE_PROTECTED: "false"
      PORT: 3001
    ports:
      - "3001:3001"
    labels:
      org.label-schema.group: "camouflage"

  camouflage:
    image: shubhendumadhukar/camouflage:latest
    container_name: camouflage_2
    volumes:
       - ./protos:/app/grpc/protos
       - ./mocks:/app/grpc/mocks
       - ./config/config.yml:/app/config.yml
       - ./config/.protoignore:/app/.protoignore
    restart: unless-stopped
    ports:
      - "8080:8080"
      - "8443:8443"
      - "8081:8081"
      - "4312:4312"
      - "8082:8082"
      - "5555:5555"
    networks:
      - camouflage
    labels:
      org.label-schema.group: "camouflage"

ExecuteBatch.mock:

{
  "warnings": [
    "hello"
  ],
  "schema_change": {
    "change_type": "CREATED"
  },
  "result_set": {
    "columns": [
      {
        "name": "my column",
        "type": {
          "basic": "ASCII"
        }
      }
    ],
    "rows": [
      {
        "values": [
          {
            "string": "hello world"
          }
        ]
      }
    ]
  }
}

Execute the following gRpc request:

grpcurl -v -d '{"queries":[{"cql":"UPDATE bookmarking.bookmarks USING TTL :ttl AND TIMESTAMP :timestamp SET streamPosition = :streamposition, created = :created WHERE pvid = :pvid AND providerterritory = :providerterritory AND provider = :provider AND householdId = :householdid AND timeBucket = :timebucket and personaId = :personaid;"}]}' -proto query.proto -proto stargate.proto -plaintext localhost:4312 stargate.Stargate/ExecuteBatch

Response:
Resolved method descriptor:
// Executes a batch of CQL queries.
rpc ExecuteBatch ( .stargate.Batch ) returns ( .stargate.Response );

Request metadata to send:
(empty)

Response headers received:
content-type: application/grpc+proto
date: Fri, 02 Sep 2022 07:38:52 GMT
grpc-accept-encoding: identity,deflate,gzip

Response contents:
{
  "warnings": [
    "hello"
  ],
  "schemaChange": {
    "changeType": "DROPPED"
  }
}

Response trailers received:
(empty)
Sent 1 request and received 1 response

Expected behavior
It's should be possible to define request matchers and return responses accordingly.
Thanks,
Barnabas

Hi @szokebarnabas,

It's should be possible to define request matchers and return responses accordingly.

Could you please elaborate with an example, what kind of request matchers are you referring to?

I'm unsure if this is a bug or if this isn't documented or supported.
Take HTTP: Camouflage mocks HTTP by having you provide the entire HTTP response in your *.mock file, including status code headers, etc.  This would allow me to test scenarios like when the server responds with a HTTP 400, then I can verify my app behaves accordingly.
Similarly in gRPC we have status codes and I may want to do the same thing where I configure camouflage to return GRPC 16 "Unauthorized" so that I can verify my app behaves accordingly when such a thing happens.  I don't see it documented.
Since I'm proxying with envoy to camouflage, I also would like to set headers but I know I may be asking for too much there.


Filter Page Versions

Is your feature request related to a problem? Please describe.
When I visit the ASP.NET Core pages and I try a version that doesn't exist I get:

The requested page is not available for ASP.NET Core 2.0. You have been redirected to the newest product version this page is available for.

Example: ASP.NET Core Razor SDK
Now I start going through each page version to figure out what versions there is a page for.
Describe the solution you'd like
Filter the page versions list on the left so I don't have to figure out the minimum version.

Describe alternatives you've considered
Leave all options but add a label like "Not Available" to the version dropdown entries.

@shirgoldbird Can you please take a look at this issue?

Thank you for the feedback! I've opened an internal issue for us to track.
At this time, we have no concrete timelines or commitments for this change, however we'll make sure that we do our due diligence in assessing the impact and importance of the feature.


feat: add trasformers from/to for DataFlowStartMessage

What this PR changes/adds

Adds trasformers from/to for DataFlowStartMessage
Replaces transferType with flowType as described https://github.com/eclipse-edc/Connector/pull/3924
Moves FlowType  into core-spi

Why it does that
data plane signaling
Linked Issue(s)
Part of #3934

Codecov Report
Attention: Patch coverage is 90.69767% with 4 lines in your changes are missing coverage. Please review.

Project coverage is 73.20%. Comparing base (7f20ba5) to head (48bfee0).
Report is 109 commits behind head on main.

Files
Patch %
Lines

...o/JsonObjectToDataFlowStartMessageTransformer.java
89.47%
1 Missing and 1 partial :warning:

...pi/types/domain/transfer/DataFlowStartMessage.java
60.00%
2 Missing :warning:

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3940      +/-   ##
==========================================
+ Coverage   71.74%   73.20%   +1.45%
==========================================
  Files         919      946      +27
  Lines       18457    19051     +594
  Branches     1037     1079      +42
==========================================
+ Hits        13242    13946     +704
+ Misses       4756     4644     -112
- Partials      459      461       +2

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[Feature]: Add Filters and sorting to Discover page and other pages required- QOL update

What feature do you want to add?
Add a Filter and Sort dropdown
Why do you want to have this feature?
to easily navigate through content in Discover Page and easy to find content to watch.
Any other details to share?
Its a QOL and help people to find new content to watch, if they are not sure what to watch.

Not happening anytime now, someone did a very bad job with the discover page, it's the worst code in the whole app.
Before doing anything, it needs to be fully made from scratch again. If someone wants to do this please let us know

I can maybe pick this up, do you guys have anything specific in mind regarding the discover page?


Use loader:core for snmplistener v2 e2e test

What does this PR do?

Use loader:core for snmplistener e2e test
Motivation

We should use loader:core when possible since it's now the recommended implementation
Additional Notes

Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached

/azp run PR Changes

/azp run PR Changes


Fix(button): changes made to make button background colour appear

Problem was that tailwindcss base styling was affecting button with submit type so overridden main.css base layer with bg-color as black.
Closing issues
Closes #2821
Self Check before Merge
Please check all items below before review.

[x] Corresponding issues are created/updated or not needed
[x] Docs are updated/provided or not needed
[x] Examples are updated/provided or not needed
[x] TypeScript definitions are updated/provided or not needed
[x] Tests are updated/provided or not needed
[x] Changesets are provided or not needed

Hi @s-vamshi, Thanks for the PR. Everything seems good 🚀. We will merge after CI completed.


Fix stream benchmarks

The Akka/FS2 stream benchmarks were not using the same/equivalent operations as ZIO, even though some of them were supported (namely, mapConcat and mapAccum).
I also changed the way chunks were handled on the Akka-Streams benchmarks to use map instead of flatMap. That seems closer to the way the other benchmarks handle the input.
(1 to chunkCount).flatMap(i => Array.fill(chunkSize)(i)) was creating a new huge vector, and that creation actually took more time than the FS2/ZIO benchmarks 😅.
Benchmark results on my PC:
jmh:run scalaz.zio.StreamBenchmarks -i 5 -wi 5 -f 1 -t 1

Benchmark                                      (chunkCount)  (chunkSize)   Mode  Cnt  Score   Error  Units
StreamBenchmarks.akkaChunkFilterMapSum                10000         5000  thrpt    5  0.154 ± 0.035  ops/s
StreamBenchmarks.akkaChunkFilterMapSumNew             10000         5000  thrpt    5  0.254 ± 0.008  ops/s
StreamBenchmarks.fs2ChunkFilterMapSum                 10000         5000  thrpt    5  0.846 ± 0.034  ops/s
StreamBenchmarks.scalazChunkChunkFilterMapSum         10000         5000  thrpt    5  1.956 ± 0.049  ops/s
StreamBenchmarks.scalazChunkFilterMapSum              10000         5000  thrpt    5  1.851 ± 0.056  ops/s

jmh:run scalaz.zio.CSVStreamBenchmarks -i 5 -wi 5 -f 1 -t 1

Benchmark                               (chunkSize)  (cols)  (rows)   Mode  Cnt   Score   Error  Units
CSVStreamBenchmarks.akkaCsvTokenize            5000     100     100  thrpt    5   0.531 ± 0.002  ops/s
CSVStreamBenchmarks.akkaCsvTokenizeNew         5000     100     100  thrpt    5  11.185 ± 0.118  ops/s
CSVStreamBenchmarks.fs2CsvTokenize             5000     100     100  thrpt    5   6.119 ± 1.473  ops/s
CSVStreamBenchmarks.fs2CsvTokenizeNew          5000     100     100  thrpt    5   6.169 ± 0.120  ops/s
CSVStreamBenchmarks.scalazCsvTokenize          5000     100     100  thrpt    5  23.673 ± 0.381  ops/s

Side-note: I could have used Akka's statefulMapConcat as an alternative to mapAccum (https://gist.github.com/JD557/9756e4a97bc103122f72ecfd07e69a1f), but I wanted to keep code changes between implementations to a minimum.

@JD557 Thank you for doing this! I'll give others a chance to comment on this but it looks great to me.

@JD557 Try best for each to get the best score sounds reasonable to me, or maybe come up with some diagrams?


[Feature Request] Redirect node process stdout to a log file

Currently the modifications to the /etc/rc.local file launch the node webapp on start, like so:
su pi -c 'node /home/pi/code/scanse/sweep-3d-scanner/app.js < /dev/null &'

This leaves the stdout printing to the terminal. When using a monitor+keyboard on the pi, the stdout is visible and can clutter and obfuscate the login credentials.
We should direct the output of the process into a text/log file instead. This way the output isn't visible when using a monitor + keyboard, and the file can be viewed/shared by users. This would also help in debugging, where we could ask users to provide the log file.

Release v0.2.2 modified etc/rc.local to direct both stdout and stderr to a log file (/home/pi/scanner_output.log). Unfortunately this log file is overwritten on boot. So it must be viewed before turning off the pi. This is not ideal, but the stdout of the node webserver would start to build large files if the log file was set to append rather than reset.
I considered directing stdout and stderr to different files, where stdout is overwritten but stderr is appended. This would keep the verbose stdout from generating huge log files, but consulting just the stderr would lose a lot of the context for the preceding actions/conditions that led to the error.
It might be ideal to generate a more verbose log file that is overwritten only when it exceeds some threshold size. This way users could still shutdown the pi and retrieve the log file later. Not sure what the best strategy is for doing this... I'm sure its been documented for the pi many times over.
Additionally we may want to add an option to download the log file from the GUI, and perhaps delete/reset the log file from the GUI as well.
Leaving open for now.


Fix build error

Lspower has changed some names.

:tada: This PR is included in version 1.0.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


update(constants): move all shared constants to the one place

Reason for This PR
Older RR mode used when running workflows.
Description of Changes
Changes the default "workflow" mode to "temporal" to be aligned with the activities plugin.
License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the MIT license.
PR Checklist

[-] All commits in this PR are signed (git commit -s).
[x] The reason for this PR is clearly provided (issue no. or explanation).
[x] The description of changes is clear and encompassing.
[x] Any required documentation changes (code and docs) are included in this PR.
[x] Any user-facing changes are mentioned in CHANGELOG.md.
[x] All added/changed functionality is tested.

Codecov Report

Merging #37 (8881139) into master (81ed473) will decrease coverage by 0.20%.
The diff coverage is 50.00%.

@@            Coverage Diff             @@
##           master      #37      +/-   ##
==========================================
- Coverage   67.32%   67.11%   -0.21%
==========================================
  Files          17       17
  Lines         961      961
==========================================
- Hits          647      645       -2
- Misses        223      224       +1
- Partials       91       92       +1

Impacted Files
Coverage Δ

activity/plugin.go
66.66% <0.00%> (ø)

workflow/plugin.go
59.80% <0.00%> (ø)

activity/activity_pool.go
74.35% <100.00%> (ø)

workflow/worker.go
77.96% <100.00%> (ø)

workflow/process.go
70.04% <0.00%> (-0.89%)
:arrow_down:

Continue to review full report at Codecov.

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


scipy.integrate

Please consider adding the JAX equivalent of scipy.integrate to the library. This would be very useful!
Use case
As an example use case, I provide a simple implementation of a failed attempt to use JAX to differentiate through an improper integral function making use of the scipy.integrate.quad method. The function I consider is
$$ F(c_{1,}c_{2})=\int_{c_{2}}^{\infty}\frac{c_{1}}{1+x^{2}}dx $$
with analytic gradient given by
$$ \nabla F\equiv\left{ \frac{\partial F}{\partial c_{1}},\frac{\partial F}{\partial c_{2}}\right} =\left{ \frac{\pi}{2}-\arctan\left(c_{2}\right),-\frac{c_{1}}{1+c_{2}^{2}}\right} $$ .
The following snippet evaluates this function but throws ConcretizationTypeError error when trying to compute the gradient:
import jax
from scipy.integrate import quad

def F(c1, c2):
    val, err = quad(lambda x: c1/(1.0 + x**2), a=c2, b=jax.numpy.inf)
    return val

grad_F = jax.grad(F)

## Params
c1 = -1.0
c2 = 0.0

## Evaluate function
F(c1, c2)
# -1.5707963267948966   (which is -\pi/2 btw)

## (Fails to) Evaluate gradient
grad_F(c1, c2)

Since JAX's grad transform can only operate on functions made up entirely of JAX operations, a JAX implementation of quad would be needed, as @jakevdp pointed out to me on Stack Overflow. This is not provided by JAX at the moment.
Immediate alternative
In the meantime, would anyone have a suggestion for the simplest alternative way to go around the problem and make this work? It would be very helpful!

One possible workaround might be to create a custom_jvp or custom_vjp computing the appropriate gradient via the Leibniz integral rule?
(I'd suggest a custom_jvp as that's slightly more general -- JAX can automatically create the vjp from the jvp, but not vice-versa.)

Which specific functionality from scipy.integrate are you interested in? We're not likely to add equivalents fo the entireity of scipy.integrate, but specific functionality like scipy.integrate.quad is a possibility. Usually the first step is looking into how SciPy implements the desired functionality, and figuring out how hard that would be replicate in JAX. Note that JAX does already have an equivalent for scipy.integrate.odeint in jax.experimental.odes.

Which specific functionality from scipy.integrate are you interested in? We're not likely to add equivalents fo the entireity of scipy.integrate, but specific functionality like scipy.integrate.quad is a possibility.

@shoyer  Indeed, for the moment what I am interested in is scipy.integrate.quad because I need to evaluate improper integrals.

One possible workaround might be to create a custom_jvp or custom_vjp computing the appropriate gradient via the Leibniz integral rule?

@patrick-kidger I was not aware of that feature; thank you for pointing it out. I'm not sure it works, though... For one, I'd still have to evaluate an integral with 'quad' inside the 'f_jvp' function, which appears to raise the same issue, right?

Which specific functionality from scipy.integrate are you interested in? We're not likely to add equivalents fo the entireity of scipy.integrate, but specific functionality like scipy.integrate.quad is a possibility.

@shoyer  Indeed, for the moment what I am interested in is scipy.integrate.quad because I need to evaluate improper integrals.

One possible workaround might be to create a custom_jvp or custom_vjp computing the appropriate gradient via the Leibniz integral rule?

@patrick-kidger I was not aware of that feature; thank you for pointing it out. I'm not sure it works, though... For one, I'd still have to evaluate an integral with quad inside the f_jvp function, which appears to raise the same issue, right?

One possible workaround might be to create a custom_jvp or custom_vjp computing the appropriate gradient via the Leibniz integral rule?

I was not aware of that feature; thank you for pointing it out. I'm not sure it works, though... For one, I'd still have to evaluate an integral with quad inside the f_jvp function, which appears to raise the same issue, right?

Which specific functionality from scipy.integrate are you interested in? We're not likely to add equivalents fo the entireity of scipy.integrate, but specific functionality like scipy.integrate.quad is a possibility.

Indeed, for the moment what I am interested in is scipy.integrate.quad because I need to evaluate improper integrals.

One possible workaround might be to create a custom_jvp or custom_vjp computing the appropriate gradient via the Leibniz integral rule?

I was not aware of that feature; thank you for pointing it out. I'm not sure it works, though... For one, I'd still have to evaluate an integral with quad inside the f_jvp function, which appears to raise the same issue, right?

So I'd expect that you'd need to use scipy's quad twice: once in the forward pass, and once in the Leibniz rule. The same issue doesn't occur because the point of a custom jvp or vjp is that it provides a custom way to calculate the gradient, so JAX doesn't need to know the inner workings of quad.

The same issue doesn't occur because...

It's not exactly the same issue, but there is an issue. Let's stick with the example above. Attempting to implement it results in a different ConcretizationTypeError:
import jax
from scipy.integrate import quad

@jax.custom_jvp
def F(c1, c2):
    val, err = quad(lambda x: c1/(1.0 + x**2), a=c2, b=jax.numpy.inf)
    return val

@F.defjvp
def F_jvp(primals, tangents):
    c1, c2 = primals
    c1_dot, c2_dot = tangents
    primal_out = F(c1, c2)
    tangent_out = -(c1/(1.0 + c2**2)) * c2_dot + quad(lambda x: c1_dot * (1/(1.0 + x**2)), a=c2, b=jax.numpy.inf)
    return primal_out, tangent_out

grad_F = jax.grad(F)

c1 = -1.0
c2 = 0.0

F(c1, c2)
# -1.5707963267948966

grad_F(c1,c2)

---------------------------------------------------------------------------
ConcretizationTypeError                   Traceback (most recent call last)
/tmp/ipykernel_710549/193222156.py in <module>
----> 1 grad_F(c1,c2)

    [... skipping hidden 14 frame]

/tmp/ipykernel_710549/3555931944.py in F_jvp(primals, tangents)
     15     c1_dot, c2_dot = tangents
     16     primal_out = F(c1, c2)
---> 17     tangent_out = -(c1/(1.0 + c2**2)) * c2_dot + quad(lambda x: c1_dot * (1/(1.0 + x**2)), a=c2, b=jax.numpy.inf)
     18     return primal_out, tangent_out
     19

~/anaconda3/lib/python3.8/site-packages/scipy/integrate/quadpack.py in quad(func, a, b, args, full_output, epsabs, epsrel, limit, points, weight, wvar, wopts, maxp1, limlst)
    349
    350     if weight is None:
--> 351         retval = _quad(func, a, b, args, full_output, epsabs, epsrel, limit,
    352                        points)
    353     else:

~/anaconda3/lib/python3.8/site-packages/scipy/integrate/quadpack.py in _quad(func, a, b, args, full_output, epsabs, epsrel, limit, points)
    463             return _quadpack._qagse(func,a,b,args,full_output,epsabs,epsrel,limit)
    464         else:
--> 465             return _quadpack._qagie(func,bound,infbounds,args,full_output,epsabs,epsrel,limit)
    466     else:
    467         if infbounds != 0:

    [... skipping hidden 1 frame]

~/anaconda3/lib/python3.8/site-packages/jax/core.py in error(self, arg)
    998                       f"or `jnp.array(x, {fun.__name__})` instead.")
    999   def error(self, arg):
-> 1000     raise ConcretizationTypeError(arg, fname_context)
   1001   return error
   1002

ConcretizationTypeError: Abstract tracer value encountered where concrete value is expected: Traced<ShapedArray(float32[], weak_type=True):JaxprTrace(level=1/0)>
The problem arose with the `float` function. If trying to convert the data type of a value, try using `x.astype(float)` or `jnp.array(x, float)` instead.

See https://jax.readthedocs.io/en/latest/errors.html#jax.errors.ConcretizationTypeError

So the problem here is that a custom forward-mode rule has been defined (custom_jvp) but its reverse-mode (grad) that is then being called.
[The caveat to what I wrote earlier is that JAX can only synthesise reverse-mode from forward-mode if it understands the internal operations; my bad for being unclear on that earlier.]
This means the appropriate thing to do is to write a custom_vjp (not a custom_jvp) if you want to use grad later.
I've put together something quickly that I think works (although I haven't tested it extensively for correctness):
import functools as ft
import jax
import jax.numpy as jnp
import scipy.integrate

@ft.partial(jax.custom_vjp, nondiff_argnums=(0,))
def quad(func, a, b, args=()):
    """Calculates the integral

    \int_a^b func(t, *args) dt
    """

    result, _ = scipy.integrate.quad(func, a, b, args)
    return result

def quad_fwd(func, a, b, args=()):
    result = quad(func, a, b, args)
    aux = (a, b, args)
    return result, aux

def quad_bwd(func, aux, grad):
    a, b, args = aux

    grad_a = -grad * func(a, *args)
    grad_b = grad * func(b, *args)

    grad_args = []
    for i in range(len(args)):
        def _vjp_func(_t, *_args):
            return jax.grad(func, i)(_t, *_args)
        grad_args.append(grad * quad(_vjp_func, a, b, args))
    grad_args = tuple(grad_args)

    return grad_a, grad_b, grad_args

quad.defvjp(quad_fwd, quad_bwd)

(Incidentally I think it's a current limitation of JAX that you can't have both custom forward-mode and custom reverse-mode autodiff rules.)

For those interested, I've been developing a package called quadax to do just this sort of stuff: https://github.com/f0uriest/quadax

We've decided that scipy.integrate is mostly out-of-scope for JAX; see https://github.com/google/jax/pull/18137. Hopefully libraries like quadax and others can fill this niche!


Resize and align images

I would like to be able to resize and align images

@BjoernRave Actually, this explanation is not enough to know exactly what you want. Whether you want to handle image size or alignment in a layer popup, or whether you want to add markdown syntax, I need a detailed explanation.
First of all, as I'm expecting, you can use html in the Markdown editor, and use the style attribute to handle image size and alignment. Did you want this feature?

yes, I would like to be able, that when I add an image to the wysiwyg editor, that I can resize and align the image inside the editor

+1
Resize and align the image inside the editor or popup

+1
Resize and align the image inside the editor or popup, maybe add a margin

Would love to have this for the WYSIWYG editor! For the markdown side, perhaps a macro would work? Something like that used in remark.js may be helpful. From the linked issue:
remark.macros.scale = function (percentage) {
  var url = this;
  return '';
};

Usage:
![:scale 50%](image.jpg)
Output:

+1
Resize and align the image inside the editor or popup, maybe add a margin

Has anyone found a workaround for now for this problem?

同问，希望能解决一下这个问题啊！


App cannot connect to multiple servers

It would be a great feature if you could connect to multiple servers, because potentially multiple communities could switch to mattermost.

Hi @jnhssg, would you be open to upvoting this feature request: https://mattermost.uservoice.com/forums/306457-general/suggestions/10975938-ios-and-android-apps-should-allow-multiple-server?
I'll close this issue for now as a duplicate of the above feature request issue.


Use Last-Modified date in If-Modified-Since header

Clients should make use of the "Last-Modified" header of responses and include that timestamp in a "If-Modified-Since" header of subsequent requests.

https://onionoo.torproject.org/protocol.html#general

Closed via #14


Better article images

Wrap article images in <figure class="image"> to add padding and center the image
Parse img alt text as <figcaption>

Works beautifully


Permission error when creating project from specification

Describe the bug
Creating an empty project works fine with "asyncapi new glee", but if I specify an existing api spec with -f, I get the following error after it prints the api spec and allows me to select servers from it:
Error: Unable to create the project. We tried to access the "/home/xxxxx/code/mqttnew/project" directory but it was not possible due to file access permissions. Please check the write permissions of your current working directory ("/home/xxxxx/code/mqttnew").

There are no actual permissions issues since I am able to run the command in the same folder without -f, without any issues.
How to Reproduce
I would guess that this has to be related to my specific setup. I am running Debian Trixie, NPM 9.2.0 and Node v18.19.0.
I've tried installing asyncapi cli from both the latest .deb-file, as well as building it myself and running ./bin/run. Both gives the same issue.
Just let me know if any additional information is needed.
Expected behavior
The project is created :)

I did some digging and have an update to this. It works if the run-file for the CLI is left in a folder where my user has permissions, but if it's placed in /usr/bin/ or similar it fails with the error above.

Isn't this the expected behavior @dankar, since your user does not have write access so CLI can't create the project?

No, what I mean is where the CLI executable is (asyncapi). I would assume nothing should need to write to the executable file :)

Well, I think by default you don't have write access in usr/bin with rwxr-xr-x. So it should not be able to create glee project there, @dankar is CLI able to create the project without the -f flag in usr/bin?

I am not creating the project in /usr/bin. I am creating the project in my home directory, and I have full access rights there. The difference is just where the "asyncapi" executable is. If it's in /usr/bin I get the error. If I put it somewhere in my home directory, it works.

Alright sorry for the confusion 😄, I got it now, I am checking it out 👍🏼

@dankar cant reproduce this issue. i dont have debian. using AWS ec2 instance. @Souvikns did you reproduced it.
Instead I am getting another issue that is "Unexpected value at position 0"

/gfi


JBrowse Circular Genome View doesn't start on Mac

The Mac version of Circular View will not start up.
After downloading IGV JBrowse CircularView-0.1.0.dmg and copying it to the Application folder, when I launch this App, it freezes with a blank screen as shown in the attachment and does not work thereafter.
I am using macOS BigSur 11.6.2 and the other parameters are as follows.
Does anyone else have similar issues?
Please let me know if there is anything I can do to help.

igv-jbrowse-circularview 0.1.0
Electron 16.0.7
darwin 20.6.0
Locale: ja

It works for me and I am also on BigSur, version 11.6.   The app needs an internet connection as it loads "React" and the JBrowse component.

There is an option to "Open development tools" in the Debug menu for the app, could you open that and see if there are any errors in the console?  It should look something like this when open

I found the issue, it was a problem with the "dmg" file.  Could you delete the app and try downloading again?   Sorry for the inconvenience.  https://igv.org/downloads/circview/IGV JBrowse CircularView-0.1.0.dmg


add jedis pool config

According to users needs , add a new function to configure jedis pool configuration by users

Replaced by: https://github.com/jcasbin/redis-watcher/pull/28


feat: added states permissions to IAM policy

Added states:DescribeStateMachine permission to the aws_iam_policy of datadog-core. This is a core step of integrating with AWS Step Functions.
Tested on forked branch and works as expected.

Thank you @nbaec !


Rename Note fails with error: "Cannot read property 'forEach' of undefined"

Describe the bug
Attempting to rename a note via the command palette throws an error and deletes the file you were attempting to rename. This occurs irrespective of the filename casing as described in #250.
To Reproduce
Steps to reproduce the behavior:

Initialize an empty dendron workspace
Use the command palette "Markdown Notes: New Note" to create a new note (e.g. some.example.note)
With the note window in focus, use the command palette "Dendron: Rename Note" (e.g. some.example.note -> some.example)
Fails with error "Cannot read property 'forEach' of undefined".

Expected behavior
The note is renamed successfully without being deleted.
VSCode
Dendron extension version 0.15.0
Dendron markdown notes extension version 0.0.17
VSCode Version: 1.52.0-insider (user setup)
Commit: 050a123750e4ef4009930d0da1ff7a1a6441d4f3
Date: 2020-11-12T05:43:04.852Z
Electron: 9.3.3
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042
** Dendron Log file**
dendron.log

Thanks for the issue. This was just brought to my attention and will be fixed this weekend!

Same problem. I have removed all default dendron's notes and add one note foo.bar. Then I have tried to Rename Note or Refactor Hierarchy and got the error Cannot read property 'forEach' of undefined
Dendron version v0.15.0

Thanks for catching. This is a regression with our current set of starter documents. Will be fixed this weekend!

this should be fixed in 0.16. @osadasami @DanielHZhang could you confirm if you still see this issue?

Dendron: Rename Note is still throwing an error for me in v0.16.0 after following the original reproduction steps. However, it no longer deletes the current note in focus. Instead, it merely outputs an error notification: {"ctx":"h:run","err":{}}
Relevant output:
info: {"ctx":"h:run","msg":"pre-execute"}
info: {"ctx":"RenameNoteV2a","msg":"enter","opts":{"files":[{"oldUri":{"$mid":1,"fsPath":"vault\\test.foo.bar.md","_sep":1,"external":"file:///vault/test.foo.bar.md","path":"/vault/test.foo.bar.md","scheme":"file"},"newUri":{"$mid":1,"path":"/vault/test.foo.md","scheme":"file"}}],"silent":false,"closeCurrentFile":true,"openNewFile":true}}
error: {"ctx":"h:run","err":{}}
info: {"ctx":"RenameNoteV2a","msg":"exit"}

Full logs:
dendron.log

Same as @DanielHZhang. Update dendron to version v0.16.0 and after rename or refactor hierarchy got an error
{"ctx":"g:run","err":{}}

@DanielHZhang, when you are renaming the note, does the note have dendron frontmatter attached?
it should look like the following
---
id: 22efbe89-9411-40fa-917f-f9cabc1f4abd
title: Foobar
desc: ''
updated:<PHONE_NUMBER>739
created:<PHONE_NUMBER>739
---

the error you're getting is because dendron couldn't find metadata for the note. whenever you create a note using lookup or by opening a wiki-link, the metadata is automatically added. it is not added for notes that are manually created

I have only been creating notes via the command Markdown Notes: New Note. This is the result from running that command for a note named example.foo.bar:
---
id: 8d6ead03-bd2a-4675-8592-4406a74c5d89
title: Bar
desc: ''
updated:<PHONE_NUMBER>848
created:<PHONE_NUMBER>848
---
# Bar

Ah. Markdown Notes: New Note uses a different engine than Dendron. It's not
indexed until the next time workspace is reloaded. We're going to be
integrating markdown notes related functionality with dendron equivalents
starting with the next release. Can you see if creating a new note using
Dendron: Lookup still results in this error?
On Mon, Nov 16, 2020 at 10:03 AM Daniel Zhang<EMAIL_ADDRESS>wrote:

I have only been creating notes via the command Markdown Notes: New Note.
This is the result from running that command for a note named
example.foo.bar:
---id: 8d6ead03-bd2a-4675-8592-4406a74c5d89title: Bardesc: ''updated:<PHONE_NUMBER>848created:<PHONE_NUMBER>848---# Bar
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dendronhq/dendron/issues/338#issuecomment-728229159,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABPIPR2YOKK3K4PAJNAKE3SQFSN5ANCNFSM4TTV6JRA
.

Ah, I wasn't aware that Dendron: Lookup was the preferred method for creating notes. Perhaps it could be renamed to Dendron: Lookup or Create to make it more intuitive for new users?
Creating a new note via Dendron: Lookup and then renaming it no longer errors. Renaming works successfully for regular names, but still can break on a couple edge cases:

renaming the note to an empty string (clearing the rename input field and pressing enter)
including any invalid Windows filename character in the new name: "*<>?\|/:

These edge cases produce variations of this error:
{"ctx":"h:run","err":{"name":"Error","message":"cannot open file:///Dendron_debug/vault/.md. Detail: Unable to read file 'Dendron_debug\\vault\\.md' (Error: Unable to resolve non-existing file 'Dendron_debug\\vault\\.md')"}}

It's been a source of confusion before and I'm trying to figure out how to make it more obvious.
We are removing the markdown-notes extension dependency the coming week and folding all related functions into Dendron which will remove one source of error
As for making Lookup more obvious - I'm hesitant to rename the command to Lookup or Create as now the name becomes a tad too verbose. We just slimmed down the getting started vault from 100+ notes to 3 notes. I'm thinking of opening with an example of using lookup to find and create might help.
Also open to other suggestions :)
And thanks for mentioning the other edge cases. Lets keep this ticket open then until we fix them.

I think we agreed this is due to Windows vs. Mac posix naming and that is the correct fix for this. I still run into this from time to time despite updating my dendron.yml with Windows path name conventions.


I made a thing

First, great work.
Second, this has some stuff in it:

Moved to pytest for testing (including support for iterating through ORMs)
Moved to sanic-testing for the testing of Sanic to be uniform and supportable
Moved to poetry for package and dependency management
Bumped the version to 2.0.0_preview_01 just because
Made the tortoise-orm stuff a little more normalized (read: less Tortoise-ish, more whatever)
Built and bundled in a umongo option (what I use)
Support for bring your own ORM (need to document this, but basically you pass in, via config variables, your Models/Objects which must have a few items)
Updated all the needed modules to current versions
Force username, as well as phone and email to be unique, since all can be used to login
Force role names to be unique, because that's sanity
Moved model validators into their respective ORM, using their respective best practices
Started to make the module pluge-able to Sanic, via sanic-ext ... but recent updates broke what was working, and the developers said they are working on overhauling it, so I left it as is for now
Added some more variables:

    "SANIC_SECURITY_ORM": 'tortoise', # Currently supports ['tortoise', 'umongo']
    "SANIC_SECURITY_ACCOUNT": None,
    "SANIC_SECURITY_SESSION": None,
    "SANIC_SECURITY_ROLE": None,
    "SANIC_SECURITY_VERIFICATION_MODEL": None,
    "SANIC_SECURITY_TWOSTEP_MODEL": None,
    "SANIC_SECURITY_CAPTCHA_MODEL": None,
    "SANIC_SECURITY_AUTHENTICATION_MODEL": None,

Third, I suck at documentation (including docstrings), and lots is needed, so I'll start working on that next. I tried to maintain as much backwards support as possible .. but some things just needed to change (hence the major version bump) to be sane and relatively clean.
Lastly, the umongo.py ORM file still needs some cleanup -- nothing breaking, just code quality and DRYness.

Wow, this is a lot. Really awesome. Give me some time to check it out.

No worries. Working on the doc updates now.
Still needs:

unit tests for custom provider
Docs on using custom provider, including expectations on necessary properties/functions on them
Additional fail testing on the security providers

I see, will leave this pull request and monitor your changes. Will consider merging when you've completed your version. Thanks!! :)

Will do :) gonna provide feedback soon. Thanks!

@pahrohfit Sorry if it's taking some time, I've been caught up on work recently and I'm going to make time soon. It's great you've put in work to add more to this project and I appreciate it. Have spent some time reading over it and there's some very interesting changes for sure. Thanks.


change spelling of Mac OS and add it to the script installer list

CC @jacob-carlborg
AFAIK this is the common spelling nowadays?

I've always referred to it as 'OS X'

Apple changed the name of the OS when they announced the latest version, Sierra. Apparently it did line up properly on their slides with the rest of the OS names, iOS, tvOS watchOS 😃.

Then we'll go with that!

Wikipedia states "[...] was originally branded "Mac OS X", renamed to "OS X" in 2012,[4] and announced to be renamed to "macOS" in the upcoming version in 2016."

The circle is now complete. It's back to the original name Mac OS, the name used before Mac OS X. Which really is not the same OS, which adds to the confusion.


Error: all query identities do not appear in gallery

Hi
when i use market1501 to trian the model .
after 30 epoch and test,
there are some error:
could you help me?
Epoch 29 Iter 78/83 ce_loss: 0.041 triplet: 0.011 Total loss: 0.053
2019-11-21 14:52:42,903 reid_baseline.train INFO: Epoch 29 Total loss: 0.116 lr: 3.50e-04 During 1min:30s
Epoch 30 Iter 78/83 ce_loss: 0.030 triplet: 0.015 Total loss: 0.045
2019-11-21 14:54:13,363 reid_baseline.train INFO: Epoch 30 Total loss: 0.120 lr: 3.50e-04 During 1min:30s
Traceback (most recent call last):
File "tools/train.py", line 81, in
main()
File "tools/train.py", line 65, in main
reid_system.train()
File "./engine/trainer.py", line 178, in train
metric_dict = self.test()
File "./engine/trainer.py", line 155, in test
cmc, mAP = evaluate(-distmat, q_pids, g_pids, q_camids, g_camids)
File "./data/datasets/eval_reid.py", line 163, in evaluate
return evaluate_py(distmat, q_pids, g_pids, q_camids, g_camids, max_rank, use_metric_cuhk03)
File "./data/datasets/eval_reid.py", line 156, in evaluate_py
return eval_market1501(distmat, q_pids, g_pids, q_camids, g_camids, max_rank)
File "./data/datasets/eval_reid.py", line 143, in eval_market1501
assert num_valid_q > 0, "Error: all query identities do not appear in gallery"
AssertionError: Error: all query identities do not appear in gallery

At least two queries are required.


Notify documentors webhook

fix #317

@DelazJ originally the [FEATURE]-tag in the commit message in was used to be able to filter out the new features from all commits. To be used for the changelog and release texts.
We still do that, but now also have this issue-creating mechanism to make documenting new stuff easier, AND we created a new tag to instruct do writers to add documentation about old functionality which was changed or had additions.
Tags are:
[FEATURE ] and [NEEDS-DOCS]
https://github.com/qgis/QGIS-Sysadmin/blob/master/webhooks/github_feature_tracker.cgi#L429


prevent conflicts with other menu plugins

When using mpv-menu-plugin I noticed that keys that had a @state property weren't working.
This allows input-event to co-exist with other menu plugins by only binding events that match supported "to" types

@repeat is not in the pattern. I'm waiting for https://github.com/tsl0922/mpv-menu-plugin/issues/61 to be solved, or I add an option to allow custom prefix later.

added repeat as well. Are there any other states besides those?

Hold this issue until I have time to think about this (probably next weekend).

closed by https://github.com/natural-harmonia-gropius/input-event/commit/45a29e1236be2bf61783bfad77e391e74f6f3a02, thanks.


data(snapshot): add conflict datasets from spreadsheets

This PR adds several conflict datasets to Snapshot. To this end, I have created a new namespace: conflicts.
These datasets were previously manipulated and saved in Google Drive. Here, we download these files from Google Drive and port them to Snapshots.
I have added technical notes to the corresponding dataset metadata.

@pabloarosado, thanks for your feedback.

I'd suggest taking the SNAPSHOT_VERSION from Path(__file__).parent.name, to avoid hardcoding versions.
The SNAPSHOT_VERSION value was written by cookiecutter based on the parameters inputted during the walkthrough step. I think this is fine. I don't see a clear win here.

Couldn't you just use one script, called, e.g. "conflicts", which has a list of all short_names to process (assuming they all share the same version)?
Yes, that's an option. I preferred keeping them separate in case (i) versions for specific datasets change or (ii) we want to update specific datasets.

I don't understand what file you are manually uploading each time (using path-to-file). I thought all data was in google documents.

For each script, you will a URL to the file to be downloaded in the docstring. For instance, sutton_1971.py needs file at https://docs.google.com/spreadsheets/d/1Xo5e8aiFJnmv_aasFXU8MtzizSU0LxiysoUuErEJx3Q/edit?usp=sharing.

@pabloarosado, thanks for your feedback.

I'd suggest taking the SNAPSHOT_VERSION from Path(__file__).parent.name, to avoid hardcoding versions.

The SNAPSHOT_VERSION value was written by cookiecutter based on the parameters inputted during the walkthrough step. I think this is fine. I don't see a clear win here.

I think we should be moving in the direction of not having hardcoded versions in data steps. But as I mentioned in the other PR, we can look into this at another time.

Couldn't you just use one script, called, e.g. "conflicts", which has a list of all short_names to process (assuming they all share the same version)?

Yes, that's an option. I preferred keeping them separate in case (i) versions for specific datasets change or (ii) we want to update specific datasets.

OK!

I don't understand what file you are manually uploading each time (using path-to-file). I thought all data was in google documents.

For each script, you will a URL to the file to be downloaded in the docstring. For instance, sutton_1971.py needs file at https://docs.google.com/spreadsheets/d/1Xo5e8aiFJnmv_aasFXU8MtzizSU0LxiysoUuErEJx3Q/edit?usp=sharing.

I'm not sure I understood. So you have to manually download a file from google drive, and then input it via --path-to-file, is that right? If so, I think these instructions are not very clear in the docstring. And also, wouldn't it be possible to fetch the file directly from google drive? If you did it this way just for simplicity, maybe mention it in the docstring.
On a separate note, are the google drive files expected to be temporary, or to be maintained? I just checked the sutton_1971 file and its permissions are set to "Anybody with the link can edit". I supposed those permissions should be changed to read only.

I'm not sure I understood. So you have to manually download a file from google drive, and then input it via --path-to-file, is that right? If so, I think these instructions are not very clear in the docstring. And also, wouldn't it be possible to fetch the file directly from google drive? If you did it this way just for simplicity, maybe mention it in the docstring.

I tried making it more obvious in the docstrings, please let me know what you think.
We could automatically download the files from Google Drive. I tried using https://docs.google.com/spreadsheets/d/{key}/gviz/tq?tqx=out:csv style link to download the file, but doesn't seem to work (some cells disappear).
Instead, we could use owid-datautils in Snapshot. download_from_source , so that it could download google drive files, too.
https://github.com/owid/etl/blob/428066476d44fe0012334578816be38bf04e8482/etl/snapshot.py#L64-L68

On a separate note, are the google drive files expected to be temporary, or to be maintained? I just checked the sutton_1971 file and its permissions are set to "Anybody with the link can edit". I supposed those permissions should be changed to read only.

Thanks for the catch. I changed the permissions!

OK, if you think we will have to update these datasets often (more than once per year?), then it would be good if they could fetch data directly from google. Otherwise, a manual download is fine. Up to you!


set readline to allow for backspace in ask dialog

This makes it possible to use backspace to correct typos when entering accounts

Thanks @mrtazz!


Add support for 2D variables to the BOV reader

The BOV reader currently only supports 3D variables. We should add 2D. N.B. it should be possible to mix 2D and 3D variables together in the same data set as this is a common use case.

@clyne


[AutoPR hanaonazure/resource-manager] [Hub Generated] Review request for Microsoft.HanaOnAzure to add version 2017-11-03-preview

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/5466

Build output:

Build output:

Build output:

Build output:

Build output:

This PR has been merged into https://github.com/Azure/azure-sdk-for-java/pull/3252


Heading example fontSize being overridden by markdown styles

All of the fontSizes are the same in the example and are being overridden by the .markdown-body h1 rule

I also noticed that the is prop is overriding visual styles rather than just changing the html tag that's rendered, is that due to the same Markdown issue? I hope so or it's a bigger problem 😬

Addressed in gatsby-theme-primer


fix(talos): Update envvar for talosconfig

Fix the path to the talosconfig following the refactoring in #1326.
(amended to fix commit subject)

Thanks!


(tests) Don't install rubygems package on Ubuntu 14.04 Trusty

On trusty (and later?), the gem command is packaged with the ruby package instead. Work done in support of PDB-997.

@kurtwall this is targeted at master, not stable. Want to rebase/reopen it?