ESP32-S2:TWAI RX does not work (IDFGH-3670)

Environment

Development Kit:     ESP32-S2
Kit version (for WroverKit/PicoKit/DevKitC): [v1|v2|v3|v4]
Module or chip used:  WROVER
IDF version (run git describe --tags to find it): master (latest)
Build System:         CMake
Compiler version (run xtensa-esp32-elf-gcc --version to find it): 8.2.0r2
Operating System:     Linux
Using an IDE?: No
Power Supply:         USB (or external 5v or 3v3)

Problem Description
The TWAI driver does not trigger RX events when running at 125kbps (pins rx: 36, tx: 37) with accept all filter.
Expected Behavior
Actual Behavior
Steps to reproduce
After fixing https://github.com/espressif/esp-idf/issues/5603 mappings (minimum needed for my old code):
-#include "hal/can_types.h"
+#include "hal/twai_types.h"
...
+#define CAN_TIMING_CONFIG_125KBITS      TWAI_TIMING_CONFIG_125KBITS
+#define CAN_FILTER_CONFIG_ACCEPT_ALL    TWAI_FILTER_CONFIG_ACCEPT_ALL
+
+#define CAN_MODE_NORMAL                 TWAI_MODE_NORMAL
+#define CAN_MSG_FLAG_NONE               TWAI_MSG_FLAG_NONE
+#define CAN_MSG_FLAG_EXTD               TWAI_MSG_FLAG_EXTD
+#define CAN_MSG_FLAG_RTR                TWAI_MSG_FLAG_RTR
+#define CAN_MSG_FLAG_DLC_NON_COMP       TWAI_MSG_FLAG_DLC_NON_COMP
+
+typedef twai_timing_config_t            can_timing_config_t;
+typedef twai_filter_config_t            can_filter_config_t;
+typedef twai_message_t can_message_t;

I was able to compile my old code (https://github.com/openmrn/OpenMRNLite/tree/master/examples/ESP32IOBoard). I can see the frames being transmitted by the S2 to the other devices on the network but the S2 never raises an RX event.
I added
#include "soc_log.h"
SOC_LOGE("TWAI-HAL", "%04x, %04x, %d:%d\n", interrupts, status, tec, rec);

to https://github.com/espressif/esp-idf/blob/master/components/soc/src/hal/twai_hal.c#L91 in order to confirm the RX event was never raised:
[ESP-TWAI] sending frame
E (2070) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
E (2076) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
[ESP-TWAI] sending frame
E (2085) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
Allocating new alias 849 for node<PHONE_NUMBER>00
[ESP-TWAI] sending frame
E (2287) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
[ESP-TWAI] sending frame
E (2290) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
[ESP-TWAI] sending frame
E (2299) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
[ESP-TWAI] sending frame
E (2308) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
[ESP-TWAI] sending frame
E (2317) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
E (2323) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
[ESP-TWAI] sending frame
E (2332) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS
[ESP-TWAI] sending frame
E (2533) TWAI-HAL: 0002, 002c, 0:0

ESP-TWAI: 0400
ESP-TWAI: TX SUCCESS

@Dazza0 I've rewritten my code to directly leverage the new TWAI APIs. Unfortunately, I still see the same problem with RX not firing. I added an LM358 to the TX and RX pins to visually indicate activity and I can see there is activity on both TX and RX now but the RX event doesn't appear to be firing. Any updates or things I can try to help resolve this?

@Dazza0 I've tested the TWAI code I linked to above on the ESP32 on latest IDF master with no issues. I'm at a loss as to what is missing on the ESP32-S2 side.
For both the ESP32 and ESP32-S2 I've used SN65HVD230 with this circuit to visualize the TX/RX activity:
It appears that even though the frames are visually confirmed as being sent by the SN65HVD230 to the ESP32-S2 it would appear the ESP32-S2 is not processing them.

@atanisoft I've just tested the ESP32-S2 by porting over the can.h and can_types.h and haven't been able to recreate this issue. Could you share a snippet of your mapping file and also you application code?

@Dazza0 let me share a private repo with you that contains a version of it and instructions on how to test it with that code. I haven't been able to receive with the code using only the new TWAI API on the S2 but it works on the esp32.

@Dazza0 you should have received an invite to the repo and I've added some notes in the readme which explain how to connect the ESP32-S2 and what sort of data to send to it (very basic frames really)

@atanisoft The invite I received doesn't seem to work.

@Dazza0 if you can send me an email I'll send you a zip file if the project.
Is it possibly an issue with using pins 41 (rx), 42 (tx)? I have no issues with tx but rx doesn't seem to be firing even though the transceiver shows activity on rx.

@Dazza0 I tested using the arduino-esp32 esp32s2 branch (uses v4.3-dev-907-g6c17e3a64-dirty) and it somewhat works. I'll be digging through the diffs further.

latest code seems to work correctly...

@Dazza0 I'm circling back to this with the latest IDF v4.4 (master cf457d412) and I'm seeing consistent failure with my S2 Saola WROVER:
09:12:34.212 -> ESP-ROM:esp32s2-rc4-20191025
09:12:34.212 -> Build:Oct 25 2019
09:12:34.212 -> rst:0x1 (POWERON),boot:0x8 (SPI_FAST_FLASH_BOOT)
09:12:34.212 -> SPIWP:0xee
09:12:34.212 -> mode:DIO, clock div:1
09:12:34.245 -> load:0x3ffe6100,len:0x4b0
09:12:34.245 -> load:0x4004c000,len:0xa6c
09:12:34.245 -> load:0x40050000,len:0x25c0
09:12:34.245 -> entry 0x4004c198
09:12:34.576 -> [SoC] reset reason:1 - power on reset
09:12:34.576 -> [SoC] model:ESP32-S2,rev:0,cores:1,flash:No,WiFi:Yes,BLE:No,BT:No
09:12:34.576 -> [SoC] Heap: 207.92kB / 281.12Kb
09:12:34.576 -> [SoC] PSRAM: 2045.63kB / 2048.00Kb
09:12:34.576 -> [SoC] App running from: app0

As you can see it is an early rev0 board, I'm wondering if possibly this specific board has a broken TWAI peripheral? It works fine for TX but never for RX.

I have apparently the same issue here. My (simple example) Rx /Tx  code is working well on a ESP32, but when compiled for ESP32-s2 (in arduino-esp32-2.0.2rc1, based on esp-idf4..4) , only TX is working and no RX event is firing...
The acceptance  filter is supposed to be configured for letting all frames in.
On the same board a circuitpython script is able to both receive and transmit so I am pretty sure it is not the HW (fithermore, frames from the other node are acknowledged and no error is raised on transmission, which means the twai controller is properly seeing what happens on the bus)
@atanisoft have you solved your issue ?

@brice-fr I have not found a workable solution as of now, I'm using IDF v4.3 release branch for esp32, esp32-c3 and esp32-s2. The code works on all three for TX but RX doesn't seem to ever trigger on the esp32-s2.
Since you have seen circuit python working for this, it would be good to see the diff of what is being used there compared to IDF. It could be a bug in the HAL-LL code for the esp32-s2.

@atanisoft there is indeed some hint in the adafruit can/twai driver
https://github.com/adafruit/circuitpython/blob/main/ports/esp32s2/common-hal/canio/Listener.c#L47
It is pointing to this issue : https://github.com/espressif/esp-idf/issues/6020
(thanls to @jepler for pointing this in the first time)
I can not recompile easily the esp-idf library that is used in arduino but I have  somwhow duplicated the twai driver in my project and just adding "attribute((optimize("O0")))"  in the prototype of the filter setting function in twai_ll.h actually allows to solve this issue:
static inline void __attribute__((optimize("O0"))) twaie_ll_set_acc_filter(twaie_dev_t* hw, uint32_t code, uint32_t mask, bool single_filter) {     uint32_t code_swapped = HAL_SWAP32(code);     uint32_t mask_swapped = HAL_SWAP32(mask);     for (int i = 0; i < 4; i++) {         hw->acceptance_filter.acr[i].byte = ((code_swapped >> (i * 8)) & 0xFF);         hw->acceptance_filter.amr[i].byte = ((mask_swapped >> (i * 8)) & 0xFF);     }     hw->mode_reg.afm = single_filter; }
Reworking the struct as @Dazza0  planned might also do the trick but meanwhile this solution seems the most easy and effective

@brice-fr wow, such a simple fix possibly. I'll give it a test with my hardware setup and if it works can submit a PR for @Dazza0 to review.

Most probably replacing the ".byte" (x2) by ".val“  would have also worked as this is what is done with the TX buffers. Gone to work right now but I can try that this evening...

@brice-fr I'm seeing some other issues with the patched method. But I do see the RX ISR event firing so that is some progress. I suspect it may be a few other 8-bit accesses causing the issues.

Just ran into this myself and was stumped why the identical code on an ESP32 failed on an ESP32-S2 for receive. Googling online there were others with the same problem that eventually led me here. I haven't been able to get my own twai driver working for some reason as brice-fr was. Hopefully this is figured out soon as in the Espressif Arduino forum, they were asking for feedback on bugs as looking to release 2.0.0

PTAL at commit 2e0ffbd543abc0226f0dbd2f725eb891235abe02. The commit should prevent s8 access on all peripherals.

Thank you!

@Dazza0 A simpler example of the failure is likely as simple as:
main.cpp

#include <hal/twai_hal.h>

extern "C" void app_main() {}

Likely other HAL header files would reproduce this as well since the new macros are used quite extensively.
This seems to be a behavior difference of C vs C++ related to the typeof operator.

@Dazza0 Compilation seems to be successful with the updated macros, will test with this on: ESP32, ESP32-S2, ESP32-C3 and report back.

@Dazza0 I've confirmed that using the above macros the linked Esp32HardwareTwai.cpp code works for the ESP32-S2. I'll continue testing over the weekend but so far it looks good.

@Dazza0 Can this HAL fix be backported to IDF v4.3?

@atanisoft  Technically this will need to be back-ported all the way back to v4.2 since this was the first version where ESP32-S2 was supported, so v4.3 should also have this backport. But I want to double check if this bug is present in all of our compiler versions (given that the source of this bug is due to the -fstrict-volatile-bitfields not working).

I can confirm it is broken in v4.3 at least, which also uses the same gcc as master is today.

@Dazza0 Any timeline for the fix being backported to IDF v4.3?

@atanisoft MR for v4.3 backport is current review

@Dazza0, I am also facing the Rx issue with ESP32 (ESP-WROOM-32) while Tx is working perfectly. I am using the MCP2515 module as my CAN transceiver.
I tried ESP-IDF v5 as well as v4.4.4, neither of which seem to work.
I saw a YouTube video with someone who used a similar code, and it was working perfectly for him.
This is my code:
`
#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "stdio.h"
#include "stdlib.h"
#include "driver/twai.h"
void twai_setup_and_install(){
//Initialize configuration structures using macro initializers
twai_general_config_t g_config = {
.mode = TWAI_MODE_NORMAL,
.tx_io = GPIO_NUM_5,
.rx_io = GPIO_NUM_4,
.clkout_io = TWAI_IO_UNUSED,
.bus_off_io = TWAI_IO_UNUSED,
.tx_queue_len = 5,
.rx_queue_len = 5,
.alerts_enabled = TWAI_ALERT_NONE,
.clkout_divider = 0
};
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_500KBITS();
twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();

// Install TWAI driver
if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) {
    printf("Driver installed\n");
} else {
    printf("Failed to install driver\n");
    return;
}

// Start TWAI driver
if (twai_start() == ESP_OK) {
    printf("Driver started\n");
} else {
    printf("Failed to start driver\n");
    return;
}

}
void new_message(twai_message_t *message, uint32_t id, uint8_t dlc, uint8_t *data)
{
message->flags = TWAI_MSG_FLAG_NONE;
message->identifier = id;
message->data_length_code = dlc;
for (int i = 0; i < dlc; i++) {
    message->data[i] = data[i];
}
printf("Message created\nID: %ld DLC: %d Data:\t", message->identifier, message->data_length_code);
for (int i = 0; i < message->data_length_code; i++) {
    printf("%d\t", message->data[i]);
}
printf("\n");

}
void transmit_message(twai_message_t *message)
{
if (twai_transmit(message, pdMS_TO_TICKS(1000)) == ESP_OK) {
printf("Message queued for transmission\n");
} else {
printf("Failed to send message\n");
}
}
void receive_message(twai_message_t *message)
{
if (twai_receive(message, pdMS_TO_TICKS(1000)) == ESP_OK) {
printf("Message received:\n");
printf("ID: %ld DLC: %d Data:\t", message->identifier, message->data_length_code);
for (int i = 0; i < message->data_length_code; i++) {
(message->extd)?printf("Extended ID"):printf("Standard ID");
printf("%d\t", message->data[i]);
}
} else {
printf("Failed to receive message\n");
}
}
void app_main()
{
twai_setup_and_install();
twai_message_t message;
twai_message_t message1;
// Set the data to send
uint8_t data[8] = {rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255};

while(true){
// Create a new message
new_message(&message, 0x123, 8, data);

// Transmit the message to a queue
transmit_message(&message);

// Receive the message from the queue
receive_message(&message1);

// Wait for 1 second
vTaskDelay(1000 / portTICK_PERIOD_MS);
}

}
`
@brice-fr @eloebl @atanisoft @jepler
If anyone can help me, it would be really appreciated!
Regards,
Awaiting reply ASAP

@Dazza0, I am also facing the Rx issue with ESP32 (ESP-WROOM-32) while Tx is working perfectly. I am using the MCP2515 module as my CAN transceiver.
I tried ESP-IDF v5 as well as v4.4.4, neither of which seem to work.
I saw a YouTube video with someone who used a similar code, and it was working perfectly for him.
This is my code:
`#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "stdio.h"
#include "stdlib.h"
#include "driver/twai.h"
void twai_setup_and_install(){
//Initialize configuration structures using macro initializers
twai_general_config_t g_config = {
.mode = TWAI_MODE_NORMAL,
.tx_io = GPIO_NUM_5,
.rx_io = GPIO_NUM_4,
.clkout_io = TWAI_IO_UNUSED,
.bus_off_io = TWAI_IO_UNUSED,
.tx_queue_len = 5,
.rx_queue_len = 5,
.alerts_enabled = TWAI_ALERT_NONE,
.clkout_divider = 0
};
twai_timing_config_t t_config = TWAI_TIMING_CONFIG_500KBITS();
twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();
// Install TWAI driver
if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) {
printf("Driver installed\n");
} else {
printf("Failed to install driver\n");
return;
}
// Start TWAI driver
if (twai_start() == ESP_OK) {
printf("Driver started\n");
} else {
printf("Failed to start driver\n");
return;
}
}
void new_message(twai_message_t *message, uint32_t id, uint8_t dlc, uint8_t *data)
{
message->flags = TWAI_MSG_FLAG_NONE;
message->identifier = id;
message->data_length_code = dlc;
for (int i = 0; i < dlc; i++) {
message->data[i] = data[i];
}
printf("Message created\nID: %ld DLC: %d Data:\t", message->identifier, message->data_length_code);
for (int i = 0; i < message->data_length_code; i++) {
printf("%d\t", message->data[i]);
}
printf("\n");
}
void transmit_message(twai_message_t *message)
{
if (twai_transmit(message, pdMS_TO_TICKS(1000)) == ESP_OK) {
printf("Message queued for transmission\n");
} else {
printf("Failed to send message\n");
}
}
void receive_message(twai_message_t *message)
{
if (twai_receive(message, pdMS_TO_TICKS(1000)) == ESP_OK) {
printf("Message received:\n");
printf("ID: %ld DLC: %d Data:\t", message->identifier, message->data_length_code);
for (int i = 0; i < message->data_length_code; i++) {
(message->extd)?printf("Extended ID"):printf("Standard ID");
printf("%d\t", message->data[i]);
}
} else {
printf("Failed to receive message\n");
}
}
void app_main()
{
twai_setup_and_install();
twai_message_t message;
twai_message_t message1;
// Set the data to send
uint8_t data[8] = {rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255};
while(true){
// Create a new message
new_message(&message, 0x123, 8, data);
// Transmit the message to a queue
transmit_message(&message);
// Receive the message from the queue
receive_message(&message1);
// Wait for 1 second
vTaskDelay(1000 / portTICK_PERIOD_MS);
}
}`
@brice-fr @eloebl @atanisoft @jepler
If anyone can help me, it would be really appreciated!
Regards,
Awaiting reply ASAP

@Dazza0, I am also facing the Rx issue with ESP32 (ESP-WROOM-32) while Tx is working perfectly. I am using the MCP2515 module as my CAN transceiver.
I tried ESP-IDF v5 as well as v4.4.4, neither of which seem to work.
I saw a YouTube video with someone who used a similar code, and it was working perfectly for him.
This is my code:
#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "stdio.h"
#include "stdlib.h"
#include "driver/twai.h"

void twai_setup_and_install(){
    //Initialize configuration structures using macro initializers
    twai_general_config_t g_config = {
        .mode = TWAI_MODE_NORMAL,
        .tx_io = GPIO_NUM_5,
        .rx_io = GPIO_NUM_4,
        .clkout_io = TWAI_IO_UNUSED,
        .bus_off_io = TWAI_IO_UNUSED,
        .tx_queue_len = 5,
        .rx_queue_len = 5,
        .alerts_enabled = TWAI_ALERT_NONE,
        .clkout_divider = 0
    };

    twai_timing_config_t t_config = TWAI_TIMING_CONFIG_500KBITS();
    twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();

    // Install TWAI driver
    if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) {
        printf("Driver installed\n");
    } else {
        printf("Failed to install driver\n");
        return;
    }

    // Start TWAI driver
    if (twai_start() == ESP_OK) {
        printf("Driver started\n");
    } else {
        printf("Failed to start driver\n");
        return;
    }
}

void new_message(twai_message_t *message, uint32_t id, uint8_t dlc, uint8_t *data)
{

    message->flags = TWAI_MSG_FLAG_NONE;
    message->identifier = id;
    message->data_length_code = dlc;
    for (int i = 0; i < dlc; i++) {
        message->data[i] = data[i];
    }
    printf("Message created\nID: %ld DLC: %d Data:\t", message->identifier, message->data_length_code);
    for (int i = 0; i < message->data_length_code; i++) {
        printf("%d\t", message->data[i]);
    }
    printf("\n");
}

void transmit_message(twai_message_t *message)
{
    if (twai_transmit(message, pdMS_TO_TICKS(1000)) == ESP_OK) {
        printf("Message queued for transmission\n");
    } else {
        printf("Failed to send message\n");
    }
}

void receive_message(twai_message_t *message)
{
    if (twai_receive(message, pdMS_TO_TICKS(1000)) == ESP_OK) {
        printf("Message received:\n");
        printf("ID: %ld DLC: %d Data:\t", message->identifier, message->data_length_code);
        for (int i = 0; i < message->data_length_code; i++) {
            (message->extd)?printf("Extended ID"):printf("Standard ID");
            printf("%d\t", message->data[i]);
        }
    } else {
        printf("Failed to receive message\n");
    }
}

void app_main()
{

    twai_setup_and_install();
    twai_message_t message;
    twai_message_t message1;
    // Set the data to send
    uint8_t data[8] = {rand() % 255, rand() % 255, rand() % 255,
    rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255};

    while(true){
    // Create a new message
    new_message(&message, 0x123, 8, data);

    // Transmit the message to a queue
    transmit_message(&message);

    // Receive the message from the queue
    receive_message(&message1);

    // Wait for 1 second
    vTaskDelay(1000 / portTICK_PERIOD_MS);
    }

}

@brice-fr @eloebl @atanisoft @jepler
If anyone can help me, it would be really appreciated!
Regards,
Awaiting reply ASAP

@Dazza0, I am also facing the Rx issue with ESP32 (ESP-WROOM-32) while Tx is working perfectly. I am using the MCP2515 module as my CAN transceiver.
I tried ESP-IDF v5 as well as v4.4.4, neither of which seem to work.
I saw a YouTube video with someone who used a similar code, and it was working perfectly for him (YouTube Video: link: https://youtu.be/bxzWuIqfn9Y).
This is my code:
#include "driver/gpio.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "stdio.h"
#include "stdlib.h"
#include "driver/twai.h"

void twai_setup_and_install(){
    //Initialize configuration structures using macro initializers
    twai_general_config_t g_config = {
        .mode = TWAI_MODE_NORMAL,
        .tx_io = GPIO_NUM_5,
        .rx_io = GPIO_NUM_4,
        .clkout_io = TWAI_IO_UNUSED,
        .bus_off_io = TWAI_IO_UNUSED,
        .tx_queue_len = 5,
        .rx_queue_len = 5,
        .alerts_enabled = TWAI_ALERT_NONE,
        .clkout_divider = 0
    };

    twai_timing_config_t t_config = TWAI_TIMING_CONFIG_500KBITS();
    twai_filter_config_t f_config = TWAI_FILTER_CONFIG_ACCEPT_ALL();

    // Install TWAI driver
    if (twai_driver_install(&g_config, &t_config, &f_config) == ESP_OK) {
        printf("Driver installed\n");
    } else {
        printf("Failed to install driver\n");
        return;
    }

    // Start TWAI driver
    if (twai_start() == ESP_OK) {
        printf("Driver started\n");
    } else {
        printf("Failed to start driver\n");
        return;
    }
}

void new_message(twai_message_t *message, uint32_t id, uint8_t dlc, uint8_t *data)
{

    message->flags = TWAI_MSG_FLAG_NONE;
    message->identifier = id;
    message->data_length_code = dlc;
    for (int i = 0; i < dlc; i++) {
        message->data[i] = data[i];
    }
    printf("Message created\nID: %ld DLC: %d Data:\t", message->identifier, message->data_length_code);
    for (int i = 0; i < message->data_length_code; i++) {
        printf("%d\t", message->data[i]);
    }
    printf("\n");
}

void transmit_message(twai_message_t *message)
{
    if (twai_transmit(message, pdMS_TO_TICKS(1000)) == ESP_OK) {
        printf("Message queued for transmission\n");
    } else {
        printf("Failed to send message\n");
    }
}

void receive_message(twai_message_t *message)
{
    if (twai_receive(message, pdMS_TO_TICKS(1000)) == ESP_OK) {
        printf("Message received:\n");
        printf("ID: %ld DLC: %d Data:\t", message->identifier, message->data_length_code);
        for (int i = 0; i < message->data_length_code; i++) {
            (message->extd)?printf("Extended ID"):printf("Standard ID");
            printf("%d\t", message->data[i]);
        }
    } else {
        printf("Failed to receive message\n");
    }
}

void app_main()
{

    twai_setup_and_install();
    twai_message_t message;
    twai_message_t message1;
    // Set the data to send
    uint8_t data[8] = {rand() % 255, rand() % 255, rand() % 255,
    rand() % 255, rand() % 255, rand() % 255, rand() % 255, rand() % 255};

    while(true){
    // Create a new message
    new_message(&message, 0x123, 8, data);

    // Transmit the message to a queue
    transmit_message(&message);

    // Receive the message from the queue
    receive_message(&message1);

    // Wait for 1 second
    vTaskDelay(1000 / portTICK_PERIOD_MS);
    }

}

@brice-fr @eloebl @atanisoft @jepler
If anyone can help me, it would be really appreciated!
Regards,
Awaiting reply ASAP

Hi, I'm currently working with the same board and the same code, but it also doesn't work... have you figured it out in the meantime?

Just Recover from BUS OFF state - here is example
void drv_can_check_bus_off_and_recover(void)
{
twai_status_info_t status_info;
esp_err_t twai_err = twai_get_status_info(&status_info);
if(twai_err == ESP_OK)
{
    ESP_LOGI(TAG, "twai_status : %s",
        (status_info.state == TWAI_STATE_STOPPED)? "TWAI_STATE_STOPPED" :
        (status_info.state == TWAI_STATE_RUNNING)? "TWAI_STATE_RUNNING" :
        (status_info.state == TWAI_STATE_BUS_OFF)? "TWAI_STATE_BUS_OFF" :
        (status_info.state == TWAI_STATE_RECOVERING)? "TWAI_STATE_RECOVERING" : "TWAI_STATE_UNKNOWN"

    );
    if (status_info.state == TWAI_STATE_BUS_OFF)
    {
        if(twai_initiate_recovery() == ESP_OK)
        {
            ESP_LOGW(TAG, "twai_initiate_recovery");
        }
        else
        {
            ESP_LOGE(TAG, "twai_initiate_recovery failure");
        }
    }
    else
    if (status_info.state == TWAI_STATE_STOPPED)
    {
        if(twai_start() == ESP_OK)
        {
            ESP_LOGW(TAG, "twai_start");
        }
        else
        {
            ESP_LOGE(TAG, "twai_start failure");
        }
    }
}

}


fix(gradle.properties): increases maximum heap size during gradle build

What this PR changes/adds
This PR adds a line in the gradle.properties file that increses the heap size during the build to 2048MB.
Why it does that
Without this change, the automatic and manual building in the IDE will fail with an error message, that there is not enough space on the heap.
Checklist

[ ] added appropriate tests?
[ ] performed checkstyle check locally?
[ ] added/updated copyright headers?
[ ] documented public classes/methods?
[ ] added/updated relevant documentation?
[ ] assigned appropriate label? (exclude from changelog with label no-changelog)
[ ] formatted title correctly? (take a look at the CONTRIBUTING and Etiquette for pull requests for details)

This doesn't need to be added here and can be set in the user's ~/.gradle/gradle.properties directory.

I would mention it in the Checkout and build from source section of the README then.
As things stand building just automatically fails for new users which makes for a bad first experience.

I would mention it in the Checkout and build from source section of the README then. As things stand building just automatically fails for new users which makes for a bad first experience.

We could do that, but it's a gradle issue, not an EDC one, and I don't think we should explain people how to configure dev tools like gradle or their IDE. Maybe a link to the gradle documentation page about that will be enough:
https://docs.gradle.org/current/userguide/build_environment.html

I would mention it in the Checkout and build from source section of the README then. As things stand building just automatically fails for new users which makes for a bad first experience.

We could do that, but it's a gradle issue, not an EDC one, and I don't think we should explain people how to configure dev tools like gradle or their IDE. Maybe a link to the gradle documentation page about that will be enough: https://docs.gradle.org/current/userguide/build_environment.html

Agreed. I also don't think we should include links as this becomes difficult to maintain as their number increases.

Instead of telling people how to configure their tools, i would then simply mention a minimum heap size as a requirement for building.

Instead of telling people how to configure their tools, i would then simply mention a minimum heap size as a requirement for building.

I don't think it's a requirement... my setting is -Xmx1024M and it works


Upgrade to latest stripe sdk to fix xCode 12.5 issue

Fix #32

Thank you for this PR! I think I'll review it in the weekend

hi @viktorasl, thanks for your work, when will the update be released? i need it urgently, thank you very much :)


[AIRFLOW-1730] Unpickle value of XCom queried from DB

Dear Airflow maintainers,
Please accept this PR. I understand that it will not be reviewed until I have checked off all the steps below!
JIRA

[x] My PR addresses the following Airflow JIRA issues and references them in the PR title. For example, "[AIRFLOW-XXX] My Airflow PR"

https://issues.apache.org/jira/browse/AIRFLOW-1730

Description

[x] Here are some details about my PR, including screenshots of any UI changes:
If enable_xcom_pickling is True, the value of XCom that queried from DB is not unpickled.
The list of XComs not rendered correctly.

Tests

[x] My PR adds the following unit tests OR does not need testing for this extremely good reason:

Commits

[x] My commits all reference JIRA issues in their subject lines, and I have squashed multiple commits if they address the same issue. In addition, my commits follow the guidelines from "How to write a good git commit message":

Subject is separated from body by a blank line
Subject is limited to 50 characters
Subject does not end with a period
Subject uses the imperative mood ("add", not "adding")
Body wraps at 72 characters
Body explains "what" and "why", not "how"

Codecov Report

Merging #2701 into master will increase coverage by 0.09%.
The diff coverage is 70%.

@@            Coverage Diff             @@
##           master    #2701      +/-   ##
==========================================
+ Coverage   71.75%   71.84%   +0.09%
==========================================
  Files         154      154
  Lines       11864    11860       -4
==========================================
+ Hits         8513     8521       +8
+ Misses       3351     3339      -12

Impacted Files
Coverage Δ

airflow/models.py
87.62% <70%> (+0.52%)
:arrow_up:

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 cb868f4...a1e89d5. Read the comment docs.

This looks good (and the re-init trick is nice). Could you rebase/resolve and then I'll be able to merge.

@ashb Thank you for your review!  I resolved conflicts.


Type assertion inconsistencies for objects with index signatures and arrays

Sorry in advance if this is a duplicate, I tried to find any one else mentioning this but couldn't see it.

TypeScript Version:  3.7-beta (The version currently on the Typescript Playground)

Search Terms:
assertion
empty array
index
key
property is missing in type but required in type assertion
Code
interface IndexExample {
  a: { [key: string]: string };
  b: string;
}

export const test = { a: { foo: "test" } } as IndexExample; // unhappy

/*
* Conversion of type '{ a: { foo: string; }; }' to type 'IndexExample' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
  Property 'b' is missing in type '{ a: { foo: string; }; }' but required in type 'IndexExample'.(2352)
**/

const test2 = { a: {} } as IndexExample; // happy

interface ArrayExample {
    a: string[];
    b: string;
}

export const test3 = { a: [] } as ArrayExample // unhappy

/*
* Conversion of type '{ a: never[]; }' to type 'ArrayExample' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
  Property 'b' is missing in type '{ a: never[]; }' but required in type 'ArrayExample'.(2352)
**/

export const test4 = { a: [""]} as ArrayExample // happy

Expected behavior:
I would have thought that all of the above examples test1-4 wouldn't have complained.
Actual behavior:

If the interface contains an index signature, seems to complain if you provide at least one key, but doesn't complain if you provide none.
If the interface contains an array, seems to complain if the array is empty, but doesn't complain if there is at least one element in the array.

Playground Link:
http://www.typescriptlang.org/play/?ts=3.7-Beta#code/JYOwLgpgTgZghgYwgAgJIgCYQB4FFtwC2ADgDYoDeAUMsnAFzIXIDaA1hAJ6MDOYUoAOYBdXvyHIAvgG4ayAEZiBIQbMlUqOYgHsoYZAm0g+ySCYC8TOo2Yxt2xgCIzYR1PdweaTDnxEyEBqGxvouAEzIlswMTJIeXuhYeAQk5BqgkLCIKACCUFBwnH6plHK0MXzKgizCsrS0isiVQmoaWrr6wSYuAMyRVjE18ch5BUUpAW3YOnoGRt0QfAAs-dGMLI6OwnGeI-mFxZNAA
Context:
The intention was to mock out large objects in tests while still maintaining a bit of type safety.
Give me a shout if you need any more information, or if I've missed something obvious. This behaviour seems a bit weird to me but maybe I'm wrong 😄

See comments in #9312, #7531, #16995, etc.

Is there an issue that explains why {[key: string]: string} isn't assignable to {foo: string}?  The compiler complains that "foo" is missing in the index type, but doesn't the index type claim to have string values for any key, including "foo"?
That's the underlying issue with the IndexExample.

Is there an issue that explains why {[key: string]: string} isn't assignable to {foo: string}

No. It's definitely inconsistent, but preferable to having {[key: string]: any} be assignable to anything. Even  {[key: string]: string} -> {foo: string} would be an assignment that, in practice, would be very unlikely to be correct


[SPARK-46934][SQL] Read/write roundtrip for struct type with special characters with HMS

What changes were proposed in this pull request?

Hive metastore API uses unquoted element names for struct types, so the spark catalyst generates a catalog string to conform with.
For example, both struct<x:int,y.z:int> and struct<x:int,y.z:int> are valid cases in FieldSchema.
while the original form of the 2nd one, which is from user API, is struct<x:int,`y.z`:int>. Because we use CatalystSqlParser.parseDataType to verify the type, we need to convert the unquoted element names to quoted ones.

For verification

For the read path, a.k.a, getting an existing table from HMS. We need to convert struct<x:int,y.z:int> returned by HMS to struct<x:int,`y.z`:int>.
For the write path, a.k.a, creating/altering a table to HMS. We need to convert struct<x:int,y.z:int> generated by Spark catalogString to struct<x:int,`y.z`:int>.

For HMS API calls

keep the struct<x:int,y.z:int> AS-IS to conform with HMS, as '`' can not be recognized by hive.

Why are the changes needed?

bugfix
Does this PR introduce any user-facing change?

yes, users can now read/write/define/delete tables with struct columns with pecial characters in their elements
How was this patch tested?

new tests
Was this patch authored or co-authored using generative AI tooling?
no

Gentle ping, @yaooqinn .

Hi @dongjoon-hyun. I apologize for not responding earlier. I was away on vacation for two weeks.
Will fix them soon.

No problem at all. Thank you, @yaooqinn !


switch to ithaca as default protocol for priv chains

mkchain produces values.yaml for ithaca chain
example in values.yaml comments is now ithaca
remove any trace of the endorser in our code

Awesome :) Let's also update the Helm chart tests?

@harryttd  done


Added namespace to Context

Possible fix for https://github.com/kylef/Stencil/issues/58

@kylef any thoughts on this? I'd be happy to implement a different way if you have suggestions.  This bug is blocking me on another project so I'm eager to get it fixed and tagged.

This way works for me :+1:. Thanks for the pull request.

@kylef any chance we can get this tagged in a new release?

Sorry for delay, I wanted to get more into the release but never found time.
https://github.com/kylef/Stencil/releases/tag/0.6.0-beta.1


[Feature request]

How  I creaet IOT edge Device using this explore
we create Device not EdgeDevice How we Do
Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

Hi @nainesh72  thank you for creating this issue. This is currently on our backlog, and will have an update for it once we plan it out.

Closing this issue and will be tracking in #404


Mixin conflict in 1.20

When I try to add zenith for minecraft 1.20 I get some nasty mixin conflicts.
This is the crash report:
crash-2023-10-15_00.58.50-client.txt
And this is the log file:
2023-10-15-5.log
The problem is only detected after everything is loaded.
Usually the main menu is visible after the mouse wheeli log message but instead the game crashes with the given crash report.
fakerlib alone does not cause the problem neither does zenith attributes.
Only when adding zenith the game crashes.

Will be fixed next release, looks to be an easy fix

Fixed


Modification into: To create a minimal MSBuild project file

in section "To create a minimal MSBuild project file" you can find: "In the text editor, replace the existing text by using these two lines:" ....
but which is the existing test? thre are not reference about what file it is talking about, is it a new file? is it a existing file

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

ID: 09bc6800-41dc-a7a4-5942-0f103a290cf9
Version Independent ID: 56b974f2-30d2-ae79-2b78-7eb073ec7cd1
Content: Create an MSBuild project file from scratch - MSBuild
Content Source: docs/msbuild/walkthrough-creating-an-msbuild-project-file-from-scratch.md
Product: visual-studio-windows
Technology: msbuild
GitHub Login: @ghogen
Microsoft Alias: ghogen

@Byron2016 -- apologies for the delay in replying.  It should say "create a new file"; I updated the article and it should be live by tomorrow.


Inline link tags don't work for static methods

I want to link to a certain Data class's static method and it doesn't seem to be working (where normally the generated HTML would link the method at Data.html#updateUser it is instead being linked at Data.html#.updateUser which appears to be throwing off my inline {@link Data#updateUser} tag).
Input code

Here's how I created that inline @link tag:
/**
* Class in which the problematic inline link tag is located.
*/
class Tutorbook {
    /**
     * Proxy function to Data's [updateUser]{@link Data#updateUser} method.
     */
    updateUser(user = this.user) {
        return Data.updateUser(user);
    }
}

Here's where that link is supposed to go to:
/**
* Class where the linked to static method resides.
*/
class Data {
    /**
     * Updates the given user's Firestore document.
     * @param {Object} user - The user to update.
     */
    static async updateUser(user) {
        await Data.updateUserAvailability(user);
        Data.updateUserLocation(user);
        if (!user) {
            throw new Error('Cannot update an undefined user.');
        } else if (!user.id && !user.email && !user.uid) {
            throw new Error('Could not update user b/c id was undefined.');
        } else if (user.uid) {
            return window.app.db.collection('users').doc(user.uid).update(user);
        } else {
            console.warn('Using an email as a user ID is deprecated.');
            return window.app.db.collection('usersByEmail').doc(user.id ||
                user.email).update(user);
        }
    }
}

JSDoc configuration

{
    "tags": {
        "allowUnknownTags": true,
        "dictionaries": ["jsdoc"]
    },
    "source": {
        "include": [
	    "./src/app/packages/",
	    "./src/site/packages/",
	    "./README.md"
	],
        "includePattern": ".js$",
        "excludePattern": "node_modules/"
    },
    "plugins": [
        "plugins/markdown"
    ],
    "templates": {
        "cleverLinks": true,
        "useLongnameInNav": false
    },
    "opts": {
        "destination": "./build/docs/",
        "encoding": "utf8",
        "private": true,
        "recurse": true,
        "template": "./src/app/node_modules/minami"
    }
}

Expected behavior

The @link inline tag should correctly point to Data.html#updateUser and that updateUser static method within the Data class should have the correct element ID (i.e. #updateUser instead of #.updateUser) in the generated HTML.

Current behavior

The updateUser static method within the Data class's element ID is .updateUser (with a pesky little period) instead of just updateUser. See below image for what that generated HTML looks like.

And (maybe because of that) the @link inline tag doesn't point to anywhere (though it does correctly render as monospace). See below image for what that generated HTML looks like.

Your environment

Software
Version

JSDoc
JSDoc 3.6.3 (Sun, 14 Jul 2019 17:01:26 GMT)

Node.js
v10.10.0

npm
6.13.6

Operating system
Ubuntu 18.04.2 LTS

Just an update that you can find that documentation live here.

Turns out that those links are specified in the different namepath documentation. Though I still think you should make that more clear in the @link tag documentation.


Fixed missing clearance of settings fields belonging to other login method B, on login with A, and vice versa

fix #2242
fix: missing clearance of user/password/token fields in the settings when logging in with other method.
refactor: moved common code sequences into the test helpers (extended machine package)
chore: extended login tests (multi login sequences).
See also #2289 for an extension adding a logout command.

Please do not cancel https://github.com/epinio/epinio/actions/runs/4945151762/jobs/8847837150
The testsuite has passed already (45m). It is currently uploading coverage data to code cov.
I hope that this is just an issue of a slow net, or an above-average amount of CC data requiring to be moved.

Please do not cancel https://github.com/epinio/epinio/actions/runs/4945151762/jobs/8847837150
The testsuite has passed already (45m). It is currently uploading coverage data to code cov.
I hope that this is just an issue of a slow net, or an above-average amount of CC data requiring to be moved.

@enrichman ^ CI :heavy_check_mark: and your comment addressed


Failing to detect faces in selfies

Is there a maximum image size to reliably detect faces?  I have an application that has been working quite well, but I recently tried to start processing selfies captured from a phone camera and I can't seem to detect any faces, and I wonder if the face is just too large.  I don't recall the exact resolution of the images being captured, but it would definitely be much larger than what I had been using before.  Is there a known maximum image size to reliably identify faces?  I am using HOG, would CNN work better?  I hope that isn't the solution because I am running it on a machine that doesn't support CUDA.  Resizing the images would be a much better solution for me I think.  I'm really liking this library otherwise!

@gillonba

Is there a maximum image size to reliably detect faces?
No. Basically it depends on face size on image rather than image size.
So it could be easy to detect large face occupies in image.

HOG could not be depend on image and face size.
HOG is Histograms of Oriented Gradients and it does not resize image when processing unlike CNN.
http://dlib.net/face_detector.py.html
If you want to detect only face except for recognize face, you can use

https://github.com/takuya-takeuchi/UltraFaceDotNet
https://github.com/takuya-takeuchi/CenterFaceDotNet

These libraries depend on NcnnDotNet.
They can detect small faces.

Ok.  I wondered if there was something specific to phone selfies because I have had pretty good luck otherwise.  Ultimately the point of the project is face recognition, so just detection is not good enough.  Would it work to look into an improved face detection algorithm?  If I remember correctly, I call FaceLocations() followed by FaceEncodings(), so would it maybe work to use some other library to detect the face and still use FaceEncodings() to generate an encoding?  Or is it too fragile to work if the bounding rectangle isn't just right?

@gillonba

If I remember correctly, I call FaceLocations() followed by FaceEncodings(), so would it maybe work to use some other library to detect the face and still use FaceEncodings() to generate an encoding?

You are correct.
FRDN can accept face location to extract face encoding.
So you can pass face location which be retrieved from other libraries.
But I have not tried yet.
However, we must consider to keep low FAR and FRR.
It is meaningless even though library generate encoding datum from small face.
You can integrate CustomFaceDetector to FRDN.
You implement class from https://github.com/takuya-takeuchi/FaceRecognitionDotNet/blob/master/src/FaceRecognitionDotNet/Extensions/FaceDetector.cs.
It is easy to try other library.

Thanks for the suggestion.  I bit the bullet and got CUDA working and CNN seems to be working quite well, though I'm having trouble with high-resolution images.  I guess I need to scale them down myself before passing them in to the locator?
I also tried UltraFace and while the speed is good and I have no problems getting the encodings from the locations it provides, I am getting a ton of false positives.  I assume I can play with the ScoreThreshold but at this point it seems to have little advantage for me over CNN.  It is really good to know that I can use other libraries though, and I'll keep it in mind in case I ever start playing with mobile.  I'll post a test comparing all three methods once I have it refined a bit
Have you looked into Microsoft's ML.Net?  It would be great to use a library built for C# and officially supported instead of dealing with a wrapper

good!!

I guess I need to scale them down myself before passing them in to the locator?

CNN has convolution layer and we need not to take care of scaling image.
However, small faces in picture will be disappeared when input to cnn.
So we should crop area and pass cropped image to cnn. It may be better result.

UltraFace and while the speed is good and I have no problems getting the encodings from the locations it provides, I am getting a ton of false positives

Small face may not be able to catch important feature when encoding.
But this issue is commonly. It is hard to resolve it.

So as promised, here is a test video showing the results from HOG, CNN, and UltraFace.  In this case, CNN (with GPU) is the clear winner, being slightly faster than UltraFace and with fewer false positives.  Now that the test program is set up, I can easily run it against other video clips if anyone wants to see it run against anything else.
https://rumble.com/vpghpz-alita-trailer-1-with-face-recognition.html


References

Notebooks & Github codes

[ ] Quickstart Notebook for using Causalgraphicalmodels python module: used to describe and manipulate Causal Graphical Models and Structural Causal Models.
[ ] Introduction to CasualgraphicModel

Key Papers & blogs

[ ] DoWhy
[ ] A Novel Feature Selection Method for Effective Breast Cancer Diagnosis and Prognosis
[ ] Causal Inference: Trying to Understand the Question of Why
[ ] ANALYSIS OF FEATURE SELECTION WITH CLASSFICATION: BREAST CANCER DATASETS

Talks & Videos

[ ] Tutorial Session B – Causes and Counterfactuals: Concepts, Principles and Tools (Microft, 2014)
[ ] Keynote- Judea Pearl - The New Science of Cause and Effect

Discussion on Causal Inference: Trying to Understand the Question of Why
Causal Inference is the process where causes are inferred from data.
And not only do we use causal inference to navigate the world, we use causal inference to solve problems.
Causality is all about interventions, about doing. Standard statistics is all about correlations, which are all good and fun, but correlations can lead to wrong assumptions which can lead to a lot worse thing.
In correlations, the notation is P(x|y) i.e. the probability of x given y: for example, the probability of a disease given an active gene. However, in causal calculus, a very small but important change is made. Instead of P(x|y) it’s P(x|do(y)) i.e. the probability of x given that y is done: for example, the probability of a disease given that I start a diet. The ‘do’ is very important: it represents the intervention, the actual doing of something that will cause the effect.
Confounders are variables that have a causal relationship with two variables that we want to test a causal relationship between.
In causal inference, we always need to account for confounders because they introduce correlations that muddle the causal diagram.
Randomization is key because it provides an unbiased account of the world.

ANALYSIS OF FEATURE SELECTION WITH CLASSFICATION: BREAST CANCER DATASETS
Classification and regression trees (CART) are a set of techniques for classification and prediction. The technique is aimed at producing rules that predict the value of an outcome (target) variable from known values of predictor (explanatory) variables.
Breast Cancer Wisconsin (Diagnostic) Data Set
No. of Attributes 32
No. of Instances 569
No. of Classes 2
Missing values no

A Novel Feature Selection Method for Effective Breast Cancer Diagnosis and Prognosis
MCRSFS is a two-level feature reduction algorithm
MCRSFS(Modified Correlation Rough Set Feature Selection) is a two-level feature reduction algorithm The aim of this algorithm is to achieve a feature subset with minimum number of features providing efficient classification accuracy. This is composed of two feature reduction algorithms. Rough set QuickReduct algorithm is applied initially to obtain the minimal feature subset. Then the second algorithm CFS(Correlation Feature Selection) is used to do further reduction in minimal feature subset.
WEKA toolkit is used to analyze the datasets with the data mining algorithms
Weka is a collection of machine learning algorithms for data mining tasks. The algorithms can either be applied directly to a dataset or called from your own Java code. Weka contains tools for data pre-processing, classification, regression, clustering, association rules, and visualization.
The reduced attribute set obtained for
WDBC dataset is: {11, 17, 22, 24, 25, 26, 28, and 31}.

Accuracy is most important in the field of medical diagnosis to diagnose the patient’s disease.

Experimental results show that Feature Selection, a Preprocessing technique greatly enhances the accuracy of classification.

We also conclude that the classifier accuracy has been surely enhanced by the use of any of Feature selection method than the classifier accuracy without feature selection.

Discussion on DoWhy Library
Python library that is built with causal assumptions as to its first-class citizens, based on the formal framework of causal graphs to specify and test causal assumptions. DoWhy presents an API for the four steps common to any causal analysis—

modeling the data using a causal graph and structural assumptions,

identifying whether the desired effect is estimable under the causal model

estimating the effect using statistical estimators, and finally

refuting the obtained estimate through robustness checks and sensitivity analyses.


Style tag isn't stripped from the index

These are my config settings regarding the XpathsToRemove:
<XpathsToRemove>
  <add>//head</add>
  <add>//script</add>
  <add>//style</add>
  <add>//footer</add>
  <add>//nav</add>
  <add>//*[@id='cookie-bar']</add>
  <add>//*[@id='search-bar']</add>
</XpathsToRemove>

And I have this in my Layout view:
<head>
    [...]
    <style type="text/css">
        .honing {
            display: none;
        }
    </style>
    [...]
</head>

In my index this isn't removed, for example from the FullTextCache DB table:
Nieuws | Websitename .honing {
display: none;
}
Edit Wij geven om privacy Daarom gebruiken we functionele en analytische cookies voor website optimalisatie. Geef hiervoor je voorkeuren op: Ja, ik wil analytische cookies Ja, ik wil marketing cookies Voorkeuren opslaan
<page text>
Disclaimer Algemene voorwaarden Cookies (function () {
var s = document.createElement("script"); s.type = "text/javascript"; s.async = true; s.src = '//api.usersnap.com/load/sdfsdfsdfsdfdsfsdfdsfdssdffsdfsd.js';
var x = document.getElementsByTagName('script')[0]; x.parentNode.insertBefore(s, x);
})();

Looking at it, it seems it's not the only tag not being remove, for example the usersnap script at the end.

Seems like a great case for adding some unit tests :)

Haha yeah it is :-D

Would love to add some tests for this, but I don't know if it's possible without refactoring the config?
The config class is reading from HttpRuntime.AppDomainAppPath + "App_Plugins\FullTextSearch\FullTextSearch.config", I guess this isn't really testable, am I right?

Hi @stefankip
What version are you seeing this in? Just trying it out on the latest source, and it seems to work - at least here :)

I put up a 1.2.0-beta on Nuget (https://github.com/skttl/umbraco-fulltextsearch8/releases/tag/release%2F1.2.0-beta)
Can you try with that, and see if the tag stripping works?

Awesome! Yes I'll try on Monday 😁

The content of the style tag is still indexed with 1.2.0 beta.

Weird, it works for me. Any chance you could share your view and config file?

Let me do a quick debug session 😊

Mate, my config isn't used at all 🤣
https://github.com/skttl/umbraco-fulltextsearch8/blob/develop/src/Our.Umbraco.FullTextSearch/Services/FullTextSearchConfig.cs#L39

Probably also the reason why this wasn't working for me as well 😂
https://github.com/skttl/umbraco-fulltextsearch8/issues/27#issuecomment-635244705

oops :) better fix the docs :)

Isn't the correct path App_Plugins/Our.Umbraco.FullTextSearch/FullTextSearch.config instead of the one used in config right now?

No the App_Plugins folder is called FullTextSearch so the docs is wrong. But you can override the config file path through the appSetting FullTextSearch.ConfigPath

Okay, I'll just jump on the bandwagon and go with the default ;-)


Update Quotation characters

Can you please use correct quotation marks , otherwise there will be powershell errors

Good catch, those odd ones must have come through on a copy/paste.  They didn't trip up any of the Powershell versions I tested on, and I went from XP to 2019 server.  Either way, they shouldn't be in there


riscv gnu toolchain requires GLIBC_2.34

The toolchain was compiled using a later version of glibc so doesn't work on linux distributions that require earlier versions. For maximum compatibilty, build the riscv-gnu-toolchain on older kernel with an older glibc requirement.

Done.


rpm distribution

Would it be possible to support an rpm distribution of hub?

Sure, it's possible! But I have no experience creating rpm distributions and I likely won't be the person who does it. Most packaged distributions are done by people other than the original project's maintainers. There's nothing stopping anyone from creating and maintaining an rpm distribution for hub!
If you feel like this answers your questions, please close the issue. Thank you

I just wanted to confirm that packaging for Fedora is typically handled by contributors to Fedora, not by upstream software authors.  If you want to create an RPM distribution for hub, you could do that yourself.  A good starting point is this document.

@larsks Thank you. Going to close this issue since anyone is already able and welcome to package and submit hub to their distro of choice.


[move-prover] Verified a vector method with loop

Verified Vector::contains which has a while-loop in it

Motivation
To verify the standard vector methods
Have you read the Contributing Guidelines on pull requests?
Yes
Test Plan
cargo test

:umbrella: The latest upstream changes (presumably d3a34352727dcc678010ada9fb2c0d48a468f361) made this pull request unmergeable. Please resolve the merge conflicts.

@bors-libra r=wrwg

:pushpin: Commit a153c78 has been approved by wrwg

:hourglass: Testing commit a153c785036fd19d4eb6ac9f1836d92bf9fafd67 with merge e3e6db2c58220c8e341169fe3a85a3ee14da8383...

:sunny: Test successful - checks-actions_land_blocking_test, checks-circle_commit_workflow
Approved by: wrwg
Pushing e3e6db2c58220c8e341169fe3a85a3ee14da8383 to master...


Feature Request: Side Button for Secondary PTT

Switching between A and B channels is a bit of inconvenience, is it possible to customise the side button to PTT on the secondary channel?

Sorry! Dup #84.

All you do is press and hold 2/A/B button to toggle between the VFO's. Not sure how using a side button would make it any easier ?


Make a test that checks the versions that ceylon.language returns

This release we had the problem that the info returned by ceylon.language was incorrect. This is because both the language class and the tests must be manually updated. If you forget one, you are bound to forget the other too and therefore the tests seem to work just fine.
So we need a test that checks those values against the real values. For example on the JVM backend we need to check them against the values in Versions.java. I'm not sure what we could do on the JS side. Any ideas @chochos ?

A simple module with a run method that checks its current language module version against something that's passed as a command-line argument. We compile and run this from a program that  passes the correct version from the Versions class.

Sure. And how about checking the values stored in the compiled module itself? Load its model and check the binary version for example?

You mean check the version of the language module it depends on? Yeah, it can be done. It's just parsing the JSON directly to check for the value.

ah, forgot to check the module's binary version

When you're done instead of closing just remove the m-compiler-js label. I still need to do this for the JVM backend.

ok to close now @quintesse ?

ah right! The test is not done on the other backend, sorry.


[Improvement] Support nthread in predict()

Seems to me that when calling model.predict() it is using only one cpu. It would be great to support nthread also in predict().
I think predict() is only additive calculation and each tree can be evaluate in separate cpu, then it is only weighted sum of local predictions. Parallelization on trees can be also effective. What do you think?
Also, not sure how the residuals in DART are calculated, but this can speed it up as well?

I think the predict is always multi-threading now.
I will check why python-package only use one cpu.

Seems to be working on linux, but not on win10 server

can you try the quick fix i commit just now?

seems to be working, much faster now, thx
Just from curiosity how is multi-threading supported here? all cpu working on one trees or one cpu working on tree?

@gugatr0n1c
the multi-threading is for samples.
if using multi-threading for trees, it will have lots of cost of create/delete threads.

@guolinke thx
feel free to close this issue, when you wanted to

@guolinke so, the expectation is to predict more then one sample (at least num_sample_to_predict >= nthreads) this is reasonble...
Just maybe for tasks where you can predict only one sample (some financial trading) may be other parallelization better...
thx for info..

@gugatr0n1c I think predict only for one sample is not the common case.
close for now.


Improved Datatables View (and some other minor improvements as well)

During my time at Yahoo/Oath as an Intern, I made improvements to the datatables implementation in the table visualization. Most notably I was able to improve the scrolling as well as add an export to csv button that will export the filtered table. I also improved the speed of rendering the visualization in part by removing the last metric column if there are no metrics given.

Coverage decreased (-0.08%) to 69.211% when pulling b7971eb8b97c2ea59769b74490f5d4c71fa969ce on malcolmflint:master into c944c6174784af04bdc0b4aa76c0e59e59fa7ec8 on apache:master.

Coverage remained the same at 69.287% when pulling 8d867cd824ca7586d04b8bfd8f0f90195acde7ae on malcolmflint:master into c944c6174784af04bdc0b4aa76c0e59e59fa7ec8 on apache:master.

Coverage remained the same at 69.287% when pulling 8d867cd824ca7586d04b8bfd8f0f90195acde7ae on malcolmflint:master into c944c6174784af04bdc0b4aa76c0e59e59fa7ec8 on apache:master.

Coverage remained the same at 69.287% when pulling 92aa0a0877fd83e0565601aac3960600599c33b0 on malcolmflint:master into c944c6174784af04bdc0b4aa76c0e59e59fa7ec8 on apache:master.

Coverage remained the same at 69.287% when pulling 92aa0a0877fd83e0565601aac3960600599c33b0 on malcolmflint:master into c944c6174784af04bdc0b4aa76c0e59e59fa7ec8 on apache:master.

Coverage remained the same at 69.287% when pulling 92aa0a0877fd83e0565601aac3960600599c33b0 on malcolmflint:master into c944c6174784af04bdc0b4aa76c0e59e59fa7ec8 on apache:master.

Coverage remained the same at 69.287% when pulling 92aa0a0877fd83e0565601aac3960600599c33b0 on malcolmflint:master into c944c6174784af04bdc0b4aa76c0e59e59fa7ec8 on apache:master.


Possible improvement suggestion

If in understand correctly this library case usage would be for me to have it wrap multiple providers and right now it lacks some wrapper logic like it is done in the sample app - it would be a great feature to have it manage the signin/signout/gettoken etc with the wrapper logic similarly like it is done with the getAuthProvider  there - ability to login with one of methods and have library wrapper to handle the logic would be very helpful.

Going with the docs Getting Started guide - we select a provider (eg Google) and then have all methods available for selected one - sign in, getting tokens and user info.
If I recall this was agreed upon when initially establishing API and overall shape of the library.
getAuthProvider is a helper utility function that we can use to switch between providers in Example App but I would guess that other users may have different ideas and use cases as well?

Closing as completed but please feel free to reopen if more clarification is needed :)


Health check messages with strong types

How to categorize this issue?

/area quality
/kind enhancement
/priority 3
What would you like to be added:
At the moment, health check messages (from the Gardenlet & the extensions) are aggregated into one field of type string.
- lastTransitionTime: "2021-04-19T17:03:27Z"
    message: API server /healthz endpoint responded with success status code.
    reason: HealthzRequestSucceeded
    status: "True"
    type: APIServerAvailable
  - lastTransitionTime: "2021-04-19T17:05:52Z"
    message: "1) deployment “cloud-controller-manager” in namespace “shoot--d060239--garden”
        is unhealthy: Deployment does not have minimum availability (MinimumReplicasUnavailable).
        2) deployment “csi-snapshot-controller” in namespace “shoot--d060239--garden”
        is unhealthy: Deployment does not have minimum availability (MinimumReplicasUnavailable)".
    reason: ControlPlaneRunning
    status: "True"
    type: ControlPlaneHealthy
  - lastTransitionTime: "2021-04-19T17:03:27Z"
    message: All nodes are ready.
    reason: EveryNodeReady
    status: "True"
    type: EveryNodeReady
  - lastTransitionTime: "2021-04-19T17:03:27Z"
    message: All system components are healthy.
    reason: SystemComponentsRunning
    status: "True"
    type: SystemComponentsHealthy

I propose strong API types for health check messages in the Shoot's Status.
To give an example, this is how the Shoot's conditions could look like:
-   lastTransitionTime: "2021-04-19T17:05:52Z"
    reason: FailingHealthChecks
    status: "False"
    type: ControlPlaneHealthy
    healthchecks:
    - origin: Extension
      area: "Infrastructure provisioning"
      code: "ERR_INFRA_UNAUTHORIZED"
      target:
        -  kind: Deployment
           name: cloud-controller-manager
           namespace: shoot--xyz--garden
      reason: "MinimumReplicasUnavailable"
      message: "There are only (0/1) available replicas."
      status: "False"
      lastUpdateTime: xxx
      lastTransitionTime: xxx

    - origin: Extension
      area: "Logging"
      target:
        -  kind: StatefulSet
           name: loki
           namespace: shoot--xyz--garden
      reason: "MinimumReplicasUnavailable"
      message: "There are only (0/3) available replicas."
      status: "False"
      lastUpdateTime: xxx
      lastTransitionTime: xxx

    - origin: Gardenlet
      area: "Tunnel Connection"
      reason: "NoTunnelDeployed"
      message: "no tunnels are currently deployed to perform health-check on"
      status: "False"
      lastUpdateTime: xxx
      lastTransitionTime: xxx

The detailed health checks could also be externalized into a dedicated resource to reduce the Shoot status size.
Strong types for the Health checks messages should consequently also be used for the aggregated health check reports on the Extension resources.
Why is this needed:

More meaningful health check reports
Better human readability possible. Especially in conjunction with the Dashboard.
Better machine parseable for consumers of the Shoot API.

E.g the Dashboard can only display the error as a string field.
Having strong types could have following advantages for the dashboard.

Properly display a list of failing health checks for one condition type instead of awkwardly parsing a string or dumping the whole error message containing multiple errors into one window.
More exact status report: "There are 3 problems with the  readiness concerning the Shoot’s control plane”

FYI @petersutter @grolu

Personally, I have some doubts whether the required effort justifies the resulting value, TBH. Not sure what other @gardener/gardener-maintainers think.

+1 to @rfranzke

Then let's
/close for now.


Area Reporting

Is your feature request related to a problem? Please describe.
I'm always frustrated when I cannot report all bots due to it being time consuming.
Describe the solution you'd like
A plugin to scan the area for bots that can easily help you left click and report them rather than right clicking on them individually.
Describe alternatives you've considered
N/A

this is obviously botting

Also going to mention that this would likely come under the following line from the Jagex Statemet:

Adds additional menu entries which cause actions to be sent to the server


Add MSRV 1.32.0 to CI

See: https://github.com/rust-embedded/wg/issues/445

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @adamgreig (or someone else) soon.
If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.
Please see the contribution instructions for more information.

1.32 doesn't seem to do it for armv8

cf. https://travis-ci.org/github/rust-embedded/cortex-m-semihosting/jobs/677848641

Ok. Support for armv8 was added in Rust 1.33.0.
Now the nightly build broke due to the combination of using deprecated macro asm! and having #[deny(warnings)] but this can be solved in a separate PR.

Yes, not worried about nightly at this point.

bors r+


scripts/bash: tweak complete line for snaps

Inside snaps, bash completion snippets run for the unaliased command. That means that the completion needs to be looking for lxd.lxc, not just lxc. Fortunately you can ask for both, so it's an easy tweak (and people are very unlikely to have an unrelated lxd.lxc command lying around with different completion).

This pull request didn't trigger Jenkins as its author isn't in the whitelist.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Those commands are simple Github comments of the format: "jenkins: COMMAND"


Add export limitation as service call

To be able to automatically turn off the inverter (e.g. when dynamic prices are negative), I'd like to use the 801FH register (see page 20). Can you add that feature?

I will look in to this.
Unfortunately I do not have an SAJ inverter anymore, so it will take some time to get this done.
Maybe someone else can help adding this?

I do have an SAJ inverter so I can help you test any implementation when needed.

I will look in to this. Unfortunately I do not have an SAJ inverter anymore, so it will take some time to get this done. Maybe someone else can help adding this?

I second this request, because with dynamic prices, a controleable power slider / export limiter would be a super nice feature to have!

After spending several hours to try to get anything working, it looks like I finally made some progress!  I am not a programmer, and I am largely unfamiliar with Python and Modbus in general, but I think I now know how to write a value into the "Power Limit" register of the SAJ R5 (Zonneplan One) inverter.
The register at address 0x801F (or 32799 in decimal notation) accepts an integer value, and the documentation comments it is a "percentage". The docs omit the "Scale factor", but it seems this is "-1", meaning that the value in the register is to be divided by 10 to get the actual percentage.
Eg.: a register value of "1000" means "100%", and a register value of "500" means "50%", etc.
This percentage is of the maximum rated power output of the inverter. Mine is a 4 kW version, so a percentage of 25% corresponds to a 1 kW output limit for my inverter.
One could issue the following to set the register value to (desired power percentage * 10):

call Modbus command "write_registers" (plural, the singular command "write_register" results in an "IllegalFunction" error),
pass the required value of (percentage * 10) as an integer into the "values" property (again, plural, even though we only write a single value into a single register).

I've tested this using "pymodbus.console" in my HA docker container. From this cli, one can simply omit anything but the first value from the "values" parameter, and this works (setting power limit to 50% of maximum in the below example):
client.write_registers address 0x801F values 500 slave 1
Calling the "modbus.write_register" (singular) service_call from within HomeAssistant in an automation for instance, does require the "value" to be an array (or python list object). This causes the code to issue a "write_registers" call, whereas it would issue a "write_register" call if there is only a single value. It may also contain just the one value, but it must be formatted as an array/list.
This is my currently working automation "action":
- service: modbus.write_register
  data:
    hub: saj_solar_inverter
    address: 32799
    slave: 1
    value:
      - '{{ states(''input_number.solar_power_output_wanted'')|int * 10 }}'
The "hub" value is the self-defined name in the "modbus:" section of HA's configuration.yaml (or the corresponding config-file loaded there).
The "input_number.solar_power_output_wanted" is a helper I created, that changes its value based on triggers for the energy price of the current hour...
Any changes to this input_number helper then trigger the abovementioned action/service call, limiting the export power to the correct percentage...
I hope this helps!

@wimb0 to recap for a possible implementation into the repo: the Modbus function to write to the 0x801F register needs to be the "write_registers"(plural) call, with the value(s) being an array/list containing 1 element, that has a value of (percentage * 10)|int ;)

I added the number entity and filed a PR. Please let me know if anyone has found a way to retrieve the current value from the inverter and I'll update the code.

@mvn23 Thanks for the work on implementing this.
I will merge your pull request and release it as beta version.
If anyone wants to test version v2.0.0-beta, and let me know if it all works fine, I will make a final release.

@wimb0 I've checked out the 2.0.0-beta version, and restarted HomeAssistant.
Everything seems to be working just fine! All sensors and their states remain intact and are updated every scan_interval. The power limit slider is present under a "Controls" section of the device, which seems appropriate. It also still works of course ;)
I see no immediate and obvious problems/issues with this release, and no warnings or errors in the logs when (re)loading this integration.
TL;DR: All seems well!

Works on our installation too 🥳


🐛 [firebase_auth] Unhandled Exception: Exception: If app delegate swizzling is disabled, remote notifications received by UIApplicationDelegate need to be forwarded to FIRAuth's canHandleNotificaton: method.

Bug report
Hi,
I'm trying to use phone auth on my app and I encounter the following error
Unhandled Exception: Exception: If app delegate swizzling is disabled, remote notifications received by UIApplicationDelegate need to be forwarded to FIRAuth's canHandleNotificaton: method.
Additional context
I looked at multiple issues with the same problem and try the solution but nothing work for me. I try to change the AppDelegate file with the following solution  but it's not working, added 	<key>FirebaseAppDelegateProxyEnabled</key><string>NO</string> to my Info.plist also not working.
I saw that if I remove firebase_messaging it may work, but I need firebase messaging on my app.
Any idea on how to fix this issue?

Hi @simon-jo8, since this is already being tracked in https://github.com/firebase/flutterfire/issues/10635 feel free to share your findings in that issue.
Kindly follow up in the original issue for updates.
Closing from here as duplicate.
Thank you


"Worked on code, created database, handlebars still on process, added menu."

"Worked on code, created database, handlebars still on process, added menu."

merge


[REQ] Introduce BloxstrapRPC in-game tests.

Acknowledgement of preliminary instructions

[X] I have read and acknowledged the preliminary instructions.

What idea do you have?
Introduce BloxstrapRPC rich presence tests in the form of Roblox expriences. The game will submit BloxstrapRPC SetRichPresence commands, and perform other logic testing such as reserved servers, private servers (if applicable), teleporting, etc. It will ask the tester to check the Discord rich presence to what is expected or wanted in game.
This will be useful for other Roblox bootstrappers such as Applejuice, Vinegar, and even Bloxstrap itself when changing or rewriting certain ActivityWatcher logic.

oh yeah i forgot to add this to the todo list

yeah this should be good enough
https://www.roblox.com/games/13307536247/Bloxstrap-Test-Place

fine

ok there


feat: add type for failure during deleting dangling referrer index

Resolves #479

Codecov Report

Merging #482 (b538391) into main (e8225cb) will not change coverage.
The diff coverage is 0.00%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main     #482   +/-   ##
=======================================
  Coverage   72.84%   72.84%
=======================================
  Files          49       49
  Lines        4518     4518
=======================================
  Hits         3291     3291
  Misses        919      919
  Partials      308      308

Impacted Files
Coverage Δ

registry/remote/referrers.go
96.34% <ø> (ø)

registry/remote/repository.go
68.22% <0.00%> (ø)

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

I'm struggling to understand why we'd delete content for the user: https://github.com/oras-project/oras-go/issues/479#issuecomment-1503862192

type ReferrersError struct {
    Op      string
    Subject ocispec.Descriptor
    Err     error
}

Updated, made it more generic to a remote.IgnorableError, not only for referrers.

Ignorable is confusing to me. It’s up to the caller  to decide that IMHO.


Issue with SVG corruption in Windows

Hey, I'm having an issue with the online converter and a glyph that seems to be being corrupted (specifically in woff, and specifically in Windows) when I create a custom font. I've tested the SVG and that seems to be fine, and if I perform the conversion in icomoon I don't see the same issue. It's only the one icon that's being affected (although it does have knock-on effects for the other icons in the font).

I'm having similar troubles with SVGs converted to font being corrupted when viewed in Windows browsers (but not on Mac). Did you ever discover the issue or a work-around?

I'll be honest, this is testing me because I wrote this two years ago. :D
I'm pretty sure the font glyph was displaying no fixed line height in my case so it was overflowing it's container and colliding with anything that was on the same Y axis on the page. I think my temporary workaround was to just explicitly set the line height to 1 and maybe overflow:hidden on the containing div. Alternatively, Icomoon didn't seem to have the same issue.
Hope that helps.

https://github.com/fontello/fontello/wiki/How-to-use-custom-images
Image should be prepared as one path. If this is still actual, could you provide example how to reproduce?


Absolute date ranges for event time window

Right now you can only specify relative time window, like User Performed test_event Withing The Last 5 Days
For marketing scenarios, absolute time windows can be really beneficial.
A good example of flexible time window is laudspeakers implementation:

great suggestion!

Would like to pick this up, @maxgurewitz

@ananthu-kurup feel free to give it a shot, it is a more challenging issue though!

@ananthu-kurup feel free to give it a shot, it is a more challenging issue though!

Yeah, I will need some support in understanding the backend code once I start. But one of the reasons I picked this up is the depth of the problem itself seems exciting and challenging.


show APR instead of My Deposits on mobile when not connected

Describe your changes
hide My Deposits and display APR on the vaults list on a phone when a wallet is not connected, since it's more useful.

Link the related issue
Closes #0000
Checklist before requesting a review

[ ] Is this PR ready for merge? (Please convert to a draft PR otherwise)
[ ] I have performed a self-review of my code.
[ ] Did I request feedback from a team member prior to the merge?
[ ] Does my code following the style guide at docs/CODING-STYLE.md?

Instructions for Reviewers
Functionalities or workflows that should specifically be tested.

Environmental conditions that may result in expected but differential behavior.

If relevant, list additional work to complete pre-merge (delete logging, code abstraction, etc)

LOOKS GOOD TO ME!


Update cookiecutter for injection vulnerability

See https://security.snyk.io/vuln/SNYK-PYTHON-COOKIECUTTER-2414281
Addresses #173

Build is failing because of this: https://status.python.org/incidents/lgpr13fy71bk
The code looks good but I will reserve approval until the test workflow runs through.

Ah, I was wondering why nothing pip related was working

Good call, I'll go ahead and make the release


Python code is not iterating for more than 1860

Hi,
Below is my python code which I am trying to print 2000 numbers for no reason. When I run this code, I see only 1860 and with SIGKILL error. Can anyone point me to what's happening and is there some setting I need to tweak to get this working?
Python code:
for i in range(1,3000):
    print(i)

Piston Output:
{
  run: {
    stdout: '1\n' +
      '2\n' +
       ......
      '1859\n' +
      '1860',
    stderr: '',
    code: null,
    signal: 'SIGKILL',
    output: '1\n' +
      '2\n' +
      .......
      '1859\n' +
      '1860'
  },
  language: 'python',
  version: '3.10.0'
}

Options:
"compile_timeout": 10000,
"run_timeout": 3000,
"compile_memory_limit": -1,
"run_memory_limit": -1

There is a set limit on character output through stdout/stderr to prevent code from generating say, gigabytes of output to be sent.
You can disable this through setting environment variables as in the docs

@HexF I have doubled the output max size to 2048 and set the env variable PISTON_OUTPUT_MAX_SIZE. I still see the same output.

Can you show me the docker-compose file you have, and ill see if I can replicate it on my machine.

@HexF I have doubled the output max size to 2048 and set the env variable PISTON_OUTPUT_MAX_SIZE. I still see the same output.

Can you show me the docker-compose file you have, and ill see if I can replicate it on my machine.

version: '3.2'

services:
    api:
        image: ghcr.io/engineer-man/piston
        container_name: piston_api
        restart: always
        ports:
            - 2000:2000
        volumes:
            - ./data/piston:/piston
        tmpfs:
            - /piston/jobs:exec
            - /tmp:exec
        environment:
            - PISTON_OUTPUT_MAX_SIZE=4096```


⚠ Cioos Pacific CKAN Sitemap has degraded performance

In 95953db, Cioos Pacific CKAN Sitemap (https://catalogue.cioospacific.ca/sitemap/sitemap-1.xml) experienced degraded performance:

HTTP code: 200
Response time: 19926 ms

Resolved: Cioos Pacific CKAN Sitemap performance has improved in 30f1b0d after 10 minutes.


Adaptive banner not getting size properly

return SafeArea(
            child: Stack(
              children: [
                Column(
                  children: <Widget>[
                    Provider.of<AdState>(context).initialized
                        ?
                        Container(
                            color: Theme.of(context).primaryColor,
                            width: double.infinity,
                            height: 150, // just to test it
                            child: BannerAd(
                              builder: (context, child) {
                                return child;
                              },
                              size: BannerSize.ADAPTIVE,
                            ),
                          )
                        : Container(),
                    Expanded(child: child!),
                  ],
                ),
              ],
            ),
          );

Shouldn't it cover more of the blue and/or the black area?

You can't define a height for it. Adaptive banner works this way:
It gets the current available width and provides you a height for the banner. The height will vary, but it should cover the whole width.

You can't define a height for it. Adaptive banner works this way:
It gets the current available width and provides you a height for the banner. The height will vary, but it should cover the whole width.

you can see the black area on both sides


Global site search

I have a question. If I want to implement a global search with Drupal Search API that can search through the entire site, which includes something like a home page, a contact page, etc., does this mean I need to put all these pages in Drupal as content types?
So say I have several of these pages (home, about us, contact, additional info, etc.), should I create one content type for each page? What would be the best strategy for implementing such a global search with Search API in a decoupled structure?
Thank you.

@fnick851 If you want to search through content with Drupal Search API so yes, that content should be in the Drupal's database.
You can have few separate content types or one universal content type.
For example you could create few paragraph types for different types of data and one "basic page" content type with paragraphs field. So your search api would search through that field in one content type.
Eventually Drupal is very flexible and you can choose structure for your needs.

It would be same as you would implement in a non-decoupled Drupal: the content has to be in entity types that Search API can index.
You then ping the Search API from your Next.js site and ask for the search results.
You can configure an index that searches across mutiple entity types:

@TheRuslan I haven't build it out yet. But I think I have some ideas thanks for your inputs. I'll close it for now.


Do you assume lack of correlation for partial dependence?

Was wondering how you compute the partial dependence.

Hi Ipkoh,
We computed the partial dependence following the algorithm in Friedman, Jerome H. “Greedy function approximation: A gradient boosting machine.” Annals of statistics (2001): 1189-1232.
You can see the code implementation in our repo.
Best

Hi Ipkoh,
We computed the partial dependence following the algorithm in Friedman, Jerome H. “Greedy function approximation: A gradient boosting machine.” Annals of statistics (2001): 1189-1232.
You can see the code implementation in our repo.
Best


Fix install links

Do we want to fix w. redirect?
A quick look indicated we might have in other spots (e.g. quickstart/kubernetes/tutorial-guestbook.md)
We can add one of fixes if you prefer ... I think we probably start with an example base and edit a fair amount.

Strange, the file does have a redirect at the top: https://raw.githubusercontent.com/pulumi/docs/master/quickstart/aws/setup.md. I wonder if this didn't work because the link is relative.
I think maybe changing it to redirect_from: install/aws.html might do the trick.

Ah, I see, it's just due to the relative path issues. The redirect is in place, but after the recent changes, this resolves to quickstart/install which is not a valid target. LGTM, merging now, I'll deploy as-is.


Basic map reader tests

I started writing basic tests for MapReader. Several topics worth discussing immediately emerged, so I wanted to stop where I was at and discuss.

We need to determine a strategy for testing exception handling. Currently, hitting any runtime_exception will pass when using ASSERT_THROW. However, almost all of our exceptions are runtime_exceptions, so there is no guarantee you are hitting the correct one.

We could check the exception message to ensure it matches. This would require doubling the text of the exception message up in both places unless we somehow give the test fixture access to the message from the class throwing somehow. Maybe a protected variable containing the message, but I don't like this idea.

MapReader will fail when attempting to read an empty file because it will eventually try to read something improperly and throw an exception. This will fail due to a non-runtime_exception from the std::library (I think) and not our code. I was thinking it would be better to test if the size of the stream is greater than zero or not and fail then instead of letting the reader continue reading garbage to eventually fail. However, that would imply we would want to test the remaining size of the stream before every read. This seems to get too cumbersome by bloating the source code and possible performance implications from constantly reading the and checking the length. Maybe the performance hit is small enough not to worry about? Open for suggestions here.

I opened a separate issue to discuss if we want to force an exception if the file extension if unexpected. We should probably discuss this there.

I would like to test passing an incorrect Stream::MemoryReader and Stream::FileReader into MapReader. We will have basic MemoryReader and FileReader test fixtures created in the Stream code for testing the stream code. Would it make sense to try and use these fixtures in the MapReader code as well? If so, I need to do some reading to figure out how to incorporate these test fixtures sense they are instantiated with constructors called from the templates to allow proper testing of the interface itself (If this doesn't make sense it is because I'm not sure what I'm talking about yet.)

Thanks,
Brett

Good point about any runtime_exception satisfying the ASSERT_THROW.
I suppose form a testing brittleness standpoint, we don't want to be too specific about the exceptions we get back. In particular, we should avoid testing on the exception messages, since that is purely informational, and not behavioural. From a caller's standpoint, we don't care why something failed, only that it did fail, and there is some information we can display to the user to allow them to make sense of what just happened.
With that said, sometimes a clear and proper error message is part of what you want to test. I've seen some frameworks that scan exception messages using string matchers to find certain keywords. This may be possible using the Google Mock portion of the library.
If you feel the parser should be more specific about the types of errors that are thrown, then that does become a design issue. Especially if you want the caller to be able to take different action based on the type of error thrown. I'm not sure we can really take different action based on why a map failed to load, only that it did fail to load. Hence I'm not sure we need specific exception types to handle the various errors. Or at least, we don't need to promise specific exception types for various errors to callers of the API.
If you want to add more specific exception types in the parsing code, I'm fine with that. It may help debugging if a problem arises. However, I'm not certain such promises should become part of the API. As such, I'm not certain if it makes sense to test for specific exception types, since you are then testing private internal details, rather than the public API.
Though I do get that it helps build confidence that the tests are actually testing what they purport to test.
I think I need to think about this one.

Sounds like you've uncovered a bug in the map reading code. In particular, we should be using the exception raising Stream::Read method, which will throw if the stream does not contain enough data to complete the read. For an empty file, that should be the case. In particular, the Stream::Read API should already be responsible for checking stream size, and raising exceptions for an incomplete read. This design point is specifically to avoid having to liter the calling code with checks as you've mentioned.
Looking at the map reader code, the first read is:
streamReader.Read(mapData.header);

Hence, we should expect to see an exception from this line when reading from an empty file.
The bug is likely in:
void FileReader::ReadImplementation(void* buffer, std::size_t size) {
  file.read(static_cast<char*>(buffer), size);
}

You'll notice that we are failing to check for error flags on the ifstream object, and not throwing an exception upon attempting to read past the end of the stream.
This failure of the FileReader implementation can leave uninitialized data in the buffer we read into, which could be why we are failing in mysterious ways.

I think a new test fixture is needed here. I don't think there is a sensible way to re-use existing test fixtures.
You're right though, in that the current object construction method is seriously lacking. We need a better way to construct objects for the purpose of testing. I may need to think about this further.

Good idea on making a ReadMap and ReadSavedGame function, which would probably be a little cleaner than using the enum. I think there is still room for using the enum internal to the MapReader and MapData to distinguish which type is being represented.
Agreed that there are some sticky point when adding actual map data for testing. I just wanted to get some basic tests up for MapReader so we have a starting point in the future if/when we figure that out.
I think we are basically on the same page when it comes to testing exception handling and the different challenges. Although the difficulty will be the right balance in implementation. Since you solved the underlying Stream issue that caused the problem, we can punt this issue to another time for now.
Thank you for the quick, helpful, and thorough review of the code. I'll take a look at separating out the ReadMap and ReadSavedGame functions and then be ready to merge.
-Brett

I just took a look at the code, in regards to using ReadMap and ReadSavedGame. It looks possible to completely remove the enum in terms of parsing the data. However, it may still make sense to tag the data afterwards as being from a map file or a saved game file.
Of course if saved game parsing was ever implemented, a method could determine that attribute by checking for the existence of saved game data.
I'd be fine if the method split was done on another branch.

Nice job splitting the map reading methods. That worked out nice and clean.

Thanks. Everything looks ready to merge now.
Something strange happened at the end requiring a merge. I was trying to locally combine the commits Update MapType enum option from Save to SavedGame and Update to SavedGame in Test. However, apparently I had already pushed them to the public repository.
-Brett

Ahh, I was wondering what happened with that merge. Makes sense though, that's what happens when history diverges, and why people suggest not rewriting public history (branches pushed to GitHub are public, though certainly more limited than master).
If you wanted to back out of the re-write, you could potentially rebase additional changes on top of the already public history. If you really want the new history, you can force push to overwrite the old history. That's not so bad on a  branch, assuming you're the only one currently working on it. In this case I made a few contributions to the branch, so that might have seemed a bit risky, in case I had work in progress.
I hadn't thought of doing a merge before. The merge seems like an easy way to resolve divergent histories. It preserves both sets of history, both the actual of how it was originally developed, and the cleaned up version of how you think it should have been done. Well, I learned something today.


podAnnotations from values.yaml are not included in uptrace statefulset

Hello there,
once I define podAnnotations in the values.yaml configuration file, they are not included in the uptrace statefulset.
Is this on purpose or a bug?
Thanks in advance and have a great day!
Saarko

Probably just an overlook. Should be fixed by https://github.com/uptrace/helm-charts/commit/7bdee74501cf20ad08cc1adcac04ff38585acbdd


Move devise invitable mailers to use GOV.UK Notify

Sending with GOV.UK Notify

I'm going to create a story to remove secrets from prod as I don't know how that will work with GOV/UK PaaS

Thats fine, just a thing to think about. Feel free to merge this anyway. 👍


fix(ElementEvents): ElementEvents.defaultListenerOptions allows to set default options when subscribing to events

ElementEvents.subscribe will set capture to true be default if not explicitely passed in argument. This is not the standard behavior of the native addEventListener() and confuses developers. This new options let you define the default behavior.
Fixes issue #657

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 2 committers have signed the CLA.:white_check_mark: sebastien-roch:x: Sebastien RochSebastien Roch seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Sorry I just had to force-push last commits to fix the author e-mail address.


Typo making 'current' object unusable

Hi, stumbled upon your python module today and wanted to use it. Whilst testing it out, I found that the 'current' object of the weather class cannot be used due to a small typo of current in the if statement located in 'response.py' line 160 return CurrentForecast(current) if currrent else None.
Thought I'd be better creating an issue rather than forking and creating a pull request for such a small thing.
Great work on the module, still going to use it!

thanks for the bug report! this issue will be fixed soon in a future update.

ok this issue is fixed in version 0.3.5. please update your version! :)


virus do not download

builder.py contains a link to an unsafe download and when used it hides the download, do not use

okay bro, the project doesn't even have a builder.py file lol

My bad og the comment was meant for a fake 2.0 version of this repository


[Event Request] Table 5906 Service Comment Line - OnInsert

Hi,
Is it possible to stuff all the code in the OnInsert Event of table 5906 "Service Comment Line" into a seperate function and include a handled pattern to this function? We would like to overrule the check that "Table Line No." is filled. We tried working arround it, however that is difficult to achieve because both Type and Table Line No. are part of the primary key.
    trigger OnInsert()
    begin
        if Type in ["Service Comment Line Type"::Fault, "Service Comment Line Type"::Resolution,
                    "Service Comment Line Type"::Accessory, "Service Comment Line Type"::Internal]
        then
            TestField("Table Line No.");
    end;

New Solution:
   trigger OnInsert()
   begin
       TestTableLineNo();
   end;

   procedure TestTableLineNo()
   var
       IsHandled: Boolean;
   begin
        OnBeforeTestTableLineNo(Rec, IsHandled);
        if IsHandled then
            exit;

        if Type in ["Service Comment Line Type"::Fault, "Service Comment Line Type"::Resolution,
                    "Service Comment Line Type"::Accessory, "Service Comment Line Type"::Internal]
        then
            TestField("Table Line No.");
   end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


Package input missing from YAML task (Linux deploy)

The yaml task Linux function app deploy is missing one required input: package. Would it be possible to add it?

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

ID: 0ab62930-d35d-d6d3-8bb7-2ed6b34636bb
Version Independent ID: 86725233-d4a5-a796-cd6e-c05c3675952b
Content: Continuously update function app code using Azure DevOps
Content Source: articles/azure-functions/functions-how-to-azure-devops.md
Service: azure-functions
GitHub Login: @craigshoemaker
Microsoft Alias: cshoe

Hi @Marco-Santoni I have assigned this to content author for further review and update as appropriate.