usb: investigate if Network Buffer can be used in USB device stack and USB drivers

Investigate if net_buf can be used in USB device stack and USB drivers.
Reason: The memory should be used more efficiently  and secure. Unnecessary copying should be avoided. Support for multiple device instances should be considered.
There are many locale buffers in different places. Mostly these are only needed for temporary storage, whereby the content is often copied by the driver to another buffer again.

ECM class tx_buf, rx_buf
EEM class tx_buf, rx_buf
RNDIS class, tx_buf
RNDIS class, bulk out buffer
CDC ACM class rx_buf, tx_buf per instance
CDC ACM class ring-buffers? per instance
loopback function
MSC class

Worse is the situation with the standard, class and vendor request buffer. It is only used for the request over Control Pipe and also passed class drivers like hid and dfu. The buffer is usually not or little used during normal function. There is no verification that it is not written beyond the bounds of the buffer.
Classes already uses net_buf only:

Bluetooth USB HCI

... will be continued ...

If usb_transfer() functions could use buffers Ethernet over USB code can be easily transformed.

@jfischer-no  Any updates for this issue?

@jfischer-no Any updates for this issue?

It is part of new USB device controller driver API, RFC PR will be opened soon.

Fixed in the new USB stack, use CONFIG_USB_DEVICE_STACK_NEXT to enable it.


Add sitemap to docs site

Adds next-sitemap and configuration.
To test:

Visit the preview deployment at https://docs-git-feat-sitemap-splits.vercel.app/sitemap.xml

Something weird is going on with the build script. I'll ask some at work tomorrow and come back to finish this. It works locally, but the preview deployment isn't running the post build command, even when I override the build command in the project settings.

Taking over


Add overload typing to from_convergence

Perhaps a good question to answer first is whether the documentation of from_convergence() can be made human-readable using a number of @typing.overload?

Originally posted by @ntessore in #375

https://adamj.eu/tech/2021/05/29/python-type-hints-how-to-use-overload


Add Doc page for papers

Add doc page for papers on AutoGluon.

Added in https://github.com/autogluon/autogluon/blob/master/CITING.md


feat(actions): add new Github actions

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


Possible integration with ESPHome remote_transmitter.transmit_raw

Hi @Jev1337.
Great work on the NiceFlor protocol!
I'm looking through your code and are trying to understand how to use this in my own project.
My plan is to use the remote_transmitter component from ESPHome controlled using its API or MQTT. This makes the transmitter really simple and as a bonus integrates nicely with HomeAssistant.
One thing I'm struggling with is the send() command and its output, I suspect the hexadecimal output needs to be converted to binary with the correct timings to accommodate for manchester tribit encoding. These raw timings should then be possible to be used with remote_transmitter.transmit_raw Action.
Can you give my any tips on using the output of send() and convert it over to raw timings?
Thanks in advance!

I was able to port your python code to ESPHome using the following code:
#include <stdint.h>
#include <stdio.h>

uint64_t nice_flor_s_encode(uint32_t serial, uint32_t code, uint8_t button_id, uint8_t repeat)
{
    uint8_t snbuff[4] = {0};
    snbuff[0] = serial & 0xff;
    snbuff[1] = (serial & 0xff00) >> 8;
    snbuff[2] = (serial & 0xff0000) >> 16;
    snbuff[3] = (serial & 0xff000000) >> 24;

    uint64_t encbuff[7] = {0};
    uint16_t enccode    = pgm_read_word_near(nice_flor_s_table_decode + code);
    uint8_t ki          = nice_flor_s_table_ki[code & 0xff] ^ (enccode & 0xff);

    encbuff[0] = button_id & 0x0f;
    encbuff[1] = ((repeat ^ button_id ^ 0x0f) << 4) | ((snbuff[3] ^ ki) & 0x0f);
    encbuff[2] = enccode >> 8;
    encbuff[3] = enccode & 0xff;
    encbuff[4] = snbuff[2] ^ ki;
    encbuff[5] = snbuff[1] ^ ki;
    encbuff[6] = snbuff[0] ^ ki;

    uint64_t encoded = 0;
    encoded |= ((encbuff[6] << 0x4) & 0xF0) << 0;
    encoded |= (((encbuff[5] & 0x0F) << 4) | ((encbuff[6] & 0xF0) >> 4)) << 8;
    encoded |= (((encbuff[4] & 0x0F) << 4) | ((encbuff[5] & 0xF0) >> 4)) << 16;
    encoded |= (((encbuff[3] & 0x0F) << 4) | ((encbuff[4] & 0xF0) >> 4)) << 24;
    encoded |= (((encbuff[2] & 0x0F) << 4) | ((encbuff[3] & 0xF0) >> 4)) << 32;
    encoded |= (((encbuff[1] & 0x0F) << 4) | ((encbuff[2] & 0xF0) >> 4)) << 40;
    encoded |= (((encbuff[0] & 0x0F) << 4) | ((encbuff[1] & 0xF0) >> 4)) << 48;
    encoded = encoded ^ 0xFFFFFFFFFFFFF0;
    encoded = encoded >> 4;

    return encoded;
}

void nice_flor_s_tx_10(std::vector<int>* tx_buffer)
{
    tx_buffer->push_back(500);
    tx_buffer->push_back(-1000);
}

void nice_flor_s_tx_11(std::vector<int>* tx_buffer)
{
    tx_buffer->push_back(1000);
    tx_buffer->push_back(-500);
}

void nice_flor_s_tx_sync(std::vector<int>* tx_buffer)
{
    tx_buffer->push_back(1500);
    tx_buffer->push_back(-1500);
}

void nice_flor_s_tx_gap(std::vector<int>* tx_buffer)
{
    tx_buffer->push_back(15000);
}

std::vector<int> nice_flor_s_tx_generate(uint64_t data)
{
    std::vector<int> tx_buffer;

    nice_flor_s_tx_sync(&tx_buffer);

    unsigned char byte;
    int i, j = 0;
    unsigned char *b = (unsigned char*) &data;
    for (i = sizeof(data)-1; i >= 0; i--) {
        for (j = 7; j >= 0; j--) {
            byte = (b[i] >> j) & 1;
            if(byte){
               nice_flor_s_tx_10(&tx_buffer);
            }else{
               nice_flor_s_tx_11(&tx_buffer);
            }
        }
    }
   nice_flor_s_tx_gap(&tx_buffer);
   return tx_buffer;
}

With the following ESPHome config
esphome:
  name: niceflors
  friendly_name: niceflors

  includes:
    - ./niceflors/codes.h
    - ./niceflors/nice.h

remote_transmitter:
  pin: GPIO5
  id: transmitter
  carrier_duty_percent: 100%

number:
  - platform: template
    name: "Current Code"
    id: current_code
    optimistic: true
    min_value: 0
    max_value: 65535
    step: 1

  - platform: template
    name: "Repeat"
    id: repeat
    optimistic: true
    min_value: 1
    max_value: 7
    step: 1

  - platform: template
    name: "Button"
    id: button_id
    optimistic: true
    min_value: 1
    max_value: 2
    step: 1

button:
  - platform: template
    name: "Send signal"
    on_press:
      - remote_transmitter.transmit_raw:
          code: !lambda |-
            uint64_t encoded = nice_flor_s_encode(0x00E48DCA, id(current_code).state, id(button_id).state, id(repeat).state);
            return nice_flor_s_tx_generate(encoded);

It is still a work in progress, especially with the button, code, and repeat as input numbers. Using this method I can test my outcome against your examples. And so far they seem to match.
I'm still uncertain if the nice_flor_s_tx_generate() implementation is correct though as I'm currently unable to test the resulting signal.
I thought you might be interested, as this eliminates the need for a separate code generating API server as the entire thing can run on the ESP itself.

One thing I'm struggling with is the send() command and its output, I suspect the hexadecimal output needs to be converted to binary with the correct timings to accommodate for manchester tribit encoding. These raw timings should then be possible to be used with remote_transmitter.transmit_raw Action.

There is a library to digitally outputs (high/low outputs on GPIO), called RF433send. Usage Example for Nice Flor:
#include "RF433send.h"
RfSend* tx_whatever;
//The following setup works for me when it comes to the Nice Flor Remote
tx_whatever = rfsend_builder(
    RfSendEncoding::TRIBIT,      //Encoding
    PIN_RFOUT,     //Output Pin
    RFSEND_DEFAULT_CONVENTION,  // Do we want to invert 0 and 1 bits? No.
    1,                          // Number of sendings
    nullptr,                    // No callback to keep/stop sending (if you want to send
                                // SO LONG AS a button is pressed, the function reading the
                                // button state is to be put here).
    17888,                      // initseq
    1432,                       // lo_prefix
    1424,                       // hi_prefix
    0,                          // first_lo_ign
    474,                        // lo_short
    952,                        // lo_long
    0,                          // hi_short (0 => take lo_short)
    0,                          // hi_long  (0 => take lo_long)
    1400,                       // lo_last
    19324,                      // sep
    52                          // nb_bits
  );
byte data[] = { 0x1 , 0xf6 , 0x60 , 0xba , 0x62 , 0xb , 0x4c };
tx_whatever->send(sizeof(data), data);

The send() (of the rf433send library) works by using delays() to represent continuous sequences of 1s and 0s.
The data that you put is the same data that the encoder gives you as encbuff.

I thought you might be interested, as this eliminates the need for a separate code generating API server as the entire thing can run on the ESP itself.

Yes, I actually do have a C/C++ Version of the Python code, I did plan to implement it into one server, however my current ESP Module does not have enough memory to store all the table hex codes, on top of that, I need to have an external storage such as a SD memory card + Reader to store the last code reached, this could also be done via EEPROM memory but it's unreliable and it's more like a temporary solution. On top of all the mentionned issues, Implementing everything into the ESP could cause added delays, although negligable.

There is a library to digitally outputs (high/low outputs on GPIO), called RF433send. Static Usage Example for Nice Flor:

Thanks for the tip, I saw your NiceOpener implementation using this library, but as ESPHome offers almost identical functionality with its remote_transmitter component and is a native functionality this would be preferred for now.

Dynamically speaking you can either generate all 4 codes, or generate 1 and determine the next 3 with your own algorithm (I also implemented it here).  Code1 being the first button and Code2 being the second button, however you can just generate all 4 using the encoder.

This part is unclear to me, maybe I'm not understanding the rolling code encryption enough. But when a button is pressed does it send multiple sequences?

Yes, I actually do have a C/C++ Version of the Python code,

Great! Are you willing to share that implementation?

I did plan to implement it into one server, however my current ESP Module does not have enough memory to store all the table hex codes, on top of that,

My current ESPHome build is around 690KB, how big are your builds?
RAM:   [====      ]  43.7% (used 35776 bytes from 81920 bytes)
Flash: [=======   ]  66.1% (used 690873 bytes from 1044464 bytes)

I need to have an external storage such as a SD memory card + Reader to store the last code reached, this could also be done via EEPROM memory but it's unreliable and it's more like a temporary solution.

Although the ESP8266 indeed does not have an EEPROM, its emulation with flash memory is quite stable from what I know. But true, it's up to personal preferences.

On top of all the mentionned issues, Implementing everything into the ESP could cause added delays, although negligable.

I've not yet tested it myself, but is the receiver really picky on the timings? this is my 3rd 433MHz project although the first with a rolling code. But the other 2 work fine on ESPHome and so far they have never failed any command (yet).

/*
    * Protocol Nice Flor-S
    * Packet format Nice Flor-s: START-P0-P1-P2-P3-P4-P5-P6-P7-STOP
    * P0 (4-bit)    - button positional code - 1:0x1, 2:0x2, 3:0x4, 4:0x8;
    * P1 (4-bit)    - batch repetition number, calculated by the formula:
    * P1 = 0xF ^ P0 ^ n; where n changes from 1 to 15, then 0, and then in a circle
    * key 1: {0xE,0xF,0xC,0xD,0xA,0xB,0x8,0x9,0x6,0x7,0x4,0x5,0x2,0x3,0x0,0x1};
    * key 2: {0xD,0xC,0xF,0xE,0x9,0x8,0xB,0xA,0x5,0x4,0x7,0x6,0x1,0x0,0x3,0x2};
    * key 3: {0xB,0xA,0x9,0x8,0xF,0xE,0xD,0xC,0x3,0x2,0x1,0x0,0x7,0x6,0x5,0x4};
    * key 4: {0x7,0x6,0x5,0x4,0x3,0x2,0x1,0x0,0xF,0xE,0xD,0xC,0xB,0xA,0x9,0x8};
    * P2 (4-bit)    - part of the serial number, P2 = (K ^ S3) & 0xF;
    * P3 (byte)     - the major part of the encrypted index
    * P4 (byte)     - the low-order part of the encrypted index
    * P5 (byte)     - part of the serial number, P5 = K ^ S2;
    * P6 (byte)     - part of the serial number, P6 = K ^ S1;
    * P7 (byte)     - part of the serial number, P7 = K ^ S0;
    * K (byte)      - depends on P3 and P4, K = Fk(P3, P4);
    * S3,S2,S1,S0   - serial number of the console 28 bit.
*/

For more context, you can read the above for more information, there are online russian articles explaining how it works with images but the important part is that you understand P0 and P1, the others are calculated using the tables.

This part is unclear to me, maybe I'm not understanding the rolling code encryption enough. But when a button is pressed does it send multiple sequences?

A button press of the Nice Flor-s remote will send at least (if held, it's just going up to 6 codes and keep looping from 1 to 6), if we look closely, the 4 codes that are sent have the same bytes except one; P1 changes with each code, here is an example of button 1 press of serial "0x00E48DCA":

As you can see here, the only thing that changes is P1, to find out what changes, you can do arithmetic operations (subtract etc...) and find out what is the hex number to add/subtract in order to find the next sequence. However note that I do it this way because in my API, to lessen the length of the GET request (and lessen the chance of losing packets) I just require one code and the arduino will just do the math within microseconds to find out the rest.

Great! Are you willing to share that implementation?

It's basically the same python one, I forgot where I stored it on my pc but I quickly redone it and it should work (hopefully).

I've not yet tested it myself, but is the receiver really picky on the timings? this is my 3rd 433MHz project although the first with a rolling code. But the other 2 work fine on ESPHome and so far they have never failed any command (yet).

I meant delays within the ESP's processing.

My current ESPHome build is around 690KB, how big are your builds?

Honestly no clue, right now I don't have Arduino IDE installed it's been a while since I last opened the project, when I finished the project I just made sure everything works then I reinstalled windows, since then I haven't ran into issues with the current setup, but like I said using an external API satisfies my needs, especially that that API happens to be a Python Flask website.

Thanks for the tip, I saw your NiceOpener implementation using this library, but as ESPHome offers almost identical functionality with its remote_transmitter component and is a native functionality this would be preferred for now.

One thing that I just realized is that I forgot to implement the raw code methods (the tx_code method), I will look into them!

For more context, you can read the above for more information, there are online russian articles explaining how it works with images but the important part is that you understand P0 and P1, the others are calculated using the tables.

Thank you for the additional information, this makes it a lot clearer.

It's basically the same python one, I forgot where I stored it on my pc but I quickly redone it and it should work (hopefully).

That's great, thanks for the effort!
I do have some remaining questions:

I've noticed that your table_encode values in codes.h are different than the table_decode in this pull request . Is that because one is for encoding and the other one for decoding?
Currently there are 65536 codes to be used, do I assume correctly that when the last code is used the counter resets and thus the first entry from nice_flor_s_table_encode will be reused?

if held, it's just going up to 6 codes and keep looping from 1 to 6

Other than the pairing process, did you ever need to send more than one batch repetition per command? I'm specifically asking this because I've noticed that some 433MHz devices send one command 2 to 4 times as it takes time for that receiver to distinguish the signal from noise and therefor only responds when it has received a command multiple times.

I've noticed that your table_encode values in codes.h are different than the table_decode in this pull request . Is that because one is for encoding and the other one for decoding?

The tables are for encoding, they can be used to decode, however I think the values in that pull request might be incorrect.

Currently there are 65536 codes to be used, do I assume correctly that when the last code is used the counter resets and thus the first entry from nice_flor_s_table_encode will be reused?

I haven't tested, but there is a discussion about it here on how it acts when it overflows. There was a link explaining what could happen, but the website is down.

Other than the pairing process, did you ever need to send more than one batch repetition per command? I'm specifically asking this because I've noticed that some 433MHz devices send one command 2 to 4 times as it takes time for that receiver to distinguish the signal from noise and therefor only responds when it has received a command multiple times.

If I understood correctly no, but in some instances where the sender is far away, I did have to repeat multiple times.

I haven't tested, but there is a discussion about it here on how it acts when it overflows. There was a link explaining what could happen, but the website is down.

I had some trouble getting google translate to work due to the cloudflare protection, but the cached version worked. What will happen when it overflows will remain vague for now, even by people on that forum. But I guess with 65536 options based on 4 actions a day it will last for around 45 years. I think other components will wear out before that time 😅

I had some trouble getting google translate to work due to the cloudflare protection, but the cached version worked. What will happen when it overflows will remain vague for now, even by people on that forum. But I guess with 65536 options based on 4 actions a day it will last for around 45 years. I think other components will wear out before that time 😅

I see, I hope you find a solution to getting the raw data, I honestly don't have time for it now, but please if you find a way to generate raw 433Mhz signals or an algorithm to replicate the tribit code of 433Mhz of the Nice remote share them here!

an algorithm to replicate the tribit code of 433Mhz of the Nice remote share them here!

Sure will!
I think my ESPHome implementation is complete 🥳, thanks to your help.
Because of bad weather I've not been able to test it though  😅.
But when I compare your solution against mine the pattern is identical:

Your solution based on RF433send(): trig.org
Mine solution based on ESPHome and remote_transmitter():  trig.org
(the timings are a bit different as I'm using these)

The pairing process is still a bit vague to me, when I watch video's like this and these the authors seem so imply that a button is 'copied'  and with this logic one has to pair each button individually.
But when looking at your code and this repository the button used is 0x02 (aka stop?) which means to my understanding that all the buttons 0x01 0x02 0x03 and 0x04 on the new remote should work from that point on.
Could you by any chance confirm this?

// P0 (4-bit)    - button positional code - 1:0x1, 2:0x2, 3:0x4, 4:0x8;

Button 1: 0x01
Button 2: 0x02
Button 3: 0x04
Button 4: 0x08
On my code I use 0x01 for pairing, which is button 1, on this repository, 0x02 is used, meaning the second button is used.
The pairing process is simple:

Enable pairing mode on the receiver by using the new remote (holding the button, a.k.a loop through the 6 codes) for 5 seconds (with code repeat/sync 1))
Letting the receiver know that the new remote should be added to the database, by clicking the button of the old remote 3 times
Repeat step 1 (with code repeat/sync 2)

Thanks for explaining. So if I understand correctly, after the pairing process (using any button on the new and old remote) all 4 buttons on the new remote should work? No need to pair each button individually?

Thanks for explaining. So if I understand correctly, after the pairing process (using any button on the new and old remote) all 4 buttons on the new remote should work? No need to pair each button individually?

No, each remote has a serial number, and if you pair button 1 with a receiver, you can't pair the other buttons with that same receiver. There is a video explaining that in Russian on Youtube, but I didn't save it.
Also just to clarify, there is no copying going on, those technicians don't understand what's going on so they say its "cloning" and "copying" the old remote, but in reality it's just telling the receiver to add a new serial number to the database linked with the button number.

(the timings are a bit different as I'm using these)

I read the timings of my remote and got those values, but factory values are the same ones you put, so yeah those are more correct.

EDIT: I think I'm a bit out of context, Why do you need to pair all 4 buttons with the same receiver?

I'm currently in a quest to control the gate with automations from HomeAssistant, and for that I need dedicated open and close commands.
For example: when the gate is physically opened already (by the user using a remote) and HomeAssistant wants to open the gate (again) because of an automation and because it does not know it was opened I don't want the gate to close but instead leave it open. When HomeAssistant sends an open command, the gate will simply do noting and remain open.
Right now I have a remote with 2 buttons:

And as I understand from this random manual I found on page 15 there are remotes with 4 buttons that do:

And looking at the different pairing processes, there is a way of pairing all buttons on a remote:

I hope by pairing the remote this way, button 3 and 4 will be become open and close buttons.
So I can use 0x04 and 0x08 in my request to specifically tell the gate to open and close.
The pairing method you explained seems to duplicate the functionality of the original remote, as they say:
(the new transmitter can receive the same settings as those of the memorized transmitter)

As I don't know exactly how the original remote was paired and since the remote only has 2 buttons I don't know if the receiver will respond to button 3 and 4.

EDIT: I think I'm a bit out of context, Why do you need to pair all 4 buttons with the same receiver?

I'm currently in a quest to control the gate with automations from HomeAssistant, and for that I need dedicated open and close commands.
For example: when the gate is physically opened already (by the user using a remote) and HomeAssistant wants to open the gate (again) because of an automation and because it does not know it was opened I don't want the gate to close but instead leave it open. When HomeAssistant sends an open command, the gate will simply do noting and remain open.
Right now I have a remote with 2 buttons:
And as I understand from this random manual I found on page 15 there are remotes with 4 buttons that do:
And looking at the different pairing processes, there is a way of pairing all buttons on a remote:  I hope by pairing the remote this way, button 3 and 4 will be become open and close buttons. So I can use 0x04 and 0x08 in my request to specifically tell the gate to open and close.
The pairing method you explained seems to duplicate the functionality of the original remote, as they say: (the new transmitter can receive the same settings as those of the memorized transmitter)  As I don't know exactly how the original remote was paired and since the remote only has 2 buttons I don't know if the receiver will respond to button 3 and 4.

Oh I never even knew that there was a way to program it in a way where you can program each button to do one command instead of a toggle button.
My remote is the same as the one you shown with two buttons, however it is programmed in a way where the first button toggles (open/close) the outdoor garage door and the second button toggles (open/close) the indoor garage door.
As for the document saying that it "duplicates the settings", I don't think that there are settings, it just adds the new remote serial number to the authorized serial numbers database.
So I guess you try and find out whether the rest of the buttons would get automatically paired or not, I'm going to bet that they wont be automatically paired.

So I guess you try and find out whether the rest of the buttons would get automatically paired or not, I'm going to bet that they wont be automatically paired.

Will do! And if they don't I probably need to add a sensor to the gate to detect if it is open or not. 🤷

So I guess you try and find out whether the rest of the buttons would get automatically paired or not, I'm going to bet that they wont be automatically paired.

Will do! And if they don't I probably need to add a sensor to the gate to detect if it is open or not. 🤷

Hey there, have you tried it? If yes did it automatically recognize the buttons? Or you had to pair them one by one?
I'm planning to make my project work with 4 different buttons that way if I click open I know for sure it's going to be open

Unfortunately I've not been able to test the 4 button pairing method yet. But when I do I'll post the results 👍.
Great to see that you've also implemented support for all 4 buttons.

I finally had time to test the 4 button paring method and can confirm it works 🎉
It does exactly like it states in the manual with dedicated Step-by-Step, OPEN andCLOSE commands.
Don't know what AUX does but probably enabled a specific output I suppose.
I had to change my implementation to send the pairing (in my case button 1) command for at least 5 seconds for it to be successful.

You paired each button is that correct?

No there was no need to.
At first I thought to use button 0x08 for the pairing process. Me thinking this would imply to the receiver there is a 4 button remote. But the curiosity got to me and used button 0x01 instead to see what would happen. So after sending button 0x01 for at least 5 seconds in repeat I saw the red indicator in the receiver blinking 3 times indicating a successful pair and to my surprise it immediately responded to all 4 buttons with Step-by-Step, OPEN and CLOSE.
I have no idea how one would pair just 1 button to a receiver for both OPEN/CLOSE as the manual only mentions to pair a single action to a button. But eh 🤷♂ I only interested in the 4 button pairing anyway.

One thing to note tough, in my case when the gate is moving (opening or closing) repeating the instruction will cause it to pause momentarily until another command is given.

Thanks for the response,
So for button 4 you used code 0x08? For some reasons it didn't work for me knowing that I already paired the 0x01 and it works just fine by opening/closing (like a toggle).
I might be missing something, it might be that the receiver is configured in a way it doesn't accept other buttons except the 0x01.

So for button 4 you used code 0x08?

Yes.

it might be that the receiver is configured in a way it doesn't accept other buttons except the 0x01.

Might be 🤔, as you paired it using another remote. According to the manual it will take of the other remotes configuration.
Have you tried to unpair the ESP transmitter?

Or maybe delete all transmitters and start over?

Or use a new serial number for the all button pairing method?

The remote I copied has only two buttons, first button for the exterior garage door and the second one for the interior one

I think that might be your problem, I suspect if you remove this/all remotes and pair them again it should work.

I think that might be your problem, I suspect if you remove this/all remotes and pair them again it should work.

I tried with the other buttons and repaired, (pair with 0x01 with another remote's 0x01 button), however only one button works after doing so, the same button closes/opens the door, like a toggle.
I think there are different models of the garage door perhaps or different configurations for the receiver.
In any case, I changed to Home Assistant on my old Raspberry Pi 3B+, reasons are because my ESP was not reliable and starts giving up crash codes every now and then. I did consider ESPHome however when I was adding it to the addon, it kept generating connection errors, so eventually I gave up entirely on the ESP. I don't have any usages for my Home Assistant so I used my RPi purely for this project, I used the code that was available here. That code had some issues such as deprecations and the timings for some reason had to be halved, I think the clock of my RPi is doubled or something (I haven't really experienced with RPi enough).
So far it has been good with the RPi and I can track downtimes from outages, as well as create a DDNS without having to confirm hostname for free No-IP. Now using "Cloudflared" addon with a paid domain (3$ a year) to secure my host against DDoS and other attacks.

pair with 0x01 with another remote's 0x01 button

Are you still using another remote to pair the new transmitter? That is not how the  'all button' method works. You have to use the radio button on the motor itself and look at the LED next to it:

And follow these steps:


Add option to switch between browser routing and hash routing

Feature Request
Add option to switch between browser routing and hash routing
Description
Both the hash router and browser router have drawbacks. The hash router breaks in-page hash linking and the browser router must know the base path of the site to properly work.
We've run into a situation where we can't know the base path up front for the site and to create a working site we'll need to use the hash router.
With this enhancement we should add a new section to the terra-dev-site config to allow consumers to switch between routing types.
Additional Context / Screenshots
@ Mentions

We don't need this enhancement anymore. We've decided to use a different site for the situation where we can't know the base path up front.


Abstract and standarize getTransaction() method

[x] I have read the Contributing file of the documentation.
[x] I have searched the issues (including closed ones) and believe that this is not a duplicate.
[ ] I am willing to lend a hand to help implement this feature.

Feature Request
Feature Description

The enpoint "getTransaction" needs to be standardized for all coins. For that, I've created the following standard, subject to changes.
We take as an example the following transaction, of Ethereum Ropsten 0x50f8ff7c225aaabf0eee8e72223380dd8757f3be0a32558917f2eac80b723045:
{"transaction":{"transactions":[{"fromAddress":"0xcda0d6adcd0f1ccea6795f9b1f23a27ae643fe7c","toAddress":"0xfbb61b8b98a59fbc4bd79c23212addbefaeb289f","amount":21000}],"units":{"amount":"wei","fee":"gas","feeRate":"wei"},"fee":21000,"feeRate":2501494596,"blockHeight":11317292},"rpcResponse":{"accessList":[],"blockHash":"0xc33fb0b2e69475a615e97111842a865cc90ad22bd1a8a3974f5c91621956794f","blockNumber":"0xacb02c","chainId":"0x3","from":"0xcda0d6adcd0f1ccea6795f9b1f23a27ae643fe7c","gas":"0x5208","gasPrice":"0x9519c744","hash":"0x50f8ff7c225aaabf0eee8e72223380dd8757f3be0a32558917f2eac80b723045","input":"0x","maxFeePerGas":"0x9531a948","maxPriorityFeePerGas":"0x9502f900","nonce":"0x18b17","r":"0x34c058fabedacb6b1681a65495e95235bcbafe2d819560835af0ff9545da1fa6","s":"0x572e668d97b557fd021f0ee6986a8ec75810364cbbdd705a222ebe54ce02614d","to":"0xfbb61b8b98a59fbc4bd79c23212addbefaeb289f","transactionIndex":"0x2","type":"0x2","v":"0x0","value":"0x429d069189e0000"}}

Adding the param "rpcResponse" and directly expose the response of the RPC could be a security problem, and I suggest to not include it. However, it provides A LOT of auxiliary information.
In the case of coins like bitcoin, in which a transaction combines more than one, the movement from outputs to inpus will be included inside of "transactions".
I do not know if in the version of Bitcoin Core included in the repo provides a structure similar that the one we are including, but the latest version of Bitcoin Core is outputting, in the RPC call gettransacion, something very similar to the thing that I am posing.
I suggest, also, to include another rpc call, "getTransactionMovements", that will return:
{"transactions":[{"fromAddress":"0xcda0d6adcd0f1ccea6795f9b1f23a27ae643fe7c","toAddress":"0xfbb61b8b98a59fbc4bd79c23212addbefaeb289f","amount":21000}]}

That is information that we are also obtaining from the rpc call. But as the endpoint "getTransaction" will be called mostly and frequently to obtain that information, NodeChain will transmit less data in every call.
Use Case(s)

It would be nice if you could put a PR to reflect these changes also in the client-side package.
Package: https://github.com/swapper-org/swapper-core/tree/develop/packages/swapper-nodechain-client
Docs: https://hippocampus.gitbook.io/swapper-1/repositorio-monorepo/packages/swapper-nodechain-client


Doesn't allow video on udemy.com

System Details

OS: macos 14.2.1
Thorium Version:  116.0.5845.169 (Official Build) (arm64)

Problem
Video in udemy.com doesn't load. Works though in Chrome, Brave, etc.
Screenshots

Same thing

+1

Please check FAQ
https://github.com/Alex313031/thorium/blob/main/docs/FAQ.md

Please check FAQ
https://github.com/Alex313031/thorium/blob/main/docs/FAQ.md

I've read the FAQs and understand the Widevine situation. The thing I don't understand is why on Udemy it works for some videos and not others. I'm not sure which Widevine certification Udemy requires, but if Thorium doesn't have the required Widevine Level to play, shouldn't all videos refuse to load?
I have attached a video to this comment, showing that only some videos don't work and others do. In the video, I am using MacOS, but this behaviour is also seen on my Windows machine.
https://github.com/user-attachments/assets/0a76f225-5b18-4d6f-ad01-a4c85d0398fa

It

Please check FAQ
https://github.com/Alex313031/thorium/blob/main/docs/FAQ.md

I've read the FAQs and understand the Widevine situation. The thing I don't understand is why on Udemy it works for some videos and not others. I'm not sure which Widevine certification Udemy requires, but if Thorium doesn't have the required Widevine Level to play, shouldn't all videos refuse to load?
I have attached a video to this comment, showing that only some videos don't work and others do. In the video, I am using MacOS, but this behaviour is also seen on my Windows machine.
thorium_udemy.mp4

https://www.udemy.com/support/system-check/
For me it works on normal videos but not on encrypted videos. This seems to be a DRM issue. Some work because they are made to be shown to people who aren't logged in but the core course content doesn't work, at least for me.


AWS load testing - chore(longpolling): set delay to one second

Great! Can we make a ticket that reminds us to reset this? You can mark it with a mvp tag so we don't forget.

If you bring this out of draft, I'll approve @shindigira!

Heyo, add a super small PR description would you @shindigira, for what goes in the git commit description?


tests: Skip REST test for Google.Maps.Places.V1

See #11261 and b/308895602 for Google.Maps.Rounting.V2. And I've created b/315531117 for Google.Maps.Places.V1.
@jskeet this is because of the same as Google.Maps.Routing.V2 fails in #11261. If we scope the credential then Google.Maps.Places.V1 REST works as well.
Surprisingly, Google.Maps.Routing.V2 is working in CI and in my local environment for both REST and gRPC without the scope?
And Google.Maps.Places.V1 had been working until yesterday. There's, suspiciously, #11411 from yesterday, but as far as I can see that's just documentation changes.

And Google.Maps.Places.V1 had been working until yesterday. There's, suspiciously, https://github.com/googleapis/google-cloud-dotnet/pull/11411 from yesterday, but as far as I can see that's just documentation changes.

Nope, there's a change in PlacesClient as well, adding Rest.
We should work out whether we'd expect it to work, and make apis.json and Bazel conform with that.

Nope, there's a change in PlacesClient as well, adding Rest.

Oh missed that. At least that explains it. And yes, let's see also what the the API team says.


gopass attempts to make GPG key despite there being one already

Summary
When running gopass setup, gopass attempts to make a new GPG key, despite there already being one present.
Steps To Reproduce

Make OpenKeychain key, and import it as normal
See it is present under keyboxd section in gpg --list-secret-keys
gopass setup

Expected behavior
I can use the key from OpenKeychain and get on with my day.
Environment

OS: Linux
OS version: 6.7.6-0-edge
gopass Version: gopass 1.15.11-git+HEAD go1.22.0 linux amd64
Installation method: go install

Trying to troubleshoot the same issue. Generated GPG Key and executed gopass init, it did not found the Key.
Environment:

macOS Sonoma 14.4.1
gopass 1.15.13 go1.22.2 darwin arm64
gpg version: gpg (GnuPG) 2.4.5
installations via brew

I actually managed to fix this issue on my own minutes after opening it due to it being it a duplicate issue.

I believe the solution was to change your trust level to maximum or 5 on your gpg key.


Create a MenuItem component

To-do list

[ ] Create a MenuItem component in the atoms folder
[ ] It should receive name, ingredients, and price
[ ] It should match with UIX design

i will take this one


WebContent+WebDriver: Convert all user prompt handlers to be async

Making these async were all actually pretty trivial. This patch does so, and removes the deprecated synchronous user prompt handler.
This should fix ~400 WPT subtests.

Note for Nico: #2166 fixes a mistake introduced here.


[TC-GENDIAG-2.1] -  Need a signal to trigger the Network-fault event

Problem
Need a signal to trigger Network-fault event, as without the signal we can not trigger the event and we wouldn't get expected result according to spec.

expected behavior : Should list following

actual behavior : doesn't return anything but gives success response(0x00)

steps to reproduce :  ./chip-tool generaldiagnostics read-event network-fault-change 1 0

Test-plan Reference : https://github.com/CHIP-Specifications/chip-test-plans/blob/master/src/cluster/general_diagnostics.adoc#tc-gendiag-2-1-event-functionality-with-server-as-dut

Test platform :
Chip-tool - RPI/MAC
DUT - RPI

screenshots, images, logs, etc.

network_fault.txt

@andy31415 But in test-plan it says we need to get network-fault enum when we run network-fault event, so what I feel is test-plan is wrong. Can you please make sure of it.

@sowmyassp  , If it is the test plan issue, shall we close this ticket and raise it to the Test plan team?
Please check the spec and update this ticket

Yes @sankarselvam it is a test-plan issue I will close the issue here and raise it in test-plan repo.


Refactor Dockerfile and status updater

This change increased the image size by 10 MB again. ☹  Copying /usr/local from the build stage doesn't work, since we don't want to copy anything else that may be in there.

There is nothing in there. It is an empty directory structure by default. Dunno where the 10 MB are coming from since this even avoids the tarballs that are otherwise copied from /usr/local/tmp, but I'll take readable non-redundant code over 10 MB image size every day.
lukas@SHOEBOX:~/repo/valheim-server-docker$ docker run --rm -it debian:stable-slim find /usr/local/
/usr/local/
/usr/local/src
/usr/local/include
/usr/local/man
/usr/local/games
/usr/local/etc
/usr/local/lib
/usr/local/share
/usr/local/share/man
/usr/local/sbin
/usr/local/bin

@lloesche Let me look into what specifically caused the image size to increase.  It's odd.


Dark mode toggle improvements

I wanna work on dark mode toggle improvement.
Current:

Problem: Its adding an extra step to select theme option from drop down.
My view: If someone is clicking theme toggle button, then its obvious he want to change the theme of the app. And for the system setting part, what we can do is to set default theme as system defined
My working: Adding default theme as system default, and just switching theme on theme change click.

Okay that can be implemented would like to check it out! Sure go on @Sourabh782

Thanks @Rakshit-gen 👍, working on it


Set help field for string length requirements via validations where possible.

String help test is determined primarily using validations. Max length is also restricted by database column max.
Requires the addition of a new key in i18n.
Any comments?

Awesome! Just throw a few specs (no validator, fixed length, min => max) and I'll do the rest. Thx a lot.

Will do.

Curious--not finding any specs for other validations. Where would you like me to put these?

It doesn't matter, I'll move them around if I find a better place for them, don't worry.

Haven't forgotten about this one, will get specs in as soon as I can.

Rebased to master, and specs done and passing.

Any further comments or concerns on this one?

Sorry I didn't see your last commit..
It looks fine, I'll merge this this afternoon. Thanks!

Thanks a lot, sounds good to me!


Gracefully handle err in NewInstance

https://github.com/machinefi/w3bstream/blob/main/pkg/modules/vm/instance_new.go#L25

fixed #285


serlo.org: Community Drop Down on mobile not working

Community drop down button on mobile doesn't work on mobile (Browser: chrome, firefox). Click on the community button in navigation doesn't open the drop down options.

Works with the new design...


Add vWii info to wii-loaders.md

Description
USB loaders page didn't have links to vWii, and also linked to forwarders that do not work on the vWii -- this pull request adds that info.

It may be worth adding info about converting Wii forwarders for vWii, but I couldn't be assed to actually write up that info

hold off on this, I might cook something up
also the Wiiflow forwarder works on both Wii and vWii already

Hell yeah sounds good. Thanks -- will leave the pull request open for now until you're done metaphorically cooking. Also, neat that the WiiFlow forwarder supports vWii.


Stop crashing if dismissing after fragment transaction.

Verified that @doncung has signed the CLA. Thanks for the pull request!

+1


serve closes the loop only when it created its own loop.

serve closes the loop only when it created its own loop.
When you were running multiple applications using asyncio, sanic must be closed as the latest order because it closes the loop.
The patch limits the behavior only when sanic created its own loop by argument loop=None.
And sanic_endpoint_test now uses shared event loop by default.

The test fails but it works on 3.5.3. If you are regarding sanic works for every 3.5.x, I will fix the code to check python version.

A change like this would also allow to use sanic_endpoint_test with passing a loop. On the other hand, passing in the loops is supposed to go away (https://github.com/channelcat/sanic/pull/335) making this obsolete.


Priortise Top 75 services for first round of research

What
Identify which services we should include in the first round of research. Document rationale for selecting these services.
Why
So we know who to reach out to when organising research.
Who needs to work on this
Kelly, Trang
Who needs to review this
Katrina
Done when

[ ] Selected 1-5 services from the list
[ ] Documented our selection rationale
[ ] This selection has been reviewed by Katrina

I've sorted the Top 75 services into 3 research cohorts:
Testimonial cohort
Services which have upgraded to GOV.UK Frontend v5. My hunch is these are our most likely candidates to help us create testimonials about the value the Design System provides.
Blockers cohort
Services which are on previous versions of GOV.UK Frontend (v4 and below) or don't use Frontend at all. Again, my hunch is we could learn a lot from these services about blockers to upgrading or using our stuff.
Case study cohort
Services which are not GOV.UK branded and / or not a live service yet (likely to still be in alpha or private beta). We could make connections with these teams and work with them to adopt the Design System, which would later make a great testimonial.


Badges

Testing if CircleCI sees this PR

Previous PR from origin/circleCi -> upstream/master was ignored by CircleCI but this one works 🤷♂


Create room and set it's configuration

Is there a way to create groupchat room and set it's configuration? I've created one using Hedwig but can't send message because room is locked. I guess it needs configuration set first. Also I'm interested how to invite users to that room? I couldn't find it in source but maybe I'm missing something.
Thanks

@burmajam there is currently not any support for configuring a room or inviting directly with Romeo. You can certainly build out the required XML to send to the server with the functions provided in the Romeo.XML module.
I personally have never needed either of these yet so I have not added it here. So PRs welcome :wink:


Async event hooks

Problem Description
I don't want hooks to block the entire core but I also don't want race conditions. I'm doing I/O (gRPC) inside my addon hooks and currently this will block the entire proxy until it is finished.
Proposal
I vaguely remember some discussion in Slack about that. Essentially replacing the @concurrent hooks (https://github.com/mitmproxy/mitmproxy/blob/292e3b413cd6cff497e35f151e29c6d786417144/examples/addons/nonblocking.py) with async so that it's more reliable and doesn't require a thread for every single hook.
Maybe the new architecture makes this really easy to implement? To await every hook?

duplicate of #4207 :)

Sorry!

No worries, I did not find it on the first try either, just kept on searching because I knew it existed. Now we have more keywords pointing in the right direction. 😄


Duplicate Windows tarball

Issue:
There are two versions of the win-64/r-digest-0.6.16-r351h301d43c_0.tar.bz2 tarball found here.
I think this causes the following error:
conda.CondaMultiError: Conda detected a mismatch between the expected content and downloaded content
for url 'https://conda.anaconda.org/conda-forge/win-64/r-digest-0.6.16-r351h301d43c_0.tar.bz2'.
  download saved to: C:\Miniconda36-x64\pkgs\r-digest-0.6.16-r351h301d43c_0.tar.bz2
  expected md5 sum: f998c934df4dfc4a43a92d9144a06170
  actual md5 sum: acf55d593f5eb9dd8d7fe3f3824cfd95

@bgruening Could you please:

Mark the duplicate tarball as broken https://anaconda.org/conda-forge/r-digest/0.6.16/download/win-64/r-digest-0.6.16-r351h301d43c_0.tar.bz2
Merge PR #5 to update this feedstock
Restart the failed AppVeyor build for https://github.com/conda-forge/r-htmltools-feedstock/pull/2 (that failed due to this issue)

partly done ...

@bgruening Thanks! I confirmed on my Windows machine that r-digest-0.6.16-r351h301d43c_0 can be installed now:
conda create -n digest r-digest=0.6.16=r351h301d43c_0


Feature Request: configurable image viewer

It would be totally amazing if we could have a configurable image viewer. I suggest that even being fully aware that i could already configure the default image viewer using xdg standard. The reason for this is mostly i don't want to change the default image viewer for other applications (it makes sense to have a more feature rich solution there). There is a second advantage without writing an additional bash script we can setup parameter for the image viewer that way.

Yeah, this sound convenient. I don't use xdg and always just edit the order in the source file, because not having the first entry installed just does not open the image, despite having my image viewer further down the list.


Relaxing the requirement of "iss" on jwt token to create claims identity

Fixing #154

This pull request is now managed with CodeReviewHub. Refresh.

@brentschmaltz

Added ValidateSignature boolean flag on TVP.


Optimistic concurrency control through sequence number

Is your feature request related to a problem? Please describe.
Currently it's not possible to ensure you work with latest key version.
Describe the solution you'd like
Make possible to keys have sequence number, which may be used for denying modifying operations, if last sequence of stream and requested number doesn't match.

Currently it's not possible to ensure you work with latest key version.
This is true, reads & writes are not happening under some transactional context. My goal is to have an opt-in way to get transaction support, like in RocksDB. See https://github.com/fjall-rs/fjall/issues/30.

Make possible to keys have sequence number
All key-value pairs already have a sequence number associated with them, that's how snapshot support works (https://docs.rs/fjall/latest/fjall/struct.PartitionHandle.html#method.snapshot).

Optimistic concurrency control (w/ serializable snapshot isolation) will be implemented by https://github.com/fjall-rs/fjall/pull/79

Implemented in https://github.com/fjall-rs/fjall/pull/79


Update picture.json

opera mini supports picture tag

Closing as per https://github.com/Fyrd/caniuse/pull/5991#issuecomment-897307885


Update Raft election, lease intervals, etc.

Fixes DOC-6375, DOC-7125
Summary of changes:

Update 'Distribution Layer' page with updated network timeout and mention the COCKROACH_NETWORK_TIMEOUT env var that controls it

Update 'Replication Layer' page with:

A table listing all of the relevant intervals that can be controlled with the COCKROACH_RAFT_ELECTION_TIMEOUT_TICKS variable

More links to the table wherever the values in that table are referred to

Finally, all of the intervals are stored in variables so their values can be referenced and updated in one place going forward

Hi @erikgrinaker these docs changes are based on your work in cockroachdb/cockroach#92542 and cockroachdb/cockroach#91947
Please let me know if I got some details wrong, I read through your comments in the code PRs but probably didn't understand everything properly
also open to any general feedback/comments on how we're presenting this info, or anything else that comes to mind
thanks!

@erikgrinaker this is updated based on your previous comments and should be RFAL

Sorry for the hold-up, I just got out of a non-stop L2 rotation and am still working my way through the backlog. Will get back to you shortly.

attractive nuisance

My absolute favorite legal term.


Vulnerabilities in Image version cypress/included:12.9.0

When performing a scan using Clair / AWS Inspector the following vulnerabilities exist in the Docker image.
The vulnerabilities are listed below:

loader-utils (included version 0:1.4.0 / patched version 2.0.3)
flat (included version: 0:4.1.1 / patched version: 5.0.2)
minimist (included version: 0:0.0.8 / patched version: 1.2.6)
underscore (included version: 0:1.6.0 / patched version: 1.12.1)

One additional note: I actually found it relatively difficult to determine which packages installed the vulnerable packages as I did not see these vulnerabilities within the cypress package itself.

I will take a look at this and see if this is as easy as a package bump.  If it turns out to have breaking changes this may have to wait a bit.

That sounds amazing - if I see the PR I/we could probably do testing and submit PRs as well in the future (if they occur) - the vulnerability reports actually come from a company we are working with that uses this Docker image.

Hi @colinbjohnson , After investigating it appears most of those dependencies are part of Cypress.  It is important to note that most vulnerabilities are extremely hard if not impossible to exploit while using Cypress to test against sites you control. As such it is important to consider context when evaluating the risk of each reported vulnerability from an automated scan.
That being said, we are currently updating some dependencies which should check some boxes for you.
https://github.com/cypress-io/cypress/pull/26332
https://github.com/cypress-io/cypress/pull/26254
If you have a security vulnerability and an example of how it can be exploited through legitimate use cases of Cypress, please email us at<EMAIL_ADDRESS>and we will investigate.


Delete Logged in User

Hi,
I want to know how we are going to delete the logged in user like this firebase sdk api. https://firebase.google.com/docs/reference/js/firebase.User#delete

This is definitely a design issue. We scrub over the firebase.User type and we lose the functionality. @jeffbcross We need to consider firebase.User methods when converting to FirebaseAuthState.

Are there implemented or planned any functionality for an admin to rapidly delete registered auth-users? I would really like admins to have that possibility from my application.

@hopeen Great question. Please submit your own issue rather than diluting tangentially related topics. I'd be happy to answer this, but not here.

@smkamranqadri You can actually delete this user using the result of the AuthState.
constructor(af: AngularFire) {
  af.auth.subscribe(authState => {
     authState.auth.delete()
        .then(_ => console.log('deleted!'));
        .catch(e => console.error(e));
  });
}

I'm going to close this issue because we need a better design to accommodate the underlying firebase.User object.

Well thanks a lot for the solution.

For those using this snippet, this will always give a console.error because the auth will emit a null after delete(). Filter the null or take only the first event:
    af.auth
      .filter(a => a != null)
      .subscribe(authState => {
        console.log(authState);
        authState.auth.delete()
          .then(_ => console.log('deleted!'))
          .catch(e => console.error(e))
      });

@davideast using AF 5.0.0-rc.5-next you have to add first() so it would become
this.afAuth.authState.first().subscribe((authState) => {     authState.delete(); }); where afAuth is private afAuth: AngularFireAuth

Thanks @ix-xerri  and @nunojpg .
The delete works like a charm :)
But how about the open subscriptions that I have for that user I deleted?
I'me getting "permission_denied" on all open subscriptions :(
Thanks.


Document truncation behavior of split_node()

The documentation for the split_node methods did not specify the truncation behavior. Document it!

I'll merge this in once the comments are addressed.

Looks good. Thanks Ash!


HB-5368: Remove support for multiple banner loads for the same placement

@CB-HaoxinLi @kendallrogers can I get a reapproval?


Fail to publish to firestore in CI

The CI should make the publishing to firestore automatically. Unfortunalty this failed.
See here
the issue might come from a misunderstanding of this github action https://github.com/w9jds/firebase-action
The related action is this one:
https://github.com/meilisearch/firestore-meilisearch/blob/192d49555c4595e987d5bf317d39a0884cd3ca6f/.github/workflows/publish.yml#L35-L53

This issue seems outdated since we can now publish on npm


feat: melos exec コマンドがパッケージ間の依存関係に応じて実行される設定を追加する

概要

close #87
レビュー観点

依存関係に応じて、melos run regenerate_code が実行されているかを確認する

レビューレベル

[x] Lv1: ぱっとみて違和感がないかチェックして Approve する
[ ] Lv2: 仕様レベルまで理解して、仕様通りに動くかある程度検証して Approve する
[ ] Lv3: 実際に環境で動作確認したうえで Approve する

レビュー優先度

[ ] すぐに見てもらいたい ( hotfix など ) 🚀
[x] 今日中に見てもらいたい 🚗
[ ] 今日〜明日中で見てもらいたい 🚶
[ ] 数日以内で見てもらいたい 🐢

ログの差分
ローカルで実行時のログ
Before
melos run regenerate_code
  └> melos exec -- "dart run build_runner build -d"
     └> RUNNING

$ melos exec
  └> dart run build_runner build -d
     └> RUNNING (in 4 packages)

--------------------------------------------------------------------------------
[cores_data]: [INFO] Generating build script...
[features_debug_mode]: [INFO] Generating build script...
[features_github_repository]: [INFO] Generating build script...
[flutter_app]: [INFO] Generating build script...
[cores_data]: [INFO] Generating build script completed, took 170ms
[cores_data]:
[features_debug_mode]: [INFO] Generating build script completed, took 171ms
[features_debug_mode]:
[features_github_repository]: [INFO] Generating build script completed, took 176ms
[features_github_repository]:
[flutter_app]: [INFO] Generating build script completed, took 168ms
[flutter_app]:
[features_debug_mode]: [INFO] Initializing inputs
[cores_data]: [INFO] Initializing inputs
[cores_data]: [INFO] Reading cached asset graph...
[features_debug_mode]: [INFO] Reading cached asset graph...
[features_github_repository]: [INFO] Initializing inputs
[features_github_repository]: [INFO] Reading cached asset graph...
[cores_data]: [INFO] Reading cached asset graph completed, took 63ms
[cores_data]:
[features_debug_mode]: [INFO] Reading cached asset graph completed, took 63ms
[features_debug_mode]:
[flutter_app]: [INFO] Initializing inputs
[features_github_repository]: [INFO] Reading cached asset graph completed, took 64ms
[features_github_repository]:
[flutter_app]: [INFO] Reading cached asset graph...
[features_debug_mode]: [INFO] Checking for updates since last build...
[cores_data]: [INFO] Checking for updates since last build...
[features_github_repository]: [INFO] Checking for updates since last build...
[flutter_app]: [INFO] Reading cached asset graph completed, took 188ms
[flutter_app]:
[flutter_app]: [INFO] Checking for updates since last build...
[cores_data]: [INFO] Checking for updates since last build completed, took 836ms
[cores_data]:
[features_debug_mode]: [INFO] Checking for updates since last build completed, took 842ms
[features_debug_mode]:
[features_github_repository]: [INFO] Checking for updates since last build completed, took 833ms
[features_github_repository]:
[cores_data]: [INFO] Running build...
[features_debug_mode]: [INFO] Running build...
[cores_data]: [INFO] Running build completed, took 8ms
[cores_data]:
[cores_data]: [INFO] Caching finalized dependency graph...
[features_debug_mode]: [INFO] Running build completed, took 6ms
[features_debug_mode]:
[features_debug_mode]: [INFO] Caching finalized dependency graph...
[features_github_repository]: [INFO] Running build...
[features_github_repository]: [INFO] Running build completed, took 10ms
[features_github_repository]:
[features_github_repository]: [INFO] Caching finalized dependency graph...
[features_debug_mode]: [INFO] Caching finalized dependency graph completed, took 52ms
[features_debug_mode]:
[cores_data]: [INFO] Caching finalized dependency graph completed, took 56ms
[cores_data]:
[features_debug_mode]: [INFO] Succeeded after 64ms with 0 outputs (0 actions)
[features_debug_mode]:
[cores_data]: [INFO] Succeeded after 72ms with 0 outputs (0 actions)
[cores_data]:
[features_github_repository]: [INFO] Caching finalized dependency graph completed, took 59ms
[features_github_repository]:
[features_github_repository]: [INFO] Succeeded after 73ms with 0 outputs (0 actions)
[features_github_repository]:
[flutter_app]: [INFO] Checking for updates since last build completed, took 832ms
[flutter_app]:
[flutter_app]: [INFO] Running build...
[flutter_app]: [INFO] Running build completed, took 31ms
[flutter_app]:
[flutter_app]: [INFO] Caching finalized dependency graph...
[flutter_app]: [INFO] Caching finalized dependency graph completed, took 89ms
[flutter_app]:
[flutter_app]: [INFO] Succeeded after 124ms with 0 outputs (0 actions)
[flutter_app]:
--------------------------------------------------------------------------------

$ melos exec
  └> dart run build_runner build -d
     └> SUCCESS

melos run regenerate_code
  └> melos exec -- "dart run build_runner build -d"
     └> SUCCESS

After
melos run regenerate_code
  └> melos exec --concurrency 1 --order-dependents -- "dart run build_runner build -d"
     └> RUNNING

$ melos exec
  └> dart run build_runner build -d
     └> RUNNING (in 4 packages)

--------------------------------------------------------------------------------
cores_data:
[INFO] Generating build script...
[INFO] Generating build script completed, took 155ms

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed, took 53ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed, took 627ms

[INFO] Running build...
[INFO] Running build completed, took 6ms

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 39ms

[INFO] Succeeded after 50ms with 0 outputs (0 actions)

cores_data: SUCCESS
--------------------------------------------------------------------------------
features_debug_mode:
[INFO] Generating build script...
[INFO] Generating build script completed, took 157ms

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed, took 54ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed, took 625ms

[INFO] Running build...
[INFO] Running build completed, took 5ms

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 41ms

[INFO] Succeeded after 50ms with 0 outputs (0 actions)

features_debug_mode: SUCCESS
--------------------------------------------------------------------------------
features_github_repository:
[INFO] Generating build script...
[INFO] Generating build script completed, took 152ms

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed, took 55ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed, took 636ms

[INFO] Running build...
[INFO] Running build completed, took 7ms

[INFO] Caching finalized dependency graph...
[INFO] Caching finalized dependency graph completed, took 41ms

[INFO] Succeeded after 51ms with 0 outputs (0 actions)

features_github_repository: SUCCESS
--------------------------------------------------------------------------------
flutter_app:
[INFO] Generating build script...
[INFO] Generating build script completed, took 154ms

[INFO] Initializing inputs
[INFO] Reading cached asset graph...
[INFO] Reading cached asset graph completed, took 158ms

[INFO] Checking for updates since last build...
[INFO] Checking for updates since last build completed, took 676ms

[INFO] Running build...
[INFO] Running build completed, took 28ms

[INFO] Caching finalized dependency graph...

備考
関連 issue: feat: support running scripts in topological order with melos exec #440

レビューありがとうございます！
マージします！


Enhancement: Updated Crawler with Improved Functionality

This pull request enhances the HelloFreshCrawler with several improvements and new features to make it more robust and user-friendly.
Changes Made:

Fixed Access Token Fetch: Corrected the access_token fetch process to ensure seamless authentication.

Added Retries: Implemented a retry mechanism for downloading recipes, handling connection timeouts and other potential issues with resilience.

Added Delay Between Batch Downloads/Retries: Introduced a delay between batch downloads and retries to prevent server overload and improve reliability.

Added DE Locale Support: Enhanced the crawler to support recipes in the German (DE) language, expanding its usability.

Improved Console.log Output: Made improvements to the console.log output for better user feedback and debugging.

Updated README: Updated the README to reflect the new language support and provide clear usage instructions.

Reason for Changes:
These changes were made to enhance the functionality and user experience of the HelloFreshCrawler. By addressing access_token issues, adding retries and delays, supporting additional locales, improving console output, and updating documentation, we make the crawler more reliable, user-friendly, and versatile.
Testing Done:
I have thoroughly tested these changes to ensure that the crawler works as expected, including scenarios with retries and different locales.
Checklist:

[x] Code has been reviewed locally.
[x] Documentation (README) has been updated to reflect the changes.
[x] All code is properly formatted and follows best practices.
[x] The pull request is linked to any relevant issues or feature requests.

Additional Comments:
I'm open to feedback and discussions regarding these changes. Please let me know if there are any further improvements or adjustments that should be made.
Thank you for considering this pull request!

Thank you for your comprehensive and well-written PR. I've added a comment suggestion, but I'm fine with merging either way.

Thanks for the reply. I've corrected the README with the correct usage command but i can't find your comment suggestion you mentioned.

Got any updates?

@alexcodito Would you merge, please?

@alexcodito Would you merge, please?

Apologies, I've been unavailable recently. I'm not sure why my comment/feedback isn't showing up, but I've submitted it again now. I'm not too precious the requested change, but I think it would look better. I'll leave the decision with you.

No worries! Thanks for the suggestion. I've updated the code, please check if it's okay for you.

push


Cache the Data after future gets resolved

Hello,
I'm trying to use Redis backed dict instead of regular dict as a cache for the Dataloader.
But aiodataloader is directly caching the future object instead of the actual value and due to this, the Redis backed dict is storing the str representation of the future.
class ABCLoader(Dataloader):

 async def batch_load_fn(keys):
       # Some Processing
       return response

loader = ABCLoader(cache_map=RedisDict(namespace="ABC", expires=600))
# The value which get stored in Redis is
key = "ABC:key1"
value = "Future:<Future pending>"

Is there anyway to cache the actual value instead of future ?

It makes sense to store the future object in a cache instead of the actual value because we are awaiting on dataloader.load method and it should return a future but then we can't use the Redis backed cache in the default implementation of data loader.
One solution can be to override the load method of dataloader, register a callback on future to save the data in the cache
while retrieving the value from the cache wrap it in the future and return.
class RedisDataloader(Dataloader):

    async def load(self, key):
        ....
        if self.cache and key in self._cache.keys():
            cached_result = self._cache.get(key)
            future = self.loop.create_future()
            future.set_result(cached_result)
            return future
        ........
        if self.cache:
            def cache_value(future):
                 self._cache[key] = future.value()
             future.add_callback(cache_value)
        ..........
        return future

Please let me know if there is any other better way to do it
Thanks

A more correct approach might be to wrap the RedisDict in a custom class which implements the behavior you need.  That way you don't need to access the internal _cache member.
Closing this since its answered.


When checking instance rules, bases must be checked for HasEnforcedRules type

should be an easy bug fix in the line: bases = [x.name for x in type(instance).bases if x.name != 'object']

Fixed


SELF_HOSTED_SETUP: How to use the same iam idp for multiple k8s cluster?

https://github.com/aws/amazon-eks-pod-identity-webhook/blob/master/SELF_HOSTED_SETUP.md
Is there a way I can use the same S3 bucket with different sets of PKI key pairs for each k8s cluster running on aws?
Can we use the same keys.json and .well-known/openid-configuration with multiple keys (each with different kid may)?
Environment
A number of self-hosted k8s in aws.
AWS Region: us-west-2
Kubernetes version: 1.17.11 onwards

Multiple keys are supported by the OIDC spec, but should only be used for rotating the signing key of an issuer. Using the same IDP for multiple clusters is strongly discouraged. It obscures the identity that is assuming a role (you won't be able to differentiate which cluster the request came from), even if you use separate keys and advertise both keys in the same issuer. If you used the same key in both clusters, you're in an even worse situation, where tokens from one cluster could be used against another


Can gcr.io/buildpacks/builder:v1  build linux/arm64 images?

Currently gcr.io/buildpacks/builder:v1 supports building only linux/amd64 images. Is it possible to publish a manifest list for this builder image that supports linux/arm64 arch as well? This would be immediately useful to build and run container images on the new GKE ARM node clusters.

Skaffold uses the buildpacks builder to build containers for amd64. Ask is to add support for arm64 to enable skaffold [1] to produce arm64 images in addition to amd64 images.
[1] https://github.com/GoogleContainerTools/skaffold

Just thinking out loud here, I think there would be a lot of plumbing required to make this happen:

We'd need an entirely new set of builders that work on linux/arm64
Determine which languages are compatible with the arm ecosystem and what (if any) limitations there are

Open questions:

Maybe we could do this for just a subset of languages to start? e.g. Node.JS and Go
What base OS do we use...if any? We currently use Ubuntu 18 and 22 base images for the builder stacks. Not sure if they are equivalent in arm world
Are there differences in how arm works serverside vs local (e.g. mac m1 weirdness?)

Resources I found while looking into this:

CNB Build an ARM app
paketo-arm64 project that attempts to build paketo buildpacks for arm

Overall I think it would be interesting to do this. However lots of details to work out to get this going for the project


Ive then installed the letsencrypt companion docker as such:
docker run -d --name nginx-proxy-letsencrypt \ --restart always \ -v /data/jwilder/certs:/etc/nginx/certs:rw \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ --volumes-from nginx-proxy-alpine \ jrcs/letsencrypt-nginx-proxy-companion
whenever I open firefly.mydomain.de I get redirected to https and a connection error straight in the browser. Using docker exec  nginx-proxy-letsencrypt /app/cert_status I can see, that the cert was created successfully. I am not getting anything in the logs for either  the nginx proxy or the letsencrypt companion.
Does anyone know, what I am doing wrong?
Thanks for the help :)
The http setup was straightforward and painless, I am impressed. Now im just trying to get it working for https.

To me it looks like you forget to connect the proxy container also to 443, add -p 443:443 when starting nginx-proxy-alpine


Force v for FullAutoStrut

This mod has some versions with a 'v' and some without, and it's causing confusion.

This pull request adds the x_netkan_force_v property to try to work around this. I haven't used this property before, so I'm not sure it will work, and will be checking the validation output to find out.

Looks like that worked.


Refactor app.PageStack.Push(...)

Currently, app.PageStack.Push(...) does more than push a new page to the page stack, it also binds the page to a navigator and executes the OnNavigateTo method on the page. IMO, Push should do nothing more than its name suggests. Removing duplicates before adding a new page in pageStack.Push is acceptable but I think it's better and more intuitive for its caller to bind the page as required and execute the OnNavigateTo method.
Any thoughts @dreacot? I have some code suggestions we can discuss if we're okay with this refactor.

if we are to push a new page, one of the first callbacks to be executed is the onNavigatedTo method, i don't think the caller should be the one triggering that. i see no reason we would want the caller to do that, it doesn't seem natural. the caller shouldn't have to bother about what happens under the hood when moving to a new page

Push should do nothing more than its name suggests

Remember Push is a method on PageStack, so pushing a page onto a pagestack isn't necessarily the same as simply pushing an item onto a stack, otherwise it would also not make sense for the Push method to remove duplicates before pushing.
Perhaps we can rename the Push method if the name gives the impression that it should do a simple stack append only.

IMO Display should have the responsibility of binding the new page with the navigator and executing the OnNavigatedTo method and it's more intuitive for pageStack.Push to just Push in a new page. This way we don't have to pass an argument to Push just to bind the new page which we can do in the caller if the push was successful.
Also, Given fixing #249, it's possible a caller wants to "Push" a page to the stack but doesn’t want to execute the OnNavigatedTo method.

Perhaps we can rename the Push method if the name gives the impression that it should do a simple stack append only.

Sounds fine, maybe PushAndNavigate?

Perhaps we can rename the Push method if the name gives the impression that it should do a simple stack append only.

Sounds fine, maybe PushAndNavigate? i.e if we want to keep the current behaviour.

@dreacot what do you think?

Perhaps we can rename the Push method if the name gives the impression that it should do a simple stack append only.

Sounds fine, maybe PushAndNavigate? i.e if we want to keep the current behaviour.

@dreacot what do you think?

that works


Multisig Migration

What is this feature about? (1 sentence)
As a old Multisig user, I want to mirror the owner structure of my existing multisig on a safe so that I can reduce the switching effort.
Why is it needed? What is the value? For whom do we build it?
We have a significant userbase using the old Gnosis Multisig contracts & interface. We want to make it as easy as possible to switch to the Gnosis Safe for Teams.
High-level overview of the feature
Feature that allows to setup a Safe with the same properties as an existing multisig. Mid-sized banner at the top of the site (or even a full-screen pup-up) that explains that there is a successor to the Multisig Wallet (=Gnosis Safe for Teams) which has the following benefits:

Future Proof: Add custom features using the modular design of the Gnosis Safe.
Formally verified: While our code is always audited, we’ve gone one step further and formally verified the Gnosis Safe smart contracts.
Save on gas: The Gnosis Safe for Teams is built with gas-efficiency in mind.
Web3Connect: Connect with the Gnosis Safe for Teams with a wide range of popular wallets.
User Experience: Interacting with a Multisignature Wallet has never been easier.

Three buttons "Dismiss" (close banner/pop-up), "Read more" (link to safe.gnosis.io/teams) and "Migrate wallet" (link to Safe for Teams onboarding with pre-populated information.
Clicking the button "Migrate wallet" would forward to Gnosis Safe for Teams > Create New Safe > Review with (1) Safe Name, (2) Owner addresses + Owner Names and (3) Threshold already populated (taken from current Multisig).
Clicking the button "Dismiss" would dismiss the banner/pop-up for this session. There should also be a checkbox "Don't show this again" that would (after clicking "Dismiss") not show the banner/pop-up when the app is opened in the future.

Might be technically tricky to get name from old multisig as its stored in local storage

@giacomolicari This is also going to be relevant for you. Implementation is planned for late October / beginning of November, but feel free to already give feedback now or during the design stage.

Sure @lukasschor , I can give feedback on this :)

Popup:

Popup with checkbox checked:

"Migrate wallet" button leads here:

Looks great. 👍
Another approach would be to already design the pop-up in the Safe for Teams design language to make a contrast to the current design language and hint towards the improved UX/UI. I'm definitely not saying this would be necessarily better, as it comes with its own drawbacks (e.g. it wouldn't look as "native" as it looks right now). But curious to hear your thoughts on this. @posthnikova

I think it makes sense to have the Multisig popup look native, but maybe there can be a more prominent link with something like "Check out the new look!"? I think "Read more" sounds a bit tedious, it would be good to have something where the user can just get a quick look.
Also, is there a reason why "Dismiss" is so prominently highlighted as a button and "Migrate wallet" not at all? Is that just to be in line with the Multisig design? If not, I would change that.
Small typo in the Safe for Teams design: it should be "Make sure you have 0.00041..."

@lukasschor @KristinaMayman I chose native style because it's less obtrusive and to reuse styles from Multisig design would be faster. If it doesn't work, we should show new styles more prominently.

I think "Read more" sounds a bit tedious, it would be good to have something where the
user can just get a quick look.

I just realised it goes to Safe website and there is not much more new information than in the popup, the same advantages are listed. There's no way to migrate wallet when you're on the Safe website so maybe we should not link there.

Also, is there a reason why "Dismiss" is so prominently highlighted as a button

This is the style used everywhere in Multisig. I would definitely show a more prominent "Migrate wallet" button

UX sync:
-do a blog post
-make button more prominent
-Read more leads to blog post
-Mention that they have to move funds

Changes after UX sync: button renamed to "Create new Safe", added a mention that they have to move funds to the new Safe. "Read more" leads to blog post. We need a blog post explaining how to migrate and a way to migrate from the Safe website.

I would rephrase the last section to...
Migrating couldn't be easier:

Click the button below to create a Safe with the exact same owner and signature policies as your existing Multisig.
Try out the new interface and learn about the many benefits.
As soon as you feel comfortable, start moving funds to your new Safe.

I like the rephrasing, yes. The only thing is that from the first point it's unclear whether clicking the button would allow me to copy the owner policies myself or if that would be done automatically. So maybe something like "Click the button below to create a Safe. Your current owner and signature policies will be applied to it automatically."

Looks good to me now.
@giacomolicari What do you think?

I'm fine with it :) The only thing I would maybe change is that text Migration couldn't be easier: etc.., I'd make it bigger to emphasize how the migration process work and which steps users have to take. What's your opinion? @lukasschor

Agree, maybe we could make „Migration couldn‘t be easier“ as a title and also work with icons (1, 2, 3) and change the ones for the benefits to roman numbers or to symbols. Also, user experience has shown that gas efficiency is not really a big benefit for existing users, so I would leave it out.

UX sync: Make "Migration couldn't be easier" bigger, remove 1-2-3 circles from top list, add 1-2-3 numbers to migration process, remove benefit 5

Changes after UX sync @lukasschor @giacomolicari

Looks good. Moving this to Dev Backlog. 👍

@giacomolicari So from my side everything is fine and you could start implementing this feature. When do you think you will have time to work on this?

Hi @lukasschor ,
I'd have a question about the flow. Do we show a migration modal for each wallet in the multisig app or just one?

I would show it every time any wallet is opened until the user ticks „don‘t show this again“. Even though that would mean that they would see this modal even after migrating a certain wallet. But if it annoys the user, he could always click that box.
The assumption is that as soon as they migrated one wallet, users would be able to just replicate others from the Safe interface. But in case that‘s not correct we might have to add an additional „Migrate to Safe“ button in the interface header or similar.
Do you think that makes sense?

Yes I understand. My only concern is about data we have to send from the Multisig app to Safe's endpoint. I understand I have to collect some data from the wallet, like list of owners and wallet's address.
In case a user is on the index page, we would send the whole list of multisigs a user holds, like:
[
   {
      "name":"Multisig 1",
      "address":"0x.....",
      "owners":[
         {
            "name":"Owner 1",
            "address":"0x...."
         },
         {
            "name":"Owner 2",
            "address":"0x...."
         }
      ]
   },
{
      "name":"Multisig 2",
      "address":"0x.....",
      "owners":[
         {
            "name":"Owner 1",
            "address":"0x...."
         },
         {
            "name":"Owner 2",
            "address":"0x...."
         }
      ]
   }
]

instead, if the user is on a wallet's detail page, we would send just data related to that wallet
[
   {
      "name":"Multisig 1",
      "address":"0x.....",
      "owners":[
         {
            "name":"Owner 1",
            "address":"0x...."
         },
         {
            "name":"Owner 2",
            "address":"0x...."
         }
      ]
   }
]

Could you also provide me with the Safe's endpoint and what kind of http request to send? (GET, POST)
thank you @lukasschor

I understand. This modal would only show on the wallet detail page, as we can only migrate one wallet at a time.
@germartinez could you provide Giacomo with the information above?

There is no endpoint needed for this feature.
We should create a link in the Multisig pointing to the Safe creation form in the Safe for Teams and passing the required data from the Multisig in a way that the Safe creation form in can be filled automatically.
The data required in the link is:

name (Safe name)
threshold (Safe threshold)
owners (Array of the owners including name and address for each one)

@germartinez Because currently we do not allow users to create a Safe without an active wallet connection, we show this screen if the wallet gets disconnected in the creation flow. Does this cause any issues for this migration feature? Because the user would land on the interface and first have to connect a wallet but we should definitely not show this blank screen.

Right now, that would be the behaviour. The URL would still have the data, so whenever the provider is connected, the form would be shown automatically with all the data.

@giacomolicari For the public launch we will rename the Safe for Teams to "Gnosis Safe Multisig". So there are two changes needed in the text of the migration screen.


Add support for unmarshaling the response body into struct

How about adding support for something like this:
type Person struct {
  Name string
}

var friend Person
response, _, errs := request.Post("http://example.com").BindBody(&friend).End()

:+1:

Can be closed due EndStruct()-Feature: https://github.com/parnurzeal/gorequest/pull/88

The feature was added to master branch, but it is not available under a tag release.
The last one we have is v0.12.13, which does not include EndStruct support.
Is there any chance to generate another tag to include those changes?
cc @fraenky8 @QuentinPerez @franciscocpg

Hi @marioluan, I am not project owner so it is not possible for me.
But if you are using glide you can refer to a single commit, this way:
  - package: github.com/parnurzeal/gorequest
    version: 6e8ad4ebdee4bec2934ed5afaaa1c7b877832a17

Hi @marioluan, I can't merge on the master branch but I created a new tag v0.2.14 can you tell me if it is enough for you ?

Thanks @franciscocpg @QuentinPerez!


MAINT: fix warnings emitted by loading npy/npz data files

This caused CI failures, see gh-678. See the commit messages for how to load/save, for large npz files it's not enough to just roundtrip np.savez(np.load(...)).

The 32-bit Windows jobs are failing on building contourpy 1.1.0 from source. I'll leave that for a separate PR.

I'll go ahead and merge this, since it's a trivial fix.


feat: Enable recursive directory creation

@all-contributors add @AnthonyWhitaker for code

@all-contributors add @AnthonyWhitaker for code

@all-contributors add @AnthonyWhitaker for code


Dynerf training

Hey there,
Thanks for your work, I've been testing it and the results are great.
I saw that in your paper you did some tests on Dynerf. Would it be possible to know the code modifications for that?
Even it wouldn't have an advantage over other methods like you've stated, having it as a Gaussian representation would help a lot for my projects.

Nevermind, it supports it already!

I have some insights for this dataset.

I think the convergence of this dataset is highly related to the initialization of the point cloud. Randomly generated point clouds can lead to convergence failure.
For methods like ours that are based on a deformation field, long-capture poses challenges, so we default to reading the first 24 frames.
Reading all the images at once can have a huge burden on VRAM, --load2gpu_on_the_fly can help you reduce memory consumption.

The code for this dataset is only used to standardize the format of the dataset, and we haven't optimized for this dataset.
Thank you for your interset in our work!

Interesting, thanks for the tips!
I'll try generating a points.npy in COLMAP and integrating it to the codebase, will report back the results.


Initial code merging kube-up & start-kubemark from scale-out-poc to master

What type of PR is this?

Uncomment only one  /kind <> line, hit enter to put that in a new line, and remove leading whitespaces from that line:
/kind api-change
/kind bug
/kind cleanup
/kind design
/kind documentation
/kind failing-test
/kind feature
/kind flake

What this PR does / why we need it: This brings in the script changes to deploy admin and kubemark cluster that is scaleout architecture aware. This, along with related kubemark, kubelet, controller, and multi-tenancy changes (coming in separate PRs) will pave the way to deploy either scale-up cluster or scale-out cluster in google cloud.
I verified that the change does not regress master by deploying a non-scaleout kubemark cluster and got a successful perf test pass with a 100 node cluster for the density test.
Which issue(s) this PR fixes:

Fixes #
Special notes for your reviewer:
Does this PR introduce a user-facing change?:

/approve

/approve

/lgtm

/lgtm


Alacritty displays garbage after 0.2.8 update

I'm on Gentoo Linux running Wayland (sway). After the update to 0.2.8 (from 0.2.6) this is what Alacritty looks like:

Yikes! Any clues @chrisduerr ?

My alacritty.yaml

Still happens with a fresh alacritty.yml:

This is my bad, I've introduced a bad commit slightly before the version release and wasn't able to catch it in time.
This is related to font size changing, so resetting font size or moving alacritty between monitors with different DPI will cause this.
Testing of the fix would be appreciated, it's already included in the latest master.
A new point release is planned as soon as I've done sufficient testing to make sure everything works properly on all platforms.

Alright, testing master now

@chrisduerr I can confirm that fixes it!
I have another bug though, hang tight :)

Just chiming in to say I saw this issue too, as Arch updated to 0.2.8.
Installed the latest master with the alacritty-git package in the AUR, and everything is working again. Thanks for the quick fix @chrisduerr!

@JohnMaguire The Alacritty maintainers on Arch have already updated to the 0.2.9 version in a matter of just a few hours. So hopefully that should work just as well.

@chrisduerr Thanks for the phenomenal speed in fixing this!


Show progress output from caffeine while running

Motivation
Right now when caffeine is running we have no output unless we find an assertion failure or we hit an internal error. This isn't very helpful for users since it's rather hard to tell the difference between caffeine being hung and it just not having completed yet.
Requirements
These aren't exact but give the general idea:

It should show number of contexts completed/total number of contexts
It should be updated whenever those ones above change

I'm leaving this mostly open but it should show basically number of contexts completed/total number of contexts.
One you have the basic thing working an extra bonus feature would be if it didn't always print the status on a newline and instead showed it as a status bar at the bottom of the terminal similar to what apt does.
Implementations
This should either be a wrapper around an ExecutionContextStore or an ExecutionPolicy. I'll leave it to you to figure out which one you think is best.

Closed by https://github.com/insufficiently-caffeinated/caffeine/pull/576


Feature: target size for mobile devices

Brief Information
This pull request is in the type of:

[ ] bug fixing
[x] new feature
[ ] others

What does this PR do?

This PR is intended to increase elements' responsive size on mobile devices so that elements can be touched more easily.
The idea is based on Understanding Success Criterion 2.5.5: Target Size.
Fixed issues

Details
Before: What was the problem?
Small elements are hard to touch precisely on mobile devices in cases like scatter charts with small bubbles.
After: How is it fixed in this PR?
Touch position in increased by "touch size" (default value is 44px) so that elements are easier to be touched.
Misc

[x] The API has been changed (apache/echarts-doc#xxx).
[x] This PR depends on ZRender changes (ecomfe/zrender#917).

Related test cases or examples to use the new APIs

test/target-size.html

API Changes
echarts.init(dom, null, {
  useTargetSize: 'auto',
  targetSize: 44,
  ...
});

useTargetSize ('auto' | true | false): whether to enable thie feature. If set to be 'auto', it's turned on only for mobile devices.
targetSize (number): touch position is increased by this target size in diameter.

Charts that with large scale enabled will disable this feature.
Others
Merging options

[ ] Please squash the commits into a single one when merging.

Other information

Close due to branch problem.


feat: added university of information technology yangon

@Catt-168 I am sorry, the domain uit.edu.mm is removed from our trusted domains list because it was abused in the past. If you are the student of this school, please enroll to GitHub Student Developer Program. Then apply for JetBrains educational subscription with your GitHub account (GitHub tab at https://www.jetbrains.com/shop/eform/students).


Use fromThreadId

base-4.19 changelog has entry

GHC.Conc.Sync now exports fromThreadId :: ThreadId -> Word64, which maps a thread to a per-process-unique identifie

we should use that when available.

Done in #287


seperate task manager + workflow manager

Description
Seperates workflow manager and task manager
Status
Work in progress
Types of changes

[ ] Non-breaking change (fix or new feature that would not break existing functionality).
[ ] Breaking change (fix or new feature that would cause existing functionality to change).
[ ] New tests added to cover the changes.
[ ] All tests passed locally.
[ ] Documentation comments included/updated.

@mocsharp I think that may be best for a refactor, as on the workflow side, we have workflowManager as the top level project, and a separate project called workflow executer with the workflow specific logic, we could copy this in the task manager.

Is this separation meaning that they will end up being potentially 2 different containers or services (Helm charts)?
@nakfour ^^

Is this separation meaning that they will end up being potentially 2 different containers or services (Helm charts)?
@nakfour ^^

Correct, 2 container images/services/helm charts.


Mudblazor.com/wasm seems to be broken (Integrity Check failing)

Bug type
Docs (mudblazor.com)
Component name
No response
What happened?
mudblazor.com/wasm returns following errors in console:
`Failed to find a valid digest in the 'integrity' attribute for resource 'https://mudblazor.com/wasm/_framework/Microsoft.JSInterop.WebAssembly.dll' with computed SHA-256 integrity 'TZF2KGZRSev/gMKjN7GoplW2xZPrK+yI4lECdonDwC4='. The resource has been blocked.
alert:1
   Unknown error occurred while trying to verify integrity.

blazor.webassembly.js:1
   Error: Failed to start platform. Reason: TypeError: Failed to fetch
at blazor.webassembly.js:1
at blazor.webassembly.js:1
at Object.throw (blazor.webassembly.js:1)
at s (blazor.webassembly.js:1)

d.printErr @ blazor.webassembly.js:1
alert:1
   Failed to find a valid digest in the 'integrity' attribute for resource 'https://mudblazor.com/wasm/_framework/Microsoft.JSInterop.dll' with computed SHA-256 integrity 'tDvn5GW+7NGvLe6n9/tTh669tukuSpdtM4Oxhjs9GNY='. The resource has been blocked.

alert:1
   Unknown error occurred while trying to verify integrity.`

Expected behavior
No error
Reproduction link
https://mudblazor.com/wasm/
Reproduction steps

open  link

Relevant log output
No response
Version (bug)
5.2.0
Version (working)
5.1.5
What browsers are you seeing the problem on?
Chrome
On what operating system are you experiencing the issue?
Windows, Android
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thanks, we are already working on a fix

Hello, Even we are facing the issue with dotnet.native.wasm. Please go through the below mentioned details and let me know what was the fix for this.
Error:    Failed to find a valid digest in the 'integrity' attribute for resource 'https://secure.pbc.gov/CSD_CSBGCM/_framework/dotnet.native.wasm' with computed SHA-256 integrity 'OcUTcd7qQceenWEF93409WZcaXp2qQbEyhdchog4RUE='. The resource has been blocked.
Error in mono_download_assets: Error: download 'https://secure.pbc.gov/CSD_CSBGCM/_framework/dotnet.native.wasm' for dotnet.native.wasm failed 0 TypeError: Failed to fetch
Uncaught (in promise) TypeError: Failed to fetch
at Object.A [as fetch_like] (dotnet.js:3:4508)
at dotnet.js:3:11593
at dotnet.js:3:11609
dotnet.js:3 Uncaught (in promise) Error: download 'https://secure.pbc.gov/CSD_CSBGCM/_framework/dotnet.native.wasm' for dotnet.native.wasm failed 0 TypeError: Failed to fetch
at dotnet.js:3:9983
at async K (dotnet.js:3:8871)
at async Y (dotnet.js:3:8196)
Uncaught (in promise) Error: download 'https://secure.pbc.gov/CSD_CSBGCM/_framework/dotnet.native.wasm' for dotnet.native.wasm failed 0 TypeError: Failed to fetch
at dotnet.js:3:9983
at async K (dotnet.js:3:8871)
at async Y (dotnet.js:3:8196)
Uncaught (in promise) Error: download 'https://secure.pbc.gov/CSD_CSBGCM/_framework/dotnet.native.wasm' for dotnet.native.wasm failed 0 TypeError: Failed to fetch
at dotnet.js:3:9983
at async K (dotnet.js:3:8871)
at async Y (dotnet.js:3:8196)
Uncaught (in promise) Error: Failed to start platform. Reason: Error: download 'https://secure.pbc.gov/CSD_CSBGCM/_framework/dotnet.native.wasm' for dotnet.native.wasm failed 0 TypeError: Failed to fetch
at ti (blazor.web.js:1:163721)
Uncaught (in promise) Error: download 'https://secure.pbc.gov/CSD_CSBGCM/_framework/dotnet.native.wasm' for dotnet.native.wasm failed 0 TypeError: Failed to fetch
at dotnet.js:3:9983
at async K (dotnet.js:3:8871)
at async Y (dotnet.js:3:8196)
Please let me know what was the fix for this issue.  Pls find the attached

Environment Details:
Visual Studio 2022
Framework: .Net 8.0
Template Used: Blazor Web App
MudBlazor Version: 7.15.0
Language: C#
App.Razor:

Controls Used:
MudSelect/MudDialog/MudChip/MudTextField/MudNumericField/MudDatePicker/MudAutocomplete/MudProgressCircular/MudDataGrid/MudButton

Hello can anyone please update me on this issue ?


Handle utf-16 encoding gracefully when querying Snowflake

This stemmed from an issue we saw in production, a result we were
getting included some garbled characters because of a UTF-8 and UTF-16
difference.
We were getting the string:
"CVS PharmacyÂ®"

Now, Â = U+00C2 and ® = U+00AE in UTF-8.
However, what we really wanted was:
"CVS Pharmacy®"

As the Â character is a mistaken extra byte.
Here, we introduce a function to properly handle this and return the
desired results using the latin1 encoding with UTF-8.
I have tried a couple ways of going about testing this, but the coverage
so far does not allow me an easy way to even hit this branch of the
functions in result or snowflex itself. I will confer with someone else
to get a real test written.
JIRA ticket is AUTO-4025
Here is validation run on this using just iex to demonstrate:
iex(1)> string = "CVS PharmacyÂ®"
"CVS PharmacyÂ®"
iex(2)>
nil
iex(3)> defmodule Convert do
...(3)>   def parse(string) do
...(3)>     string
...(3)>     |> to_charlist
...(3)>     |> handle_encoding
...(3)>   end
...(3)>
...(3)>   defp handle_encoding(data) when is_list(data) do
...(3)>     raw = :erlang.list_to_binary(data)
...(3)>     case :unicode.characters_to_binary(raw) do
...(3)>       utf8 when is_binary(utf8) -> utf8
...(3)>       _ -> :unicode.characters_to_binary(raw, :latin1)
...(3)>     end
...(3)>   end
...(3)>
...(3)>   defp handle_encoding(data), do: data
...(3)> end
{:module, Convert,
 <<70, 79, 82, 49, 0, 0, 6, 240, 66, 69, 65, 77, 65, 116, 85, 56, 0, 0, 0, 236,
   0, 0, 0, 21, 14, 69, 108, 105, 120, 105, 114, 46, 67, 111, 110, 118, 101,
   114, 116, 8, 95, 95, 105, 110, 102, 111, 95, ...>>, {:handle_encoding, 1}}
iex(4)>
nil
iex(5)> IO.puts Convert.parse(string)
CVS Pharmacy®
:ok

@superhawk610 will do good eye 👍


⚠ Turnos 24x7 has degraded performance

In aec3ef4, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 892 ms

Resolved: Turnos 24x7 performance has improved in 444257f.