STM32 with Ethernet crashes when receiving packets early

The STM32 Ethernet driver can receive data before the interface is ready to handle it, leading to a crash.
The problem can typically be reproduced within a couple of tries if the network is filled with traffic, I do that by pinging the IPv4 broadcast address with a 0.001 s interval, when starting the STM32 board.
Different versions have crashed in different ways, but in stock 2.5.0 this is what I get before even main() is called. Asserts enabled:
ASSERTION FAIL [net_if_get_link_addr(iface)->addr != ((void *)0)] @ WEST_TOPDIR/oc_zephyr/subsys/net/ip/net_if.c:3468
[00:00:04.368,000] <err> eth_stm32_hal: Failed to enqueue frame into RX queue: -62
[00:00:04.368,000] <err> eth_stm32_hal: Failed to enqueue frame into RX queue: -62
[00:00:04.368,000] <err> eth_stm32_hal: Failed to enqueue frame into RX queue: -62
[00:00:04.368,000] <err> eth_stm32_hal: Failed to enqueue frame into RX queue: -62
[00:00:04.379,000] <err> os: r0/a1:  0x00000004  r1/a2:  0x00000d8c  r2/a3:  0xffffffbf
[00:00:04.379,000] <err> os: r3/a4:  0x0802f52d r12/ip:  0x00000000 r14/lr:  0x0803317d
[00:00:04.379,000] <err> os:  xpsr:  0x41000000
[00:00:04.379,000] <err> os: Faulting instruction address (r15/pc): 0x0804761c
[00:00:04.379,000] <err> os: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
[00:00:04.379,000] <err> os: Current thread: 0x20004f98 (sysworkq)
[00:00:04.457,000] <err> os: Halting system

The above assertion indicates that the net_if_set_link_addr call could benefit from happening earlier in eth_iface_init() in eth_stm32_hal.c. But it's still crashing after that:
[00:00:04.418,000] <err> os: ***** USAGE FAULT *****
[00:00:04.418,000] <err> os:   Illegal use of the EPSR
[00:00:04.418,000] <err> os: r0/a1:  0x20004448  r1/a2:  0x20004ec8  r2/a3:  0x20004ec8
[00:00:04.418,000] <err> os: r3/a4:  0x00000000 r12/ip:  0x00000000 r14/lr:  0x080462df
[00:00:04.418,000] <err> os:  xpsr:  0x6000000f
[00:00:04.418,000] <err> os: Faulting instruction address (r15/pc): 0x00000000
[00:00:04.418,000] <err> os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0
[00:00:04.418,000] <err> os: Fault during interrupt handling

The above exception appears to be because net_if_up is called (in k_sys_work_q?) before net_if_init has finished executing.
A bit of k_sleep before the first call to net_eth_carrier_on in rx_thread() takes care of that, and another k_sleep after the call takes care of the "Failed to enqueue frame into RX queue" errors. But that's hardly an elegant solution.
Environment:

Zephyr 2.5.0 (although it's been happening since at least 2.0)
STM32F429

@jonasn-ge Thanks for reporting this issue and the details provided so far.
To fasten analysis and eventually bug fixing, could you share a sample to reproduce the issue easily (or modification of an in tree sample)?

@erwango I will work on a sample.

It turns out that another ingredient is needed to get the crash: we need to disable auto-negotiation. That probably has the effect of making the timing just right (or wrong).
Attached is a minimal reproducer, including a "hack" to disable auto-negotiation. I have tried it on our custom board, unfortunately I don't have a Nucleo board on hand to test with. When all is well the program does nothing, but when bombarded with Ethernet frames it halts in the assert in net_if_up().
reproduce-32771.zip

running the this sample on a nucleo_f767zi, gives :
*** Booting Zephyr OS build zephyr-v2.5.0-1836-g61aab7519e9c  ***
[00:00:02.628,000] <inf> main: Hello
[00:00:02.895,000] <err> eth_stm32_hal: Failed to enqueue frame into RX queue: 2
[00:00:00.000,000] <err> main: Missing Ethernet device
*** Booting Zephyr OS build zephyr-v2.5.0-1836-g61aab7519e9c  ***
[00:00:03.278,000] <inf> main: Hello

@jonasn-ge Do you have the MPU enabled? I am currently facing a similar problem on the nucleo_f429zi with zephyr 2.5.0. I get MPU faults (Instruction Access Violation) during ethernet initialization for certain applications (not all), but i am still in the process to identify the reason or an reproducer.

@FRASTM: Yes, I have noticed that the reproducer code has stopped working against Zephyr master. It appears that it's no longer possible to get a device pointer before the device is initialized, or something. What still works is modifying the eth0_data struct in eth_stm32_hal.c with the new auto-negotiation settings. Then the reproducer main.c can be essentially empty.

Do you have the MPU enabled?
Yes, MPU is enabled. Though I mostly experienced the code trying to jump to a NULL pointer and the MPU doesn't protect against that currently (there is an open PR for that, last time i looked).

@FRASTM: Yes, I have noticed that the reproducer code has stopped working against Zephyr master. It appears that it's no longer possible to get a device pointer before the device is initialized, or something.

Exact.

Though I mostly experienced the code trying to jump to a NULL pointer and the MPU doesn't protect against that currently (there is an open PR for that, last time i looked).

If this is CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_DETECTION it has been merged.
You can enable it using CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_DETECTION_MPU=y

@jonasn-ge could you please check the CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_DETECTION_MPU ( force setting to 'y' in the prj.conf) and run the test

@FRASTM I have run with current Zephyr master (zephyr-v2.5.0-2255-g0dc7b9ee46), patched to disable auto-negotiation in eth_stm32_hal.c. The behaviour is the same as I've seen before when I start filling the network with traffic ("ping <IP_ADDRESS> -i 0.005 -A" from a Busybox shell work well for me).
With CONFIG_ASSERT=y:
*** Booting Zephyr OS build zephyr-v2.5.0-2255-g0dc7b9ee460c  ***
[00:00:04.369,000] <inf> main: Hello
ASSERTION FAIL [handler != 0] @ WEST_TOPDIR/zephyr/kernel/work.c:669
[00:00:04.364,000] <err> eth_stm32_hal: Failed to enqueue frame into RX queue: -62
[00:00:04.370,000] <err> os: r0/a1:  0x00000004  r1/a2:  0x0000029d  r2/a3:  0xffffffbf
[00:00:04.370,000] <err> os: r3/a4:  0x08001d15 r12/ip:  0xa0000000 r14/lr:  0x0800b5b5
[00:00:04.370,000] <err> os:  xpsr:  0x41000000
[00:00:04.370,000] <err> os: Faulting instruction address (r15/pc): 0x0800cac0
[00:00:04.370,000] <err> os: >>> ZEPHYR FATAL ERROR 4: Kernel panic on CPU 0
[00:00:04.370,000] <err> os: Current thread: 0x20001488 (unknown)
[00:00:04.423,000] <err> os: Halting system

With CONFIG_CORTEX_M_DEBUG_NULL_POINTER_EXCEPTION_DETECTION_MPU=y instead:
[00:00:04.364,000] <err> eth_stm32_hal: Failed to enqueue frame into RX queue: -62
[00:00:04.364,000] <err> os: ***** MPU FAULT *****
[00:00:04.364,000] <err> os:   Instruction Access Violation
[00:00:04.364,000] <err> os: r0/a1:  0x2000165c  r1/a2:  0x00000000  r2/a3:  0x00000001
[00:00:04.364,000] <err> os: r3/a4:  0x00000001 r12/ip:  0x00000000 r14/lr:  0x080085d7
[00:00:04.364,000] <err> os:  xpsr:  0x60000000
[00:00:04.364,000] <err> os: Faulting instruction address (r15/pc): 0x00000000
[00:00:04.364,000] <err> os: >>> ZEPHYR FATAL ERROR 0: CPU exception on CPU 0
[00:00:04.364,000] <err> os: Current thread: 0x20001478 (unknown)
[00:00:04.429,000] <err> os: Halting system

LR 0x080085d6 points into work_queue_main(), a couple of lines after the __ASSERT_NO_MSG(handler != 0) that fails if asserts are enabled.

@jonasn-ge, could you please describe the exact test environment (target, ethernet connection to/from, test appli, command, etc) all the setup to reproduce the issue.

@jonasn-ge, I could not exactly reproduce this issue in the same condition than you,
but I succeed to reproduce it with a step by step debugging (probably giving more time to the ping event to arrive at the wrong place).
As I could see, problem is due to the fact that IRQ is enabled (in eth_iface_init() thanks to DEV_CFG(dev)->config_func() )
before iface address is set net_if_set_link_addr(). and thus IRQ linked to ping is handled whereas init is not finished.
I proposed a fix #35218 for that by moving IRQ enable at the far end of the eth_iface_init() .
It seems working in my setup: going step by step I could not get your original ASSERT error.
But I face another issue (Usage Fault) ... which I hope is linked to step by step execution.
So @jonasn-ge could you test this fix with your original setup
and tell me if you reproduce the original issue or if you face the usage fault issue ?
@jukkar,
I am not that expert in ethernet, so your review and comment would be very welcome,
specially around potential side effect. Thanks  :-)

@ABOSTM thank you for looking into this. Yes, the patch in #35218 helps.
With v2.6.0-rc1-59-g8e69dafccf25 I typically get a crash wtih ASSERTION FAIL [handler != ((void *)0)] @ WEST_TOPDIR/zephyr/kernel/work.c:709 (or a USAGE FAULT if I disable asserts)
With v2.6.0-rc1-60-gc31c4f9413 (@ABOSTM 's patch) I can't reproduce any crash.
I still get a bunch of <err> eth_stm32_hal: Failed to enqueue frame into RX queue: -62 in the log shortly after start, but they don't seem to actually be a problem.
My hardware setup consists of my STM32-based board connected to a cheap Netgear GS105 switch which in turn connects to my network and PC. The PC is sending broadcast packets with "sudo ping -b <IP_ADDRESS> -i 0.01". Having the The GS105 switch in front of the board makes a difference, perhaps it's quick to start sending packets when the port comes up.
I also use the following patch to disable auto-negotiation:
diff --git a/drivers/ethernet/eth_stm32_hal.c b/drivers/ethernet/eth_stm32_hal.c
index a36ca61a68..4ff9bd111e 100644
--- a/drivers/ethernet/eth_stm32_hal.c
+++ b/drivers/ethernet/eth_stm32_hal.c
@@ -897,6 +897,9 @@ static struct eth_stm32_hal_dev_data eth0_data = {
 #else
                        .MediaInterface = ETH_MEDIA_INTERFACE_RMII,
 #endif
+                       .AutoNegotiation = ETH_AUTONEGOTIATION_DISABLE,
+                       .Speed = ETH_SPEED_100M,
+                       .DuplexMode = ETH_MODE_FULLDUPLEX,
                },
        },
        .mac_addr = {

I still get a bunch of <err> eth_stm32_hal: Failed to enqueue frame into RX queue: -62 in the log shortly after start, but they don't seem to actually be a problem.

The errno 62 is ENETDOWN, which means that from upper network stack point of view, the network interface is still down and packets cannot be accepted yet. Probably we could check this ENETDOWN value and not print anything in this case as this is kind of normal situation.

I'm experiencing a similar behavior with my board (custom, STM32F437VI SOC) and Zephyr 2.5. Unfortunately, neither #35218, nor disabling auto-negotiation helps with my setup.
However, I noticed that breaking at HAL_Delay(PHY_RESET_DELAY); and jumping above the delay with the debugger helps in my case. Interestingly, that's exactly the line before auto-negotiation is set up:
https://github.com/zephyrproject-rtos/hal_stm32/blob/f8ff8d25aa0a9e65948040c7b47ec67f3fa300df/stm32cube/stm32f4xx/drivers/src/stm32f4xx_hal_eth.c#L340-L343
So, my issue may be related to the one reported here.

Combining all three patches makes it work for me:

Apply #35218
Apply patch re. auto-negotiation disable from https://github.com/zephyrproject-rtos/zephyr/issues/32771#issuecomment-841075466
Comment the calls to HAL_Delay() in HAL_ETH_Init():

 stm32cube/stm32f4xx/drivers/src/stm32f4xx_hal_eth.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/stm32cube/stm32f4xx/drivers/src/stm32f4xx_hal_eth.c b/stm32cube/stm32f4xx/drivers/src/stm32f4xx_hal_eth.c
index 2b6567b1..8fee17c7 100644
--- a/stm32cube/stm32f4xx/drivers/src/stm32f4xx_hal_eth.c
+++ b/stm32cube/stm32f4xx/drivers/src/stm32f4xx_hal_eth.c
@@ -338,7 +338,7 @@ HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth)
   }

   /* Delay to assure PHY reset */
-  HAL_Delay(PHY_RESET_DELAY);
+//  HAL_Delay(PHY_RESET_DELAY);

   if((heth->Init).AutoNegotiation != ETH_AUTONEGOTIATION_DISABLE)
   {
@@ -475,7 +475,7 @@ HAL_StatusTypeDef HAL_ETH_Init(ETH_HandleTypeDef *heth)
     }

     /* Delay to assure PHY configuration */
-    HAL_Delay(PHY_CONFIG_DELAY);
+//    HAL_Delay(PHY_CONFIG_DELAY);
   }

   /* Config MAC and DMA */

Otherwise the system crashes/reboots here (with the stack trace below):
https://github.com/zephyrproject-rtos/zephyr/blob/21d1ad3762302b3e461953df59430c77e0709274/arch/arm/core/aarch32/swap.c#L41
Thread #1 57005 (Suspended : Breakpoint)
	arch_swap() at swap.c:41 0x801e7a6
	z_swap_irqlock() at kswap.h:162 0x8034074
	z_swap() at kswap.h:173 0x8034074
	z_tick_sleep() at sched.c:1’268 0x8034074
	z_tick_sleep() at sched.c:1’235 0x8034074
	z_impl_k_sleep() at sched.c:1’296 0x80340b4
	k_sleep() at kernel.h:86 0x80398f8
	HAL_ETH_Init() at stm32f4xx_hal_eth.c:341 0x80292f4
	eth_initialize() at eth_stm32_hal.c:686 0x801e38e
	z_sys_init_run_level() at device.c:61 0x80334ba
	bg_thread_main() at init.c:149 0x8033696
	z_thread_entry() at thread_entry.c:29 0x8038e88
	arch_switch_to_main_thread() at thread.c:526 0x801e9a4
	0xaaaaaaaa

@mrfuchs Thanks for these inputs, but since this ticket is now closed (as #35218 was merged). Can you open a new one ?


sql error when using [bloghubTags] component

hello,
i got an error when using your [bloghubTags] component:

I think, this is because some columns are not correct added during migration.
When i remove the lines 97 and 98 inside plugins/ratmd/bloghub/components/Tags.php, everything works for me.
I installed your plugin 1.3.8.
all the best

Just replace "where" with "having" and everything will work correctly ;)

can i do a PR?

fixed in #13

Many thanks for the contribution (again). Sorry for the long delay.
The new update will be pushed to the oc repository today.


Chat Message header always uses white text

The function calcHeaderTextColor is always returning "light".
This is because the value of the variable yiq is always in the range 0.0 - 1.0.
The test at line 91 should be (yiq >= 0.5)

Whoa, seems like that's been wrong for 8 months. Fixed!


ImportError on RHEL with pip

[root@localhost signalbot]# python bot.py
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/signalbot/bot.py", line 7, in
from .api import SignalAPI, ReceiveMessagesError
ImportError: attempted relative import with no known parent package

my mistake


http://localhost:8080/ is blank

http://localhost:8080/ is showing a Blank screen even after installing everything as per the instructions. Any recommended solutions for this, please? @rodydavis

I added a link on the readme:
https://stackoverflow.com/questions/69465376/app-engine-python-2-7-importerror-cannot-import-name-apiproxy

Downgraded from google-cloud-sdk-373.0.0 to 359.0.0. But it's still showing a Blank Screen without any contents, only the Favicon is present. Attaching a screenshot of the terminal for your reference @rodydavis

Thank you very much @rodydavis
It's working perfectly fine after downgrading the Google Cloud SDK.


[No QA] Console cleanup pt.1

Explanation of Change

This is a first batch of fixes for warnings/errors in dev console. This issue will fix:

Animated: useNativeDriver is not supported because the native animated module is missing. Falling back to JS-based animation. To resolve this, add RCTAnimation module to this app, or remove useNativeDriver. Make sure to run bundle exec pod install first. Read more about autolinking: https://github.com/react-native-community/cli/blob/master/docs/autolinking.md
Electron Security Warning (Insecure Content-Security-Policy) This renderer process has either no Content Security Policy set or a policy with "unsafe-eval" enabled. This exposes users of this app to unnecessary security risks.For more information and help, consult https://electronjs.org/docs/tutorial/security. This warning will not show up once the app is packaged.
Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?
Check the render method of ViewRenderer.

Fixed Issues

$ https://github.com/Expensify/App/issues/51099
Tests

[x] Verify that no errors appear in the JS console

Offline tests

QA Steps

// TODO: These must be filled out, or the issue title must include "[No QA]."

[x] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@VickyStash, I'm a little late, could you resolve the conflicts please?

@kubabutkiewicz is the author of the PR, so he will take care of it 😉

Yes! Just pushed changes to resolve conflicts 😄


documentation: explain how/where to add GPG within official Docker container

Description
Currently the documentation regarding GPG integration/Commit signing is good but as far as I can see, there is no explanation how to integrate a key within the official Docker container. Or am I missing something?

It's very difficult to say how best to do this. We're very happy to link or offer advice if there is a good suggestion but giving out bad advice would probably be worse than giving out no advice

Isn't giving no advice the same like giving a bad advice? Because if people don't even know what configurations are considered bad, they definitely will configure the way it is considered bad. :wink:
Also obviously, I wasn't asking about documenting a bad advice at here. :wink:
From a user perspective it would be nice, just having to add a read-only mount (i.e. /signing-keys) and then adding the relevant key in the configuration (SIGNING_KEY, SIGNING_NAME, SIGNING_EMAIL).
But I guess it is not as easy as that…

It's only their key they're exposing. If we give bad advice - we're exposing everyone's key.
I'm sure docker must have some secure way of passing secrets and some way of interfacing to a gpg_agent. I just don't know and haven't used these systems. If you know better and have a good idea for your to do it in a basic way - especially if you know a way of increasing the security say by using a tpm'd or credit-card key - then by all means write the suggestion and a pr.
At the moment we dodge this all by saying:
Installing and generating a GPG key for Gitea
It is up to a server administrator to determine how best to install a signing key. Gitea generates all its commits using the server git command at present - and therefore the server gpg will be used for signing (if configured.) Administrators should review best-practices for gpg - in particular it is probably advisable to only install a signing secret subkey without the master signing and certifying secret key.

If we give bad advice - we're exposing everyone's key.

Which is exactly why I was writing

I wasn't asking about documenting a bad advice at here. :wink:

I'm sure docker must have some secure way of passing secrets and some way of interfacing to a gpg_agent.

So is the Gitea implementation relying on a running gpg-agent?
If so there's the possibility to either mount it from outside (variant A)) or use one from inside the container (variant B)), regarding this blog post.
But in that case it is probably better to add a running gpg-agent in the Docker container, right? Because if people are starting to use the gpg-agent from the host system, they might unintentionally expose all other keys from the gpg-agent as well. Which might cause other serious problems if there's a security flaw within gitea.
So the mentioned variant B) of the blog post is probably a safer variant. It obviously should not mount the ~/.gnupg directory, though but rather a dedicated directory for gitea.
I don't see anything gpg-agent related within the current Dockerfile though. So I guess it would also need a PR for adding gpg-agent to the Dockerfile.
But I'm not an expert regarding this topic either (this is why I opened this issue in the first place).

Stalebot, please! Close this only if you are going to document it by yourself. :wink:

Sorry @alexanderadam I forgot about marking this issue confirmed. We still need this guide...
It might be simplest to put things in comments here, a gist or even start a PR.  If we have a PR we should try to refrain from general comments - but rather use githubs suggestion syntax or provide diffs to try to fix things directly so that the PR doesn't descend too much into bikeshedding.
My thoughts:

We've finally got a PR that adds gnupg to the dockerfile.
That allows to reference the host gnupg as needed.
Another thing is whether docker secrets could be used to provide the key in some way.

sorry to bother everyone here, but I've been looking for about an hour and I can't find any helpful guide as I'm really a noob when it comes to GPG, and as said here there is nothing realy helpful in the doc to set it up.
I also sadly see here that there was a request to auto generate a key at initial docker startup that was rejected (without much debate I feel) that would have solved all my issues.
I'm working on my own on a gitea protected by other means and don't care about signing in any way other than it prevents me from using the pull requests. I even feel gpg might not really be mandatory to use PR but somehow it seem gitea wants it...
So giving a little help in setting it up even with a few warning saying one having concerns about code signing and security should not even follow the guide would actually still be helpfull to all those who don't really care but for which it goes just in their way..
Not sure my tone came out right, there is no bad intentions or reproaches from me here, only lots of love for the kind work everyone here makes available, just with a bit of frustration added in by my not finding a way to test PR in gitea for now, but that'll pass ;)

I've been going though the docs.
I'm at the stage the git user's gpg has signing keys, git is configured to use it though the configs, but there is no indication of Gitea as to if their signed or not.
As far as I can tell this isn't working.

I got this working with some help from delvh on matrix. He pointed me to this: https://blog.gitea.io/2022/07/gitea-1.17.0-is-released/#-internal-gitconfig-19732httpsgithubcomgo-giteagiteapull19732
This is in fact stated in documentation as well: https://docs.gitea.com/next/administration/signing#signing_key (Since 1.17,...)
You must have the correct .gitconfig and .gnupg in this new home directory (/var/lib/gitea/home inside the container). I think the documentation is sufficient, it just wasn't immediately clear what it's about, so I simply missed it.
Also, if you are running gpg command from within the container like I did, under the default user, whose home directory is in fact /var/lib/gitea/git, make sure to specify gpg --homedir /var/lib/gitea/home when working with the keyring.
I will add that I run the rootless version of the container and I cannot say how it works in the other version.

I just spent a couple hours trying to set my instance up so that actions performed in th gui would be signed. It did not work. I feel like the only documentation we have is this single paragraph. It was very frustrating without even achieving anything.
Also, some points on the topic:

Please also support passphrases for private keys, they are the norm
It needs to be properly documented, where the "server gpg key" needs to go. Ideally, have the user upload one in the admin panel and automate everything else.


Able to remove friend when friend is offline.

Change removeFriend to take a friend's name and change cmdHandler_Unfriend to pass the friend's name.
Closes #473 .
Additions/modifications proposed in this pull request:

Nit: Names are case sensitive.
Other than that, it seems to work flawlessly!


Merge L2 address

There is a big diff because of the latest new-rollup changes, but we can clean it up by rebasing https://github.com/OffchainLabs/arbitrum/pull/786  to https://github.com/dmihal/arbitrum/commit/358bfd65448ff4ffe8b88e58bf35c1c7c14b29c8.
This PR solves the merging issues and uses the new Buddy Contract deployment

Closed in favour of https://github.com/OffchainLabs/arbitrum/pull/890


Arbitrary input

Dear @itchyny,
It seems your encoder is currently not able to process arbitrary input as follows
$ type flower.jpg | base58
expecting a number but got "\x1c\x18\xfb\x95\xc3Jt\xbf\xc6\x0f\xe7)J\x04\x1c\x1e[\x83D\x02u\xfe̴k\xccG-\x04\x9e\x1c!\x90\xa3\x9fX\xc8\x02\xae\xd7;\x03\xe3\x0062\xfe\xce\a\xef\x01\r\x98\x0fXV\xc7\x193}g)\xe75\xe5\x0f\x05\xe5\xc0\x06\x9e\xba\xb7(/\x1a\xc1.J\xec\x89\xe6q\xff\x00\xee-P\x1a\xd0\xe0\x0e\x0f\x97\xf1\x8bû\x10\x9f\x98\xa7\xdb\x05x pX\xb9\x94m\xdf\xc6"

What do you think about that? Would it be possible?

What output do you expect? base58 is an encoding for number modulo 58.

What output do you expect?

Same as Base64, but without a few symbols (zero, capital o, capital i, lower case L, plus and slash), I guess.

Firstly understand that base58 is an encoding from an integer, like echo 12345 | base58 yields 4ER. So, assuming the input as the binary of a number, it is actually possible to encode. But the option should be explicit, maybe --binary, -b option.

This is flower.jpg, unlikely it consists of integers, but any file boils down to 0 and 1 in the end, right?

Right. The problem is, cat /dev/random | base64 is possible because it can encode each 8 bytes but cat /dev/random | base58 is theoretically impossible, which discourage me from implementing this feature.


BugFixed: prevent toLowerCase crash the App.

I caught this bug in development. When a user accidentaly ran a non string parameter to get on request, the App crashes.
I fixed this.

Thanks! A few thoughts: I would rather change this to throw a TypeError when not given a string instead of skipping lower casing, or perhaps coerce to argument to a string. Would like thoughts on this from other members.
Also, please add a test that tests this condition, which is a prereq to accept the pull request.

All right @dougwilson , i'll do that. So, in my opinion is better throw a TypeError.

Sounds good, @ScalaSoft, please ping me once you've updated the pull request :)

@dougwilson I made the necessary changes. Please check.


Samples google prototype changes to work with main-eisop

Goes together with https://github.com/jspecify/jspecify-reference-checker/pull/155

DereferenceIntersection now has errors were they were desired but previously missing. I'll see if I see any other opportunities to remove jspecify_but....

If my calculations are correct, we can remove jspecify_but... from all the following:
CaptureAsInferredTypeArgument.java:41
CaptureAsInferredTypeArgument.java:43
CaptureAsInferredTypeArgument.java:45
CaptureConvertedToObject.java:52
CaptureConvertedToObject.java:57
CaptureConvertedToObject.java:66
CaptureConvertedToObjectUnspec.java:52
CaptureConvertedToObjectUnspec.java:57
CaptureConvertedToObjectUnspec.java:66
CaptureConvertedToOther.java:52
CaptureConvertedToOther.java:57
CaptureConvertedToOther.java:66
CaptureConvertedToOtherUnspec.java:52
CaptureConvertedToOtherUnspec.java:57
CaptureConvertedToOtherUnspec.java:66
CaptureConvertedTypeVariableBounded.java:77
ContainmentExtends.java:26
ContainmentExtends.java:34
DereferenceIntersection.java:59
DereferenceIntersection.java:65
DereferenceIntersection.java:76
NotNullMarkedContainmentExtends.java:22
NotNullMarkedContainmentExtends.java:25
NotNullMarkedContainmentExtends.java:31
NotNullMarkedContainmentExtends.java:34
NotNullMarkedTypeVariableBound.java:53
NotNullMarkedTypeVariableBound.java:58
NotNullMarkedTypeVariableBound.java:63
NotNullMarkedUseOfWildcardAsTypeArgument.java:32
NotNullMarkedUseOfWildcardAsTypeArgument.java:37
UseOfTypeVariableAsTypeArgument.java:69

(https://github.com/jspecify/jspecify/pull/584 for those lines)

I had the thought that maybe the wildcard errors are related to undoing the capture conversion "wonkyness." I haven't followed up, but I'll try to do so eventually.

Oh, but also I had some other memory of hacking up the fork to disable some check on the grounds that it should be unnecessary. I think it may have been related to capture conversion, too? I'll dig that up, maybe tomorrow.

I'm taking the specific issues I've mentioned above to separate issues:

https://github.com/jspecify/jspecify-reference-checker/issues/198
https://github.com/jspecify/jspecify-reference-checker/issues/199
https://github.com/jspecify/jspecify-reference-checker/issues/200

I'm not expecting to fix them all before merging main-eisop into main, but:

I want to at least look at https://github.com/jspecify/jspecify-reference-checker/issues/200 while this is all fresh in my mind.
I want to be able to reference those issues when we suppress any remaining errors.


Update FAQ to explain fund transfer process after

Update FAQ to explain fund transfer process after discovering problems with contact-to-contract transfers. Screenshots below for the two sections changed.

Update initial wallet to be the Developer DAO multi-sig wallet.

Update 1

Update 2

I'm going to merge to continue with the launch, though if you have any feedback, let me know and we can update today.


Changing recipe in init file doesn't load new recipe for a package

I'm using straight.el (master branch) with use-package and have the following in my init.el:
(setq use-package-always-ensure t)
(use-package general :demand t)

Which works, general gets installed. But now I want to use a different branch for that package, so I change the second line to:
(use-package general :demand t
  :recipe (:host github :repo "noctuid/general.el" :branch "buttercup"))

Now when I quit and relaunch emacs, I don't think I see any new effect, general is still on the default master branch, not buttercup. I may have missed it in the docs, but is this expected behaviour?

I think I've noticed this as well - if you call straight-pull-package on general, it will ask to update the remote. I do think this prompt should probably happen on startup, since the idea is that the init.el dictates the "state" of your emacs config.

Yeah exactly. In fact, I don't even think there should be a prompt and it should 'just work'. For example, if I didn't have general installed previously, and just put the second code snippet in my init.el, then general gets installed and is on the buttercup branch. So I expect the same result if I have the same thing in my init.el. But to have a prompt would mean different behaviour based on some previous state (i.e. the fact that I installed general beforehand with default recipe), and so the init file is no longer the sole source of truth.

This is expected behavior. Otherwise, it would not be possible to switch branches without updating the recipe in your init-file. Furthermore, it would be impossible to guarantee a fast startup if it were necessary to invoke git(1) once for every repository being loaded.
The idea is that your init-file specifies a single source of truth, which may have arbitrary local modifications applied on top of it. To revert those local modifications, use M-x straight-normalize-all. However, it doesn't make sense to revert them automatically because (1) that would lead to data loss, and (2) it would not be possible, performance-wise.
See also https://github.com/raxod502/straight.el/issues/103#issuecomment-325833346 for more discussion.
In your case @vyp, you would want to M-x straight-normalize-package RET general RET in order to switch branches.
I'm open to suggestions on ways in which the user experience or documentation could be improved in this area.

Yeah so after I made my last comment, I was thinking that requiring such a check at every startup would be way too costly in terms of performance, but then if I for example enter a new package in my init.el, then straight does install it at the next startup, so what's going on here? How does straight do this without being slow, is it a simple case of checking if the local repo exists? (I know can just look at the source code, but thought I might ask as well.)
re: local modifications, I thought about this, and I think the ability to load the local state of the directory is nice and like the way you designed it to be used. For example, even if it's not completely deterministic from the init file, it can be made deterministic pretty easily, and plus this way there's no overhead to just experimenting with quick (or long) arbitrary changes, sort of the way emacs is supposed to be.

I'm open to suggestions on ways in which the user experience or documentation could be improved in this area.

So for me it wasn't clear that I had to use normalize at all, since from the readme it seemed as though it would only be useful if I make local modifications. I guess my confusion comes from the fact that entering a new package into the init.el will install it without needing to do anything else at the next startup, but changing a recipe for an already installed package doesn't do anything. That's not to say I don't want straight to install new packages at the next startup, I like the way it works now, but I was just trying to explain how I came to misunderstand the expected behaviour.
I'm not sure how to address that in the documentation though, but does that help? Maybe, a comment somewhere saying normalize is also useful to realize some changes to the init file, such as modifying a recipe..? (I'm happy to close this issue too if you'd like.)

is it a simple case of checking if the local repo exists?

Yes.

this way there's no overhead to just experimenting with quick (or long) arbitrary changes, sort of the way emacs is supposed to be.

In other words, the whole reason I made this package manager.

So for me it wasn't clear that I had to use normalize at all, since from the readme it seemed as though it would only be useful if I make local modifications.

Agreed, this is not made clear in the README.

entering a new package into the init.el will install it without needing to do anything else at the next startup, but changing a recipe for an already installed package doesn't do anything

It's because there's no way to distinguish a recipe change from a local modification, or some combination of both.

Maybe, a comment somewhere saying normalize is also useful to realize some changes to the init file, such as modifying a recipe..?

Good idea. This should be made obvious, since it only makes immediate sense from the developer's perspective (i.e. mine), and not the user's.

(I'm happy to close this issue too if you'd like.)

Let's leave it open to track the documentation improvements.

Is this actually documented somewhere? I looked for about 10 minutes how to switch from original package to my fork, and ended up just adding the remote manually.

Adding :fork t, reloading your init-file, and then normalizing should cause the remote to be added. Doing straight-fetch-package should fetch from your forked remote. You would also have to straight-merge-package to actually update HEAD to the later commit if you have more stuff on the main branch in your fork.
In terms of documentation, I think the information is technically available in the README, but not all in one place like is necessary to understand it holistically. Sorry, I feel bad for creating such a complex system.

What you're suggesting is very plausible without the need for tradeoffs around data loss, because straight.el supports, by design, interactive reconciliation of local changes with what is specified in the recipe and lockfile. It would be similar to running M-x straight-normalize-package when the last known recipe from the build cache is shown to be outdated. The build cache is not guaranteed to be persistent, so some additional work would be needed to handle all cases correctly, but this is very feasible.


No documentation on how to open GPM Url's from the app menu

OS:
Windows 7
Issue Descriptions:
Unable to open GPM Url's from the app menu. This feature was listed in Version 3.1.0 release notes, but I cannot figure out how to use it. It would be excellent for opening links shared from other GPM users.

"Control + Shift + G"
There will be a help link in the next version

Thank you!


Incorrect completion when typing closing paren in a Razor file

This issue has been moved from a ticket on Developer Community.

Create a Blazor Server project.
In FetchData.razor add a DateTime field called startDate.
Create a method and try to add seven days to startDate by typing:
    void NextWeek()
    {
        startDate = startDate.AddDays(7);
    }

Before typing the closing paren for AddDays wait for the completion list to show up.
Expected result: Text is written as typed.
Actual result: Completion is triggered that overwrites the 7 with "AbandonedMutexException":
[s6GZHlL9Zg.gif] (https://aka.ms/dc/file?name=B3053738a30444a5fac3beab1ba227f1e637715669284302892_s6GZHlL9Zg.gif&tid=3053738a30444a5fac3beab1ba227f1e637715669284302892)

Original Comments
(no comments)

Original Solutions
(no solutions)

Need to add the digit incapability to C#'s word pattern. Would look something like:
(-?\d*\.\d\w*)|([^\d\`\~\!\@\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\\"\,\.\<\>\/\?\s][^\`\~\!\@\%\^\&\*\(\)\-\=\+\[\{\]\}\\\|\;\:\'\\"\,\.\<\>\/\?\s]+)


feat(storage): Upload all data to shared storage as a sstable

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.
What's changed and what's your intention?
PLEASE DO NOT LEAVE THIS EMPTY !!!
In this pr, We will upload all data to shared storage as a sstable.

Remove sync(None), we will do sync with two epochs, and sync all shared buffers in range((epoch1,epoch2]),
We will save uncommitted_sst(sync) in local_version
When we get/iter, we will find the key in shared buffer -> sync uncommitted SST -> level.
We save the max epoch of sync in stream_manager, If the epoch is smaller than max_epoch, It will not commit any sst. It will find it in uncommitted_sst until commit the max_epoch.
We can't finish create_mv and flush before the barrier sync.

Checklist

[ ] I have written necessary rustdoc comments
[x] I have added necessary unit tests and integration tests
[x] All checks passed in ./risedev check (or alias, ./risedev c)

Documentation
If your pull request contains user-facing changes, please specify the types of the changes, and create a release note. Otherwise, please feel free to remove this section.
Types of user-facing changes
Please keep the types that apply to your changes, and remove those that do not apply.

Installation and deployment
Connector (sources & sinks)
SQL commands, functions, and operators
RisingWave cluster configuration changes
Other (please specify in the release note below)

Release note
Please create a release note for your changes. In the release note, focus on the impact on users, and mention the environment or conditions where the impact may occur.
Refer to a related PR or issue link (optional)
https://github.com/singularity-data/risingwave/issues/4290

Would you mind adding some background of this PR? Why do we need to upload all data to shared storage as a stable?

Would you mind adding some background of this PR? Why do we need to upload all data to shared storage as a sstable?

I add the issue link

I think the code of shared-buffer and local-version is too complexed. we can not keep the uncommitted-data in both shared-buffer  and local-version. It will confuse other developers.
cc @hzxa21

I think the code of shared-buffer and local-version is too complexed. we can not keep the uncommitted-data in both shared-buffer and local-version. It will confuse other developers.
cc @hzxa21

I want to keep the uncommitted-data(sst) in local-version and keep uncommitted-data(batch) in shared-buffer. But We have two kinds of uncommitted-sst(flush disk and sync), and we flush disk every epoch, so It we want to keep the uncommitted-data(sst) in local-version, we need a map<epoch,flush_sst> like shared-buffer. So I can't keep flush_sst in shared-buffer.
And we think we can modify the name and type of the uncommitted-data(sync_sst) in local-version to avoid confusion.


Borrow Jenkins to troubleshoot ObjC test failures

Some experimental code to make Jenkins generate more information when it fails on ObjC tests. Do not merge or close.

No significant performance differences

No significant performance differences

No significant performance differences


As the document mentioned, this plugin only supports four motions: j, k, gj, gk.
But for most of (Neo)Vim users, there are many others motions been used such as e, f, b, etc. Even some custom commands, for example, I use <C-J> to scroll down 5 lines.
I have read the source code, I noticed that just need to change a piece of code, it can support other motions. See pic below:

After that, I can accelarate my e and f now!

It's better be a feature request, but I can only open an issue here, sorry for it.

What a great idea! I appreciate it, although not so accelerated-"jk" 😆 . I've tried it and I think it's perfectly feasible and acceptable. I will add such feature later.  Thank you for the in-depth check work of the code.

Feature implemented, check out acceleration_motions configuration item and code(16ba3443c0720a0a1c8f7f31146729b1f406b037) here.


fix: escape db password from postgres url

What kind of change does this PR introduce?
Bug fix: https://github.com/supabase/cli/issues/372
What is the current behavior?
Please link any relevant issues here.
What is the new behavior?
Feel free to include screenshots if it includes visual changes.
Additional context
Add any other context or screenshots.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

31 of 34 (91.18%)  changed or added relevant lines in 4 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage increased (+1.5%) to 25.607%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

cmd/gen.go
2
5
40.0%

Files with Coverage Reduction
New Missed Lines
%

cmd/gen.go
1
64.29%

Totals

Change from base Build<PHONE_NUMBER>:
1.5%

Covered Lines:
1265

Relevant Lines:
4940

💛  - Coveralls


DRILL-6153: Operator framework

Includes the core files for the operator framework revision. See this writeup for details.
In this commit, nothing depends on this new code. It is, instead, the foundation for the revised scan operator to be added after the revised result set loader code is committed.

Hi @paul-rogers, nice to see this code being encapsulated, standardized, and unit tested. There seems to be a Travis test failure with your changes though.
Failed tests:
  TestOperatorRecordBatch.testNormalLifeCycle:156 expected null, but was:<org.apache.drill.test.OperatorFixture$MockFragmentContext@45f1feca>

Rebased on latest master.

@arina-ielchiieva, can you do a committer review of this one?


[BUG] Access to Camunda services are not secured, eventhough certificate is configured

Hi @aabouzaid. I included the steps to reproduce below. Hope you find it useful.
Describe the bug:
In reference to issue https://github.com/camunda/camunda-platform-helm/issues/479
Actual behavior:

Separated ingress works normally, connection is secured with certificate from AWS ACM
Combined ingress has issue

There're 2 problems:

Path based url is marked as "not secure" while subdomain works normally.

Identity returns with the following error

I'm using certificate from AWS ACM.
Expected behavior:
Access to camunda services using path based routing (combined ingress) works normally with certificate
How to reproduce:

Request a certificate on AWS ACM  (*.example.com)
Install camunda via helm chart. Custom value below
Use route 53 to add an alias record to map domain name with AWS ALB.
Access the service via domain name. E.g. example.com/tasklist

Environment:

Platform: AWS EKS
Chart version: 8.1.1
Values file:

global:
  ingress:
    enabled: true
    tls:
      enabled: true
    className: alb
    host: "example.com"
    annotations:
      alb.ingress.kubernetes.io/load-balancer-name: "lb-name"
      alb.ingress.kubernetes.io/scheme: "internet-facing"
      alb.ingress.kubernetes.io/target-type: "instance"
      alb.ingress.kubernetes.io/tags: "Name=qa-camunda-qa-ingress,Stage=qa"
      external-dns.alpha.kubernetes.io/hostname: "example.com"
      alb.ingress.kubernetes.io/subnets: "subnet-id"
      alb.ingress.kubernetes.io/certificate-arn: "cert-arn"
  identity:
    auth:
      publicIssuerUrl: "https://example.com/auth/realms/camunda-platform"
      operate:
        redirectUrl: "https://example.com/operate"
      tasklist:
        redirectUrl: "https://example.com/tasklist"
      optimize:
        redirectUrl: "https://example.com/optimize"

operate:
  service:
    type: NodePort
  contextPath: "/operate"

identity:
  service:
    type: NodePort
  keycloak:
    service:
      type: NodePort
    extraEnvVars:
    - name: KEYCLOAK_PROXY_ADDRESS_FORWARDING
      value: "true"
    - name: KEYCLOAK_FRONTEND_URL
      value: "https://example.com/auth"
  env:
    - name: IDENTITY_URL
      value: "https://example.com/identity"
  contextPath: "/identity"
  fullURL: "https://example.com/identity"

tasklist:
  service:
    type: NodePort
  contextPath: "/tasklist"

optimize:
  service:
    type: NodePort
  contextPath: "/optimize"

zeebe-gateway:
  service:
    type: NodePort

Hi @aabouzaid
Have you got time to look into this?

@hoangduy1912 Thanks for reporting this issue :+1:
It's a bit hard for me to replicate that setup at the moment and I need more info about the issue.
But as a start, could you please use the latest chart? Because that chart had an older version of the Camunda Platform 8 apps.


Add opengraph/twitter/other preview tile headers

Services like Twitter, Facebook, iMessage, and others use these headers to provide a preview image, basic information, a small blurb and other information to users when they share links. There are a well-defined set of headers which specify information for generic purposes as well as specific service hooks.

@jontg this is the same OG image issue I was going to file. @blake213 is going to provide the OG image tonight.

I added some of the metadata @blake213 — feel free to update the image URL whenever you're ready!


fmin_slsqp crashes without inequalities constraints

If you try to use fmin_slsqp without inequalities constraints it will crash with the following error:
Traceback (most recent call last):
File "test.py", line 6, in
fmin_slsqp(func, x0, fprime=jac,f_eqcons=funcceq, fprime_eqcons=funccjac, iter=20)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/slsqp.py", line 354, in fmin_slsqp
a = concatenate((a,zeros([la,1])),1)
ValueError: arrays must have same number of dimensions
On a first investigation it looks like the variable 'la' gets undefined somehow, attempt at fixing this problem have been unsuccessful, suggesting a bigger problem. To replicate the error please use the functions below (taken from the example on the website). Save a file as flowrunanalytic.py with the content below and a file test.py (content further down). Then run ' python test.py  '.
Python version is 2.7.3, scipy version is the latest available (downloaded on Sunday September 7th).
Any suggestion on how to fix this?
flowrunanalytic.py :
import numpy as np
def func(x, sign=-1.0):
# Objective function
    return sign*(2*x[0]*x[1] + 2*x[0] - x[0]**2 - 2*x[1]**2)

def jac(x, sign=-1.0):

#	Jacobian of the function
     dfdx0 = sign*(-2*x[0] + 2*x[1] + 2)
     dfdx1 = sign*(2*x[0] - 4*x[1])
     return np.array([ dfdx0, dfdx1 ])

def funcceq(x):
#	Equality constraint function
		return np.array([x[0]**3 - x[1]])

def funccjac(x):
#	Jacobian of equality constrain function
		return np.array([3.0*(x[0]**2.0), -1.0])

def funccin(x):
# Inequality constraint function

		return np.array([x[1] - 1])

def funccjacin(x):
#	Jacobian of inequality constraint function

		return np.array([0.0, 1.0])

test.py:
import numpy as np
from scipy.optimize import fmin_slsqp
from flowrunanalytic	import func, jac , funcceq, funccjac, funccin, funccjacin
x0 = [ -1.0, 1.0 ]

fmin_slsqp(func, x0, fprime=jac,f_eqcons=funcceq, fprime_eqcons=funccjac, iter=20)

Cannot reproduce with version 0.14.1.


Reset color if next element does not have colors

This allows for an element to be empty or break the line

Example code:
def add_empty_segment():
    powerline.append("  empty  ", None, None, '', None)

add_empty_segment()

def add_newline_segment():
    powerline.append('\\n', None, None, '', None)

add_newline_segment()

I will open a PR for the newline segment, if you are interested.

@b-ryan @milkbikis :top:

Thanks for the PR! Sorry there has historically been a long backlog of PRs to get to - I'm always trying to make time to resolve that.
I don't think it's burdensome to specify self.powerline.theme.RESET as your fg / bg color when adding a segment. IMO being explicit in this way is more readable. A newline segment has been added since this PR that does just that.


F1 2018

Please add support for the following game:
F1 2018
**Telemetry data can be accessed through a http stream. It can be set up in the settings menu under telemetry/OBD. The game already sends out light data for the G29 Racing wheel for the Over rev lights. Hoping there is a way to get the current color of the flag on the spacebar.
A good default would be:
Tyre temps on the 1,3,7&9 positions of the numpad,
Fuel meter on Q-P,
ERS meter on A-L,
Harvest and Deployment meters at Z-V and N- "."
The telemetry stream sends all of this naively to an html server. **

Is that telemetry a feature that is built in to the game? If so that's great.
Do you know the format that the data is sent in? Probably JSON? Also, do you know if it's possible to set the port that it sends the data to or is it hard-coded to a particular one?

My bad, I might have been thinking about Beam.NG Drive that has OBD support.
However the game does have values for all of that stuff in game somewhere...
I'm not the best when it comes to this stuff so I've posted some pictures to show the options available.
Hopefully this is something that you can understand.
(The UDP format has 2018 and Legacy as options.)

Hello, to complete this post here is a project that uses F1 2021 telemetry. Is it possible to use it with Aurora? :)
https://github.com/PrimeGoose/f1-2021-udp


WIP: Enable continuous package release to crates.io

...rather than doing it only on select tags. This should publish only versions that are not published yet.
Related #7634
cc @gnunicorn @TriplEight

@s3krit what's your take on releasing on every commit to master? That's something even beyond nightly releases in my view.

This means we can finally increase a crate version and it will be published?

@s3krit what's your take on releasing on every commit to master? That's something even beyond nightly releases in my view.

My general view would be that it might be better for developers to have the power themselves to bump versions and only then would it get pushed to crates.io. I.e., rather than us using CI to detect whether or not we need to push to crates.io or whatever, we simply let the much smarter developers decide whether they want to release a new version of a crate (and subsequent dependencies).
That being said, if we're not really doing much in the way of additional testing/QA once something's been committed to master, I'm not really sure what the drawback is. If we're happy for something to be merged with master, due to the way we currently use substrate and builders use substrate, we're basically saying 'this is OK to use' (as I understand it). And pushing to crates.io just makes it easier for developers. Of course, I could be entirely wrong here.

This means we can finally increase a crate version and it will be published?

Yes.

We should run cargo unleash em-dragons only on the version bumps, please return it -- @TriplEight

That is inconsistent with the requirement from @bkchr just stated above. Why should this not be run unless a specific tag is set?

@s3krit what's your take on releasing on every commit to master? That's something even beyond nightly releases in my view.

This discussing is irrelevant, as this is not what is happening here.
To clarify: cargo unleash em-dragons first syncs the latest crates.io versions, then checks the local tree against them. Only the ones that locally have a version not found on crates.io (and don't have a publish = false flag in their Cargo.toml) will be attempted to release. If the PR didn't change any version (for the majority of PRs) this does exactly nothing, states that all is fine and quits.

Ok, this makes sense then. Thanks @gnunicorn . Then it should run on master.

@ascjones do we need to wait until #8615 is merged?

@ascjones do we need to wait until #8615 is merged?

If this PR will release frame-metadata from this repo, then yes.
If it won't release that crate then should be good to go.

AIUI an alternative would be to proceed with publishing the 14.0.0-dev here, and yank it once #8615 is merged (which also would properly migrate to an "actual" v14, so to speak); I'm not sure how much time #8615 needs.

I'm not sure how much time #8615 needs.

It's waiting for another review, but not sure how long that will take tbh.

an alternative would be to proceed with publishing the 14.0.0-dev here

That might work, though I would need to change the deps on my PRs to use the git dependency which would break the unleash CI. But I think that has changed now to be non-mandatory.

cc https://github.com/paritytech/substrate/pull/9705


Union of Enum values or object values

Is there any way to create a union validation of enum values or object values?
I tried the code below but it doesn't work:
import {z} from 'zod';

const Fruits = {
  Apple: "apple",
  Banana: "banana",
} as const;

const FruitEnum = z.nativeEnum(Fruits);

type Fruit = z.infer<typeof FruitEnum>; // "apple" | "banana"

const fruitValuesLiterals = Object.values(Fruits).map(value => z.literal(value)); // z.ZodLiteral<"apple" | "banana">[]

const fruitUnion = z.union(fruitValuesLiterals); // ERROR: Argument of type 'ZodLiteral<"apple" | "banana">[]' is not assignable to parameter of type 'readonly [ZodTypeAny, ZodTypeAny, ...ZodTypeAny[]]'.

TS playground code

A similar issue happened in discriminatedUnion. Seems that TS engine cannot deduce the generic types from an identical array constructed with array in the types: [...]`.
Current workaround I'm using is to manually expand all the variables.

It compiles OK if you create the union and the litterals in a single line, e.g.
const fruitUnion = z.union([z.literal('apple'), z.literal('banana')]); // type: z.ZodUnion<[z.ZodLiteral<"apple">, z.ZodLiteral<"banana">]>

However as soon as you try and split the creation of the litterals and union into multiple steps, it cant compile:
const fruitValuesLiterals = [z.literal('apple'), z.literal('banana')]; // type: (z.ZodLiteral<"apple"> | z.ZodLiteral<"banana">)[]
const fruitUnion = z.union(fruitValuesLiterals); // Argument of type '(ZodLiteral<"apple"> | ZodLiteral<"banana">)[]' is not assignable to parameter of type 'readonly [ZodTypeAny, ZodTypeAny, ...ZodTypeAny[]]'. Source provides no match for required element at position 0 in target.

Based on this, I'm thinking that it's not currently possible to achieve this. However It would be good to see this in the future.

Just to expand on my previous comment,
Just to add that my second example does compile if you specify the type as a tuple with ZodLitteral types, e.g:
const fruitValuesLiterals: [z.ZodLiteral<'apple'>, z.ZodLiteral<'banana'>] = [z.literal('apple'), z.literal('banana')]; // type: (z.ZodLiteral<"apple"> | z.ZodLiteral<"banana">)[]
const fruitUnion = z.union(fruitValuesLiterals); // type: z.ZodUnion<[z.ZodLiteral<"apple">, z.ZodLiteral<"banana">]>

However I'm not sure of any way to build this type dynamically based on the values in the enum/const object

Just to expand on my previous comment, it does compile if you specify the type as a tuple with ZodLitteral types, e.g:
const fruitValuesLiterals: [z.ZodLiteral<'apple'>, z.ZodLiteral<'banana'>] = [z.literal('apple'), z.literal('banana')]; // type: (z.ZodLiteral<"apple"> | z.ZodLiteral<"banana">)[]
const fruitUnion = z.union(fruitValuesLiterals); // type: z.ZodUnion<[z.ZodLiteral<"apple">, z.ZodLiteral<"banana">]>

However I'm not sure of any way to build this type dynamically based on the values in the enum/const object.

@devklick I think you are missing the point here:
What I wanted was to use iteration with zod and something like Template Literal Types.
The point of this issue is to say that it only works with z.union([z.literal('apple'), z.literal('banana')]) but not with z.union(Object.values(Fruits).map(value => z.literal(value))). You are reiterating that in the first case it works and didn't mention the second case at all. (Tho AFAIK it is hard to achieve in TS.)

@PabloLION Thanks for clarifying. Can you elaborate on your workaround? Not sure what you mean by expanding the loop.

@devklick Sorry for the vagueness. I edited the post before. It's just like what you did.

Hi @colinhacks , would you mind checking this issue and decide if we are going to work on it? Thanks in advance.


fix(cdk/testing): strongly type return value of TestElement.getProperty

Allows for the return value of TestElement.getProperty to be typed strongly through a generic parameter.

Done. Also rebased.


Changing case of field name(key) in the generated map

So, I am using MongoDB in my application, and this package is a perfect fit for changing structs to map, which can be directly inserted into the collection. Now, as the usual convention is lower case for keys in MongoDB document, but in go I need them first letter upper case, to allow outside package access.
So, it would be really helpful if you can add a wrapper on top structs.Map(), something like structs.MapWithLowercaseKeys() (sorry for my bad naming convention), so If anything like this already exist, please let me know.
Currently, I again have to iterate recursivily inside the map, and remove and re-adding the keys with changed case.

Currently, I am doing it like this.
func MapLowercaseKeys(v map[string]interface{}) map[string]interface{} {
	for key, val := range v {
		if reflect.TypeOf(val).Kind() == reflect.Map { // nested map
			val = MapLowercaseKeys(val.(map[string]interface{}))
		}
		delete(v, key)
		v[strings.ToLower(key)] = val
	}
	return v
}

May be there can be a more optimized approach to this, which can be added into structs.

+1


interface name device not correct

NetBox Librenms Plugin version
v0.2.9
NetBox version
v4.1.7
Python version
3.11
Steps to Reproduce
When i do a sync interface on a windows server, it get hardware name and not Ethernet name.

i have this problem also with cisco device.

I haven't this problem with linux device.

Expected Behavior
i expect as correct name the ethernet port name (as in librenms) and not hardware name.
I would use phisycal name for Label field.

For example in Cisco device, there's problem also for Cabling Sync, because it found the interface remote port is Gi (Gi10 in example) and not Gigabithethernet. in this case i can't sync cable.

Observed Behavior
i have hardware name in interface name.

Hi @donmart85,
I think this will become a plugin setting, as well as an override option on each table pages.
Here is my thinking...

The LibreNMS API has two possible values available for the interface name in NetBox. Either ifName or ifDescr.  Sometimes they are the same value, but sometime they are different.

Here is an example from a Cisco 9k switch: (different values)
{
        {
            "port_id": 5760,
            "ifName": "Gi0/3",
            "ifDescr": "GigabitEthernet0/3",
            "ifType": "ethernetCsmacd",
            "ifSpeed": 10000000,
            "ifAdminStatus": "up",
        },

... and here's a Ubuiqiti switch port. (different values)
        {
            "port_id": 659,
            "ifName": "CPU Interface:  5/1",
            "ifDescr": "CPU Interface for Slot: 5 Port: 1",
            "ifType": "other",
            "ifSpeed": null,
            "ifAdminStatus": "up",
        },

A different Ubuiqiti device (same values)
        {
            "port_id": 647,
            "ifName": "eth0",
            "ifDescr": "eth0",
            "ifType": "ethernetCsmacd",
            "ifSpeed":<PHONE_NUMBER>,
            "ifAdminStatus": "up",
        },

The port name displayed in LibreNMS is not always available in the API ifName or ifDescr field. For example the above Ubuiqiti switch port (second example) displays like this in LibreNMS. It does not match either ifName or ifDescr.

I would like to match the interface naming conventions used in the NetBox device type library when possible. For my environment (mainly Cisco) it was the ifDescr value that matched.

I also think there is user preference too. One may prefer Gi1/0/1 over GigabitEthernet1/0/1 in NetBox and vice versa.

Clearly using ifDescr isn't going to be the right option for all devices and neither would using ifName. So I think making this an option when creating the tables would help.
As there are vendor inconsistences, API variations, and user preference to consider, I think making ifName or ifDescr a user option is the only way forward at the moment.

Hi @bonzo81,
you're right, maybe the best option is that users choose the prefered name.
However often the ifDescr is too long (as windows or Ubiquiti), i would left ifName as predefined.
I think that the scope of this plugin should be the integration between netbox and librenms, so the interface name should be the same in both systems. It is my idea.
OFF TOPIC...what is your opinion about ubiquity switch? are they work well? how are they monitored in LibreNMS (interfaces, FDP Table, arp table, ecc)? i have cisco small business but they are expensive, so i would want to change brand.
I'm just using ubiquity's ap and they work well, with a docker container as controller.
Thank you for your work, the plugin works very well.

Hi @donmart85,
Sorry for slow reply, I've been working on the plugin.
I've got a new setting in place for the plugin that should help with this. Can be set in the plugin config
PLUGINS_CONFIG = {
    'netbox_librenms_plugin': {
        'librenms_url': 'https://your-librenms-instance.com',
        'api_token': 'your_librenms_api_token',
        'cache_timeout': 300,
        'verify_ssl': False,
        'interface_name_field': 'ifDescr', # Optional: Set default name field for interface name. ifName used as default
    }
}

Also providing an option to override this per device.

This should be in the next release 0.3.0 is the next few days.
Regarding Ubuiqiti, I only have a handful of devices in my house. I don't have any experience at the small business or enterprise level with them. For my own purposes they work well and are easy to setup and monitor through the Unifi app/website. In LIbreNMS there is interface, FDB and ARP data available.
Thanks for you feedback for the plugin. Hopefully the next release is helpful for you.


add pypi downloads badge to README

PR adds the badge via pepy.tech

The badge looks good – the website pepy.tech seems to be a one-guy outfit!  I wonder how long the service will be around 🤔

Hmm good point. If the badge starts 404ing, we can always remove it!


Implement header that corresponds to sections of page

Create a working header that takes users to different sections of the page. The last clicked header section will have a different color than the other sections to indicate what section the user is on
Here's a look at the header (given the user clicked on "Contact"):

Hi Cindy, are you still working on merging this with PR#3? From the "Files Changed" tab I see a lot of code related to PR#3 around. Let us know if you would like to work on the merge first or have us review first!


The Us and Vs might be flipped around - investigate

There are some inconsistencies.
In the .h5 files
In hydrodynamic_V.h5 the header information says "zonal_velocity".
In hydrodynamic_U.h5 the header information says "meridional_velocity".
Wikipedia
For what it's worth, wikipedia says

For vector fields (such as wind velocity), the zonal component (or x-coordinate) is denoted as u, while the meridional component (or y-coordinate) is denoted as v.

NetCDF files
The .nc files in the header information say that
vo is "Northward Current Velocity in the Water Column" and uo is  "Eastward Current Velocity in the Water Column".
Parcels
In advection.py in Parcels, us affect longitude and vs affect latitude.
Experimentally
For what it's worth, I'm currently using us to affect latitude and vs to affect longitude and the outputs look good.
Conclusion - What is the problem?
The original data uses u to mean Eastward Velocity (== affects latitude == x == zonal velocity) however parcels uses u to mean affects longitude (== Northward Velocity == y == meridional velocity).
I suspect that Christian mixed this up as a result when converting the NetCDF files because to me it seems that the us in the hdf5 data are actually indicating zonal velocity and this means that the hdf5 headers are named incorrectly.

Comment 1:
Latitude = North-South ( https://en.wikipedia.org/wiki/Latitude ) = y
Longitude = East-West ( https://en.wikipedia.org/wiki/Longitude ) = x
Comment 2:
"Zonal flow follows a pattern along latitudinal lines, latitudinal circles or in the west–east direction." -> Zonal flow occurs along a fixed latitude (i.e. a line at a given latitude), 'along' meaning here: "on that line". So, this should be U. (I need to correct the H5-description).
"Meridional flow follows a pattern from north to south, or from south to north, along the Earth's longitude lines, longitudinal circles (meridian) or in the north–south direction." -> Meridional flow occurs along a meridian (i.e. a fixed longitude - a line along a meridian, with a meridian always having the same x-coordinate; see the Greenich zero-meridian). So, this should be V. (I need to correct the H5-description).
Suggestion:
Now, to check what is what, I suggest the following:
a) post here please the coordinates of your test-cases. I'll quickly run them today or tomorrow through parcels, and give you the reference trajectory.
b) Maybe please look again on the major-order of your loaded array and your looped indexing. Maybe you switched x- and y indices  during your loop, or reading in a column-major order field [time][y][x] as row-major order field [x][y][time] ? This could easily happen sometimes with the memory map.

Comment 1:
Latitude = North-South ( https://en.wikipedia.org/wiki/Latitude ) = y
Longitude = East-West ( https://en.wikipedia.org/wiki/Longitude ) = x

Ah!! This explains part of my confusion. I was looking at this image and the arrows totally confused me.

A reference trajectory would be greatly appreciated. I tried some more value looking for a good trajectory and I found one that gives me quite strange results so there is definitely still something not right with my implementation.
Please can you send me trajectory for start latitude = 54.832040 and start longitude = 6.187572?

b) Maybe please look again on the major-order of your loaded array and your looped indexing. Maybe you switched x- and y indices during your loop, or reading in a column-major order field [time][y][x] as row-major order field [x][y][time] ? This could easily happen sometimes with the memory map

I think I indeed found an error here that seems to have cleared up at least one problem. So thank you for this!


ImageBrush.SourceRect and Display Scaling

name: Bug report
about: Create a report to help us improve Avalonia
title: ''
labels: bug
assignees: ''
Describe the bug
Device scaling seems to interfere with ImageBrush.SourceRect.
To Reproduce

Made a 256x256 image with four colored squares.
Used the following ImageBrush as the background of a Window:<ImageBrush x:Key="drawing"
    Source="/Assets/Images/drawing.png"
    SourceRect="0 0 128 128"
    DestinationRect="0 0 128 128"
/>

Expected behavior
I'd expect SourceRect to map to the image pixels, without taking my device scaling into account, and DestinationRect to use scaling.
Screenshots

Desktop

OS: Windows 10
Version: 0.10.0

In case anyone ends up here when trying to tile an image, omitting SourceRect entirely will take the entire image, bypassing this bug.
Instead of using this (resulting in this issue) :
<ImageBrush x:Key="StripeBrush" Source="/Assets/occt.stripes.png" TileMode="Tile"  SourceRect="0 0 51 51" DestinationRect="0 0 51 51"/>
do this :
<ImageBrush x:Key="StripeBrush" Source="/Assets/occt.stripes.png" TileMode="Tile"  DestinationRect="0 0 51 51"/>
This only applies if you want to tile the entire source image, but luckily, this is my case.

I also just ran into this bug on a high-DPI device.  The suggestion by @Tetedeiench gets around the bug, but it would be nice if SourceRect worked as expected.


Replace existing Municipalities with new version with muni_code field

Summary

Proposed Readable Name: Utah Municipal Boundaries
Proposed Internal Dataset Name: Municipalities
Proposed External Dataset Name: municipal_boundaries
Proposed Data Category: BOUNDARIES
Data Description: Municipalities with added muni_code field
Source Agency/Entity: UGRC
Contact: Mike Heagin
Update Frequency: On going

This data will swapping out the existing BOUNDARIES.Municipalities and is essentially the same, the only difference is a new field has been added to hold a 3 character municipal code as per Bert's request.
The data should be available in
1 Check [x] all the areas where you expect the data to show up.

[x ] Internal SGID
[x] Open SGID
[x] ArcGIS Online
[x] Open Data

The data is of high quality

[x] Sweeper checks have run and passed (name on 2021/04/06)
[x] The minimum requirements for metadata are populated (name on 2021/04/06)
[x] The data complies with our domain rules (name on 2021/04/06)

Where is the data source
Choose one.

[x] Internal SGID
[ ] Farm from AGOL (agol item url)

Action items

Assign a person who should complete the task by replacing name with their github @name.
Check [x] the box when the task is completed and add the date of completion.
~Strike~ out all items that do not apply.

[ ] Add data to the Internal SGID (name, completed: 2021/00/00)
[ ] Configure forklift for Farm from AGOL (name, completed: 2021/00/00)
[ ] Update relevant gis.utah.gov data pages (name, completed: 2021/00/00)
[ ] Add a Stewardship record (name, completed: 2021/00/00)
[ ] Complete a SGID.META.AGOLItems record (name, completed: 2021/00/00)
[ ] Complete an AGOLItems_shelved record for any static or shelved item (name, completed: 2021/00/00)

:robot: Automation validation

Assign yourself or someone to check the item by replacing name with their github @name.
Check [x] the box and add the date of verification 2020/01/01 when the task is verified.
~Strike~ out all items that do not apply.

[ ] Open SGID via cloudb (@steveoh on 2021/00/00)
[ ] ArcGIS Online via forklift (@stdavis on 2021/00/00)
[ ] Auditor ran successfully (@jacobdadams on 2021/00/00)
[ ] Open Data (name on 2021/00/00)
[ ] gis.utah.gov data pages (name on 2021/00/00)
[ ] sgid-index (@steveoh on 2021/00/00)

Notification

[ ] Twitter (@steveoh)

Group Task Assignments

Check [x] the box when you have assigned all the tasks relevant to your group.

[ ] Data Team (@gregbunce)
[ ] Dev Team (@steveoh)
[ ] Cadastre Team (@rkelson)

I'm hoping that once I replace the data in Internal no other action will be needed since this data is a replacement rather than an addition or removal.

I don't think porter is required for adding a field to a table.

Anyone, please reopen this if you disagree.

I had the same thought as Steve.  But on another note, should we review the codes in the Data team meeting?  It might help to have multiple eyes on them to make sure fit the munis as best as possible.

I thought I'd error on the safe side... I'll swap out the data in Internal and leave the old version with the db privileges revoked in there in case we need to roll back. This will be happening to MetroTownships as well.

should we review the codes in the Data team meeting? It might help to have multiple eyes on them to make sure fit the munis as best as possible.

That makes sense to me. I assumed that had happened since there were multiple values for municipalities and it seemed like some discussion was required from the different stakeholders.


Add result summary

Purpose

$subject

Codecov Report
Patch coverage has no change and project coverage change: +6.58% :tada:

Comparison is base (0072de3) 25.56% compared to head (b465631) 32.14%.
Report is 6 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1698      +/-   ##
==========================================
+ Coverage   25.56%   32.14%   +6.58%
==========================================
  Files          40       76      +36
  Lines        8652     5070    -3582
  Branches        0     2558    +2558
==========================================
- Hits         2212     1630     -582
+ Misses       6309     3440    -2869
+ Partials      131        0     -131

Flag
Coverage Δ

adapter
?

config-deployer-service
26.33% <ø> (?)

idp-domain-service
80.10% <ø> (?)

Flags with carried forward coverage won't be shown. Click here to find out more.
see 116 files with indirect coverage changes

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


Bugfix/release

Hopefully this fixes 1. in #22:
In the release.yaml the switch has not been made to pnpm – yarn is still being used to install and publish.
I copied over the pnpm checkout and install steps from the main.yaml, but I changed yarn publish to npm publish.
pnpm publish probably also works, but in my experience using npm to publish is the most reliable way.

@Goldziher I just set up a test repo with npm to look into the node_modules/interface-forge dir, I'm almost certain that yarn was the problem, here:


retry() exceeding maximum call stack

We ran into an issue where retry causes a "maximum call stack exceeded" error when the retry completes with a success when testing with Iceweasel in an unreliable network after some tens of retries. I reduced this to a minimal example demonstrating the issue in my dev env, which will cause the error after some 400+ failing requests and then a succeeding request:
function getJson(url) {
  return Bacon.fromPromise($.ajax({type: 'GET', url: url, dataType: 'json', timeout: 10000}))
}
function serverReady() { return getJson('/rest/ready') }

Bacon.retry({
  source: serverReady,
  retries: Number.MAX_VALUE,
  delay: function() { return 30 }
})
.onValue(function (val) { console.log('done retrying,', val) })

The delay is 2 sec in the real env, but to demonstrate issue a lower value was used. In our  use, retrying will go on until success happens or the browser is closed, so no upper limit is given for the amount of retries.
Anyone ran into this? As far as I can tell, it seems that the way retry is implemented calling itself recursively will lead to a continuously growing call stack despite flatMapping, but I'm looking for some confirmation and ideas before rushing to make my own retry from scratch.

The thing is, if you use flatMap-based constructs recursively, you'll get a stack overflow in the long run. There's no easy fix as of yet. I've been thinking about how to implement a sort of tail-call optimization for flatMap, but it's far from trivial.

When running Firefox on Linux, the stack limit seems to be significantly lower than on other operating systems or browsers. This is especially true when function.call is used instead of function(). It might be possible to postpone this limitation by avoiding CoffeeScript in Bacon.js when they are not needed.

I understand the underlying problem now. Since it's a real issue for us, I'll go ahead with a custom stream creator with retry like this:
  function fromPromiseRetry(promiseF, opts) {
    var isRetryable = opts.isRetryable || function() { return true }
    var delay = opts.delay || function () { return 0 }
    var retries = opts.retries || 0
    var errorAction = opts.errorAction || function () {}

    return Bacon.fromBinder(function(sink) {
      var id
      function resolve() {
        promiseF().then(sink, function(e) {
          return retry(new Bacon.Error(e))
        })
      }

      function retry(event) {
        if (isRetryable(event.error) && retries > 0) {
          retries--
          errorAction(event.error)
          id = window.setTimeout(resolve, delay({error: event.error}))
        } else {
          sink(event)
        }
      }
      resolve()
      return function () { return window.clearTimeout(id) }
    })
  }

It's not as general purpose as the original retry, so I'm not sure how useful it is for others. However, our only uses for retry are for ajax connections, so for those it should come in handy.

Can you implement the general-purpose retry without flatMap?

Yes you can! And the implemenation is in master now.
There's a test for no stackoverflow here: https://github.com/baconjs/bacon.js/blob/master/spec/specs/retry.coffee#L74
The new impl is based on the new method Bacon.fromStreamGenerator introduced in #521.

Fix included in 0.7.47 por favor!

Nice! Bacon.fromStreamGenerator looks like a useful addition. The test aspect of retry is a bit tricky; a future change in the interpreter configuration can render the test useless.. would need a way to instrument the interpreter directly to check stack growth, but I'm not aware that such an interface is available.

@pnex2000, new Error().stack can do the trick, but not available in all environments.


better documentation around strictHeaderCheck

@tejashah88 some problems with the current README:

There is a lot of content, and it's getting cluttered and hard to read
the 2nd example showing strictHeaderCheck explains how to use that option, but no explanation of why someone should use it.
the 1st example (simple usage) should probably be discouraged since it's arguably a little less secure

my suggestion is we just have one usage example, the express router one and explain why. Happy to send a PR to make these changes, just wanted to run it by you and see what you think. thoughts?

Sure, go ahead!


update arc commander macos installation

depends on decision https://github.com/nfdi4plants/ARCCommander/issues/238

Are you working on the same change in linux and/or windows?

done for linux; don't want to do for windows


[Bug]: network anomaly There is an abnormality in your network and you cannot connect to the server.

Is there an existing issue for the same bug?

[X] I have checked the existing issues.

Branch name
main
Commit ID
e439d0959492c6808427677ad09dd096827146ad
Other environment information
OS:Mac M2

Actual behavior
When I input http://<IP_ADDRESS>/login in brower,I got a bug that
there is an abnormality in your network and you cannot connect to the server.
Could you help me ,thanks!
Expected behavior
No response
Steps to reproduce
http://<IP_ADDRESS>/login

Additional information
No response

I check the logs,It's about Es can not connect .
Fail to connect to es: Connection error caused by: ConnectionError(Connection error caused by: NewConnectionError(<urllib3.connection.HTTPConnection object at 0x400917fb90>: Failed to establish a new connection: [Errno 111] Connection refused))
How to fix it

I also encountered the same issue, and it was resolved after executing the following command:
$ docker logs -f ragflow-server

I also encountered the same issue, and it was resolved after executing the following command:
$ docker logs -f ragflow-server
It disppeared.
Thank you,Perhaps It's initialzing.

Have a look at this. It may help.
https://github.com/infiniflow/ragflow/blob/main/docs/faq.md

@wengbenjue I had the same issue and restarting docker-compose solved it for me, as suggested here: https://github.com/infiniflow/ragflow/issues/348#issuecomment-2054020194


Add note that removing node-local-dns can be a destructive operation to docs

How to categorize this PR?
/area documentation
/kind enhancement
What this PR does / why we need it:
Add note that removing node-local-dns can be a destructive operation.
Release note:
NONE

Thank you @jastBytes for your contribution. Before I can start building your PR, a member of the organization must set the required label(s) {'reviewed/ok-to-test'}. Once started, you can check the build status in the PR checks section below.

/author-action


feat: added support for PostgreSQL

Hi @vrxj81 and thanks for this contribution!
Unfortunately, since you opened this PR, we deeply changed the file structure of Turbovault4dbt. Could you match your changes to the latest Turbovault version?
Best Regards
Tim


Missing model.json and traner.json file for tf_mg branch

Unable to find model.json and trainer.json files for tensorflow mg branch.

Both of model.json and trainer.json are configuration files.
I try to find out the parameters used in this work and recreate ones.
model.json file looks like as the following.
{"n_node_types":33, "n_edge_types":4, "n_d":2, "Fe":16, "Fh":[32, 64, 128, 128, 256, 256], "Fskip":256, "Fh_policy":128, "learning_rate":0.001, "decay_step":100, "decay_rate":0.001, "beta1":0.9, "beta2":0.999, "epsilon":0.00000001, "clip_val":3.0, "activation":"relu", "batch_norm":true }
trainer.json file looks like as the following.
{"dataset":{ 			"file_name":"datasets/ChEMBL.txt", 			"num_epoch":50000, 			"generator":"from_smiles_to_batch", 			"batch_size":25, 			"num_pool":null, 			"kwargs":{"queue_in_size":10, 					"queue_out_size":10, 					"k":10, 					"p":0.9, 					"conditional":false, 					"is_train":true}, 			"sampler":null 			}, "model_name":"graph_lm", "summarize_step":10 }


Add quotes around all string columns in GTFS link mapper output CSV

Background
https://replicahq.atlassian.net/browse/RAD-6518
While building new versions of the TN CDP to incorporate bike/ped custom speed support (branch), I hit an error in the gtfs_metadata DM for the 2023_Q4 nationwide TN CDP build.
Exploring further, I noticed lines in the nationwide 2023_Q4 GTFS link mapper CSV that were the source of the problem - some of the string columns contained commas, which messed up panda's parsing of the CSV in gtfs_metadata, eg
10_Pulaski Pike_Central Health, Calvary Library, Bessie K Russell Library, Sav-A-Lot, Showers Rec Center_FF2F72FF,f-dn4m-huntsvilleshuttle,Beard at Sitka__34.740557_-86.610174,Poplar at Arctic__34.739372_-86.606958,34.740557,-86.610174,34.739372,-86.606958,"['18181266604444354019','6538526469271641680','9379575148167167562','4810001069266628679','14415768003386197773']",f-dn4m-huntsvilleshuttle:10_Pulaski Pike_Central Health, Calvary Library, Bessie K Russell Library, Sav-A-Lot, Showers Rec Center_FF2F72FF/f-dn4m-huntsvilleshuttle:Beard at Sitka__34.740557_-86.610174/f-dn4m-huntsvilleshuttle:Poplar at Arctic__34.739372_-86.606958

Why didn't we hit this until now? I did some more testing and noticed that

We only use the GTFS link mapper CSV in gtfs_metadata DM
In that DM, we only load the CSV in the case where a GTFS feed has no shapes, and we want to use the link-mapped routes to infer a geometry for the line

It seems as though regions where this is problematic never had missing GTFS shapes, and therefore, the link mapper was never loaded. For example, south_central 2023_Q4's CSV causes problems:

However, the link mapping CSV is never loaded during south_central's gtfs_metadata run. For regions where the link mapping is loaded, you see the log Loading link map  - southwest is an example. But for south_central, you never see that log, so the problematic CSV lines are never loaded + never cause an error.
In the nationwide case, however, we're bound to load the (nationwide) GTFS link mapping CSV, because at least 1 region has missing shapes (southwest is an example). In this situation, the link mapping CSV contains the bad lines from other regions (eg south_central) that have never been loaded in the regional build case, because that region doesn't have missing shapes itself
Description
I updated the code that creates lines of CSV outputs to add " quotes around all string entries. Previously, the stable edge ID list had quotes explicitly added in earlier code; I removed the quotes there in favor of adding them in the final line creation where other fields were getting quotes added
Testing

[x] Recreated 2023_Q4 south_central GTFS link mappings and tried the local test code again; no error! 🎉

[x] Building a nationwide 2023_Q4 TN CDP, ensuring gtfs_metadata passes with this change included (build is currently running)

@bryanwilliams1025 Agreed that it's weird we hadn't hit this before in other seasons' nationwide builds, perhaps we just got lucky and none of the feeds for those seasons have badly-formed GTFS route/stop names?
The one comforting thing is that these were the first ever runs of the nationwide build for 2023_Q4, so hitting a new issue wasn't unexpected


Planets

ignore branch name pls

Sorry, this was supposed to go into our own repo! Please disregard.


Github page for testing

Due to the Vercel limited pro plan issue, it would be nice if we add GitHub page for testing this repository that forked from this repo

I think for now this feature request is open to everyone!

I already tried to add a GitHub page for testing, however, there is an error about the Next image. Run log

I'm pretty sure, this is won't work because (I think) next-image is only supported on vercel.


Add missing semicolon in AutoValue example

@nikitin-da is there something wrong with Travis?

Yep, Travis decided this request is fishy =(
I mail to the Travis support and I hope we will merge this PR soon.

@mlegy sorry for such delay=(
@MariadeAnton from Travis team ask you to log into https://travis-ci.org/. It seems you has not logged into Travis yet.
Hopefully this will give more visibility into issue why request is fishy.
Thank you in advance!

Codecov Report

Merging #782 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #782   +/-   ##
=======================================
  Coverage   96.85%   96.85%
=======================================
  Files          87       87
  Lines        2638     2638
  Branches      296      296
=======================================
  Hits         2555     2555
  Misses         50       50
  Partials       33       33

Continue to review full report at Codecov.

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

Thanks!


Two (more) Collections with empty string for curator_name field

https://cellxgene.cziscience.com/collections/1b014f39-f202-45ae-bb7d-9286bddd8d8b
https://cellxgene.cziscience.com/collections/661a402a-2a5a-4c71-9b05-b346c57bc451
These two collections have CollectionVersion.curator_name = ''.
The owner for both is, once again, google-oauth2|106687116196602342983, aka Batuhan Cakir.

I defer to @brianraymor for priority level on this ticket.

Thanks for reporting @danieljhegeman.
Have we determined the source of the problem? We know that Batu's name used to be set in the past. I'm curious if there's any action that we can ask Batu to perform.
Otherwise, is there a reusable script that can be used by the on-call to set the curator name correctly?

Otherwise, is there a reusable script that can be used by the on-call to set the curator name correctly?

No. Going forward this will not happen anymore. The fix is a very easy sql insert statement.

The fix is a very easy sql insert statement.

Then could you do that now?

The fix is a very easy sql insert statement.

Then could you do that now?

I'm on it!

This has been done ✅
update "CollectionVersion" set curator_name = 'Batuhan Cakir' where collection_id in ('1b014f39-f202-45ae-bb7d-9286bddd8d8b','661a402a-2a5a-4c71-9b05-b346c57bc451');


Crash issue

so when my game starts up, it immediately crashes. My device is Windows 10. Version 1.20.4, and the only file in my .mods section in %appdata% is the .jar file of the latest version. Exit code is 1. Would like to know how to fix

As described on all platforms where it is available for download, you need the Architectury API, and the Fabric API if you are using Fabric

thanks, someone told me on the dc server


Update dorita980

Since koalazak seems to have discontinued support for dorita980, why not go for the updated @karlvr/dorita980 that actually supports node 18?

hello. I have a problem with the roomba adapter. I have Docker and iobroker installed on the "loxberry". Before the loxberry <IP_ADDRESS> update, the roomba adapter worked without any problem. Despite entering the correct data into the adapter (IP, username, password) it does not work even though it lights up green....

@ErykxK pretty sure this has nothing to do with loxberry and its version.
Looking at your last screenshot, iobroker is running with node 18 which causes the issue described in https://github.com/iobroker-community-adapters/ioBroker.roomba/issues/143.
I assume you're using iobroker in docker and have recently upgraded to version 8.#.# (or more likely are just using iobroker:latest and docker has recently implicitly updated to an 8.#.# version of that image).
Pinning the docker image to version 7.2.0, which uses node 16, will work around this issue until this PR is merged or the adapter has been fixed in any other way to work with node 18.
In case my above assumption is correct, you might wanna inform about docker versioning and reconsider using "latest" in any sort of productive environment.

yep. you were right! after reinstalling iobroker (this time version 7.2.0) everything works fine

The problems came back with 18.6 even with @karlvr/dorita980 - or do I have problems with my installation?

@TheRealArthurDent It seems 14.x has problems. Maybe it should be removed out of the code, because it's desupported already.

I think it's fine now. What is the next step?

What is the next step?

Well. Someone with write access to the repo (https://github.com/orgs/iobroker-community-adapters/people) has to merge this PR and create a new release.
@Apollon77 You appear to be the guy in charge of this repo (at least the most active contributer. May I ask you to do that? :)

@fritz47110815
@TheRealArthurDent
Thanks for your effort. I can merge the PR and create a new release.
But before doing this I would like to ensure the someone is ther to TEST the new release and to FIX issues eventually occuring. I do not have the hardware (= roomba) to test anything. (My Rooba is an old stipid model which has difficulties to find its base but has no connection to anything else than the power supply).
So please let me know if there's someone out to take the responsibility for the changes and is willing to do his/her best to fix eventually problems.
McM1957
@Apollon77 FYI and eventually veto if you know more facts.

Go ahead, I would also onlymerge and release a version

Ok, I'll do the netx few days

Hey @mcm1957,
sorry for the late response. :(
I was a bit hestitant to speak-up as a tester, since I only have a 960 which means that I can just test basic connectivity but not much else. So I wanted to wait if anybody else raises their hands. Of course I then forgot to respond a bit later. -.-
Anyway, thank you very much for releasing this. I'll test it asap (pry this afternoon/evening) and leave a comment on https://github.com/iobroker-community-adapters/ioBroker.roomba/issues/143.

@TheRealArthurDent
No problem. I confirmed with Apollon77 to build a new release.
I will release a newer 1.2.1 today or tomorrow. Thkis release will not have any fixes but contain some more updates on dependencies. I wanted to seperate those updates from your PR to easeeventually searching for problems.
As I already states I do not have any (useable) Roomba for tests. So I can only check that a release is nbuildable and can be installed. As you have at least one unit which can communicate with the adapter I'm glad if you do some tests.