text:
5.2 beta1 undocumented change (IDFGH-11688)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
5.2 beta1
Operating System used.
Linux
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
What is the expected behavior?
recompile existing code without changes
What is the actual behavior?
Build failure, due to rename of SOC_GDMA_PAIRS_PER_GROUP to SOC_GDMA_PAIRS_PER_GROUP_MAX.
The macro on the next line as well, apparently, see below.
This change is not documented anywhere. The diff also indicates documentation was deleted, that seems like a strange thing to do.
Danny
diff  /home/danny/src/github/esp32/esp-idf-v5.{1.2,2-beta1}/components/soc/esp32s3/include/soc/soc_caps.h
146,148c156,159
< #define SOC_GDMA_GROUPS            (1)  // Number of GDMA groups
< #define SOC_GDMA_PAIRS_PER_GROUP   (5)  // Number of GDMA pairs in each group
< #define SOC_GDMA_SUPPORT_PSRAM     (1)  // GDMA can access external PSRAM

#define SOC_AHB_GDMA_VERSION           1U
#define SOC_GDMA_NUM_GROUPS_MAX        1U
#define SOC_GDMA_PAIRS_PER_GROUP_MAX   5
#define SOC_AHB_GDMA_SUPPORT_PSRAM     1

Steps to reproduce.
see above
Build or installation Logs.
No response
More Information.
No response

sorry, we didn't expect the user will use these macros. May I know how your code is using these macros, instead of calling the esp_private/gdma.h driver API? @dannybackx

It's not something I wrote myself.
See the link to the demo application of this device https://www.aliexpress.com/item/1005005235784548.html?spm=a2g0o.order_list.order_list_main.156.6dd71802VHYEvn
Demo app link : https://github.com/wireless-tag-com/ZX3D95CE01S-TR-4848

Thanks @dannybackx  That project is using some unsafe code, for example: https://github.com/wireless-tag-com/ZX3D95CE01S-TR-4848/blob/master/components/bus/8080_lcd_esp32s3.c#L354
Where that component is skipping the GDMA driver to allocate the channel, so in a concurrent scenario, a "free" channel searched by that component may be already occupied by another component, which utilizes the GDMA driver.
I can add those missing macros back again to make the project build again, but again, that project needs refactoring, because it's unsafe and also easy to break when there's a big refactor in the upstream esp-idf.

Note this is also in https://github.com/smartpanle/QMSD-ESP32-BSP .
I pointed them to this thread.

authors: dannybackx suda-morris

repo: espressif/esp-idf


text:
I2C scanner example is not detecting device (IDFGH-4025)

Environment
Development Kit: ESP32-cam (ESP32-Wrover-Kit)
Module or chip used: ESP32-D0WDQ6 (revision 1)
IDF version v4.3-dev-1197-g8bc19ba89
Build System: CMake
Compiler version xtensa-esp32-elf-gcc (crosstool-NG esp-2020r1) 8.2.0
Operating System: macOS
Power Supply: external 5V
Problem Description
I am trying to run i2c-tool app as it is after changing SCL and SDA pin number as my connection. i2cdetect is not detecting my MPU9250. Its device ID is 0x68 and I ran arduino example code for same pins and it is working fine. I have most updated code from esp-idf and this same hardware config is working fine in Arduino IDE.
Expected Behavior
i2c-tools> i2cdetect
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
i2c-tools>
Actual Behavior
i2c-tools> i2cdetect
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
i2c-tools>
Steps to repropduce
Download the i2c-tool code
Run i2cdetect (SCL 15 SDA 14)
MPU9250       ESP32-CAM
VCC <==> 3.3v
GND <==> GND
SCL  <==> 15
SDA  <==> 14
Code to reproduce this issue
static const char *TAG = "cmd_i2ctools";

static gpio_num_t i2c_gpio_sda = 14;
static gpio_num_t i2c_gpio_scl = 15;
static uint32_t i2c_frequency = 100000;
static i2c_port_t i2c_port = I2C_NUM_0;

Hi @shivam5594
I am running i2c-tools on an ESP32 LyraT board (ESP32 WROVER kit) and i2cdetect works with both sets of pins just fine. I've changed the pins using i2cconfig (w/o recompiling).
i2c-tools> i2cconfig --sda 18 --scl 19
i2c-tools> i2cdetect
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
i2c-tools> i2cconfig --sda 14 --scl 15
i2c-tools> i2cdetect
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
i2c-tools>

Are you sure that on your board pins 14 and 15 aren't used for anything else already? If I found the correct ESP32-Cam schematics, pins 14 and 15 are used for the SD card. Any chance you have an SD card inserted? Maybe you've swapped SDA and SCL by accident. Maybe try with a different i2c slave?
Thanks
Felix
P.S. I've also tried your method and modified pins in code, rebuilt and reflashed the board. The i2c slave was still detected.

Hi @felmue
Thank you for pointing out. I checked all my connections and Arduino Twowire(I2C) code works on same pin even though those pins are connected with SD card slot.
I realized one thing, even though I set the pins for I2C in code initially,
static gpio_num_t i2c_gpio_sda = 14;
static gpio_num_t i2c_gpio_scl = 15;
static uint32_t i2c_frequency = 100000;

it doesn't config pins for I2C.
After explicitly running i2cconfig --sda=14 --scl=15 it detects,
i2c-tools> i2cdetect
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
i2c-tools> i2cconfig --scl=2 --sda=14
i2c-tools> i2cdetect
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
isn't that weird? I feel that is a confusing code structure.

I checked the code, all i2cconfig command does is parse the parameters and save it in a structure without actually configuring those pins.
`static struct {
struct arg_int *port;
struct arg_int *freq;
struct arg_int *sda;
struct arg_int *scl;
struct arg_end *end;
} i2cconfig_args;
static int do_i2cconfig_cmd(int argc, char **argv)
{
int nerrors = arg_parse(argc, argv, (void **)&i2cconfig_args);
if (nerrors != 0) {
arg_print_errors(stderr, i2cconfig_args.end, argv[0]);
return 0;
}
/* Check "--port" option */
if (i2cconfig_args.port->count) {
    if (i2c_get_port(i2cconfig_args.port->ival[0], &i2c_port) != ESP_OK) {
        return 1;
    }
}
/* Check "--freq" option */
if (i2cconfig_args.freq->count) {
    i2c_frequency = i2cconfig_args.freq->ival[0];
}
/* Check "--sda" option */
i2c_gpio_sda = i2cconfig_args.sda->ival[0];
/* Check "--scl" option */
i2c_gpio_scl = i2cconfig_args.scl->ival[0];
return 0;

}`
Then why is it not able to detect I2C device without running i2cconfig first?
and i2cdetect command is not even using that structure, and it ultimately goes and uses the local variables which I set (showed in the problem statement)
`
static gpio_num_t i2c_gpio_sda = 14;
static gpio_num_t i2c_gpio_scl = 15;
static uint32_t i2c_frequency = 100000;
static i2c_port_t i2c_port = I2C_NUM_0;
static esp_err_t i2c_master_driver_initialize(void)
{
i2c_config_t conf = {
.mode = I2C_MODE_MASTER,
.sda_io_num = i2c_gpio_sda,
.sda_pullup_en = GPIO_PULLUP_ENABLE,
.scl_io_num = i2c_gpio_scl,
.scl_pullup_en = GPIO_PULLUP_ENABLE,
.master.clk_speed = i2c_frequency
};
return i2c_param_config(i2c_port, &conf);
}
static int do_i2cdetect_cmd(int argc, char **argv)
{
i2c_driver_install(i2c_port, I2C_MODE_MASTER, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0);
i2c_master_driver_initialize();
uint8_t address;
printf("     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f\r\n");
for (int i = 0; i < 128; i += 16) {
printf("%02x: ", i);
for (int j = 0; j < 16; j++) {
fflush(stdout);
address = i + j;
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
i2c_master_start(cmd);
i2c_master_write_byte(cmd, (address << 1) | WRITE_BIT, ACK_CHECK_EN);
i2c_master_stop(cmd);
esp_err_t ret = i2c_master_cmd_begin(i2c_port, cmd, 50 / portTICK_RATE_MS);
i2c_cmd_link_delete(cmd);
if (ret == ESP_OK) {
printf("%02x ", address);
} else if (ret == ESP_ERR_TIMEOUT) {
printf("UU ");
} else {
printf("-- ");
}
}
printf("\r\n");
}
i2c_driver_delete(i2c_port);
return 0;

}
`

This is my code. I used the entire i2cdetect function and made it to look for particular address 0x68. Still not able to detect. Am I missing any step?
void app_main(void)
{
    esp_err_t ret = ESP_FAIL;
    i2c_port_t I2Cport = I2C_NUM_0;

    i2c_config_t conf;
    conf.mode = I2C_MODE_MASTER;
    conf.sda_io_num = 14;
    conf.sda_pullup_en = GPIO_PULLUP_ENABLE;
    conf.scl_io_num = 15;
    conf.scl_pullup_en = GPIO_PULLUP_ENABLE;
    conf.master.clk_speed = 100000;

    ESP_ERROR_CHECK(i2c_param_config(I2Cport, &conf));
    ESP_ERROR_CHECK(i2c_driver_install(I2Cport, I2C_MODE_MASTER, I2C_MASTER_RX_BUF_DISABLE, I2C_MASTER_TX_BUF_DISABLE, 0));

    uint8_t address;
    address = 0x68; // IMU I2C address
    while(1)
    {
	i2c_cmd_handle_t cmd = i2c_cmd_link_create();
	i2c_master_start(cmd);
	i2c_master_write_byte(cmd, (address << 1) | I2C_MASTER_WRITE, 0x1);
	i2c_master_stop(cmd);
	esp_err_t ret1 = i2c_master_cmd_begin(I2Cport, cmd, 50 / portTICK_RATE_MS);
	i2c_cmd_link_delete(cmd);
	if (ret == ESP_OK) {
		printf("Detected device at %02x ", address);
	} else if (ret1 == ESP_ERR_TIMEOUT) {
		printf("UU ");
	} else {
		printf("-- %d", ret1);
	}
	fflush(stdout);
    	vTaskDelay(1000);
    }
    ESP_ERROR_CHECK(ret);
}

Hey @shivam5594
I think there is only a small typo - mixup between ret and ret1.
This line: if (ret == ESP_OK) {
should be: if (ret1 == ESP_OK) {
Cheers
Felix

@felmue thanks for that. But even after changing that to ret1, same result.
Here is my connection.

My bad, pins were swapped. Thank you Felix for answering my stupid questions 😊

Hi Shivam
no worries, you are very welcome. I am glad to hear you've got it sorted out and working.
Cheers
Felix

source: gharchive/issue

license_type: permissive

license_source: github-api


text:
使用ubuntu22.04 install.sh esp-idfv4.4.2报错 (IDFGH-8408)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
4.4.2
Operating System used.
Linux
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
No response
What is the expected behavior?
使用ubuntu22.04 install.sh esp-idfv4.4.2
What is the actual behavior?
无法install成功
Steps to reproduce.

Step
Step
Step
...
1、git v4.4.2分支
2、install

Build or installation Logs.
root@yd-virtual-machine:~/esp32s3/esp-idf# ../esp-gitee-tools/install.sh
Detecting Python interpreter
Checking "python" ...
Python 3.10.6
"python" has been detected
Installing ESP-IDF tools
Current system platform: linux-amd64
Traceback (most recent call last):
  File "/root/esp32s3/esp-idf/tools/idf_tools.py", line 1860, in <module>
    main(sys.argv[1:])
  File "/root/esp32s3/esp-idf/tools/idf_tools.py", line 1856, in main
    action_func(args)
  File "/root/esp32s3/esp-idf/tools/idf_tools.py", line 1423, in action_install
    targets = clean_targets(args.targets)
  File "/root/esp32s3/esp-idf/tools/idf_tools.py", line 1085, in clean_targets
    export_targets_to_idf_env_json(targets_from_tools_json)
  File "/root/esp32s3/esp-idf/tools/idf_tools.py", line 1053, in export_targets_to_idf_env_json
    targets = list(set(targets + get_user_defined_targets()))
  File "/root/esp32s3/esp-idf/tools/idf_tools.py", line 1099, in get_user_defined_targets
    if env == idf_env_json['idfSelectedId']:
KeyError: 'idfSelectedId'
root@yd-virtual-machine:~/esp32s3/esp-idf#

More Information.
No response

Duplicate of https://github.com/espressif/esp-idf/issues/9837
Fixed in v4.4 branch, 640f1c844b5cd935e809b0195df06f1639eb9979 .

Please follow the linked issue. You can find temporary workaround there.

我也遇到了这个问题 不知道怎么解决

authors: AxelLin dobairoland guoxiaolong5669 yuandonglp


text:
uart: expose uart context for custom uart interrupt handlers (IDFGH-7072)

Exposing the UART context is needed to be able to easily access the HAL dev and the context's spinlock in user-defined UART interrupt handlers.

Thanks for your contribution.

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

source: gharchive/pull-request

authors: Alvin1Zhang CLAassistant nonoo


text:
Barcode face

Barcode clockwatchface
A scannable EAN-8 compatible clockwatchface for your Bangle 2
The format of the bars are
||HHmm||MMwc||

Left section: HHmm

H: Hours
m: Minutes

Right section: MM9c

M: Day of month
w: Day of week
c: Calculated EAN-8 digit checksum

Apart from that

The upper left section displays total number of steps per day
The upper right section displays total number of steps from last boot ("stepuptime")
The face updates every 5 minutes or on demand by pressing the hardware button

This clockwathface is aware of theme choice, so it will adapt to Light/Dark themes.

That's a great idea - thanks!

authors: gfwilliams matrixes

repo: espruino/BangleApps

license: MIT


text:
Replace react-intl

react-intl is not maintained anymore. Consider switching to something else.
https://twitter.com/kentcdodds/status/1036084711678861312

Hey, if you want to use LinguiJS I can help you with integration. It may be the less painful migration because at least messages stays in the same format.

@tricoder42 LinguiJS looks nice, can you prepare PR, please?

Sure, I'll take a look 👍

I reviewed the repo I started writing codemods, so anyone using este.js with react-intl can migrate gracefully. It should be ready by next week.
Meanwhile react-intl might be reviewed 🤞, but I want to write these codemods anyway, so no harm at all if you stick to react-intl.

It might be, who knows. It works as is, at least in Este. Maybe a new maintainer will appear https://github.com/yahoo/react-intl/issues/1160

OK, a new version was released.

Cool, that's great! I'm a bit overwhelmed with work at the moment and I can't spend as much time as I would like with i18n...

repo: este/este

license: mit

license_source: bigquery


text:
Ignore http/https/www in links

https is called out here:
- [Simon Doy](https://www.linkedin.com/in/simondoy)

I'll add this to the exclusion list! Thanks @sympmarc.

Should now be available with version 0.0.8.

Agreed! Thanks for the fix. I'll keep asking for them until my writing is perfect! :)

Keep it coming, let us keep improving it, so that it works for everyone.

authors: estruyf sympmarc


text:
Handling derived classes more elegant

Assume I have the following class structure and I want to be able to map between the two:
public class Base1
public class DerivedA1 : Base1
public class DerivedB1 : Base1

public class Base2
public class DerivedA2 : Base2
public class DerivedB2 : Base2

I have to create two functions to map between the two:
static Base2 Map1to2(Base1 base1)
{
    if (base1 is DerivedA1)
        return ((DerivedA1)base1).Adapt<DerivedA2>();
    if (base1 is DerivedB1)
        return ((DerivedB1)base1).Adapt<DerivedB2>();
    return base1.Adapt<Base2>();
}

static Base1 Map2to1(Base2 base2)
{
    if (base2 is DerivedA2)
        return ((DerivedA2)base2).Adapt<DerivedA1>();
    if (base2 is DerivedB2)
        return ((DerivedB2)base2).Adapt<DerivedB1>();
    return base2.Adapt<Base1>();
}

And I need to setup these mappers:
var config = new TypeAdapterConfig();
config.ForType<Base1, Base2>().ConstructUsing(src => Map1to2(src));
config.ForType<Base2, Base1>().ConstructUsing(src => Map2to1(src));
var adapter = new Adapter(config);

Using this approach I can use adapter.Adapt<Base2>(derivedB1) and still get an instance of DerivedB2.
It would be much more elegant that we don't require such additional methods, but to use the same kind of syntax that AutoMapper is using:
config.ForType<Base1, Base2>().Include<DerivedA1, DerivedA2>().Include<DerivedB1, DerivedB2>();
config.ForType<Base2, Base1>().Include<DerivedA2, DerivedA1>().Include<DerivedB2, DerivedB1>();

I have found the Inherits method, but it doesn't seem to work for this scenario.

Hi, I added Include command in Mapster 3.0 (https://github.com/chaowlert/Mapster/wiki/Config-inheritance), please try. Thx u.

authors: chaowlert ramondeklein

repo: eswann/Mapster


text:
Add FunctionalProps

interface FunctionalProps

actions?:
state?:

This change would make testing the functional components easier.
The top-level component just passes actions & state to its children. It's primary role is composition.
Icons would still use IconProps...

DONE


text:
Typo

dans le README.md
défibrilateur → défibrillateur

Merci ! Je vais en profiter pour réécrire le README, qui est obsolète #90

De rien. J’ai pris l’habitude de passer Grammalecte sur « nos* » pages quand j’y cherche des informations.

en tant qu’agent public.

authors: AntoineAugusti ele-gall-ac-mineducation


text:
我想问下index.html上的{% %} 的那两段是什么意思

{% for (var css in o.htmlWebpackPlugin.files.css) { %}
    <link href="{%=o.htmlWebpackPlugin.files.css[css] %}" rel="stylesheet">
 {% } %}

和这个
{% for (var chunk in o.htmlWebpackPlugin.files.chunks) { %}
    <script src="{%=o.htmlWebpackPlugin.files.chunks[chunk].entry %}"></script>
 {% } %}

这个应该是用到了ejs模板引擎吧

authors: chenjinguang zeybar

repo: eteplus/vue-sui-demo


text:
Violence styles (UltraChess included)

how the fuck do i make pull requests
anyways, adds all violence style bonuses (excl. Corpse variants for enviromental kills)
added chess style bonuses
yeah, they all work, i tested them myself

Many thanks

authors: UntotenTheo eternalUnion

repo: eternalUnion/UltrakillStyleEditor


text:
Requirement for Substantial Sepolia Quantities

Hello everyone,
I kindly request 9800 sepolia ETH to be sent to the following address: 0xd0A2E844A4DE367C6587b4612Da87a6e874Cd2Ca.
These funds are crucial for advancing security projects that heavily rely on having ETH on various testnets: L1 (ETH sepolia), L2 (ARB sepolia), and OP sepolia. Your assistance in this matter is greatly appreciated as it will facilitate the continued development of these projects.
Thank you for your support.

Hi @q9f  pls!

Please make the request in this repository instead: https://github.com/ethpandaops/fundingvault/

authors: BrunoBill parithosh

repo: eth-clients/sepolia

license: Unlicense


text:
[test] Add tests for SPEC-ACCEL benchmarks

Please don't fry me for my creative use of the singlesource build_system. I need a separate build
step to run the provided install script, otherwise I don't have enough time for the benchmarks.
But the spec scripts don't expose any of the compilation for the build_system to take care of, so
I gave it something useless to do.
Feature request for a build_system with user defined build_cmd?

@sebkelle1 Regarding your comment about the build system, we had issue #301 for creating a generic one, but we decided to close it, because you could essentially achieve any type of custom builds through the current basic build systems. So your use of the SingleSource build system with  prebuild commands is not strange, especially when you have to deal with strange setups.

repo: eth-cscs/reframe


text:
✨ Contribution Opportunity: Convert Echinda tests to Forge invariants

What is a Contribution Opportunity?
A Contribution Opportunity is a concrete task that you can work on to contribute to the Optimism Collective.

Summary
The smart contracts for Optimism’s upcoming Bedrock launch includes a suite of Echidna tests which use Echidna for property testing. These contracts also have a suite of Forge invariant tests. In order to standardize tooling, OP Labs is looking for contributors to help convert the Echidna tests into to Forge invariant tests.
Please refer to the corresponding GitHub issue for more information.
Impact
Standardization is important to making sure that we’re covering every possible case with our invariant test suite and that we’re not missing anything because tests are split between two different frameworks.
Resources

Bedrock
Echidna

Hello! I want to express my interest in contributing this task and ask a clarifying question:

Is it possible if I want to implement new invariants? In that case do you have contract to get more information?

You can reach me here or:
email: ratixoxo@gmail.com
Kind Regards,
Rati

Hi @Ratimon, I'm glad you're interested in this task! Adding new invariants is also always useful. I will ask the OP Labs smart contracts team for more information about the list of invariants that are not currently being tested.

@smartcontracts Hi, I note that this issue (https://github.com/ethereum-optimism/optimism/issues/4980) is now resolved : ).

authors: Ratimon smartcontracts


text:
Setup whitelist as OVM precompile

Description
This PR sets up the previously created DeployerWhitelist to be an OVM precompile, and fixes the context before it is called, so that it may use OVM storage.
Usage

The whitelist is associated with OVM address 0x4200000000000000000000000000000000000002.
The whitelist now uses function initialize(address _owner, bool _allowArbitraryDeployment) in place of a constructor.

Contributing Agreement

[x] I have read and understood the Optimism Contributing Guide and Code of Conduct and am following those guidelines in this pull request.

Obviously lots that could be cleaned up in the future, but this looks fine for now and can be simplified when we move to contracts v2.

authors: ben-chain kfichter

repo: ethereum-optimism/optimism-monorepo


text:
Restrict editor size while resizing

If the area for the editor is already quite small and the browser window width is decreased, it can happen that the editor receives a zero width or even negative width with the effect that it is not even possible to resize the right hand panel anymore. With every change to the layout, we should force a certain minimum size of the editor. This should also work if I open remix with empty localstorage in a small browser window.

Already included in https://github.com/ethereum/browser-solidity/pull/649

authors: chriseth ninabreznik

repo: ethereum/browser-solidity


text:
Phase 0 state transition checklist—take 5

(See #128, #218, #322, #675 for takes 1, 2, 3, 4.)
This issue keeps track of possible phase 0 state transition function changes.

[ ] 1. BLS12-381 standardisation: See here.
[ ] 2. Big vs little byteorder of hash_tree_root inputs: See also #556.
[ ] 3. Performance parameters fine-tuning: E.g. review SLOTS_PER_EPOCH and SHARD_COUNT based on benchmarks.
[ ] 4. Issuance schedule: Enact schedule whereby 2**21 ETH is issued per year when 2**27 ETH is at stake.
[ ] 5. Better aligned micro-incentives: Make crosslink incentives proportional to number of epochs in a crosslink. Make matching head incentives proportional to head slot vs target slot.
[ ] 6. Stateless withdrawal credentials: Consider not storing withdrawal credentials. See #937.
[ ] 7. Remove MIN_ATTESTATION_INCLUSION_DELAY: Consider reworking logic so that MIN_ATTESTATION_INCLUSION_DELAY == 1, and remove constant.
[ ] 8. Remove transfers: Consider completely removing the Transfer operation, going beyond MAX_TRANSFERS = 0. We want to do a practice hard fork that add a field to an SSZ object (in this case, adding the transfers field to BeaconBlockBody).
[ ] 9. Last slot vs first slot epoch transitions: See #1043.
[ ] 10. Merged historical stats: Consider merging latest_randao_mixes, latest_active_index_roots, latest_slashed_balances into a single SSZ object.
[ ] 11. More historical stats: Store the last 8 months of historical lists so that historical start shards can be recomputed.
[ ] 12. Crosslink lengths: Fix #1034.
[ ] 13. Bitfields/bigints/generalised indices: See #1019.
[ ] 14 Fine-tune object field ordering: See #917.
[ ] 15 Crosslink in AttestationData: See #1044.
[ ] 16 Exit fee: See https://github.com/ethereum/eth2.0-specs/pull/850#issuecomment-478068655.

Big-endian vs little-endian hash_tree_root: See #556.

What are the places where little endian is still used in the hash tree root?
I have a strong preference toward not, for example, reversing the bytes of hashes the way bitcoin does. I had to deal with that as an implementer and it was painful. Endianness should be purely a convention about how we serialize things that are integers within the eth2 spec; we should be treating everything outside the eth2 spec proper (eg. hash algorithms, BLS signature and BLS pubkey serialization...) as black boxes that just give us bytes.

What are the places where little endian is still used in the hash tree root?

To only place is byteorder when calling to_bytes on a uintN for N in [16, 32, 64, 128, 256]. This affects, for example, hash_tree_root of a slot number (of type uint64).
It's confusing that "endianness" is used for both bits and bytes. What about using big/little "byteorder" and "bitorder" instead?

we should be treating everything outside the eth2 spec proper (eg. hash algorithms, BLS signature and BLS pubkey serialization...) as black boxes that just give us bytes

Agreed :)

Ah sorry, meant to ask where big endian is used in tree hash root. To me it seems obvious that if SSZ serialization uses little endian then so should SSZ tree hashing, so I don't see the issue....
Bitorder is only relevant for bitfields, correct?

Better aligned micro-incentives: Make crosslink incentives proportional to number of epochs in a crosslink. Make matching head incentives proportional to head slot vs target slot.

This is arguably a bad idea, because the total payment that validators get would potentially be larger (!!!) if they skip crosslinks. That is:

Honest strategy: (100% vote) (100% vote) (100% vote) (100% vote)
Honest reward: 1 + 1 + 1 + 1 = 4
Evil strategy: (60% vote) (60% vote) (60% vote) (100% vote)
Evil reward: 0.6**2 + 0.6**2 + 0.6**2 + (1 * 4) = 5.08 (or if we're even stupider with the implementation: 0.6**2 + (0.6**2 * 2) + (0.6**2 * 3) + (1 * 4) = 6.16)

16 Exit fee: See #850 (comment).

Do we want an exit fee or a minimum time online? We already have this:
    # Verify the validator has been active long enough
    assert get_current_epoch(state) >= validator.activation_epoch + PERSISTENT_COMMITTEE_PERIOD

Consider completely removing the Transfer operation, going beyond MAX_TRANSFERS = 0. We want to do a practice hard fork that add a field to an SSZ object (in this case, adding the transfers field to BeaconBlockBody).

I'm not seeing much value here especially considering clients already have this functionality built and tested. If we sequester Transfer to another fork in between 0 and 1, we would have to define a whole state transition file for the in between fork. Coordinating a production fork around a constant change is significant enough IMO

Last slot vs first slot epoch transitions

Down to get on a call to convince you that this is still not the proper path  :)

All items except (16) have been addressed. Closing this in favor of specific issue on exit fee #1521

authors: JustinDrake djrtwo vbuterin


text:
✨ feat(fw,fill,cli): Default evm logs

🗒 Description
The PR adds a default location for evm logs (--evm-dump-dir) when filling tests. Please review if the proposed directory is appropriate.
🔗 Related Issues
closes #978
✅ Checklist

[ ] All: Set appropriate labels for the changes.
[x] All: Considered squashing commits to improve commit history.
[x] All: Added an entry to CHANGELOG.md.
[x] All: Considered updating the online docs in the ./docs/ directory.
[x] Tests: All converted JSON/YML tests from ethereum/tests have been added to converted-ethereum-tests.txt.
[x] Tests: A PR with removal of converted JSON/YML tests from ethereum/tests have been opened.
[x] Tests: Included the type and version of evm t8n tool used to locally execute test cases:  e.g., ref with commit hash or geth 1.13.1-stable-3f40e65.
[x] Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.

Added a fix for the failing tox tests: If the test being filled does not live under ./tests, the output directory to dump the evm logs could not be calculated correctly.
Will merge once the CI passes.

authors: marioevz raxhvl

repo: ethereum/execution-spec-tests


text:
Migrate imports from eth.utils to eth_utils

Fixes #1454
What was wrong?
There are currently many small utility functions that exist in eth.utils but also exist in the standalone eth_utils library by now. These functions should really be imported from eth_utils and removed from this code base.
Also added PEP8 fixes :wink:
How was it fixed?
Using this PR
Cute Animal Picture

@cburgdorf review

@aashutoshrathi Thank you for the PR. I'll review it on (my) Monday which means in about 15 hours or so :)

ping @cburgdorf

Merged! :sparkles:  Thank you for your contribution :clap:

authors: aashutoshrathi cburgdorf

repo: ethereum/py-evm


text:
Please archive this repo

It's really confusing to python engineers getting into this space looking to use this repo since it's deprecated.
Can you please point all users who reach here to get re-routed to py-solc-x that is maintained? As someone who cares deeply about the ETH community, it really frustrating for new people to show up, expect to be able to use something, and then nothing works correctly.
https://github.com/iamdefinitelyahuman/py-solc-x

Frustrating indeed

authors: PatrickAlphaC vitor-alves

repo: ethereum/py-solc


text:
Error in setup.py

I am getting following error related to RLP when installing pythereum, using command
python setup.py install
These are the last few lines of above command's output:
Processing dependencies for pyethereum==0.8.52-113-ga6f6299
Searching for rlp>=0.3.2
Reading https://pypi.python.org/simple/rlp/
Best match: rlp 0.3.2
Downloading https://pypi.python.org/packages/source/r/rlp/rlp-0.3.2.tar.gz#md5=8b984ae2aaf1a6aa38f3f08c4551610a
Processing rlp-0.3.2.tar.gz
Writing /tmp/easy_install-rBnneL/rlp-0.3.2/setup.cfg
Running rlp-0.3.2/setup.py -q bdist_egg --dist-dir /tmp/easy_install-rBnneL/rlp-0.3.2/egg-dist-tmp-VNeHqm
error: [Errno 2] No such file or directory: 'README.md'
Also, in the start these two warnings came. Will those have effect on the setup later??
warning: no files found matching 'features/.feature'
warning: no files found matching 'features/steps/.py'

fixed in cfb4b700ea1e588d6bac7091e9db4a1570e3334a
should work with new rlp version (rlp 0.3.3)

repo: ethereum/pyethereum


text:
State Transition Optimizations

What is wrong?
The state transition function is too slow for testnet participation.
How can it be fixed
Some possible optimizations:

https://github.com/ethereum/trinity/pull/1753#discussion_r441802115
https://github.com/ethereum/trinity/pull/1753#discussion_r441803792
https://github.com/ethereum/trinity/pull/1753#discussion_r441778038

We should also have benchmarks to help see improvements and find hotspots.

Some numbers on syncing Altona (peering w/ local Lighthouse node that is already synced)

unoptimized state transition: ~0.25 slots/second
adding caches for commonly called functions in state transition: ...
adding optimizations from eth2fastspec: ...

authors: g-r-a-n-t ralexstokes

repo: ethereum/trinity


text:
chore(openapi): update and bump versions

Checklist

[ ] I have read the coding guide.
[ ] My change requires a documentation update, and I have done it.
[ ] I have added tests to cover my changes.
[ ] I have filled out the description and linked the related issues.

Description
Updated the openapi spec. During the update I found some small issues which are now fixed. Also bump of versions and revert of temporary fix for reachability.

@NoahMaizels Check the docs. Let me know if you have any questions.

repo: ethersphere/bee


text:
Remove all sorts of nonsense from segment constructors

we have way too many fields in the segment constructor. wtf

done in #180

repo: ethteck/splat


text:
Docs publishing uses invalid github event for release 1.7.1

Bug Description
Docs publishing failed for release 1.7.1
workflow - https://github.com/ethyca/fides/runs/7567297168?check_suite_focus=true
Steps to Reproduce

Release a new release
boom

Expected behavior
We should publish new version of docs on releases
Additional context
#901 Fixed the docker release not working. This was not working before because the docker logic was depending on a release event github.event.release.tag_name. This didnt work because the docker event is actually a push event, not a release event. Unfortunately this fix was also applied to the docs workflow but this one actually is triggered by a release event.

@earmenda I just updated the fidesops repo to use the same docker workflow. From the description it sounds like the docker workflow runs just fine? It's only the docs workflow that breaks?

@earmenda I just updated the fidesops repo to use the same docker workflow. From the description it sounds like the docker workflow runs just fine? It's only the docs workflow that breaks?

Correct @ThomasLaPiana  👍🏽 Docker looks sharp -> https://hub.docker.com/r/ethyca/fidesctl/tags

@earmenda I just updated the fidesops repo to use the same docker workflow. From the description it sounds like the docker workflow runs just fine? It's only the docs workflow that breaks?

@ThomasLaPiana  Right, the change is to the docs.

authors: SteveDMurphy ThomasLaPiana earmenda

repo: ethyca/fides


text:
Add a deploy command to fides

Closes #1115
Code Changes

[x] add a deploy command to the CLI
[x] verify docker and docker-compose versions before running the app
[ ] add the docker-compose.yml file to the manifest, and whatever else needs to get added...

Steps to Confirm

[ ] list any manual steps taken to confirm the changes

Pre-Merge Checklist

[ ] All CI Pipelines Succeeded
Documentation Updated:

[ ] documentation complete, or draft/outline provided (tag docs-team to complete/review on this branch)
[ ] documentation issue created (tag docs-team to complete issue separately)

[ ] Issue Requirements are Met
[ ] Relevant Follow-Up Issues Created
[ ] Update CHANGELOG.md

Description Of Changes
Write some things here about the changes and any potential caveats

closing due to change issues, will open a new one


text:
Fix Quickstart and Tutorial

Purpose
The quickstart (make quickstart) was broken by the fire and forget behavior and the tutorial was broken when we moved several endpoints from PUT -> PATCH https://github.com/ethyca/fidesops/pull/53
Changes

In the quickstart, wait for the access request package to appear in fides_uploads in a while loop, since this request is no longer synchronous
Update the relevant requests to be PUT instead of PATCH in the tutorial instructions

Checklist

[x] Applicable documentation updated (guides, quickstart, postman collections, tutorial, fidesdemo, database diagram
[x] Good unit test/integration test coverage

Ticket
Fixes #121

thank you for the quick review on this @eastandwestwind ⭐

repo: ethyca/fidesops


text:
hfnet inference with C++

Hi everyone, Thanks for @Skydes 's great work. hf-net is a state-of-the-art method in visual localization. But the origin inference code is written with Python. I modified the inference part with c++, also provide a docker image, I guess it is more convenient integration into other projects. (slam  or vio system)
The code is here:
https://github.com/TurtleZhong/hfnet_ros

Cool work, thanks for sharing it! Glad to see it running so fast. I am now closing this issue - feel free to reopen.

authors: Skydes TurtleZhong

repo: ethz-asl/hfnet


text:
Undefined symbols for architecture x86_64:   "Nabo::NearestNeighbourSearch<double, Eigen::Matrix<doubl...

I'm running the following:
Mac OS X version 12.6.6
gcc version Apple clang version 14.0.0 (clang-1400.0.29.202)
Homebrew 4.0.20
boost: stable 1.81.0 (bottled), HEAD
git version 2.40.1
cmake version 3.26.4
eigen: stable 3.4.0 (bottled), HEAD
Followed directions for Mac OS X and got down to this when making libpointmatcher:
[ 92%] Linking CXX executable icp_simple
Undefined symbols for architecture x86_64:
"Nabo::NearestNeighbourSearch<double, Eigen::Matrix<double, -1, -1, 0, -1, -1> >::create(Eigen::Matrix<double, -1, -1, 0, -1, -1> const&, int, Nabo::NearestNeighbourSearch<double, Eigen::Matrix<double, -1, -1, 0, -1, -1> >::SearchType, unsigned int, Nabo::Parameters const&)", referenced from:
MatchersImpl::KDTreeMatcher::init(PointMatcher::DataPoints const&) in libpointmatcher.a(MatchersImpl.cpp.o)
MatchersImpl::KDTreeVarDistMatcher::init(PointMatcher::DataPoints const&) in libpointmatcher.a(MatchersImpl.cpp.o)
TensorVoting::computeKnn(PointMatcher::DataPoints const&) in libpointmatcher.a(Saliency.cpp.o)
TensorVoting::computeKnn(PointMatcher::DataPoints const&) in libpointmatcher.a(SpectralDecomposition.cpp.o)
"Nabo::NearestNeighbourSearch<float, Eigen::Matrix<float, -1, -1, 0, -1, -1> >::create(Eigen::Matrix<float, -1, -1, 0, -1, -1> const&, int, Nabo::NearestNeighbourSearch<float, Eigen::Matrix<float, -1, -1, 0, -1, -1> >::SearchType, unsigned int, Nabo::Parameters const&)", referenced from:
MatchersImpl::KDTreeMatcher::init(PointMatcher::DataPoints const&) in libpointmatcher.a(MatchersImpl.cpp.o)
MatchersImpl::KDTreeVarDistMatcher::init(PointMatcher::DataPoints const&) in libpointmatcher.a(MatchersImpl.cpp.o)
TensorVoting::computeKnn(PointMatcher::DataPoints const&) in libpointmatcher.a(Saliency.cpp.o)
TensorVoting::computeKnn(PointMatcher::DataPoints const&) in libpointmatcher.a(SpectralDecomposition.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

It seems related to libnabo not being found. Any idea what changed in your build procedure?

Worked totally fine on my Mac Book Pro running 13.4 but not on my old trashcan Mac.  Is it possible it sees an old copy of libnabo from a previous libpointmatcher build from a few years ago?
On Jun 6, 2023, at 8:17 PM, François Pomerleau @.***> wrote:
It seems related to libnabo not being found. Any idea what changed in your build procedure?
—
Reply to this email directly, view it on GitHub https://github.com/ethz-asl/libpointmatcher/issues/514#issuecomment-1579635431, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACRPLIWWBQVOD6G2LLT4ZD3XJ7CBBANCNFSM6AAAAAAYXEYXXE.
You are receiving this because you authored the thread.

I'm having a similar issue. I'm building a docker image for ARM. But I ran this same thing about a month ago with no issues. Now it looks like it has issues compiling the examples.

At the start of the compilation it says libnabo found. Is there an environment variable or CMake flag that needs to be set?

Sure enough it did build if I don't build the examples using the cmake flag -DPOINTMATCHER_BUILD_EXAMPLES=OFF
So there's something specific with the examples that it can't find libnabo maybe?

@drhalftone can you check if the proposed PR #513 resolve your issue?

That seems to have worked for me hopefully it works for @drhalftone

Should be resolved with #513

authors: Brac24 drhalftone pomerlef

repo: ethz-asl/libpointmatcher


text:
Create page about internal datasets in documentation

🚀 Feature Request
We want to add information about internal datasets in the documentation to help users work with them.
Proposal
Add a page with information about each internal dataset:

dataset name
dataset description
reference link
information about dataset parts (e.g. train, test, full)

Test cases
No response
Additional context
We can use pmdarima as example.

Closed by https://github.com/etna-team/etna/pull/175.

repo: etna-team/etna


text:
[Android-Wallet-App] Credential is claimend in Wallet, but the content is not diplayed except for raw data

Describe the bug

Expected behaviour

Steps to reproduce the issue

Technical details

Host Machine OS (Windows/Linux/Mac):

Possible Fix

Additional context

tvt, 11.05.2022: No Bug because there is no requirement about how the content should be structured and displayed.
But the raw-datas are displayed on the screen for the user.

authors: RalicaY ltranvan


text:
Reformulate node to root for method insert() in AVL tree

From:
    private Node insert(Node node, int key) {
         if (node == null) {
             return new Node(key);
         } else if (node.key > key) {
             node.left = insert(node.left, key);
         } else if (node.key < key) {
             node.right = insert(node.right, key);
         } else {
             throw new RuntimeException("duplicate Key!");
         }
         return rebalance(node);
     }

To:
    private Node insert(Node root, int key) {
         if (root == null) {
             return new Node(key);
         } else if (root.key > key) {
             root.left = insert(root.left, key);
         } else if (root.key < key) {
            root.right = insert(root.right, key);
         } else {
             throw new RuntimeException("duplicate Key!");
         }
         return rebalance(root);
     }

This will make it clear that rebalancing has to happen at the root in order to maintain AVL property (all nodes should not differ by at most 1 [1, 0, -1]).

N.B. probably article https://www.baeldung.com/java-avl-trees#insert-node-avl should be updated as well to reflect this change.

Hey, @alghe-global.
Thanks for the feedback. We'll look into this and update the article if necessary.
This issue will remain open until then.

Hi @alghe-global - we renamed the variable for clarity sake and updated the article.

authors: alghe-global kasramp ulisseslima

repo: eugenp/tutorials


text:
Add service & deployment definitions under src/main/yaml

(for better user-friendliness)

Thanks @haqer1

retest this please


text:
Is there a way to read a page without reading the whole file?

I have a 225 MB PDF file with lots of charts, graphs, and images, and it takes a very long time to parse the entire file. The thing is, I only need data from the first 5 pages of the file. In PyPDF2, this is accomplished like this:
import PyPDF2

pdf_file = open(file, 'rb')
read_pdf = PyPDF2.PdfFileReader(pdf_file)

for i in range(0, 5):
    page = read_pdf.getPage(i)
    page_content = page.extractText()

This gets the page content of the first 5 pages in under a second. I try to replicate this with pdfminer by doing:
for page in PDFPage.get_pages(pdf_file, pagenos=[0, 1, 2, 3, 4]):

But the program stops here for what feels like a decade. This tells me it isn't just getting the first 5 pages, but is first parsing the entire file, and then getting the pages I need. Is there any way to just get the pages as I would like to do here? If not, I would suggest it as a feature.
I would just use PyPDF2, but pdfminer is much more accurate at extracting text.

One possible way is that you can combine both pdfminer and PyPDF2. You can
use PyPDF2 to get the first five pages and make a new PDF out of it and
then parse that PDF with pdfminer.
On Friday, April 6, 2018, Michael Phillips notifications@github.com wrote:

I have a 225 MB PDF file with lots of charts, graphs, and images, and it
takes a very long time to parse the entire file. The thing is, I only need
data from the first 5 pages of the file. In PyPDF2, this is accomplished
like this:
import PyPDF2
pdf_file = open(file, 'rb')
read_pdf = PyPDF2.PdfFileReader(pdf_file)
for i in range(0, 5):
page = read_pdf.getPage(i)
page_content = page.extractText()
This gets the page content of the first 5 pages in under a second. I try
to replicate this with pdfminer by doing:
for page in PDFPage.get_pages(pdf_file, pagenos=[0, 1, 2, 3, 4]):
But the program stops here for what feels like a decade. This tells me it
isn't just getting the first 5 pages, but is first parsing the entire file,
and then getting the pages I need. Is there any way to just get the pages
as I would like to do here? If not, I would suggest it as a feature.
I would just use PyPDF2, but pdfminer is much more accurate at extracting
text.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/euske/pdfminer/issues/215, or mute the thread
https://github.com/notifications/unsubscribe-auth/AVZ_fejdfuRpwCp61sdSfE6Vhcjg_wdvks5tl4JdgaJpZM4TKMa8
.

--
Abhishek Jain

Try something like this... Where the "maxpages" is set to 5.

with open(filepath, 'rb') as filein:

    interpreter = PDFPageInterpreter(rsrcmgr, device)
    password = ""
    maxpages = 5
    caching = True
    pagenos=set()
    count=0
    for page in PDFPage.get_pages(filein, pagenos, maxpages=maxpages, password=password, caching=caching, check_extractable=True):
        interpreter.process_page(page)

authors: TomOfHelatrobus abhishek-27 mphilli

repo: euske/pdfminer


text:
Unable to connect RPC server

@evaluationcopy
First of all thanks for this image.
I am trying to to connect Doge within PHP. I am getting the following error:
Fatal error: Uncaught GuzzleHttp\Exception\ConnectException: cURL error 52: Empty reply from server (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for http://127.0.0.1:22556/ in

Why is it sending an empty response? I had not found a dogecoin.conf  so I created one in the folder /root/.dogecoin with the following content only:
regtest=1
server=1
rpcuser=rpcuser
rpcpassword=regtest=1
rpcport=22556

And I am initiating the container as docker run -p 22556:22556  --name dogecoin_latest evaluationcopy/dogecoin-node:latest
What am I doing wrong here?

Your config file is using port 22556 as the rpc port.  Port 22556 is usually the dogecoin port and port 22555 is usually the rpc port.
My docker image exposes port 22556, but not 22555.  The rocker run command will have to be updated in order to expose port 22555..
Instead of running:
docker run -p 22556:22556 --name dogecoin_latest evaluationcopy/dogecoin-node:latest
Try something like...
docker run -p 22556:22556 -p 22555 --name dogecoin_latest evaluationcopy/dogecoin-node:latest
Of course update the dogecoin.conf to set the rpc port back to 22555.  I'll mention I didn't get the test out the command line above, it's possible more is needed to expose the port as the dockerfile I created exposes port 22556 only.

authors: evaluationcopy kadnan

repo: evaluationcopy/dogecoin-node


text:
Migrations

architecture

Architecture

repo: evansuslovich/django-react-app


text:
Fix RangeError on large files

When the source file and/or the source map URL is sufficiently large (think several MB) the regexp search to find the URL can run into this issue: https://code.google.com/p/v8/issues/detail?id=3878
Change the regexp to look just for the prefix and extract the URL using substring, which scales better.
This now doesn't pay attention to single and double quotes anymore, reading the spec there seems to be no need for it. Do you know of quoted source map URLs in the wild?
FWIW we've run into the RangeError with a large webpack development bundle on Chrome Version 43.0.2357.130 (64-bit).

Any update on this? It fixes our maximum call stack issues and would be nice to have merged.

@glortho yup, very little movement here. But I just noticed that there is #87, are you still running into the RangeError with that?

authors: glortho jscheid

repo: evanw/node-source-map-support


text:
Tesla Powerwall Battery Control not working anymore

Describe the bug
The Feature to decide weather to use the Battery or not while charging in "now" or "planned mode" is not working anymore.
I allowed evcc access via tesla.evcc.io but nevertheless I get an error while starting evcc.
[main  ] FATAL 2024/01/26 16:06:11 cannot create meter 'my_battery': cannot create meter type 'template': cannot create meter type 'powerwall': Get "https://owner-api.teslamotors.com/api/1/energy_sites/<...>/site_info": oauth2: cannot fetch token: 400 Bad Request Response: [main  ] FATAL 2024/01/26 16:06:11 will attempt restart in: 5m0s
In addition to that, it would be nice to be able to define the default SoC evcc sets at the powerwall via Webinterface or yaml.
Background to that, I have a Tesla Powerwall 2 with Gateway 1 (without Backuprecovery), because of that I am not able to set the SoC Value for the Powerwall within the Tesla app, but the lock mechanism worked in the past, but I cant change it.
Steps to reproduce

Own an Tesla Powerwall 2 (with Gateway 1)
Configure Refreshtoken + SiteID for tesla-powerwall
Run evcc

Configuration details
- name: my_battery
    type: template
    template: tesla-powerwall
    usage: battery
    host: <..> # IP-Adresse oder Hostname
    password: <..>
    refreshToken: <..>
    siteId: <..>

Log details
[main  ] FATAL 2024/01/26 16:06:11 cannot create meter 'my_battery': cannot create meter type 'template': cannot create meter type 'powerwall': Get "https://owner-api.teslamotors.com/api/1/energy_sites/<...>/site_info": oauth2: cannot fetch token: 400 Bad Request
Response:
[main  ] FATAL 2024/01/26 16:06:11 will attempt restart in: 5m0s

What type of operating system are you running?
Docker container
Version
0.123.9 (28f74708)

@GrimmiMeloni that's bad and currently not fixable. See https://github.com/evcc-io/evcc/issues/11846

Workaround: disable battery control
@GrimmiMeloni for time being we should remove advertised functionality from the template?

Workaround: disable battery control
@GrimmiMeloni for time being we should remove advertised functionality from the template?

Yes.
I just did a capture of my Tesla App traffic. The silver lining here is, that the actual API for the battery control has not changed. This seems to be purely about authentication related changes. However, it is not as complicated as with the vehicles and their certs.

Workaround: disable battery control
@GrimmiMeloni for time being we should remove advertised functionality from the template?

Yes.

@andig hold that. I just spun up a copy from master and I can still successfully boot up using my refresh token, and it also fetches the energy site information.
@FlNDUS can you provide a trace log for powerwall from your instance? If privacy is a concern, you can also send via Slack.

Does the twc not need certs for sending commands now?

Apparently not. Based on my observations earlier it still works with a plain access token as before.
My best guess at this point is, that my refresh token from „way back when“ somehow differs (claims?, scopes?) from more recent ones. @FlNDUS and mywelf will have to compare a bit what we see individually to better understand what has changed.
As a side note, there was a firmware update rolled to the Tesla Energy Gateways this week, so far my understanding is though that this only affects the local API.

Just as another follow up. I just created an entire new set of tokens via https://github.com/adriankumpf/tesla_auth. Even with that new regenerated refresh_token I can successfully start and see the energy_site data fetched on start.
So it is does not seem to be a generic problem (yet). But could be of course that Tesla is migrating users or something behind the scenes.

So- anything to do here?

So- anything to do here?

Not sure. Let's at least wait for @FlNDUS to followup on the log request, so that we can have a closer look.

Worth noting: using tesla.evcc.io we're currently not requesting the energy products scope so the new tokens at this time cannot be used in any command scenario.

Good to know my token is created using tesla.evcc.io. Should I use/create a different token then?
I have limited access right now(just my phone), will follow-up as soon as I can. @GrimmiMeloni will send you the trace via Slack like before.

You might want to check your refresh token for differences, here's the payload section of mine which I created yesterday.
{
  "iss": "https://auth.tesla.com/oauth2/v3",
  "aud": "https://auth.tesla.com/oauth2/v3/token",
  "iat": 1706349992,
  "scp": [
    "openid",
    "offline_access"
  ],
  "ou_code": "EU",
  "data": {
    "v": "1",
    "aud": "https://owner-api.teslamotors.com/",
    "sub": "<MY-UUID>",
    "scp": [
      "openid",
      "email",
      "offline_access"
    ],
    "azp": "ownerapi",
    "amr": [
      "pwd"
    ],
    "auth_time": 1706349992
  }
}

@GrimmiMeloni  for clarity: your token is NOT created on tesla.evcc.io, right?

@GrimmiMeloni for clarity: your token is NOT created on tesla.evcc.io, right?

Correct. The one shown above was created via https://github.com/adriankumpf/tesla_auth.

So I updated to the current nightly and created a new token via https://github.com/adriankumpf/tesla_auth now it works again.
Do you still need the logs then @GrimmiMeloni ?

No need. Glad to hear it works.

I'm wondering why that is: the refresh token should not refresh unless using the evcc ClientID plus would have a different audience (i.e. not owners API)- seems it still does, reason unclear.
Also noted that powerwall uses refreshtoken while most other devices use
tokens:
  refresh: xyz

for the same purpose. Small consistency issue.

seems it still does, reason unclear.

Theory: @FlNDUS is also driving a Tesla and hence he was motivated to get a new refresh Token for the sake of getting control of his car back, after the recent changes with the Fleet API. Hence he exchanged the refresh token in his config, and also replaced the one for the powerwall.

Small consistency issue.

True - on the flipside, as putting ephemeral access tokens into the config does not make sense, the "tokens" structure would have only contained one subelement. 🤷♂  Do other devices have more elements in there?

They do, but really only refresh is needed. Maybe we should update the other way round ;)

authors: FlNDUS GrimmiMeloni andig

repo: evcc-io/evcc


text:
HASSIO: Adjust hassio config.json to map all data relevant directories

Describe the bug
In HASSIOs config.json only "config" is a mapped volume to hassio host.
Which mappings have to be configured for sqlite database and other configurations like SOC limit for chargers, soc handling for battery ?!
Steps to reproduce
Update HASSIO version of evcc..
Sometimes many configs are gone...
Configuration details
network:
  # schema is the HTTP schema
  # setting to `https` does not enable https, it only changes the way URLs are generated
  schema: http
  # host is the hostname or IP address
  # if the host name contains a `.local` suffix, the name will be announced on MDNS
  # docker: MDNS announcements don't work. host must be set to the docker host's name.
  host: xxx
  # port is the listening port for UI and api
  # evcc will listen on all available interfaces
  port: 7070

interval: 30s # control cycle interval. Interval <30s can lead to unexpected behavior, see https://docs.evcc.io/docs/reference/configuration/interval

#database configuration for persisting charge sessions and settings
#database:
#   type: sqlite
#   dsn: /config/evcc.db

Log details
none

What type of operating system are you running?
HomeAssistant Add-on
Version
0.130

Did you change any Add-On configuration defaults? The default paths are
config_file: /config/evcc.yaml
sqlite_file: /data/evcc.db

and that's quite fine. /data is a persistent volume which is only accessible to that specific addon. More documentation can be found here https://developers.home-assistant.io/docs/add-ons/configuration/

authors: Frintrop goebelmeier


text:
TxProfile rejected

For https://github.com/evcc-io/evcc/discussions/8138 discussion. Do not commit.

@andig Ich würde dafür votieren generell auf TxDefaultProfile umzustellen. Das scheint mir auch bei anderen Boxen die Probleme zu mindern bzw. kompatibler zu sein.

Hold your horses. I'm still having reliability issues with this. I am still experimenting. Anyway, the problem with TxDefaultProfile is that it's simply not how this should work. If anybody else sets a TxProfile then that will overrule TxDefaultProfile and evcc can´t regulate anymore.

This is a structural fix.

Gibts hier noch was zu tun? M.E. Bugfix bei ABB?

No, see https://github.com/evcc-io/evcc/discussions/8138 . ABB firmware was according to spec after all. I would like to see my car charging properly tomorrow and if successful then I'll click this through to review for you to integrate. I don´t know how to make this a separate PR though, sorry.

Full ack after reading the spec. It seems that our OCPP library does not follow the spec in this regard.

Car still charging today. Looks ok to me. PLease integrate.

Thank you so much for troubleshooting and fixing this!

Hey, this will not work! The duplicate function was there for a reason (or you can solve it with an IF statement if you want). The transactionId can only be passed in setChargingProfile, but not in a RemoteStartTransaction (the transaction is still to be started, so the transactionId is unknown and the spec does not allow it).

Did you try? An unknown txn id is 0 which is the zero value for integers. Due to omitempty, Go will not include this in the json.

I will give it a try...

Having trouble to test this. I am getting other errors with 0.120.2 , which I can´t really pin down to a specific cause.

Please start discussion with logfile. Be aware of https://github.com/evcc-io/evcc/issues/10029. Lets close here- this has already been confirmed working.

This is working for me.

authors: andig c-po pjjjv premultiply


text:
Feature - allow user to set x and y axis tick labels

Description

As demonstrated in https://github.com/eventbrite/britecharts/issues/645, users may want to assign a label to each tick value of either x or y axis (or both). This PR adds that ability.
Motivation and Context

https://github.com/eventbrite/britecharts/issues/645
How Has This Been Tested?

Added accessor tests as well as DOM tests.
Screenshots (if appropriate):
barChart.xTicksLabel('@'):

barChart.yTicksLabel('L')

Types of changes

[ ] Refactor (changes the way we code something without changing its functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] I have read the CONTRIBUTING document.
[x] My code follows the code style guide of this project.
[x] I have updated the documentation accordingly.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Hi,
I was looking through the source code. How does the ticklabel mb, gb, etc get calculated? I can't seem to find it anywhere. Thank you!

authors: DalerAsrorov jjphung

repo: eventbrite/britecharts


text:
VSCode Extension overrides other useful VSCode markdown features

Bug Description
When using VSCode for a non-Evidence project, I noticed that the Evidence markdown extension was preventing some of the VSCode functionality from working. For example markdown preview mode does not work with the extension installed
Expected Behavior
Default VSCode markdown features to be supported
Steps To Reproduce

Install Evidence extension from VSCode marketplace
Attempt to launch Markdown Preview (Cmd-Shift-V)

Workarounds

~Uninstall the Evidence extension temporarily~
See docs for best solution right now

Environment Information
Operating System: MacOS, Windows 11
VS Code Version: 1.66.2
Evidence VSCode Extension Version: v0.0.6

I had a similar experience of losing the 'normal' markdown preview experience.
As a workaround, I was able to manually change the file type back to normal markdown.
Ideally we could retain also the generic markdown preview capabilities.

Yes we want to fix this, I think @hughess had a look last week, but it seemed a bit tricky.
Currently our best workaround in the docs - though perhaps that's what you were describing above?

Just had a play around with this, and have something working
Are the shortcuts you are missing:

[ctrl/cmd]+shift+v: markdown preview
[ctrl/cmd]+k v: markdown side panel view

Anything else?

Fixed in #275

authors: aaronsteers archiewood

repo: evidence-dev/evidence


text:
Fix wack inputs requirement

Description
Adds a dummy fetch during SSR to evaluate the page and saturate a map that gets inputs and sql strings from the page
Couldn't get node-async.js working so queries are still evaluated synchronously - not a major concern right now, more of a worry when we're doing motherduck querying, and shouldn't be an impossible fix
Checklist

[x] I have added a changeset

Will this account for nested inputs? (e.g. if I made a filter row component that included dropdowns)

Ah forgot nested inputs was a req, shouldn't be too difficult

Some very hacky stuff is needed for nesting, we could do with more Array.isArray and instanceof QueryStore checks around

Not a blocker but another thought; will this support nested input components?
e.g. if I have some (reusable) report section that has filters on it, will those filters work;
(this is a component not a page)
<Dropdown name="Category" />
<Datepicker name="DayOf" />

<!-- some query -->
<!-- some dataviz -->

It should work, as long as you're getting the inputs store from context properly and everything.

authors: ItsMeBrianD csjh


text:
Make syntax errors not output nothing

i goofed

fixed

repo: evinism/lambda-explorer


text:
Getting Duplicate Notifications (tested on Android)

Hi,
I'm getting duplicate notifications on Android (haven't tested ios). My code is quite simple since I'm just starting out:
export default class NotificationService {
    static initHandler() {
      FCM.on(FCMEvent.Notification, async (notification) => this._handleNotification(notification));
    }
    static _handleNotification(notification) {
      console.log("Got " + notification.messageId);
    }
}

and in App.js
NotificationService.initHandler();
export const App = StackNavigator({
  Login: {screen: Login}
});

When I push a message from the backend service I get the same alert on the phone multiple times. I also keep getting previous alerts. The backend is not the problem. I checked that the backend is sending each notification once and I have the same app implemented 100% in Kotlin which works perfectly.
I'm fairly certain that I'm not registering multiple handlers since I checked that initHandler() is only called once. I'm very new to RN, am I doing something wrong or is there a known issue?

versions:     "react-native-fcm": "^11.0.2" and   "react-native": "0.51.0",
Device: Samsung S8, Android 7.0
This happens no matter what the app state is, foreground, background or stopped (cleared from task list).

Thanks!

Please check settings.gradle file
My issues:- I was calling this twice
include ':react-native-fcm'
project(':react-native-fcm').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-fcm/android')
check this ones

I was getting duplicated notifications because of developing 2 apps with the same package name.
Both were receiving

I had to remove
<receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="${applicationId}" /> </intent-filter> </receiver>
from AndroidManifest.xml

com.google.android.gms.gcm.GcmReceiver still got merged from the expo libs,
had also to clean and rebuild project to resolve this issue

I had to remove
<receiver android:name="com.google.android.gms.gcm.GcmReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="${applicationId}" /> </intent-filter> </receiver>
from AndroidManifest.xml

This is a working hack but it creates one issue that is "We cannot show local notification".

repo: evollu/react-native-fcm


text:
Update cats-effect to 2.3.3

Updates org.typelevel:cats-effect from 2.2.0 to 2.3.3.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.2.0).
You might want to review and update them manually.
project/Dependencies.scala

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.typelevel", artifactId = "cats-effect" } ]

labels: library-update, semver-minor, old-version-remains

Superseded by #95.

repo: evolution-gaming/scache


text:
Update scala-library to 2.13.5

Updates org.scala-lang:scala-library from 2.13.4 to 2.13.5.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Files still referring to the old version number
The following files still refer to the old version number (2.13.4).
You might want to review and update them manually.
.github/workflows/ci.yml

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang", artifactId = "scala-library" } ]

labels: library-update, semver-patch, old-version-remains

Superseded by #80.

repo: evolution-gaming/sstream


text:
Log error appear as info

This project helps me a lot to have a guideline to follow the clean code, so thank you very much.
I'm studying go and forgive me if I did something wrong.
But when I set the log level to error and after creating the configuration, if I call l.error it always appears as info.
I don't know if there's something here that always turns into info or if I'm doing something wrong.
func (l *Logger) log(message string, args ...interface{}) {
	if len(args) == 0 {
		l.logger.Info().Msg(message)
	} else {
		l.logger.Info().Msgf(message, args...)
	}
}

func (l *Logger) msg(level string, message interface{}, args ...interface{}) {
	switch msg := message.(type) {
	case error:
		l.log(msg.Error(), args...)
	case string:
		l.log(msg, args...)
	default:
		l.log(fmt.Sprintf("%s message %v has unknown type %v", level, message, msg), args...)
	}
}

Hi @diogoalbuquerque,
I use the following. Please note that I switch to the pretty logger in case of debug level.
package logger

import (
	"fmt"
	"os"
	"strings"
	"time"

	"github.com/rs/zerolog"
)

// Interface -.
type Interface interface {
	Debug(message interface{}, args ...interface{})
	Info(message string, args ...interface{})
	Warn(message string, args ...interface{})
	Error(message interface{}, args ...interface{})
	Fatal(message interface{}, args ...interface{})
}

// Logger -.
type Logger struct {
	logger *zerolog.Logger
}

var _ Interface = (*Logger)(nil)

// New -.
func New(level string) *Logger {
	var l zerolog.Level

	switch strings.ToLower(level) {
	case "error":
		l = zerolog.ErrorLevel
		break
	case "warn":
		l = zerolog.WarnLevel
		break
	case "info":
		l = zerolog.InfoLevel
		break
	case "debug":
		l = zerolog.DebugLevel
		break
	default:
		l = zerolog.InfoLevel
		break
	}

	zerolog.SetGlobalLevel(l)
	skipFrameCount := 3
	var logger zerolog.Logger
	if l == zerolog.DebugLevel {
		logger = zerolog.New(os.Stdout).Output(zerolog.ConsoleWriter{Out: os.Stderr, TimeFormat: time.RFC3339}).
			With().
			Timestamp().
			CallerWithSkipFrameCount(zerolog.CallerSkipFrameCount + skipFrameCount).
			Logger()
	} else {
		logger = zerolog.New(os.Stdout).
			With().
			Timestamp().
			CallerWithSkipFrameCount(zerolog.CallerSkipFrameCount + skipFrameCount).
			Logger()
	}

	return &Logger{
		logger: &logger,
	}
}

func (l *Logger) formatMessage(message any) string {
	switch t := message.(type) {
	case error:
		return t.Error()
	case string:
		return t
	default:
		return fmt.Sprintf("Unknown type %v", message)
	}
}

// Debug -.
func (l *Logger) Debug(message any, args ...any) {
	mf := l.formatMessage(message)
	l.log(l.logger.Debug(), mf, args...)
}

// Info -.
func (l *Logger) Info(message string, args ...any) {
	mf := l.formatMessage(message)
	l.log(l.logger.Info(), mf, args...)
}

// Warn -.
func (l *Logger) Warn(message string, args ...any) {
	mf := l.formatMessage(message)
	l.log(l.logger.Warn(), mf, args...)
}

// Error -.
func (l *Logger) Error(message interface{}, args ...any) {
	mf := l.formatMessage(message)
	l.log(l.logger.Error(), mf, args...)
}

// Fatal -.
func (l *Logger) Fatal(message interface{}, args ...any) {
	mf := l.formatMessage(message)
	l.log(l.logger.Fatal(), mf, args...)

	os.Exit(1)
}

func (l *Logger) log(e *zerolog.Event, m string, args ...any) {
	if len(args) == 0 {
		e.Msg(m)
	} else {
		e.Msgf(m, args)
	}
}

authors: SebUndefined diogoalbuquerque

repo: evrone/go-clean-template


text:
🛑 My Site is down

In 0934388, My Site ($SECRET_SITE) was down:

HTTP code: 0
Response time: 0 ms

Resolved: My Site is back up in 94a9d39.

repo: exand/upptime


text:
Cannot save or save as from Chrome v86 macOS

Just tried saving a file in Chrome Version 86.0.4240.30 (Official Build) beta (x86_64) on macOS using both 'Save' and 'Save As' and the operation times out with this error:

Also tried with new file in Incognito window and same error:

Tried in latest Chrome Canary and was able to save using that but not in regular Chrome.

Temporarily fixed via https://github.com/excalidraw/excalidraw/pull/2155.

What's this one caused by? I'm on stable 85, and canary on 87 so can't test. Will try to test on beta channel.

I have not seen this error before. Let’s disable the OT for now just to be on the safe side via #2155.

Done. I've tested on 86 (Beta channel) and still can't repro the OP. Maybe it's Mac-only.

@dwelle here's the value (after refresh):
6ea9f2dde46453a6c1cbf073dc8e42bfbbc05d8e

Can save now...thanks for the quick fix.

I'm closing this issue in favor of the newly created Chrome bug: https://bugs.chromium.org/p/chromium/issues/detail?id=1127773. Please star it to be notified of changes.

To the initial poster @joshuaiz: Could you chime in on the Chromium bug, please? Not sure if you have seen it. Thank you!

@tomayac Yep I've seen it - go ahead and close this out. Thanks!

authors: dwelle joshuaiz tomayac

repo: excalidraw/excalidraw


text:
Difficult to selecting overlapping elements

Problem:

It can be very difficult to select an element when it's near to others or overlapping. It often requires several clicks and moving other stuff out of the way or up down z-index.
Once selected, the rectangular bounding box doesn't always make it clear which element is selected.
These little things greatly slow down drawing, disrupt thinking

Potential solutions:

on hover, highlight the element that a click would select. (reverse the color? add a halo? add a dotted outline?)
on select, outline the element rather than showing a bounding box (dotted line around element?)

Excalidraw is excellent!! Far better than the many other similar tools out there.

When I click, which line will be selected?

Once selected, the dashed box doesn't make it clear which element is selected

I also face this issue regularly.
What I think would be useful is to have a visible list of ordered (and nested) objects per layer, like other design software.

Above a screenshot of Figma

I agree that this is an issue. Couple of notes.
Layers in the sense of having a separate UI listing them is something we discussed, but we'd prefer solving the issue differently is possible to keep the app simple.
There are couple things we could improve:

First thing would definitely be what @xmatthewx proposes: on hover, highlight the element in some way to make it obvious what element you will select upon clicking.
Improve current behavior of determining which element should be selected on click. I believe we prioritize elements higher in z-index even if a lower z-index element is actually closer to the position you clicked at.
Ability to select element that are being covered by other elements. I was working on this feature (you can check the preview here: https://excalidraw-7vpu53mrs-excalidraw.vercel.app), where you'd be able to use Cmd/Ctrl-Click to cycle through elements. The downside is this would be a power feature that almost no one would know about.

use Cmd/Ctrl-Click to cycle through elements

This prototype works beautifully. I agree it would be hard to teach or discover, but for advanced users it's a great solution.
Another option might be to show a little menu when a click is on stacked elements. ((But popouts can be fiddly. Your command click solution worked great for me to draw this.)

authors: dwelle egutierrez-ar xmatthewx


text:
Don't remove the grid on canvas clear

Fixes #2358

When you're at it, let's do this as well: https://github.com/excalidraw/excalidraw/issues/2334 :)

authors: dwelle lipis


text:
feat: Change shapes by selecting all of them

i have implemented some feature like #8520 have asked
now we can chnage the shapes by selecting them and clicking the respected number
like [rectangle:2,dimond:3,ellipes:4]
have a look
https://github.com/user-attachments/assets/b45100ad-db32-419d-a0ac-731bd6816194

Hi, this is good as a prototype, but won't be that simple and we would likely have to do some iterations to get to some reasonable UX - if it's even possible, as in the end we might also abandon/postpone the idea due to feature creep / non-ideal UX. From a quick look I already see these:

Shortcuts might be a good way to introduce this, first targeting the power-users, but mapping it to the existing shortcuts (2,3,4 or R, D, E) creates a breaking change, as every created element ends up being selected - e.g. it's impossible now to draw rect followed by a circle. We could consider adding a modifier like "Option", but then it will conflict with other shortcuts, like Option + R for view mode; hence unsure what we would use (there are similar problems with other modifiers).
We need to redraw the container on each element type change so that longer text is fitted into a new type correctly (and perhaps even break it in some edge cases).
We need to capture the change in history so that it can be undone/redone.
We need to cover the whole happy path with possible edge cases with automated tests.

P.S. consider enabling an auto-correct, there are a lot of typos in your writing.

Hi @Mrazator, i understand your concern,
P. S
Current me if I am wrong.
You are concerned about few things right?

Undo/Redo

text length, or text getting outside the boundary shapes

Arrow shape handling right? Like connecting two shapes with arrow and then changing them

The only thing I didn't understand your first point will you P.S kindly explain a bit
And if u like this prototype/code then i would like to look into it for further improvement.
So just asking, are you guys working on this or not or should I abandone this?

Hi @mtolmacs, could you help me with my new commit? The commit I made is working fine, but I'm facing the same issue as before with undo/redo. Additionally, I have no way to capture the event.key. I'm unable to check which key is being pressed because I don't have access to the event object. How am I supposed to get the event object?

I believe this is ready for you @dwelle

Quickly testing, noticed various things:

not sure about ctrl/cmd - first let's make sure we don't override some os/browser shortcuts - afaik ctrl + [num] should be used for tab switching on win + chrome - can you deny/confirm? Second, we should have the same [chosen modifier/s] with R, D, E so we might choose some combination of modifiers which works both with 1,2,3 and R,D,E.

We need to redraw the container on each element type change so that longer text is fitted into a new type correctly (and perhaps even break it in some edge cases).

this point was not implemented, i.e. once the text is long enough in rect and the user switches to a circle, the text is not fitted into the circle (and undo/redo triggers redraws and leads to an inconsistent state). Note that it might not be as easy, we will likely need to rewrap the text (to fit the new bounding box better) and trigger a redraw of the bounding if even with the new wrapping the text cannot fit in.

We need to cover the whole happy path with possible edge cases with automated tests.

this point was not implemented, we really need at least happy path automated test cases for the whole flow (i.e. one simple  stupid, one with updated bound arrows, and one with rewrap/redraw)

Bugs:

some combination of switching between shapes (perhaps with undo/redo) leads to a bug that created 10K elements (don't have repro)
we should allow switching only from rect / diamond and ellipse (currently selecting the whole diagram which also contains other element types, such as freedraw / arrows incorrectly switches those into rect / diamond/ellipse.

Sorry for getting to this late.

not sure about ctrl/cmd - first let's make sure we don't override some os/browser shortcuts - afaik ctrl + [num] should be used for tab switching on win + chrome - can you deny/confirm? Second, we should have the same [chosen modifier/s] with R, D, E so we might choose some combination of modifiers which works both with 1,2,3 and R,D,E.

Correct. Ctrl+ switches tabs on Windows and we don't want to override that. Further, Cmd+ isn't even overridable on Safari, unless you wanted to use Ctrl+<number> on Mac (but traditionally, Ctrl on Windows is analogous to Cmd on Mac).
That said, I don't think we want to go with any shortcut like this (even alt+<number> and similar, or alt/cmd+click as we may want to reserve that for other things in the future).
I'd do something like <shortcut> triggers a popup menu where you can choose the new shape. This also has the benefit that we can show only applicable shapes as you won't be able to convert some shapes into others depending on context.

That said, if we don't wanna commit to a shortcut right now, we can put this under a context menu for now.

It would be great to have a shortcut though, because it breaks the flow when you use it with Flowcharts.
What if we add Shift + Ctrl/Cmd + number? That way you create a flowchart element by Ctrl/Cmd + arrow, and just press Shift and a number in addition to keeping Ctrl/Cmd pressed.

I think it's better to have a single shortcut like Tab that opens a contextual popup, which can then accept  shortcuts.
Reason for that is with <modifier>+<number> in some cases it wouldn't do anything, such as when trying to convert line -> rectangle, or more importantly text-container -> line, and such cases. So it would appear buggy.
If contextual popup, we can also offer more actions that would be applicable for shape conversion cases.

I recommend we avoid line -> rectangle conversions. Only diamond, rectangle and ellipse between each other. I wonder what the use-case would be for changing a line to rectangle?
As you propose, having a shortcut (Tab is ) to open a popup, which also accepts a shortcut (number key) seems perfectly reasonable for the use case I was referring to. It will not slow you don't significantly as you lay out your diagram with flowchart keys.
An additional context menu is fine if you have a shortcut flow in place. It definitely helps onboarding users to this capability.

I recommend we avoid line -> rectangle conversions. Only diamond, rectangle and ellipse between each other. I wonder what the use-case would be for changing a line to rectangle?

Right, that's what I meant. Since it wouldn't work in cases of changing line -> rectangle, but would presumably work for line -> arrow, having just a <modifier>-<number> shortcut would be confusing as in half the cases it wouldn't do anything.

@dwelle @mtolmacs
I’ve finished my tests on the text-overflow issue, and so far, I haven’t encountered any problems. Could you please check it on your side as well?

there are still some issue present like
when we try to chnage flowchart shapes sometimes
the shapes overlap
so right now i have no idea to reolve this,
let me know your thoughts

hi @Mrazator, i gess the requested feature is completed
please have a look

As you propose, having a shortcut (Tab is ) to open a popup, which also accepts a shortcut (number key) seems perfectly reasonable for the use case I was referring to. It will not slow you don't significantly as you lay out your diagram with flowchart keys.

I kinda like it but at the same time don't 😬. The discoverability will suffer for anyone else than power users (few will know it's there, while it's super useful for any diagramming). We have already many things like that - command palette, groups, linear element editor, etc. Also, it's yet another way to do things alongside the properties panel, context menu, toolbar, command palette, and stats panel, increasing new component and complexity just for this? I am not 100% persuaded.
The proposed Shape type in the PR isn't too bad IMHO, as it goes well with the Arrow type and the exact same logic of changing arrow/shape type applies. The only downside is yet another row of buttons.

IMO even hiding it inside the (collapsible) context menu is a bit better, as it's an existing component that we have. But then I would look there for changing Arrow type as well. If we want to simplify the number of buttons in the properties, the solution might be moving them into the mentioned "tab-triggered" component or/and the "collapsible" context menu. And essentially tidying / re-designing a bit the panel itself.

@Mrazator, please correct me if I'm wrong, but are you saying that we should move the shape types and arrow types to the context menu? I'm just asking, but don’t you think it’s going to be more problematic for users to find? We already have so many options in the options panel, and when we select all the shapes, the options panel becomes too large.
I also agree with @mtolmacs about the tab-trigger, but do you want the tab-trigger to show up for arrow types as well?
https://github.com/user-attachments/assets/14d08264-78b3-44e5-8a7b-7d91a3e7f48b

@Mrazator, please correct me if I'm wrong, but are you saying that we should move the shape types and arrow types to the context menu?

I am actually advocating for your solution 😄  with the context menu as the second-best option.
Still, some shortcuts that would go well with the flowchart scenario, as the guys described above, would be nice. But IMO that's not the main flow to use it for.

@Mrazator, please correct me if I'm wrong, but are you saying that we should move the shape types and arrow types to the context menu?

I am actually advocating for your solution 😄 with the context menu as the second-best option.
Still, some shortcuts that would go well with the flowchart scenario, as the guys described above, would be nice. But IMO that's not the main flow to use it for.

Hey @Mrazator, sorry for the late reply!
I'm a bit confused here—if you like my solution, what further improvements are you suggesting? Are you saying we should add shortcuts for changing shapes, or use the tab+some_shortcutKey trigger and popup? Or are you suggesting we put everything in the context menu, along with shortcuts?
Just asking for clarification.

i have added some shortcut,
for rectangle : ctrl+2
for dimond : ctrl+3
for ellipes : ctrl+4

Come to think of it @Mrazator the extra row with shape change actions makes a ton of sense, given that arrows already have one in master. Would make sense to standardize (i.e. either have one for arrows and shapes, or remove the arrow type change row) and be consistent. That would solve the discoverability issue.

Shortcut-wise, there is currently a logic to change arrow types when you create new arrows, namely pressing the A key automatically selects the arrow tool and consecutive presses rotate the arrow type. Given that this exists in master maybe the consistent answer is to:

2.a) Make the A key rotate the arrow type of selected arrows as well and not switching the active tool to arrow.
2.b) Introduce a new shortcut S, which rotates shape types when a simple bindable shape is selected. Or have the Ctrl/Cmd + 1,2,3 for them. I'd be happy with either one as long as there is a shortcut / key combo.
@dwelle what do you think about this plan?

Come to think of it @Mrazator the extra row with shape change actions makes a ton of sense, given that arrows already have one in master. Would make sense to standardize (i.e. either have one for arrows and shapes, or remove the arrow type change row) and be consistent. That would solve the discoverability issue.

Yeah, I would have the same for both, I don't think we can remove the "arrow type change row". Maybe we can put it in the future elsewhere, as noted in my previous comment:

if we want to simplify the number of buttons in the properties, the solution might be moving them into the mentioned "tab-triggered" component or/and the "collapsible" context menu. And essentially tidying / re-designing a bit the panel itself.".

Introduce a new shortcut S

It would be super nice, sadly it's reserved by "Stroke color".

or have the Ctrl/Cmd + 1,2,3 for them

We are back to the overriding issue:

not sure about ctrl/cmd - first let's make sure we don't override some os/browser shortcuts - afaik ctrl + [num] should be used for tab switching on win + chrome - can you deny/confirm? Second, we should have the same [chosen modifier/s] with R, D, E so we might choose some combination of modifiers which works both with 1,2,3 and R,D,E.

And we also can't just use 1,2,3 or R,D,E as it would be a breaking change.

I'm out of ideas, so at this point why don't we let go of the key binding and go ahead with the current version (sans the Ctrl+123 shortcuts)? At least the functionality would be there. Later we can open a PR if we figure out what shortcut we would want to have, if any.

Alright, let's push it a bit further from the UX perspective, in the meantime we can decide what to do about the shortcuts.

Changing from the Ellipse to the Rectangle creates too wide a rectangle. The wrapping from the original element should likely be preserved.
Changing from the Ellipse to the Rectangle does not update the arrow bindings (i.e. you can see the green arrow is not at the correct position). All bindings should be updated on change.

https://github.com/user-attachments/assets/6cdf1269-2e26-4cb6-b480-a69c3cf2575a

Changing from the Rectangle to the Diamond and back should result in a (near) identical Diamond as before. Now it's completely different. In theory, fixing 1. should do it.

https://github.com/user-attachments/assets/5899db00-2ec6-4433-a643-d74fb326a7c9

Changing from the Rectangle to Diamond should update the arrow bindings, but they should still end up looking similar to before. Undo/redo updates the bindings, and they end up being different then before the change. In theory, fixing 1. and 2. should do it.

https://github.com/user-attachments/assets/c6c914bf-7a38-4a49-a15c-d8ec8c936721

@imran1khan the update does not address a single point from above.
Testing scene https://excalidraw-git-fork-imran1khan-groupchange-excalidraw.vercel.app/#json=pJfxPGB7NDO9PeR77R81a,GBxycaVFV9BecEG8TBMTUg

@imran1khan the update does not address a single point from above.
Testing scene https://excalidraw-git-fork-imran1khan-groupchange-excalidraw.vercel.app/#json=pJfxPGB7NDO9PeR77R81a,GBxycaVFV9BecEG8TBMTUg

I am so sorry, I did not see this coming.
The issue is that when we change the bound text shape, a function runs to set the text to the new shape, which was already present there. I used that function, hoping it would work fine, but it's not working as I expected.
Here is the code—look at this: redrawTextBoundingBox().
This function is responsible for redrawing the shape with the help of the text size and other factors, but it's not working. Another issue with this function is that it needs app.scene.getNonDeletedElementsMap() to work. When we switch shapes between [diamond and circle], it works fine, but when it comes to rectangle, it throws an error, which is another issue,
    newElements.forEach((ele) => {       if (ele.type === "text" && ele.containerId) {         const container = newElements.find((e) => e.id === ele.containerId);         if (container === undefined) {           return;         }         redrawTextBoundingBox(           ele,           container,           app.scene.getNonDeletedElementsMap(),         );       }     });
So I removed this part, and it's working fine, but the text sometimes overflows. If you unbind and rebind the text to the new shape, the shape will change again because of redrawTextBoundingBox().
I suggest that, for now, we allow the text to overflow and handle this issue later. But if you want to stop the text overflow, I need help. I think if @mtolmacs  is free, he could help me look into this function.
Check out my new code and give me your feedback

@Mrazator
In the video, you can see the issue arises when we bind and unbind the text, which means the function redrawTextBoundingBox() is responsible for this dramatic shape change
https://github.com/user-attachments/assets/57195fd7-913f-47fa-927a-0d5ca19eb8d3

arrow binding etc is working fine, because we are only changing the shape type, and roundness, so everything else should work fine

authors: Mrazator dwelle imran1khan mtolmacs


text:
main.cpp: Make sure fork() happens first

Avoid any initialization of Qt before forking to detach from the terminal by putting all Qt code into a separate guimain() function.

tested, works on macos now. Qt library initializing before fork() upsets macOS, because Qt apparently uses CoreFoundations functions and threading, and the CF lib has policing against fork().

Thanks a lot for checking! Another mystery solved ...


text:
CSV-tables are missing the "Table." enumerator

See the documentation

If you add a :label: it should work. This is the second time in a few weeks that this has come up, and I think that our defaults don't make sense here.

repo: executablebooks/mystmd


text:
Explicitly choose between config merging and clobbering configuration

At present, it seems from conversations with @rowanc1 and @fwkoch that we're selecting an extension policy for each particular key in myst.yml.
I wonder if it would be nice to have a user-facing control mechanism for this, e.g.
site:
   options:
      extend: merge

I don't think this should be done at the config level, but rather per config-section. Thoughts?

Hmm, I don't love that either - how do you merge multiple configs? This needs more thought.


text:
Add Anagram exercise

[x] Still got to add groups for the tests, to space them out.
[ ] Need to look at how to simplify the implementation in example.dart

Recommend #35 gets reviewed and merged in first, so the tests in Anagram can be run within the PR build.

@fwip Do you think you could review this?
Just ensure the tests pass by running pub run test in the root of the exercism/dart project. Ensure the config file is properly formatted by running configlet lint.
Then check that the tests are good based on the problem specification
And provide any other feedback you think is good.

Sure!
The tests all pass, configlet lint doesn't complain.  configlet fmt does rewrite config.json and config/maintainers.json, but that's not account of any change made here.
In the test, findAngrams should be findAnagrams, and countChracters should be countCharacters in example.dart.
In the tests, the test with allergy name is "detects three anagrams" in the specification, and "detects anagrams" here (which shares a name with the previous test).

@fwip Thanks, I'll tackle those

@fwip Fixed those. Thanks. If there's nothing else, I'll merge it in.
Please feel free to review the other PRs. Not many on the exercism team that have the time for this track and familiar with Dart.

Looks good to me.  For what it's worth; I have only a passing familiarity with Dart, I haven't used it for a project yet.

@fwip It's not the code that needs to be reviewed as much as it is understanding how a dart project is built, the dart formatter tool, how a dart project is structured, and the test framework.
I'm learning Dart as well. Been reading up on it and messing around since June.

authors: Stargator fwip

repo: exercism/dart


text:
update jq foregone exercises

add circular-buffer and list-ops
sort the foregone list

I've been thinking about adding list-ops sometime in the future, but about streams instead of arrays. Would such an exercise still be welcome? (I'm not yet sure whether this idea is even viable.)

Sure. We can always remove it from the foregone list.

authors: MatthijsBlom glennj

repo: exercism/jq


text:
TRACK_README:

What programming language should we add?
What is the official website for the language?
Is this a language that comes in many variants? If so, which variant should we support?
Does the language have an official logo? If so

please include a link to an example
please list the attribution rights of that logo

Does the language have an unofficial logo? If so

please explain the ways in which people use the unofficial logo
please include a link to an example
please list the attribution rights of that logo

Is there a testing framework available for the language?
Who will be leading the effort to launch the track?

Are you serious, (browser)? I didn't want to submit that.

Are you serious, (browser)? I didn't want to submit that. Now I'm forced to edit this and post the issue description anew.

In the TRACK_README, we have a section about saying "Test files should use the following format", and the maintainers fill in the body of an example test.
I wasn't convinced that that is the right place to put this information, because:

If I'm modifying an existing test file, the existing file should give me enough information.
If I'm adding a new exercise. I need to know a lot of other information too, and this information is provided below.

Specifically for the second case, further down, we have a bullet point about what goes into an exercise. Test suite, example solution, template file, etc. I was thinking that the information about what would go into a test file would be most helpful here.
I'm obviously unsure, let's talk about what would be best.

So what I am saying in this issue is that I thought the ordering of these two things ("test file format" and "what an exercise needs") made sense in #1 but not in #13. As #13 shows, the move was clearly intentional and the express purpose of #13, so I fear I may be in the wrong.

One thing that I've been noticing over the past few months, is that I prefer to have as little boilerplate as possible in the track template, and instead have a better guide to implementing a good track repository living in the docs repository.
That way we don't have to worry about trying to keep unmaintained tracks up to date.
Having incomplete boilerplate to fill out means that a lot of new tracks have incomplete boilerplate. I'd rather have less text, but text that makes sense, and then direct new tracks to implement a README that makes sense for their language, and point to examples of how it can be done.

@kytrinyx I've found it pretty tough going trying to understand how to implement a new language and the relationships between all of the bits (particularly when trying to map a language that is less traditional to a file based approach). Its also confusing what is old and new exercism. E.g. there are lots of things in config.json that other languages seem to specify that I'm not sure what they do

@macta I'm so sorry this is confusing!
Now that the old Exercism is gone, I can take a stab at clarifying and simplifying. The config.json is described here: https://github.com/exercism/docs/blob/master/language-tracks/configuration/track.md
I'm going to be away for the next few days, but will be back on August 1st. When I am back, let's get together and figure out exactly what is missing, and I will fill in all the gaps.

I've dramatically reduced TRACK_README.md. I think that until we get our documentation sorted out, it doesn't make sense to point people at all the confusing things.
I've updated the instructions about launching a new track, which I hope are an improvement over what we had: https://github.com/exercism/docs/blob/master/language-tracks/launch/README.md
I'm going to close this issue, and we can re-evaluate once the docs are sorted.

authors: kytrinyx macta petertseng

repo: exercism/request-new-language-track