flash sector erase fails on stm32f412

I running my zephyr based firmware. Before it is run a boot loader selects the firmware image. This bootloader sets the FLASH_OPTCR register. All sectors are disabled for writing(erasing).
using flash_write_protection_set function doesn't fail when enabling writing - but after flash_erase fails because of the FLASH_OPTCR bootloader preset.
The current problem with the stm32 flash driver is, that it assumes that its runs after a reset.
I done a fix for the stm32f4xxx code. It's below:
iff --git a/drivers/flash/flash_stm32.c b/drivers/flash/flash_stm32.c
index fe50b88e8e..400b0c1255 100644
--- a/drivers/flash/flash_stm32.c
+++ b/drivers/flash/flash_stm32.c
@@ -329,6 +329,27 @@ static int stm32_flash_init(struct device *dev)
        LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_HSEM);
 #endif /* CONFIG_SOC_SERIES_STM32WBX */

+#if defined(CONFIG_SOC_SERIES_STM32F4X)
+       // make sure that user options are disabled
+       // they affecting if flash read/write operations
+       // are allowed on the flash for spezific sectors
+       struct stm32f4x_flash *regs = FLASH_STM32_REGS(dev);
+
+       // check if we are not in the typical rest config
+       if (regs->optcr!=0x0FFFFFED) {
+               // clear OPTLOCK
+               regs->optkeyr=0x08192A3B;
+               regs->optkeyr=0x4C5D6E7F;
+               if (regs->optkeyr & 1) {
+                       // still locked
+                       // we failed
+                       return -EIO;
+               }
+               // now write rest config
+               regs->optcr=0x0FFFFFED;
+       }
+#endif
+
        k_sem_init(&p->sem, 1, 1);

        return flash_stm32_write_protection(dev, false);

Think all the other stm32 flash driver implementations may need some attention.

@erwango could you take over this, or re-assign if needed?

@StefJar could you send up a PR if you already have a fix for that?

This fix only addresses the stm32f4 part of the stm32 flash driver. Think @erwango needs to check the other stm MCUs.

@StefJar, well is that a bug actually? This should rather be an enhancement.
STM32 flash driver doesn't handle flash option control register. If your bootloader modifies it, well, it won't work indeed, but this is true for lot of other option bytes that are not handled by driver.

@StefJar the bootloader that you are using is the mcuboot? I'm having a similar problem when I swap images between slot0 and slot1 with mcuboot. My board is nucleo_f091rc. My error is a HARD FAULT like the one below:
***** HARD FAULT *****
***** Hardware exception *****
Current thread ID = 0x00000000
Faulting instruction address = 0xfffffffe

I realized that my problem is when the mcuboot calls the flash_write_protection_set function that is inside both flash_area_erase and flash_area_write functions.
I created a blank project with these statements in the main and I didn't get errors.
u8_t buff[] = "aaaaaaa";
int err            = flash_area_open(SCRATCH_ID, &fap);
if (!err) {
    printk("scratch -> fa_off: %X, fa_size: %X, fa_id: %d, fa_device_id: %d\n", fap->fa_off,
           fap->fa_size, fap->fa_id, fap->fa_device_id);
}
err = flash_area_write(fap, 0, buff, strlen(buff));
if (err) {
    printk("Error writing...\n");
}
err = flash_area_erase(fap, 0, fap->fa_size);
if (err) {
    printk("Error erasing...\n");
}

So I realized that the problem is just when I'm trying to manipulate(write/erase) flash in the mcuboot project. If you are using mcuboot, where it is setting the FLASH_OPTCR register? Maybe something similar is happening to me.

Priority?

@lucaspeixotot I don't use mcuboot. I have a "beautiful" in company written legacy bootloader that I need to deal with.
I didn't check MCUboot, but I guess it has a flash driver as well. Maybe you need to patch this driver. Check f091 datasheet. I am not sure, if my f412 solution works for that.

@lucaspeixotot I don't use mcuboot. I have a "beautiful" in company written legacy bootloader that I need to deal with.
I didn't check MCUboot, but I guess it has a flash driver as well. Maybe you need to patch this driver. Check f091 datasheet. I am not sure, if my f412 solution works for that.

I think that my problem is different. Today I realized that the hard fault occurs when the semaphore in flash_write_protection_set function is being given. What is curious is that this driver works properly in other projects than are not mcuboot.

Moving this as an enhancement rather than a bug.

Looking to it more in detail, I don't think requested modification would even be an enhancement that would be acceptable in flash driver.
Option bytes are meant to configure behavior persistant across reset. Resetting them blindly at boot in application is a quite particular usage.
If bootloader configures option bytes in a way that is incompatible with the application usage, it rather seems as a bug in the bootloader than a feature we want to support in application flash driver.

after discussing it with @erwango we decided to close this issue. Key points for not merging the proposed commit workaround to the stm32 flash driver:
1st) this code only works for STM32F412
2nd) it sets blindly the flash OPTCR register to reset mode. Maybe this is not wanted.
3rd) we leave it to the user to know from which context his zephyr image is run. So the user needs to take care of this register.
I put the code to a git repro. so everyone can use this as a blueprint for similar problems.
https://github.com/StefJar/zephyr_stm32_flashOPTCRreset

Hi @erwango and @StefJar, I am facing a similary problem with my disco_l475_iot1 board which has stm32l475 MCU. I am using mcuboot for updatehub app. flash_write_protection_set works fine but flash_erase() is not successful. I checked carefully all the partition sizes they are perfectly according to DTS file. Now I tried to see OPTCR register but could not find it. could you please suggest a workout or solution to this issue.
thanks
Tahir

@mtahirbutt, please raise a new issue and explain your problem.
One thing you can do is test your erase command on flash_shell sample (if issue is not linked to partitioning).

Hi @erwango, I tried flash_shell command and tried to erase partitions. it returns here with -5 again. similar problem as that with updatehub.


chore: fix rendering bug in pantheon when more than one link on the same line and no link text provided (RHIDP-4301)

What does this PR do?
chore: fix rendering bug in pantheon when more than one link on the same line and no link text provided (RHIDP-4301)
Signed-off-by: Nick Boldt<EMAIL_ADDRESS>Screenshot/screencast of this PR
N/A
What issues does this PR fix or reference?
https://issues.redhat.com/browse/RHIDP-4301
How to test this PR?
N/A
PR Checklist
As the author of this Pull Request I made sure that:

[x] Code produced is complete
[ ] Code builds without errors
[ ] Tests are covering the bugfix
[ ] Relevant user documentation updated
[ ] Relevant contributing documentation updated

Reviewers
Reviewers, please comment how you tested the PR when approving it.

/cherry-pick release-1.3


RatedShipment_BaseServiceCharge - MonetaryValue - minLength

The minLength of 16 is not what is ever returned:
      "BaseServiceCharge": {
        "CurrencyCode": "USD",
        "MonetaryValue": "0.00"
      },

https://github.com/UPS-API/api-documentation/blob/4962e982cfca654bee7fbc4c9a0b80105cf480aa/Rating.yaml#L4623-L4647

Hi, thank you for your comment. We have pushed updated OpenAPI specs.


How can i config 'security.protocol' which is same with python config?

my python and nodejs config as below, but i can't see any options about 'security.protocol': 'SASL_PLAINTEXT' in KafkaJS. the problem is: the python code works, and the nodejs code can't work.
python
from confluent_kafka import Producer p = Producer({   'bootstrap.servers': '<IP_ADDRESS>:19099',   **'security.protocol': 'SASL_PLAINTEXT',**   'sasl.mechanism':'SCRAM-SHA-256',   'sasl.username':'test',   'sasl.password':'test123' })
nodejs
const { Kafka } = require('kafkajs'); const kafka = new Kafka({   clientId: 'test_client_id',   brokers: ['<IP_ADDRESS>:19099'],   ssl: {     rejectUnauthorized: false,   },   sasl: {     mechanism: 'scram-sha-256',     username: 'test',     password: 'test123',   }, }); const producer = kafka.producer();
when i try to connect kafka server, it throws an error:
{ KafkaJSConnectionError: Connection error: read ECONNRESET        at TLSSocket.onError (/project-a/node_modules/kafkajs/src/network/connection.js:136:23)        at TLSSocket.emit (events.js:182:13)        at TLSSocket.EventEmitter.emit (domain.js:442:20)        at emitErrorNT (internal/streams/destroy.js:82:8)        at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)        at process._tickCallback (internal/process/next_tick.js:63:19)      name: 'KafkaJSConnectionError',      retriable: true,      helpUrl: undefined,      broker: '<IP_ADDRESS>:19099',      code: 'ECONNRESET' },   retryCount: 5,   retryTime: 9884 }

You have to set ssl to false. Currently you are trying to connect over TLS.
Note that authenticating without TLS means that the credentials will be visible in plain text, which is not recommended for production deployments.

Hi @lzj723 you should use plain
https://kafka.js.org/docs/configuration#plain-scram-example
SASL_PLAINTEXT = plain

thanks for your answers!
i tried these 4 cases, and all failed again.

{
ssl: false,
sasl: {
mechanism: 'plain',
username: 'test',
password: 'test123',
},
}
Error: { KafkaJSProtocolError: The broker does not support the requested SASL mechanism
at createErrorFromCode (/project-a/node_modules/kafkajs/src/protocol/error.js:536:10)
at Object.parse (/project-a/node_modules/kafkajs/src/protocol/requests/saslHandshake/v0/response.js:24:11)
at Connection.send (/project-a/node_modules/kafkajs/src/network/connection.js:306:35)
at process._tickCallback (internal/process/next_tick.js:68:7)
name: 'KafkaJSProtocolError',
retriable: false,
helpUrl: undefined,
type: 'UNSUPPORTED_SASL_MECHANISM',
code: 33 }

{
ssl: true,
sasl: {
mechanism: 'plain',
username: 'test',
password: 'test123',
},
}
Error: { KafkaJSConnectionError: Connection error: read ECONNRESET
at TLSSocket.onError (/project-a/node_modules/kafkajs/src/network/connection.js:136:23)
at TLSSocket.emit (events.js:182:13)
at TLSSocket.EventEmitter.emit (domain.js:442:20)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
name: 'KafkaJSConnectionError',
retriable: true,
helpUrl: undefined,
code: 'ECONNRESET' }

{
ssl: false,
sasl: {
mechanism: 'scram-sha-256',
username: 'test',
password: 'test123',
},
}
Error: { KafkaJSSASLAuthenticationError: SASL SCRAM SHA256 authentication failed: Authentication failed due to invalid credentials with SASL mechanism SCRAM-SHA-256
at SCRAM256Authenticator.authenticate (/project-a/node_modules/kafkajs/src/broker/saslAuthenticator/scram.js:157:21)
at process._tickCallback (internal/process/next_tick.js:68:7)
name: 'KafkaJSSASLAuthenticationError',
retriable: false,
helpUrl: undefined }

{
ssl: true,
sasl: {
mechanism: 'scram-sha-256',
username: 'test',
password: 'test123',
},
}
Error: { KafkaJSConnectionError: Connection error: read ECONNRESET
at TLSSocket.onError (/project-a/node_modules/kafkajs/src/network/connection.js:136:23)
at TLSSocket.emit (events.js:182:13)
at TLSSocket.EventEmitter.emit (domain.js:442:20)
at emitErrorNT (internal/streams/destroy.js:82:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:50:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
name: 'KafkaJSConnectionError',
retriable: true,
helpUrl: undefined,
code: 'ECONNRESET' }

right, sorry about the plain. It was actually the ssl configuration.
You should use scram-256, and the error is saying that your credentials are invalid. I recommendo you to double check that: Authentication failed due to invalid credentials with SASL mechanism SCRAM-SHA-256

@tulios i double-check my username and password, and they are corrent. so i can't find out what's wrong with my configuration.

I am closing this issue for now since it is stale for a while. We have many services running in production using SCRAM, so I am confident that it works. Feel free to re-open the issue if you are still facing problems.

I am facing the exact same issue when connecting to confluent cloud
I should provide the following params:
bootstrap.servers=cluster-id.us-east-2.aws.confluent.cloud:9092
security.protocol=SASL_SSL
sasl.mechanisms=PLAIN
sasl.username={{ CLUSTER_API_KEY }}
sasl.password={{ CLUSTER_API_SECRET }}
I trie dthe following:
const kafka = new Kafka({
clientId: 'my-app',
brokers: ['cluster-id.us-east-2.aws.confluent.cloud:9092'],
ssl: false,
sasl: {
mechanism: 'scram-sha-256', // scram-sha-256 or scram-sha-512
username: '',
password: ''
},
})
I also tried with ssl false and mechanism plain but got same error:
"message": "[BrokerPool] Failed to connect to seed broker, trying another broker from the list: Connection timeout",

For connecting to Confluent Cloud, you should use the plain mechanism. We have an application running against a confluent cloud cluster that connects just like that:
https://github.com/kafkajs/canary-app/blob/master/app/config/production.json#L3-L11
(username and password are null in that configuration file, but it gets overridden with the actual cluster API key and secret later using environment variables)
One thing to note is that we saw very long connection times against CC, so the default connection timeout of 1000ms is too short. I changed it to 15 seconds in our application, but I haven't done any real measurements to figure out what connection times to expect.

Also sasl.mechanisms=PLAIN maps to mechanism: 'plain' and not scram-sha-256

thanks fo rthe rpely.
I switched to plan and ssl true but still getting teh same error:
"message": "[BrokerPool] Failed to connect to seed broker, trying another broker from the list: Connection timeout"
This code runs in a lambda function which has acces sto internet, i.e. the SG enables all traffic outbound and it has an internet gateway
in fact have another components runing within teh same setup which also access resource on internet, so I don't see how only the lambda function coudl be affected.


Add ability to disconnect selected Bluetooth devices

These changes add the ability to disconnect selected Bluetooth devices instead of powering down the Bluetooth stack. It can also restore their states on screen unlock.
I'm using a Mac mini and I needed a way to disconnect my Bluetooth headphones on sleep. But I still needed to be able to wake up my Mac with my Bluetooth mouse and my Bluetooth keyboard.
I'm not a Mac developer so I have no pretension that what I implemented is correct or not. I just needed a quick solution to my problem.

Wow, this looks great. I'll merge this and release a new version after I've had a chance to try it out.

I'm not a Mac developer so I have no pretension that what I implemented is correct or not. I just needed a quick solution to my problem.

Neither am I. 😆

😂 I encountered a weird behaviour with getting the list of paired devices -- which I documented in the getPairedDevices() function.

It looks like you are still finding some new changes that you want to make so I won't merge this just yet. But I did check out your code and am running this version now, so I will help you test. We can plan on merging it in 2-3 weeks if things are working well. I am not in a rush to get it merged, better to have a stable release.
One thing I noticed right away is that I think it would be great if you could click Disconnect selected devices when in this state:

It is possible to go back to Turn off Bluetooth so we should be able to switch both ways easily.

Will let you know if I see anything else.

I pushed two small commits to bring some of your changes into the main branch. Feel free to rebase.

A while ago I wrote some logging code to try to figure out #5 (it hasn't helped me figure out the issue yet though). I just pushed it to a branch now for posterity: https://github.com/stefansundin/bluesnooze/commits/logging
I wonder how os.log compares. I assume that macOS persists these logs somewhere? I looked but I wasn't able to find it. It would be great if it stored it e.g. in ~/Library/Logs/ so that users could submit a log if the program doesn't work as expected for them.
I'm considering bringing over the setWifi changes to my branch first but would be great if we could decide on the logging first. The only good thing about what I wrote is that it puts it in a file, but otherwise it is very clunky (I was not planning on including it in a release). If we find something that can be included in a release that would be great.
If we bring over the less scary stuff first then we can reduce this PR to only have the new Bluetooth feature.

One thing I noticed right away is that I think it would be great if you could click Disconnect selected devices when in this state:

I agree. I pushed a change that implements that behaviour.

I wonder how os.log compares. I assume that macOS persists these logs somewhere?

Indeed, it's the macOS unified logging system and it takes care of storing the logs. You can view them with the Console app or with the log command line tool. When running the app in Xcode, the logs will be streamed directly in the debug output.
As per the os_log man page:

The unified logging system provides a single, efficient, high performance set of APIs for capturing log messages across all levels of the system.  This unified system centralizes the storage of log data in memory and in a data store on disk.  The system implements global settings that govern logging behavior and persistence, while at the same time providing fine-grained control during debugging via the log(1) command-line tool and through the use of custom logging configuration profiles (see os_log(5)). Log messages are viewed using the Console app in /Applications/Utilities/ and the log(1) command-line tool.

From my experience on macOS Ventura 13.2.1:

The Console app allows to live stream the logs.
It has some nice filtering capabilities to help in viewing the logs.
But I was confused as to how you can see the logs that weren't live streamed.
This is where the log command comes to play.

log show --process Bluesnooze will show all the logs of the Bluesnooze process.
sudo log collect can export all the system logs into an archive that can then be opened in the Console app.

log has options to control the time window of the logs that are of interest.

What's pretty cool about it is that it will not only include the logs from our code, but it will also include the logs of the frameworks that are used by the process. For example, it will include the logs from the IOBluetooth framework.

but would be great if we could decide on the logging first.

I suggest using the os_log as it's the standard logging system.
References:

os_log(3), https://www.manpagez.com/man/3/os_log/
log(1), https://www.manpagez.com/man/1/log/

A while ago I wrote some logging code to try to figure out https://github.com/stefansundin/bluesnooze/issues/5 (it hasn't helped me figure out the issue yet though).

With log collect, you can dump the system logs into a log archive that you can then open in the Console app. It will allow you to see the logs of the other processes around the time the app tries to turn the Wifi back on.
For example, here are some sample logs that show the interactions between the app and the bluetoothd when the app tries to connect to a Bluetooth device:
default	2023-03-13 12:17:11.373534 -0400	Bluesnooze	Connect <IOBluetoothDevice: 0x121804bd0 ATH-M50xBT2, 00-0a-45-23-cd-19>, paired: true, connected: false
default	2023-03-13 12:17:11.373579 -0400	bluetoothd	Received XPC message "CBMsgIdRetrievePairedPeersWithOptions" from session "com.oliverpeate.Bluesnooze-classic-72022-832"
default	2023-03-13 12:17:11.375304 -0400	bluetoothd	Received XPC message "CBMsgIdPairingAgentRetrievePairedDevices" from session "com.oliverpeate.Bluesnooze-central-72022-833"
default	2023-03-13 12:17:11.375570 -0400	Bluesnooze	-[IOBluetoothDevice openConnection:withPageTimeout:authenticationRequired:allowRoleSwitch:forPairing:] async: <private>
default	2023-03-13 12:17:11.375576 -0400	Bluesnooze	-[IOBluetoothCoreBluetoothCoordinator connectPeer:options:] <private>
default	2023-03-13 12:17:11.375588 -0400	Bluesnooze	-[IOBluetoothDevice openConnection:withPageTimeout:authenticationRequired:allowRoleSwitch:forPairing:] Success: <private>
default	2023-03-13 12:17:11.375622 -0400	Bluesnooze	<IOBluetoothDevice: 0x121804bd0 ATH-M50xBT2, 00-0a-45-23-cd-19>, CREATE_CONNECTION command success: true
default	2023-03-13 12:17:11.376737 -0400	Bluesnooze	-[CBClassicManager connectPeer:options:] <private> uuids: <private>
default	2023-03-13 12:17:11.378319 -0400	bluetoothd	Received XPC message "CBMsgIdConnectPeer" from session "com.oliverpeate.Bluesnooze-classic-72022-832"
default	2023-03-13 12:17:11.391827 -0400	bluetoothd	UN: connectDeviceForApp for classic  8EFEC9E2-0BB9-823C-A585-96101514383F for com.oliverpeate.Bluesnooze
default	2023-03-13 12:17:11.391838 -0400	bluetoothd	App connecting - {cbuuid: 8EFEC9E2-0BB9-823C-A585-96101514383F, bundle: com.oliverpeate.Bluesnooze}
default	2023-03-13 12:17:11.391846 -0400	bluetoothd	Connecting device "8EFEC9E2-0BB9-823C-A585-96101514383F" for session "com.oliverpeate.Bluesnooze-classic-72022-832" with options (connect:0 disconnect:0 notify:0 delay:0 wantsObjectDiscoverData:0 transportBridging:0 disableLeGATT:0 ancsRequired:0)
[...]
default	2023-03-13 12:17:13.886193 -0400	bluetoothd	Sending XPC message "CBMsgIdPeerConnectionCompleted" to session "com.oliverpeate.Bluesnooze-classic-72022-832"
default	2023-03-13 12:17:13.886611 -0400	Bluesnooze	-[IOBluetoothCoreBluetoothCoordinator init]_block_invoke connectionStatusHandler callback for peer: <private> with error: 0
default	2023-03-13 12:17:13.886616 -0400	Bluesnooze	-[IOBluetoothCoreBluetoothCoordinator init]_block_invoke connectionStatusHandler: <private> with error: 0
default	2023-03-13 12:17:13.886674 -0400	Bluesnooze	-[IOBluetoothDevice peerConnected:error:] peer: <private> error:0
default	2023-03-13 12:17:13.886743 -0400	Bluesnooze	-[CBClassicManager handlePeerConnectionCompleted:] <private> <private>
default	2023-03-13 12:17:13.886749 -0400	Bluesnooze	Inform delegate connectionComplete: 0 <private> <<private>>
default	2023-03-13 12:17:13.886821 -0400	Bluesnooze	Connection complete: <IOBluetoothDevice: 0x121804bd0 ATH-M50xBT2, 00-0a-45-23-cd-19>, success: true

Notes:

The documentation doesn't mention it but log collect requires root so you need to sudo log collect.
When you open the log archive in the Console app, by default, it will only show the last 5 minutes.
This can be very confusing, but there's a dropdown when you can change the time window.

Hey, I was wondering if it is possible to download compiled file of this version.

Hi, what's the status on this PR?


Perspective functionality

This is what I'm talking about:

I think the image provides enough information

This Was requested a long time ago, but this is hard to add right now

That's fine. Should i keep the issue opened?

Yes, maybe i will add someday👀

@NikunjKhangwal in the meantime https://github.com/danopdev/Perspective might help.

@devSJR My gallery has the feature as shown in screenshot. It was just a suggestion. But anyways thanks for the mention.

Added this

I will also provide parameter to not stick for image boundaries, so it'll be as shown in picture
(Added as a crop option only now)

Awesome. Thank you


Add IConsoleDriver

Is your feature request related to a problem? Please describe.
A very useful step towards #3837 would be if everyone who referenced Driver especially Application.Driver hit an interface instead of a concrete class.
This would enable me to write a facade that makes the new system look like the old driver.
Describe the solution you'd like
Add IConsoleDriver interface and replace all properties/fields/static references to ConsoleDriver to IConsoleDriver
Describe alternatives you've considered
I could make the changes in my own branch but I think that would be a mistake.
This is useful work in general so would fit in to v2_develop directly and doesnt need to be tied to #3837

Looks like ReSharper might do this as a one click 'ReSharper > Refactor > Extract Interface'
I will have a try tomorrow


Share one manager between requests

The default  wreq behaviour is to create a new manager each time, which is wasteful and takes longer.

Yes, this is surprisingly important - I once had >50% of total CPU time
for a backend taken up just by new manager creations.
On Tue, Oct 2, 2018 at 3:10 PM Vaibhav Sagar<EMAIL_ADDRESS>wrote:

The default wreq behaviour is to create a new manager each time, which is
wasteful and takes longer.
You can view, comment on, or merge this pull request online at:
https://github.com/kadena-io/pact/pull/236
Commit Summary

Share one manager between requests

File Changes

M pact.cabal
https://github.com/kadena-io/pact/pull/236/files#diff-0 (1)
M tests/PactContinuationSpec.hs
https://github.com/kadena-io/pact/pull/236/files#diff-1 (223)
M tests/Utils/TestRunner.hs
https://github.com/kadena-io/pact/pull/236/files#diff-2 (34)

Patch Links:

https://github.com/kadena-io/pact/pull/236.patch
https://github.com/kadena-io/pact/pull/236.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/kadena-io/pact/pull/236, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABGlYBGt_X5LIZJB_uRG4aQOaOueBiuyks5ug7o9gaJpZM4XEruh
.

Thanks!  It's great to get all the tests passing!


feat: google search&image commands

This will require some API works on Google Custom Search engine (https://cse.google.com/cse/all) and Google Cloud Platform (https://console.developers.google.com/apis/library/customsearch.googleapis.com + api key stuff in IAM). As suggested in DMs on Discord I can help with that @kyranet.
Two open question:

Can I rename search command to dsearch, then give gsearch.ts an alias of search so google will be default, but DuckDuckGo will remain as alternative.
Right now the URL for the image command  goes to the "context", for example if the image is a youtube thumbnail it will open the youtube video, not the image. I personally prefer this but I can also see some good of having the URL go to the actual image.

Assigned WIP badge until 2 open questions are answered


[RTT] compile error when RTT console enabled

Describe the bug
for example using onoff_level_lighting_vnd_app sample. after enable rtt loging, compile error occurred.
To Reproduce
CONFIG_RTT_CONSOLE=y
CONFIG_HAS_SEGGER_RTT=y
CONFIG_USE_SEGGER_RTT=y
Expected behavior
Impact
RTT not usable.
Screenshots or console output

Environment (please complete the following information):

Commit SHA: 2222d14549c93da1bfeac28f5b685e85893f214b

I should use west meta-tool to update multi-repository fisrt and then no issues here.


Switching between daily notes does not update the currently displayed month

Request from discord:

hi liam - kinda minor, but the calendar redraw on switching between two daily note panes doesn't switch the month if required.

Current thinking:

anthonyg that's intentional for now. I want changing the calendar month to be a more deliberate choice. I'll file an issue on github to track but I'm more inclined to add a command palette command to 'reveal active file on calendar'

I'm still not sure I want to automatically update displayed month, but I added a command to reveal the active file in the calendar. Calendar: Reveal active note


feat: build release mode packages

This is for using our cachix as a deployment nix cache (if someone were to do that).
It also proves that our flake.nix package definitions are working.
I'm not sure if it's worth doing in every PR, so gating to run only on master.

Codecov Report
Base: 63.93% // Head: 63.91% // Decreases project coverage by -0.03% :warning:

Coverage data is based on head (18ed61c) compared to base (50848d1).
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1734      +/-   ##
==========================================
- Coverage   63.93%   63.91%   -0.03%
==========================================
  Files         132      132
  Lines       24481    24481
==========================================
- Hits        15651    15646       -5
- Misses       8830     8835       +5

Impacted Files
Coverage Δ

fedimint-core/src/core.rs
91.66% <0.00%> (-1.16%)
:arrow_down:

crypto/tbs/src/poly.rs
24.22% <0.00%> (-0.21%)
:arrow_down:

modules/fedimint-mint/src/lib.rs
77.91% <0.00%> (-0.12%)
:arrow_down:

fedimint-server/src/consensus/mod.rs
81.08% <0.00%> (+0.15%)
:arrow_up:

fedimint-server/src/lib.rs
77.29% <0.00%> (+0.27%)
:arrow_up:

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


refactor: remove default value of context from CheckboxGroup and RadioGroup

Successfully deployed 80fdcb8392ea6a009008e8222144f92078d8cc1b to https://trendmicro-frontend.github.io/styled-ui-demo/pr-90


Enable extension for a specific workspace only

Can I enable this extension exclusively for workspaces using bootstrap?
I would like to disable it in the user settings and enable it in the workspace settings.

Now the extension is only activated automatically if you really use Bootstrap in your project, otherwise it is deactivated


Feature: Add toHTML on EditorState object

Today, using $generateHtmlFromNodes requires jumping through a bunch of hoops and also requires doing calling the helper editor.update. Maybe we can simplify this and move it into core by just providing a toHTML method on the EditorState itself, similar to how we have toJSON.

Closing this issue. Thinking about it more, it's not possible to do this as we need to have knowledge of the editor object, unlike the toJSON workflow – as we invoke the createDOM methods on nodes, and thus need the EditorConfig.

I think toHTML is possible for editorState, tiptap do provide this method.


No screens showing & error (Unexpected token < in JSON at position 0)

So I don't see any screens in the dropdown and when I hit start I get the following error:
Unexpected token < in JSON at position 0

Do you get Error: Couldn't find a matching codec in the console too?

I think you need libx264 or libvpx, it says that at the start of the README


Add move/moveFile

TODO: going to change this PR to add new move and moveFile functions (no need to review at this time)

I don't see the value of adding this. It can already be done just by simple combination of existing functions in std.file?

Yes you can do the same thing with a rename and then catch the exception and fall back to copy. Closing

Yes you can do the same thing with a rename and then catch the exception and fall back to copy. Closing

I don't see the value of adding this. It can already be done just by simple combination of existing functions in std.file?

How?
The point was that rename doesn't work across file systems (which requires copying).
It wasn't added as a parameter due to:

It will also be more user-friendly to call move or moveFile than to call rename!(CanCopy.yes),

The point was that rename doesn't work across file systems (which requires copying).
It wasn't added as a parameter due to:

It will also be more user-friendly to call move or moveFile than to call rename!(CanCopy.yes),

It also makes no sense to add a parameter to copy, because trying to move a directory via copying becomes a complete mess is a case where the application really should be in direct control over what happens (especially if anything fails during the copy). It can be debated as to whether having moveFile instead of using rename, catching the FileException on move failure, and then calling copy followed by remove is worth it, but I think that it's clear that changing rename to support copying would be a mistake given that it supports directories (and that's not even getting into the issues of rename then not being atomic).

What is the use case for this?
This function is useful if you are writing a generic file manager tool or a D reimplementation of coreutils, when you don't know where the source and destination might be. But if you are writing a program that knows what files it's operating with, then you probably also know where they are located on the filesystem, and already know whether you need to rename or copy+delete.
I can imagine that this could be useful in a situation where e.g. a program needs to move some data in or out of a cache, where the cache might or might not be on another filesystem, but this invariably brings up questions like what to do with directories, symlinks, timestamps, extended file attributes, etc. etc. that it's better to leave the user to address these concerns explicitly in their program.

What is the use case for this?

Honestly, this is what I'd want in most cases where I'd move a file. I rarely care whether the source and destination are on the same filesystem - especially when I'm using something like zfs, where you frequently end up with quite a few filesystems on your system, because datasets get used heavily, and those are treated like separate partitions with regards to moving. It matters a lot less if you're just using actual partitions, but if I'm moving a file, whether the source and destination are on the same filesystem is almost always an implementation detail. So, in practice, I find the fact that rename doesn't act like the  unix mv utility to be incredibly annoying - to the point that it's not infrequent that I just use std.process to call the unix utility when copying or moving files around, because they're user-friendly in a way that std.file really isn't.
If we want to argue that it's simple enough to do create a moveFile wrapper around rename yourself that it's not worth putting in Phobos, then fine, but personally, I would find a function like moveFile to be extremely useful in comparison to rename. I've found that using rename is a bug in the making, because the application rarely has control over what filesystems files are on unless it's just playing in a directory specific to it and where it controls all of the files.

Here's on example that exists in D's tools.
If you have 2 drives on your windows box (i.e. C:\ and D:\) then you can cause rdmd to fail.
C:\> rdmd -oftest test.d
D:\> rdmd -oftest test.d

One of these will fail because it will cause rdmd to copy the temporary output file from it's cache to the users current directoy, which will be another drive in one of these cases.  This is because rdmd uses rename without catching the exception and falling back to copy.  Using moveFile instead would have prevented this bug and provided a simple API for developers to use instead of having to do this all the time:
try { rename(from, to); } catch (FileException) { copy(from, to); remove(from); }

(reopening as there's clearly not a common consensus)

It matters a lot less if you're just using actual partitions, but if I'm moving a file, whether the source and destination are on the same filesystem is almost always an implementation detail.

Exactly, so the implementation of your code should follow the "implementation" of your filesystem layout.

So, in practice, I find the fact that rename doesn't act like the unix mv utility to be incredibly annoying - to the point that it's not infrequent that I just use std.process to call the unix utility when copying or moving files around,

This is bad advice. Command-line tools do a lot of magic, DWIM stuff that are unsuitable for writing correct and reliable programs.

because they're user-friendly in a way that std.file really isn't.

std.file, or any part of Phobos, should NOT be "user-friendly" - it should be an API that does exactly what the documentation says it does, and nothing more.

The try/catch code is 6 lines. But this PR is 103 lines. I suggest putting in the 6 lines as an example in the documentation, it is not worth its own function.
Phobos should provide orthogonal building blocks that can be combined by the user. There should be n functions, not n*n (an enumeration of all the combinations). std.algorithm is based on this idea.

@WalterBright please stop using "lines of code" as a reason not to integrate features. It's one of the worst arguments you can give.  You can tell that most of the lines modified in this PR is testing/documentation.  Using this argument is a "cop out" that people give when they want to dismiss an idea without providing good reason.  By using this argument, you are encouraging people not to write tests... not to fully document their changes...not to include examples...and encouraging them to try to be "clever" in their implementation by reducing line count even if it means the code is more difficult to understand/maintain.  This is a bad precedent to set and an example of poor leadership in my opinion (something that I think the D is severely lacking in).
In any case, I think the current state of phobos violates the principle of a good interface as defined by Scott Meyers, namely, easy to use correctly, and hard to use incorrectly.  In most cases programs want this functionality:
try {
    rename(from, to);
} catch (FileException) {
    copy(from, to);
    remove(from);
}

but they use this one:
rename(from, to);

I think it's obvious why.  That being said, it's not my code so I'll leave it up to the maintainers to decide what interface is best.

Exactly, so the implementation of your code should follow the "implementation" of your filesystem layout.

You're assuming that the program you're running has anything to do with the filesystem layout. The same program could be run on multiple computers where each has a different filesystem layout, and it's not necessarily the case that the program knows which files it will be operating on ahead of time, let alone where they are.

This is bad advice. Command-line tools do a lot of magic, DWIM stuff that are unsuitable for writing correct and reliable programs.

The reality of the matter is that the command-line tools for stuff like copying and moving usually do what I need, whereas std.file often doesn't. rename is a prime example.  If we want to argue that the try-catch required to work around the fact that rename is not actually guaranteed to be able to move the file is simple enough that adding moveFile isn't worth it, then fine. But rename's behavior has caused nothing but problems for me.
I have no problem with rename existing, and I'm not arguing that it should not be possible to have low-level control or that it never makes sense to be that strict about what gets done when moving the file, but the current result is that std.file does a very poor job of solving the use cases that I typically have, and if I use rename, I almost always have to fix it later. Honestly, what I really need to do is put together a library that wraps std.file and actually works more like cp and mv, because for the most part, those have the semantics that I need. If you don't like those semantics and don't want to use functions that act like that, that's fine, but there is no way that I'm going to agree that the way that rename works is actually desirable behavior in the average use case or that the way that mv works is undesirable. I think that it's clear that we fundamentally disagree on what constitutes a good move function.

std.file, or any part of Phobos, should NOT be "user-friendly" - it should be an API that does exactly what the documentation says it does, and nothing more.

Having a function do exactly what it's documented to do and having it be user-friendly do not inherently conflict.

This isn't something I want to spend time fighting for...closing


Add cherry pick instructions to the dev docs

This is temporary until QA and Dev are automated.
Fixes #262

@aevo98765 In case you are working on the issue #262

Thanks @nerdalert !


cannot import name 'hashes' from 'modules'

How to solve this problem?
When I install LoRA, did not appear additional network switch.
ImportError: cannot import name 'hashes' from 'modules' (unknown location)

I have the same promble with you.
I think it is because there is no file 'hashes' in our  folder 'modules'?
but I don't know how to fix it.
I have pulled SD and lora to up-to-date.
And I asked Bing, and it tell me that it may because:
This error may occur if you have a circular import or an outdated version of cryptography module1. You can try to update your cryptography module using 'pip install -U cryptography' or check your import statements for any loops23.
I have tried the pip method in venv and modules folder, but it didn't work.
When I tried to download SD, I deleted my old version Python and download 3.10.6 to the same folder.
And I forgot to add it to my PATH, so I tried to edit my Environmental Variables and finally used the installer to do that.
And I think I used pip to install torch.
I don't know do these matter, but I just want to mention the whole picture.

Try with a clean SD folder by renaming/removing the existing one.

I have reinstalled SD succeeded. Thank you very much.

great!


Could not determine the dependencies of task ':app:processDebugManifest'.

App giving error while building with gradle
FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:processDebugManifest'.
> Failed to query the value of task ':app:processDebugManifest' property 'mainMergedManifest'.
   > Could not create task ':app:processDebugMainManifest'.
      > java.lang.NullPointerException (no error message)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

To Reproduce
Steps to reproduce the behavior:

Clone this repo
flutter pub get
Fix the android embedding errors
flutter run

Expected behavior
App is supposed to work out of the box

+1

@boidushya Did you fix it? facing same issue


Empty TextView layout inconsistency among platforms

Currently TextViews with text property set to empty string are laid out differently on iOS compared to Android.
On iOS, empty TextViews will be laid out with height 0, while on Android they will have some initial height.
IMO iOS client's behavior makes sense as a sensible default, as one would usually not want empty text containers to take space in layout.
Example:
var page = new tabris.Page({
  title: "Hello, World!",
  topLevel: true
});

var textView = new tabris.TextView({
  left: 0, top: 0,
  text: ""
}).appendTo(page);

new tabris.Composite({
  top: textView, left: 0, right: 0, height: 300,
  background: "red"
}).appendTo(page);

page.open();

iOS
Android

On Android the empty TextView behaves similar to empty InputTextin that it retains its height based on the font and padding.

I think the TextView should retain its height also when empty, as other widgets (Button, TextInput, etc.) also don't shrink.

@ralfstx do I understand correctly, you want empty TextView to have specific height (defined by a font)?

@karolszafranski That is correct.


Return the Retry-After or similar headers when rate limited

async fetchTweets(user: MyUserInterface) {
    const fetchUserTimeline = async () => {
      const timeline = (await this.client.user.timeline(user.id))
        .list as unknown as RettiwtTweet[]

      return await this.transformTweets(timeline)
    }

    return await backOff(fetchUserTimeline, {
      numOfAttempts: this.maxAttempts,
      startingDelay: this.delay,
      delayFirstAttempt: true,
      retry: (error: any, attemptNumber: number) => {
        if (error.status === 429) {
          console.log(
            `Attempt ${attemptNumber}: Retrying after rate limit error for timeline of ${user.username}`
          )
          return true
        }
        return false
      },
      timeMultiple: this.backoffFactor,
    })
  }

Would it be possible to return how much time must be waited before trying again?
This would be very useful when using in conjunction with some backoff/retry implementations
My suggestion for the error object, given that Twitter does provide this info:
{
message: 'TOO_MANY_REQUESTS',
status: 429,
stack: '...',
retryAfter: 2000,
}

I think it's possible. Working on it now.

@EnzoRobaina What you can do in the time being is, while creating an instance of Rettiwt, you can pass a custom error handler class which implements the IErrorHandler interface. Then handle method can be implemented such that on Error 429, it returns the retry after value.

Thats great! Thanks for the quick reply!


Play a sound

Play a sound when something very important happens, example : the prediction system detects that the probability of death is growing too fast (escapes routes and possibilities diminishing, losing mass too fast, surrounded by enemies / cornered)

Also maybe a notification to inform you that you've placed a spot on the leaderboard/changed rank on the leaderboard/lost placing on the leaderboard.

Could be done with a sound toggle. I'll put that on my TODO list.

Actually, I'd rather not add sounds after giving this more thoughts.

why is that ?
if it's a toggle default off though

I can probably keep it as a low priority thing to add later, but it's a bit more work than it would seem as you don't want the sound to be spammed.


batch size for pre-training

Hi, thanks for the amazing work! I found in the original paper, you mentioned the batch size is 32. May I ask if this is the whole batch size or the batch size per GPU? And how many GPUs did you use during pretraining? Thanks!

I notice that in https://github.com/bowang-lab/scGPT/issues/5, you used 4 A100 to fit 10.3M cells for 3 days, which means for one epoch, it takes around 12 hours. So it seems that the batch size is 32 per GPU, and in total is 128; or the total batch size is even larger? Please correct me if I am wrong. Thank you very much!

Hi, thank you for the question. Yes, that stands for the batch size per GPU. When we trained the recent model on the 33.3M cells, we used more GPUs, 16 A100 in total. So the total batch size is equally 512.


Emit socket error if ipredis connection has been lost/reset.

The current code is checking for a failure (return false) or an empty buffer string, however neither of these will be the case if the connection has been reset or has errored. According to the docs for socket_recv, $buffer will be set to null if the connection is reset or their is no data. As currently null is not allowed for, we enter an infinite loop, to prevent this I've added null to the things we check before we emit a socket error. This prevents the infinite loop and correctly results in an Exception if the connection is lost/reset.
I've made this change against the 0.8 branch as that is the version I am using, however the issue still exists with later 1.0 releases.

I think @nrk is dead.

Actually I'm not dead and I don't plan to die anytime soon :-)
I'm pretty much sure that in a couple of months I'll be able to resume taking care of my open source projects, but I hope to find bits of time to start clearing the backlog of pending issues and PRs as soon as possible.

@RichardHeelin I already cherry-picked your change into master and v1.0 so that your change will be available starting from v1.0.2. I'm still not sure if I'll push a new patch release for the v0.8 branch, but I can merge your PR while deciding upon that :-) Thanks!


Improve test suite runner to fail on errors and track test execution

This change updates the test suite runner (scripts/crunner.py):

Output test results similarly to python -m unittest discover, tracking
the number of tests executed and their time
Buffers test failures during execution and outputs traceback information
for each at the end to make finding errors faster
Replaces the -t option with --skip-test, making running the test the
default behavior
Replaces the -q option with --verbose and --debug for increasing levels
of information, making the flags consistent with the compiler options
Improves the --debug option to also show template output in addition to
source tree information
Provides defaults for --test-input and --test-output and makes the
values relative the to the working directory to allow running tests in
other locations in the future

Closes #37

Lol. The tests don't pass so this can't be merged..
lgtm, but we probably need to either fix or disable those tests.

So strange.  This passes on Mac Python 2.7.10 and not Linux Python 2.7.6:
Mac:
$ uname -sr; python -V; make tests &> /dev/null && echo pass || echo fail
Darwin 15.2.0
Python 2.7.10
pass

Linux:
$ uname -sr; python -V; make tests &> /dev/null && echo pass || echo fail
Linux 3.13.0-67-generic
Python 2.7.6
fail

However, it looks to me like the test suite is failing on master as well.  I think #39 will fix this.

I've rebased onto #39 and tests pass now.  Once #39 is in, I'll rebase back on master to remove the extra commit.

lgtm


Write protect master

I almost pushed a bunch of commits to master - can we require changes have to go through a PR? As in  something like: https://help.github.com/articles/about-protected-branches/

I believe protected branches can still be pushed to by maintainers with push access but cannot be force pushed (amended commits are much harder to roll back). Still worth making sure master is protected.

I've activated the protection for the master branch with the following settings:

The only downside I see is that even for tiny changes, we'll now need a PR to pass a review. So if I add someone's name in the author list, for example, it can't be merged unless someone else reviews and okays it.

Excellent.


fix: make the site layout consistent accross all pages

Using grid layout as is made the layout move between pages because the main content never has the same height. Now we have a simpler layout, just telling the footer to stay at the bottom, header and main always start at the same place.
Noting this as draft as it's just a quick idea after discovering the project.
Here is a before/after video to see what I mean:
https://github.com/betagouv/moncomptepro/assets/221253/95dde82d-101d-46a1-93ff-01f93dad7c8d

This is actually included in #470 in the end. It was simpler to change the grid layout to flex to add skip links. Closing this!


Adding live logging for JavaScript

Hi, thanks a ton for VS Code. I like it a lot.
I suggest adding a simple feature to show live console.log value next to it.
So something like if we have code:
const array1 = [1, 4, 9, 16];
const map1 = array1.map(x => x * 2);
console.log(map1);

Then it would be nice to see the live result next to console.log only like
const array1 = [1, 4, 9, 16];
const map1 = array1.map(x => x * 2);
console.log(map1);    [2, 8, 18, 32]

Something like we see in import-cost. That 51.2k value is calculated live and shown as hover text.

Some like this would be nice for live console.log also. I think this will be a really cool addition to VS Code.
:octocat:

This doesn't seem particularly important for the main application imo, Though alternatively you can use this extension for the functionality you want I think

@arthurbuhl
If you add "debug.inlineValues": true to your settings, actual values are shown inline:

Is this what you are suggesting?


run Gratipay 146

145

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/9751728-run-gratipay-146?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F85909&utm_medium=issues&utm_source=github).

Reviewed 23 (19) accounts.

Droplet spun up and backup taken.

Droplet updated.

Backup verified.

Script started. First of our last paydays with @balanced. :-(

Script ran for 14 minutes (0:14:06.827781).

Pinned https://twitter.com/Gratipay/status/578528931852201984.

Log downloaded and droplet destroyed.

MassPay posted.

MassPay done and posted back for 90 users.

Logs uploaded in https://github.com/gratipay/logs/commit/be48d121af9378c322b6a1966b2a03de794b0986.


test:e2e:run fails with lru-cache error

I've set up the repo so that npm run build works, but when I run npm run validate, it fails on the test:e2e:run step.
Steps to reproduce:

Clone the repo
Copy .env.default to .env
Run npm run setup
Run npm run build
Run npm run validate (Or npm run test:e2e:run)

Error message:
> test:e2e:run
> cross-env CI=true playwright test

[WebServer]
> start:mocks
> cross-env NODE_ENV=production MOCKS=true tsx .

[WebServer] 🔶 Mock server installed
[WebServer] SyntaxError: The requested module 'lru-cache' does not provide an export named 'default'
[WebServer] /Users/isaac/Documents/code/epic-web-examples/epic-stack-with-keystatic/build/server/assets/server-build-DjeGgzJ1.js:64
import LRU, { LRUCache } from "lru-cache";
       ^

SyntaxError: The requested module 'lru-cache' does not provide an export named 'default'
    at ModuleJob._instantiate (node:internal/modules/esm/module_job:131:21)
    at ModuleJob.run (node:internal/modules/esm/module_job:213:5)
    at ModuleLoader.import (node:internal/modules/esm/loader:316:24)
    at getBuild (file:///Users/isaac/Documents/code/epic-web-examples/epic-stack-with-keystatic/server/index.ts:202:4)
    at file:///Users/isaac/Documents/code/epic-web-examples/epic-stack-with-keystatic/server/index.ts:216:34

Error: Process from config.webServer was not able to start. Exit code: 1

ERROR: "test:e2e:run" exited with 1.

Node version: 20.9.0
Npm version: 10.5.0
Let me know if there's something else, you'd need from me to reproduce this.  Thanks!

Hey!
I can reproduce this. A PR has just been merged in Keystatic core to upgrade the version of lru-cache (which in turn imports the named export instead of default export.
When this gets released, I'll update the Keystatic dependency in this project and this should fix it 🤙

Welp, I pressed enter and the new cut of Keystatic appeared 🎉
🦋  success packages published successfully:
🦋<EMAIL_ADDRESS>🦋<EMAIL_ADDRESS>🦋<EMAIL_ADDRESS>🦋<EMAIL_ADDRESS>

Ok, this fixed the issue, but uncovered another one:
Error: No user found in root loader, but user is required by useUser. If user is optional, try useOptionalUser instead.

I gotta step away from the computer for a bit to drive my kids, but I'll get round to it soon 🤙


Error in Dashboard: We're having trouble displaying widgets. Restarting Dev Home may help

Dev Home version
0.1701.597.0
Windows build number
10.0.26120.1542
Other software
OS Build Version: 10.0.26120.1542.amd64fre.ge_release.240331-1435
.NET Version: .NET 8.0.7
Steps to reproduce the bug
Just Open Dev Home, in the dashboard the widgets wont be there instead there is an error message:
We're having trouble displaying widgets. Restarting Dev Home may help.
Expected result
Expect to see the widgets in the dashboard
Actual result
Reopen Dev Home multiple times, same issue
Included System Information
CPU: 12th Gen Intel(R) Core(TM) i7-1250U
Physical Memory: 15.63GB (5.51GB free)
Processor Architecture: x64
Included Extensions Information
Extensions:
Microsoft.Windows.DevHome_0.1701.597.0_x64__8wekyb3d8bbwe (Core Widget Extension)
Microsoft.Windows.DevHome_0.1701.597.0_x64__8wekyb3d8bbwe (Hyper-V Extension)
Microsoft.Windows.DevHome_0.1701.597.0_x64__8wekyb3d8bbwe (Windows Subsystem for Linux Extension)
Microsoft.Windows.DevHome_0.1701.597.0_x64__8wekyb3d8bbwe (Git)
Microsoft.Windows.DevHomeGitHubExtension_0.1700.597.0_x64__8wekyb3d8bbwe (Dev Home GitHub Extension (Preview))
Microsoft.Windows.DevHomeAzureExtension_0.1200.597.0_x64__8wekyb3d8bbwe (Dev Home Azure Extension (Preview))
Widget Service:
MicrosoftWindows.Client.WebExperience_524.24900.0.0_x64__cw5n1h2txyewy

Duplicate of #2945
I believe this is the issue where the widget service isn't starting. You should be able to start it yourself by bringing up the Windows Widget Board directly (instructions are in that issue).


suggestions is returned from server,but nothing is shown

the suggestions length the server returned is 10, the limit option I set to 10,then nothing is displayed.
if i set limit to 6,then 6 suggestion is displayed.
in the code ,line 1728
rendered += suggestions.length;
that._append(query, suggestions.slice(0, that.limit - rendered));
if limit equals to suggestions.length,then nothing will display.
so i changed the code
if(rendered>that.limit){
rendered = that.limit;
}
that._append(query, suggestions.slice(0, rendered));
then everything is ok

I've encountered the same issue. New results count is first added to rendered count, so the next _append() does nothing. All my results are from async request, all results up to limit are always fetched at once.
Work around: set limit option at least as twice as expected result size and limit your results in your data retriever. This workaround is future compatible as long as typeahead keeps using suggestions.slice method.
Or (better): use version prior to 0.11, which handles sync results only.

Guys, I thinks we do not need "rendered" variable at all (it always = 0 when async callback called), so I modified code to:
that._append(query, suggestions.slice(0, that.limit));

Looks like a duplicate of #1212, has been fixed over at corejavascript/typeahead.js#8


logs: sanitize log messages

What this PR changes/adds
Sanitize log messages replacing \n and \r with a whitespace.
Why it does that
Line breaks in logs can be used by attackers as reported here: https://www.veracode.com/security/java/cwe-117
Further notes

replaced anonymous class instances of Monitor to simplify its hierarchy

Linked Issue(s)
Closes #1145
Checklist

[x] added appropriate tests?
[x] performed checkstyle check locally?
[x] added/updated copyright headers?
[x] documented public classes/methods?
[x] added/updated relevant documentation?
[x] added relevant details to the changelog? (skip with label no-changelog)
[x] formatted title correctly? (take a look at the CONTRIBUTING and styleguide for details)

Codecov Report

Merging #1295 (c193788) into main (b3d1b1d) will decrease coverage by 0.00%.
The diff coverage is 28.57%.

@@            Coverage Diff             @@
##             main    #1295      +/-   ##
==========================================
- Coverage   67.36%   67.36%   -0.01%
==========================================
  Files         715      715
  Lines       15751    15749       -2
  Branches     1044     1044
==========================================
- Hits        10611    10609       -2
- Misses       4655     4656       +1
+ Partials      485      484       -1

Impacted Files
Coverage Δ

...dataspaceconnector/spi/monitor/ConsoleMonitor.java
0.00% <0.00%> (ø)

...clipse/dataspaceconnector/spi/monitor/Monitor.java
0.00% <0.00%> (ø)

...paceconnector/spi/monitor/MultiplexingMonitor.java
0.00% <ø> (ø)

...lipse/dataspaceconnector/logger/LoggerMonitor.java
93.75% <100.00%> (-0.99%)
:arrow_down:

...tor/spi/types/domain/transfer/TransferProcess.java
75.75% <0.00%> (ø)

.../dataspaceconnector/boot/util/TopologicalSort.java
95.23% <0.00%> (+2.38%)
:arrow_up:

Continue to review full report at Codecov.

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


Update NRLMSISE-00 to latest release

As @schnepe2 pointed on my latest PR, the best solution is to use the latest author release (https://git.linta.de/?p=~brodo/nrlmsise-00.git)

I would approve this PR :+1: (see my review on the former -closed- PR ), but it's the doctors task to decide that ;)

I'll check this out as soon as I find a bit of time. In part, this pull request simply seems to be undoing my edits of the library (anything marked MSyymmdd), but it's been so long that I can't remember why I did those edits in the first place. Some of them look like mere performance improvements, but since they would have been profiled on obsolete hardware they are probably no longer relevant.
Can you point me to the substantial changes in this PR (functional changes, bug fixes)? Also, did you do any performance comparisons between the current Orbiter implementation and your version (e.g. large number of vessels in Earth atmosphere at various altitudes), just to make sure that no significant performance changes have been introduced?

The initial reason for this PR was a fix for buffer overrun on access of meso_tn3[] by @riojax.
I then proposed to "[...]just use the latest version of the lib as it fixes that bug among others[...]".
Reverting your (@mschweiger) changes was most likely not the intention 😁.


[DO NOT MERGE] Test dropping Netlify config

Signed-off-by: Stephen Augustus<EMAIL_ADDRESS>

Looks like the latest deploy was successful: https://app.netlify.com/sites/ossf-scorecard/deploys/62f43b307f22613737964c98


update trace feature coverage to a table

Changes
Updates the Trace Feature coverage to a table, making it easier to read and consum

e

beautiful 👨🍳


Cannot find the Variable Panel after installing the plugin

I installed the plugin like this on my Mac, where I have installed Grafana v9.2.1:
[~/grafana] $ sudo ./bin/grafana-cli plugins install volkovlabs-variable-panel
Then I restarted the grafana server expecting to be able to find the new visualization available, and couldn't find it.

`
✔ Downloaded and extracted volkovlabs-variable-panel v2.5.0 zip successfully to /usr/local/var/lib/grafana/plugins/volkovlabs-variable-panel
Please restart Grafana after installing plugins. Refer to Grafana documentation for instructions if necessary.`

@maxsalibe Have you tried to install other plugins in this environment?
Do you see extracted plugin files in the specified folder?
It looks like an isolated issue in your environment and does not related to the plugin packaging.

Thanks for your reply, Mikhail! I found out that I had mistaken the destination folder for the current installation of Grafana. It now works!

@maxsalibe Great to hear!
Let us know if there is anything else.


[Bug] ValueError: Expect value to be constant int

Expected behavior
File "/tvm/python/tvm/driver/tvmc/compiler.py", line 452, in compile_model
graph_module = build(
File "/tvm/python/tvm/driver/tvmc/compiler.py", line 528, in build
return relay.vm.compile(mod, target=tvm_target, params=params)
File "/tvm/python/tvm/relay/backend/vm.py", line 67, in compile
compiler.lower(mod, target, target_host)
File "/tvm/python/tvm/relay/backend/vm.py", line 126, in lower
self._lower(mod, raw_targets)
File "/tvm/python/tvm/_ffi/_ctypes/packed_func.py", line 239, in call
raise_last_ffi_error()
File "/tvm/python/tvm/_ffi/base.py", line 481, in raise_last_ffi_error
raise py_err
File "/tvm/python/tvm/relay/op/strategy/generic.py", line 51, in wrapper
return topi_schedule(outs)
File "/tvm/python/tvm/autotvm/task/topi_integration.py", line 242, in wrapper
return topi_schedule(cfg, outs, *args, **kwargs)
File "/tvm/python/tvm/topi/cuda/batch_matmul.py", line 180, in schedule_batch_matmul
traverse_inline(s, outs[0].op, _callback)
File "/tvm/python/tvm/topi/utils.py", line 81, in traverse_inline
_traverse(final_op)
File "/tvm/python/tvm/topi/utils.py", line 79, in _traverse
callback(op)
File "/tvm/python/tvm/topi/cuda/batch_matmul.py", line 178, in _callback
_schedule(cfg, op)
File "/tvm/python/tvm/topi/cuda/batch_matmul.py", line 111, in _schedule
cfg.define_split("tile_y", y, num_outputs=3)
File "/tvm/python/tvm/autotvm/task/space.py", line 736, in define_split
return self._add_new_transform(SplitSpace, name, axes, policy, **kwargs)
File "/tvm/python/tvm/autotvm/task/space.py", line 1127, in _add_new_transform
axes = [x if isinstance(x, (VirtualAxis, Axis)) else self.axis(x) for x in axes]
File "/tvm/python/tvm/autotvm/task/space.py", line 1127, in
axes = [x if isinstance(x, (VirtualAxis, Axis)) else self.axis(x) for x in axes]
File "/tvm/python/tvm/autotvm/task/space.py", line 692, in axis
return VirtualAxis(var)
File "/tvm/python/tvm/autotvm/task/space.py", line 138, in init
self.length = get_const_int(var.dom.extent)
File "/tvm/python/tvm/autotvm/utils.py", line 132, in get_const_int
raise ValueError("Expect value to be constant int")
ValueError: Expect value to be constant int
Environment
t5 module and the newest tvm.

Looks like this is model dependent, and would occur when there's a dynamic

Add more information to the error raised.  This could be done by updating the raise RuntimeError to have the message f"Expect value to be constant int, but expression {exp} was of type {type(exp)}".  This would help identify which dynamic parameter in the model is causing the issue.

Try using tvm.dlight for scheduling.  This is a set of schedules for dynamic-shaped inputs.  If your model cannot avoid having the dynamic parameter, these may be useful instead of the static schedules.


OVCHTTPRequestOperationManager don't find in version 3.1

Hi Nobert,
could you attach more information like the error message generated by Xcode or lines about Overcoat in the Podfile you're using? Thanks.

I have got   s.dependency 'Overcoat', '~>3.0' in .podspec file.
"Cannot find interface declaration for 'OVCHTTPRequestOperationManager', superclass of ...

I solve it by adding
s.pod_target_xcconfig = { GCC_PREPROCESSOR_DEFINITIONS' => 'OVERCOAT_SUPPORT_URL_SESSION=1                         OVERCOAT_SUPPORT_URL_CONNECTION=1'}
on my podspec.
im not sure if there is better solution for this. it will be nice if these preprocessor flags are set automatically on our pod when we depends on Overcoat

oh, I see. This is because you're using it as a dependency of another pod package. (Instead of using like `pod 'Overcoat'). I never tested this before, so I've created another issue (#103) for testing this in the future.
Thanks.

Thanks @sodastsai


Beacon Architecture Overhaul

Vendor/community facing:

/: Splash/landing page
/opportunities: See lists of opportunities and sign up for updates on individual opportunities. There are also needs for good language when there are no current or upcoming opportunities. @shellicious it would be good to get that when you get a chance.
/opportunities/:id: See an individual opportunity. Post questions to that opportunity. See answers to other questions on that opportunity.
/signup: Sign up for categories
/manage: Manage your subscriptions

City/OMB Facing:

/admin/opportunities/pending: See list of pending opportunities (OMB only) and publish them
/admin/opportunities/new: Submit a new opportunity to OMB
/admin/opportunities/:id/edit: Edit an existing opportunity (publish/unpublish if OMB)
/admin/signups: Small dashboard/view for signed up vendors with download functionality

@shellicious for the signups, how should that information be presented? We talked about having an Excel spreadsheet, but other than that were there visual displays that we wanted to show? Graphs/charts? Is that overkill?

I'm going to do this in a series of PRs I think. #127 addresses the actual URL structure. I'm going to open one tomorrow for the pending page, and then I'm going to do a separate one for the signup page and one last one for the changes to the new/edit form.

@bsmithgall: What do you mean by visual displays? Like, how city staff access the emails collected? For that, Excel spreadsheet for now.

So then maybe this isn't actually a page for now, just a link in the navbar that you can click and download all of the emails. Do we want to limit who can do this?


Add functionary support

Overview
Adds support for proper OpenAI function calling using the functionary language model.
This model is capable of performing openai style funciton calling, selecting functions dynamically, and regular chat completions.
Link to model in GGUF format

[x] Functionary Custom Format
[x] Functionary Response Formatting (tricky)
[x] Test with OpenAI tests and instructor library
[x] Clean up API

Notes
It was straightforward enough to fit Functionary's prompt formatting into the new format method

and the quantized model behaves as expected however it's clear that the current API is inadequate to handle function calling properly

To do this correctlly we need to

Format the incoming message requests to functionary format
Generate up to  the end of the assistant message (next : character) to see if any function is called while not returning any of the generated tokens up until that point.
If it is perform constrained generation and start returning tokens

Update: It Works!

I noticed functionary is specific to a model even though grammar is general enough to support any model. Not a big deal as I still haven't had time to look at the updates yet. I'll be doing that tonight and tomorrow. I'll (hopefully) know and understand more about the status quo by then.


[KOGITO-1946] - Release Kogito Operator/CLI 0.11.0

Signed-off-by: spolti<EMAIL_ADDRESS>Many thanks for submiting your Pull Request :heart:!
Please make sure that your PR meets the following requirements:

[x] You have read the contributors guide
[x] Pull Request title is properly formatted: [KOGITO-XYZ] Subject
[x] Pull Request contains link to the JIRA issue
[x] Pull Request contains description of the issue
[x] Pull Request does not include fixes for issues other than the main ticket
[ ] Your feature/bug fix has a unit test that verifies it
[ ] You've tested the new feature/bug fix in an actual OpenShift cluster

just waiting https://github.com/operator-framework/community-operators/pull/1876 to get merged :)


Update version: CologneCodeCompany.XYplorer version 25.80.0300

Pull request has been created with komac v2.6.0 :rocket:

Resolves #186075

Microsoft Reviewers: Open in CodeFlow

@wingetbot run


Question about swagger.json file

Feature Description
Hi. I've read https://docs.gitea.io/en-us/faq/#what-is-swagger and I successfully can work with swagger UI on my running Gitea instance. I would like to ask how I can get swagger json file (Open API json document). I want to use NSwag to generate .NET REST client for Gitea. Example for Atlassian Bitbucket Server: https://developer.atlassian.com/server/bitbucket/8.6.swagger.v3.json
Screenshots
No response

For example, this is try's: https://try.gitea.io/swagger.v1.json

Thanks, https://try.gitea.io/swagger.v1.json works. Just to clarify - I would like to get Open API document from exact the same instance that I use, not from somewhere else. The reasons are :

Guaranteed adherence of received specification to the runnin instance.
Security considerations. Document should be taken from the internal network.

I tried to append swagger.v1.json to my host URL and it works. Thanks again.

That was why it was an example.
I didn't mean to suggest you use try instead of your instance. 😅
Glad you got it working! 👍


feat: compiler flag for registering external Wasm functions

This PR introduces the --rts-function flag to register custom RTS language bindings. The goal is for third-party tools such as Mops and Vessel to be able to register language bindings via sources command for custom mo-rts.wasm files.
Example workflow to manually try this out:

Recompile the RTS with a new Rust language binding:

#[no_mangle]
pub unsafe extern "C" fn echo(value: u32) -> u32 {
    value
}

Create a Motoko file (ffi.mo):

import Prim "mo:prim";

let input : Nat32 = 5;
let expected : Nat32 = 5;

let result = (prim "rts:echo" : Nat32 -> Nat32)(input);

Prim.debugPrint(debug_show result);

assert result == expected;

Run the following commands (with MOC_*_RTS variables automatically configured in Nix environment):

MOC_UNLOCK_PRIM=1 moc --rts-function echo "i32 -> i32" -c ffi.mo -wasi-system-api
wasmtime result-ffi.wasm

The --rts-function flag uses a very simple DSL which allows for arbitrary space-separated args / return values. Here are a few examples of valid syntax:
() -> ()
i32 -> f64
() -> i64 i64
f32 f64 -> ()

Feel free to suggest other ways of passing this definition. Hoping to make this relatively simple for third-party tooling to register these interfaces while keeping everything readable at a quick glance.
Progress:

[x] --rts-function flag
[x] rts: primitives to access arbitrary FFI bindings in the RTS
[ ] Restrict rts: primitives to registered functions (maybe)
[ ] Test --rts-function flag and rts: primitives
[ ] Test valid and invalid syntax for DSL

Next steps:

Either an import syntax for RTS functions or some way to unlock prim expressions for specific Motoko files
Tools for building custom mo-rts.wasm files
Possibly reserve memory for external language bindings

Nice start.
Something like this could work, but the mapping between Rust and Motoko values isn't that simple. Even an i32 doesn't map to Nat32, and, what's worse, the mapping will depend on the compiled code and choice of GC.
What we could do is provide some Rust functions for constructing/destructing Motoko values to Rust equivalents, and have the Rust code use those functions and perhaps assert the intended Motoko type (maybe using a macro) for the compiler to pick by inspecting the custom RTS (perhaps via custom section declaring the types).
The RTS code already use the type  Value (=u32) for this, and we could mayve provide a collection of helper functions
that treat Value as an abstract type, enforcing the expected representation invariants.
toNat32: u32 -> Value
fromNat32 : Value -> u32
toArray:  [Value] -> Value

etc.
#[no_mangle]
#[Motoko("<A>A->A")]
pub unsafe extern "C" fn echo(value: Value) -> Value {
    value
}

#[no_mangle]
#[Motoko("Nat32 ->Nat32")]
pub unsafe extern "C" succ(value: Value) -> Value {
    toValue(fromValue(value)+1);
}

Usually you'd have to worry about the GC running at the same time and avoid introducing GC holes (allocated data that isn't visitible to the GC and could get collected under your feet). But we might be able to avoid all that hassle because we know the GC won't run until the end of the message anyway. after all the FFI code has done its stuff and returned.

...the mapping will depend on the compiled code and choice of GC.

Right; I see what you're saying about this. The assumption is that the external tooling is targeting a specific combination of GC and debug/release, so in this case the tooling would be able to specify the correct Wasm value types. In theory, we could build the #[Motoko(...)] attribute (from the example above) directly into the RTS codebase, although it could be valuable to expose this as an external library so that code generation tools similar to Canpack could build the RTS Wasm file from many individual crates without losing editor type checking, if that makes sense.
Here are some examples for what I'm imagining (presumably handled by external preprocessing tools, but we could build the Motoko attribute directly into the RTS codebase):

my_rust_crate/Cargo.toml

# ...

[dependencies]
moc-bindgen = "1.2.3"

my_rust_crate/src/lib.rs

use moc_bindgen::{motoko, Value};

#[motoko]
pub fn hello(name: String) -> String {
   format!("Hello, {name}!").into()
}

#[motoko]
pub fn custom(custom_value: Value) -> Value {
   // ...
}

#[motoko]
pub fn get_record_field<A>(arg: RecordStruct<A>) -> A {
   arg.value
}

#[motoko]
struct RecordStruct<A> {
   pub value: A
}

moc_bindgen::export!();

// etc.

Alternatively:
moc_bindgen::export! {
  pub fn hello(name: String) -> String {
     format!("Hello, {name}!")
  }

  pub fn get_record_field<A>(arg: RecordStruct<A>) -> A {
     arg.value
  }

  struct RecordStruct<A> {
     pub value: A
  }

  // ...
};

dfx_project/mops.toml

# ...

[rust-dependencies]
my_rust_crate = "0.1.2"

Another approach could be to pass Motoko type strings in the --rts-function and handle everything in the compiler itself. The original hesitation was that it would add unnecessary complexity for most use cases, such as if we wanted to create something along the lines of wasm-bindgen for Motoko. I was planning to implement this but wanted to try this other approach first to get a sense for what would be involved.
I suppose yet another approach could be to remove the --rts-function flags and statically determine the Wasm types from usages of (prim "rts:*" ...)() (or some new syntax for this purpose).

This is very interesting. Thank you for investigation and work!
I believe this would offer a power mode for experienced developers to have an efficient interoperability to carefully selected Rust functionality.
I see a little bit of a challenge of ensuring memory safety, namely guaranteeing that the third-party code cannot break memory management of Motoko. (Otherwise, if we would allow users to assess the correctness on their own and take the corresponding risk, we would probably get memory corruption issue reports that could be due to unsafe FFI imports and it would be difficult to do a triage on such reports.)
Probably, as a possible solution, we could include an analysis to verify that the imported function only uses safe Rust and does not use any dynamic allocations, cannot receive any pointers from Motoko, and possibly other safety requirements. Alternatively, when allowing allocations through our custom Rust-interop-allocator in the RTS, we would need to prevent static variables (as otherwise untracked low-level pointers could be retained by Rust across IC messages, impacting GC correctness).
But I believe it is very important topic and we should continue it.

Just doing some repo cleanup for better focussing on active work:
Closing PR as it seems inactive for a longer time. Please re-open if it is still relevant and after it has been updated with latest master changes.


Which licenses are required to use BcContainerHelper and Docker?

Please allow to ask question I have seen and heard many times the last few days. Which licenses are required to use BcContainerHelper?
When it comes to the use on "developer machines" with Windows 10 and Docker Desktop, it used to be free. But that has changed. Two days ago Docker announced that The use of Docker Desktop now requires a paid subscription (Pro, Team, or Business), for as little as $5 a month, for professional use in larger enterprises (more than 250 employees OR more than $10 million in annual revenue). The effective date of these terms is August 31, 2021. There is a grace period until January 31, 2022 for those that will require a paid subscription to use Docker Desktop. Here it is pretty clear, who must pay and who must not.
But what if you are running BcContainerHelper with Docker on a Windows Server 2019 machine?
Here Docker Desktop is not used, instead we install the Docker Microsoft Provider using PowerShell. This is, or at least I thought it was, to install Docker Enterprise. Which maybe is free when used on Windows Server 2016 and 2019, even if its no longer Docker, but the company Mirantis who bought the Enterprise edition from Docker last year.
The topic is discussed other places, without anyone having the clear answer:
https://github.com/OneGet/MicrosoftDockerProvider/issues/84
https://github.com/microsoft/Windows-Containers/issues/135
https://github.com/MicrosoftDocs/Virtualization-Documentation/issues/1350
It seems that the Docker Microsoft Provider uses the same Docker/DockerD executables as Docker Desktop, even if I thought it was Docker Enterprise Edition.
So would that mean we also need to buy licenses for all our Azure build and test VM's, if we use BcContainerHelper and Docker containers here?
And how would we even count it, when most of the VM's live longer than 1-2 hours?

Windows Server includes a license for Docker EE (DockerMsftProvider), which is owned by Mirantis.
Docker Desktop is for Windows 10 and is owned by Docker, this is the one, which has a new and changed license.
The docker engine is open source and free - you can build it yourself.
BcContainerHelper is open source and free, I build and publish that for you:-)
Tobias describes things here: https://tobiasfenster.io/news-in-the-windows-container-and-docker-world

You might have read the other blog from Tobias talking about upcoming changes with Mirantis.
I don't know if we are going to change anything based on this.

You might want to take a look at Stevedore project as a way to install modern Docker engine for Windows containers on both Windows Server/Client.

Thanks for mentioning that project. Might be useful for some people.
I have described here: https://freddysblog.com/2021/10/30/docker-and-business-central/ what I am doing - installing/updating docker engine using a PowerShell script.


Toolbar Render fires many times

I am trying to populate and add events to a select that I have place in a w2ui toolbar that is part of a grid config.
I thought that using the onRender event of the toolbar was the right way, but this event appears to fire multiple times (5+) so it breaks my code. You can duplicate this easily by writing to the console in the onRender of the toolbar.
Is there a better way to do this or is this a problem with onRender?

at w2ui-1.5.rc1 this only happens for nested w2layout objects


Add .scss extensions

I use node-sass-chokidar, it transforms *.scss files to *.css and keeps them near *.scss origins.
So, during the first build everything is ok, but during the next, it fails because it sees 2 files (e.g variables.scss & variables.css) and can't decide which file should be included.
Here is my output:
{
  "status": 1,
  "file": "./node_modules/react-datepicker/src/stylesheets/datepicker.scss",
  "line": 1,
  "column": 1,
  "message": "It's not clear which file to import for '@import \"variables\"'.\nCandidates:\n  variables.scss\n  variables.css\nPlease delete or rename all but one of these files.\n",
  "formatted": "Error: It's not clear which file to import for '@import \"variables\"'.\n       Candidates:\n         variables.scss\n         variables.css\n       Please delete or rename all but one of these files.\n        on line 1 of node_modules/react-datepicker/src/stylesheets/datepicker.scss\n>> @import \"variables\";\n   ^\n"
}

I prefer to override variables with my own, so I have separate datepicker.scss file:
@import "/from/my/colors.scss";

$datepicker__selected-color: $my-color !default;

@import "react-datepicker/src/stylesheets/datepicker.scss";

Thank you!


Incorrect s6 service restart instructions

At least README.md for alpine-nginx instructs the following to restart nginx:
s6-svc -h /etc/services.d/nginx

However this results in:

s6-svc: fatal: unable to control /etc/services.d/nginx: No such file or directory

The correct command to restart nginx is:
s6-svc -h /var/run/s6/services/nginx/

This results in nginx worker process to be restarted.

Nice catch. Whoops! It is a left over from migrating from Ubuntu to Alpine Linux. I'll get this one resolved tomorrow too.

@matthewvalimaki, this has been updated. Thanks again.


Update README.md

#3
Add lottie-react-native link to the installation section.

thank you! @abdullahceylan


[Question] How to transform a mat into a mat with single row or column

Hey, @shimat. amazing work and library. I am trying currently to implement some deblurring mechanisms and currenlty working on this formula -

where B+ is the pseudo-inverse matrix of a blurred image, B - our image, v - any vector, and g - is a single vector composed of all the columns of B. I am struggling to get the g vector, didn't find how to do it in C# on the web. Can u give me a small tip? Thanks in advance!

How to transform a mat into a mat with single row or column

Sorry but I don't understand what you specifically want to do, but Mat.reshape will help you with the question of the issue title.
using var src = new Mat(20, 20, MatType.CV_8UC1);
using var dst = src.Reshape(0, 1);

Console.WriteLine("Rows={0}, Cols={1}", dst.Rows, dst.Cols); // Rows=1, Cols=400

Yeap. i guess thats exactly what i need, thanks. So simple though)


Remove possibility of setting future date

Resolves #200

@MartaKoprowska Please add missing comma.

Tested locally - test ok


Package request: pydantic_2

Project description
pydantic is a Python library for data validation and settings management using PEP 484 type annotations.
It's v2 implements validation and serialisation logic in Rust, for a 5-50x speedup compared to v1 (according to its authors), in addition to functional improvements, new features, etc.
Metadata

homepage URL: https://pydantic.dev/
source URL: https://github.com/pydantic/pydantic
license: MIT
platforms: all

pydantic2 contains breaking changes, and many downstream packages are not yet ready for it.
A variant like pydantic_2 cannot be included in nixpkgs as the following comment.
https://github.com/NixOS/nixpkgs/pull/244564#issuecomment-1644787817

pydantic2 contains breaking changes, and many downstream packages are not yet ready for it. A variant like pydantic_2 cannot be included in nixpkgs as the following comment. #244564 (comment)

If I understand it correctly:

we can't offer a v2 variant
we can't upgrade to v2 because of breaking changes

Since more and more packages start to rely on v2: what are our options then?
For example: fastAPI already uses v2.
Not all projects will migrate to v2 in the near future.

Could this be reopened? This is a pretty major user issue (I'm just trying to run copier 8.3.0 and got into this rabbit hole) that will get worse over time.

A month ago we had over 1000 broken packages, now we are down to about 100.
This PR has a list of packages that are incompatible with v2 and we would like your help in creating patches for upstream.

Hello,
may be there is some python packages list generated? not nixpkgs. so i can use arbitrary versions?

This issue has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/installing-a-python-package-from-pypi/24553/9

I'm not sure why you commented here, but why don't you try dream2nix, poetry2nix or pyproject2nix?

dream2nix

will fail for complex project. did not checked - but pretty sure - cool, ambitious - but cannot handle edge cases - which is blocker

poetry2nix

I use it, but need to do for each project, neither can shell directly into, until do it.

pyprojectx

not nix and not sure why it is better than pure poetry.
i seek for nix develop/build/run + poetry usage directly, not via some yet another tool to install, just some automated glue for nix+poetry.

I'm not sure why you commented here,

I got problem, started to search, fastapi, codegent-model - all goes here. search first location is best one so others skip over my research and do next step.

I don't think it's appropriate to continue here since this issue has already been closed as completed and what you say has nothing to do with nixpkgs.

@natsukium please do not continue. what is the issue?
here is pydantic2 here it is https://www.reddit.com/r/NixOS/comments/17twg8s/poetry2nix_with_a_cargo_dependency/


Just first video downloaded

Traceback (most recent call last):
  File "J:\Downloads\AverageSpatialSearch\main.py", line 10, in <module>
    dl.download_course_by_url('https://www.skillshare.com/classes/How-to-Make-Apps-with-No-Programming-Experience/1960310793')
  File "downloader.py", line 24, in download_course_by_url
    self.download_course_by_class_id(m.group(1))
  File "downloader.py", line 63, in download_course_by_class_id
    raise Exception('Failed to read video ID from data')
Exception: Failed to read video ID from data

I can not solve this problem. May be you can solve??

if you want to test again, I can share my account with you :)
and thank you for your codes..

Sure, you can send an email to<EMAIL_ADDRESS>and I'll take a look at it :)

Any luck with this? I get:

where are the videos downloaded ?

hey guys, sorry about all the silence from my end!
busy work have kept me away from github...
default download location in code is set to /data
this will most likely be an issue if you happen to try to run this on a windows machine
I really, really do recommend anybody reading this to consider running it with docker and the docker-compose.yml project file in the repo.
That is how this all was developed and intended to be used.
Anyway, changing download path is pretty easy.
Edit the code and pass your path to the downloader class like this:
...
dl = Downloader(cookie=cookie, download_path='c:\path to downloads')
...

I only have mac/linux computers and can't test any of this on a windows machine.
Also; I don't even use or have a premium skillshare account anymore so sadly, I can't test any of this on any computer at all.
As far as development and improvements from my end is concerned I consider this project to be "dead", I'll leave the code online if anyone else happens to be interrested to see if it still works or maybe take on future development.

Oh; and for all that needs the ability to view skillshare courses offline but doesn't want to get their hands dirty writing code I know that there's also this project that might be a bit more stable and user-friendly:
https://github.com/tharyckgusmao/Skill-Share-Crawler---DL
My project is not a ready and user-friendly application for people to use, I don't have any relation or experience from this other project I'm linking to but just from the looks of it I'd say it's a more feature-rich and user-friendly projekt


Nordictrack T12si

Hi
I seem to want to do the same as you but for another treadmill and started to use your first commit as a base but recently discovered a few nice new commits from you so I have rebased and cleaned up my changes a bit to make it less of an ugly hack [1], I don't know if you are interesed in keeping this in one project or not and are ofcause fine if you want to keep it separate but wanted to at least aling my code so sharing is easier and to notify you that your not alone out there :) and I really apritiate all effort you have done so far.  Thanks!
[1] you actually made some of the same changes I had so I could even remove some of my code and use your reed-GPIO pin out of the box :)

Hi, great to see others really start using this code as well!
it certainly needs some more cleanup ... one problem, right now it works for me ;))
it would be perfectly fine if we can try to have one repository and very happy to merge in any pull-requests.
In my last commit I prepared for a switch I might find useful in order to set the correct incline. for my treadmill I measured that incline levels as displayed by the tread mill (and as it was advertised by the manufacturer) are not "real" degrees ...
anyways after my commit I had minor conflict which is hopefully resolved correctly. But I did add an #elsif to the code part which sets min/max speed based on treadmill model and throw an err message if none is defined ... I felt that might make sense, not sure ;)


Can I change the background-image of the 'leaflet-draw-toolbar' class?

Just as described in title, i want to change the picture of the toolbar, but found it doesn't work. Will you please give some advice? Thanks.

Both.leaflet-draw-toolbar a and .leaflet-retina .leaflet-draw-toolbar a would need the new picture. Care to share what css you have tried?

Thanks. I found it works like this:
.leaflet-touch .leaflet-bar {
background-color: #fff;
}
.leaflet-touch .leaflet-draw-toolbar .leaflet-draw-draw-marker{
background: url('./assets/images/datacenter.png');
transform: scale(0.5);
}
In reality, I just want to change the marker icon, now, it works out. Thank you all the same!


[Test Framework] Support TLS is Native Echo component

@nmittler is this done now that we have docker?

@howardjohn echo should support it now, but I think there may still be some pieces missing (native citidel?) before we can make sure it works.

Effectively duplicate of https://github.com/istio/istio/issues/9177


[Editor] Let SVG images be resized horizontally/vertically without keeping the aspect ratio (bug 1846727)

/botio integrationtest


Drop Node.js 8.x support

Node.js 8.x reached EOL on 2019-12-31.
Many of our development dependencies (prettier, rollup) already removed support for Node 8.x.
I would like to remove official support for node 8.x as well. This will require a major version bump.
Thoughts?

Do it.  There's already precedent for only supporting maintained node releases in the form of #275.

As pointed out by @broofa, in #275 the preferred policy was "supported node versions + one legacy version".
This seems to make sense as long as popular runtimes like Google Cloud Functions still support Node.js 8.x

Looks like google cloud packages are almost all migrated away from node 8.

@TrySound thanks for the notice.
I still think that, given the wide adoption of this module, the "supported node versions + 1 unsupported" is still a good policy and puts less pressure on the ecosystem.


stats standardized distributions - request for expected API

I'm a mathematician trying to plot several distributions (notably in this case Gamma and truncated Normal) in order to do some basic notebook-style exploration for different parameter choices. I first started with truncated normal, and after over half an hour, I still could not get scipy.stats.truncnorm to plot a simple normal distribution with mean = 18, standard distribution = 1.5, but truncated at 12 and 24. This includes after trying to follow the formula in the documentation for a and b - the behavior was always surprising, typically cutting the distribution in half and throwing it's support way beyond 24. I finally settled for just plotting a regular normal distribution when I couldn't get it to work.
Now I'm messing around with the gamma distribution, and the API is again surprising. I would suggest that in the spirit of "batteries included", the user shouldn't have to do the sort of computations described in http://docs.scipy.org/doc/scipy/reference/tutorial/stats.html, shape parameter section, just to use the gamma distribution with its two typical parameters (k and theta, or alpha and beta, it doesn't matter - they are easy to translate between) as described on wikipedia https://en.wikipedia.org/wiki/Gamma_distribution.
My request is that these standardized functions which lack a typical, full parameterization expose some kind of API allowing the user to specify all their typical parameters directly and get back a distribution with no further work required.

I believe I mis-spoke on the case of the Gamma distribution - the scale parameter is equivalent to beta.  Just a small edition to the doc string making this parameterization choice clear would be helpful.

Cross-ref https://github.com/scipy/scipy/issues/4538.
PRs welcome I guess.

Ah, thanks! I searched for the issue figuring I couldn't possibly be the only one having trouble with this, but didn't find it with the key words I was using.

I put link to paramnormal on 4538
All distribution are in the standard location scale form which can be a bit painful for support bounds that are not inf or zero.

OK, I'm going to close this as a duplicate of gh-4538. @mountaindust this is not to say we do not value your report, this is only to say that one issue is enough to track progress on this. Contributions welcome!

No problem - I understand. Thanks!!


Feature Request: Search in all File Discovered by Cmake

Visual studio code, can only search in files that are in the project, but not the ones that are found in the cmake project.

I can ask them for this feature


Bring back in TYPE_FULL_NAME on CALL nodes.

This was once accedidentially put to deprecated and in the resent past
remove while transitioning to scala base schema.

While we're at it, what is the TYPE_FULL_NAME of a call? The type of its return value?