How to obtain the bootloader? How to sign files?

I followed all the steps to build the firmware, and successfully created a build directory.
After moving the build directory to /tmp/jade, I attempted to flash:
$ DEVNAME=/dev/ttyACM0 ./flash.sh

Device /dev/ttyACM0 can now be flashed
esptool.py v3.0
Serial port /dev/ttyACM0
Connecting......
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 30:c6:f7:1f:6b:84
Uploading stub...
Running stub...
Stub running...
MAC: 30:c6:f7:1f:6b:84
Hard resetting via RTS pin...
esptool.py v3.0
Serial port /dev/ttyACM0
Connecting.....
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 30:c6:f7:1f:6b:84
Uploading stub...
Running stub...
Stub running...
Manufacturer: 20
Device: 4016
Detected flash size: 4MB
Hard resetting via RTS pin...
usage: esptool write_flash [-h] [--erase-all]
                           [--flash_freq {keep,40m,26m,20m,80m}]
                           [--flash_mode {keep,qio,qout,dio,dout}]
                           [--flash_size FLASH_SIZE]
                           [--spi-connection SPI_CONNECTION] [--no-progress]
                           [--verify] [--encrypt]
                           [--ignore-flash-encryption-efuse-setting]
                           [--compress | --no-compress]
                           <address> <filename> [<address> <filename> ...]
esptool write_flash: error: argument <address> <filename>: [Errno 2] No such file or directory: '/tmp/jade/build/bootloader/bootloader_signed.bin'

But there is no bootloader? I dont see it mentioned in the docs, and therefore I'd assume it should be built, but I am not really sure.
I am running the latest tagged version.
Later on...
I was able to build using this command, which DID build the bootloader:
idf.py build
I had to update the flash_jade.sh script, since the generated outputs arent "signed"
esptool.py ${COMMON_ESPTOOL_OPTIONS} --flash_size 4MB \
-u 0x1000 ${FLASHROOT}/build/bootloader/bootloader.bin \
0x9000 ${FLASHROOT}/build/partition_table/partition-table.bin 0xE000 \
${FLASHROOT}/build/ota_data_initial.bin 0x10000 ${FLASHROOT}/build/jade.bin | tee -a ${OUTPUTLOG}

(notice bootloader.bin vs bootloader_signed.bin and jade.bin vs jade_signed.bin)
I was able to successfully flash, but now the device doesn't turn on. I still see the device connecting to the serial port, but the display doesnt turn on, and Sparrow wallet is telling me the device is responding with an EOF.

I am doing this with a Blockstream Jade device.
I followed pretty much the steps you said above, and attempted a flash (a week or so ago now), and like I said, Sparrow gives an EOF error.
Now I downloaded Blockstream Green, trying to follow this guide: https://help.blockstream.com/hc/en-us/articles/4408030503577-How-do-I-update-Blockstream-Jade-s-firmware-via-USB-cable-
but Green doesnt seem to see the device. I can still the the devices serial port.
What to do in this weird corner case?
The docs should probably be more clear that the instructions here dont really apply at all for Jade, its kind of confusing since this is the Jade repo. I really didnt want to be compiling a release, I just wanted to flash the firmware manually and not through a First Party app like Blockstream Green.

This does sound odd.  I didn't think esptool.py would be able to flash anything to a production device.
A production Jade unit can only run fw signed by Blockstream.  If somehow un-signed fw has been uploaded this may have damaged the device.  I will investigate further.
While it is not mandatory to use the 'Blockstream Green' app to update production fw, that is by far the easiest way.
It is possible to manually download a (signed) fw from the server and call the relevant apis to upload it to the Jade - but it is not immediately trivial and there are many configurations of fw to choose from, eg. for different revisions of the hw.
I will add (and document) some python scripts to facilitate manual two-step (ie download fw file, then upload/update) fw upgrdaes shortly. (It is possible with the existing jade_ota.py script, but as that is more of a test tool than an end-user tool, it is not particularly user-friendly.)
(NOTE: It is also possible to build the fw from source to reassure yourself that the signed/provided fw is indeed consistent with the source code tagged in this repo - instructions in progress - see https://github.com/Blockstream/Jade/pull/38)

Thank you! If you can just provide the signed firmware download links, I can try flashing in the same way that I did previously.

That's not quite how it works.
The normal fw update process is called 'OTA', and it is a function available in a working fw.
We call a particular api on the jade interface, and we upload a compressed fw file (or fw delta/patch) which it is able to apply.  Then the unit restarts and boots the updated fw.  It does not update the bootloader in any way.
What we are talking about here is flashing a 'virgin' device 'from outside'.  ie. not using a function in the running fw.  (This is not supposed to be available in a production jade unit - but from your description above that is what has occurred.)
The normal compressed fw images will not be suitable - and also you will need a new bootloader.
I should, however, be able to locate suitable files (as they would have been used to create the usual compressed fw images).

Sorry - quick question - when you received the Jade device and initially turned it on - did it start up with a pre-installed firmware ?  ie. it started, showed the 'Jade' splash-screen, and then went to a screen with a large 'Initialize' button ?

Yes it had 1.3.2 on it, I was able to generate a seed.

I can email you the files in question - although I'm not sure it will work...
Can you run either of these commands against your jade ?  espefuse.py summary, or esptool.py chip_id ... ?

$ esptool.py chip_id
esptool.py v3.0
Found 1 serial ports
Serial port /dev/ttyACM0
Connecting....
Detecting chip type... ESP32
Chip is ESP32-D0WDQ6-V3 (revision 3)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
Crystal is 40MHz
MAC: 30:c6:f7:1f:6b:84
Uploading stub...
Running stub...
Stub running...
Warning: ESP32 has no Chip ID. Reading MAC instead.
MAC: 30:c6:f7:1f:6b:84
Hard resetting via RTS pin...

I couldnt do espefuse.py summary, I got this error: serial.serialutil.SerialException: [Errno 2] could not open port /dev/ttyUSB0: [Errno 2] No such file or directory: '/dev/ttyUSB0'

Sorry: espefuse.py --port /dev/ttyACM0 summary  (not sure why some commands correctly detect the relevant serial port/device, and some don't ...)

$ espefuse.py --port /dev/ttyACM0 summary
Connecting....
Detecting chip type... ESP32
espefuse.py v3.0
EFUSE_NAME (Block)                       Description  = [Meaningful Value] [Readable/Writeable] (Hex Value)
----------------------------------------------------------------------------------------
Calibration fuses:
BLK3_PART_RESERVE (BLOCK0):              BLOCK3 partially served for ADC calibration data   = False R/W (0b0)
ADC_VREF (BLOCK0):                       Voltage reference calibration                      = 1121 R/- (0b00011)

Config fuses:
XPD_SDIO_FORCE (BLOCK0):                 Ignore MTDI pin (GPIO12) for VDD_SDIO on reset     = False R/W (0b0)
XPD_SDIO_REG (BLOCK0):                   If XPD_SDIO_FORCE, enable VDD_SDIO reg on reset    = False R/W (0b0)
XPD_SDIO_TIEH (BLOCK0):                  If XPD_SDIO_FORCE & XPD_SDIO_REG                   = 1.8V R/W (0b0)
CLK8M_FREQ (BLOCK0):                     8MHz clock freq override                           = 49 R/W (0x31)
SPI_PAD_CONFIG_CLK (BLOCK0):             Override SD_CLK pad (GPIO6/SPICLK)                 = 0 R/W (0b00000)
SPI_PAD_CONFIG_Q (BLOCK0):               Override SD_DATA_0 pad (GPIO7/SPIQ)                = 0 R/W (0b00000)
SPI_PAD_CONFIG_D (BLOCK0):               Override SD_DATA_1 pad (GPIO8/SPID)                = 0 R/W (0b00000)
SPI_PAD_CONFIG_HD (BLOCK0):              Override SD_DATA_2 pad (GPIO9/SPIHD)               = 0 R/W (0b00000)
SPI_PAD_CONFIG_CS0 (BLOCK0):             Override SD_CMD pad (GPIO11/SPICS0)                = 0 R/W (0b00000)
DISABLE_SDIO_HOST (BLOCK0):              Disable SDIO host                                  = False R/W (0b0)

Efuse fuses:
WR_DIS (BLOCK0):                         Efuse write disable mask                           = 385 R/W (0x0181)
RD_DIS (BLOCK0):                         Efuse read disable mask                            = 1 R/- (0x1)
CODING_SCHEME (BLOCK0):                  Efuse variable block length scheme
   = NONE (BLK1-3 len=256 bits) R/W (0b00)
KEY_STATUS (BLOCK0):                     Usage of efuse block 3 (reserved)                  = False R/W (0b0)

Identity fuses:
MAC (BLOCK0):                            Factory MAC Address
   = 30:c6:f7:1f:6b:84 (CRC 0x25 OK) R/W
MAC_CRC (BLOCK0):                        CRC8 for factory MAC address                       = 37 R/W (0x25)
CHIP_VER_REV1 (BLOCK0):                  Silicon Revision 1                                 = True R/W (0b1)
CHIP_VER_REV2 (BLOCK0):                  Silicon Revision 2                                 = True R/W (0b1)
CHIP_VERSION (BLOCK0):                   Reserved for future chip versions                  = 2 R/W (0b10)
CHIP_PACKAGE (BLOCK0):                   Chip package identifier                            = 0 R/W (0b000)
MAC_VERSION (BLOCK3):                    Version of the MAC field                           = 0 R/W (0x00)

Security fuses:
FLASH_CRYPT_CNT (BLOCK0):                Flash encryption mode counter                      = 127 R/W (0b1111111)
UART_DOWNLOAD_DIS (BLOCK0):              Disable UART download mode (ESP32 rev3 only)       = False R/W (0b0)
FLASH_CRYPT_CONFIG (BLOCK0):             Flash encryption config (key tweak bits)           = 15 R/W (0xf)
CONSOLE_DEBUG_DISABLE (BLOCK0):          Disable ROM BASIC interpreter fallback             = True R/W (0b1)
ABS_DONE_0 (BLOCK0):                     Secure boot V1 is enabled for bootloader image     = False R/W (0b0)
ABS_DONE_1 (BLOCK0):                     Secure boot V2 is enabled for bootloader image     = True R/W (0b1)
JTAG_DISABLE (BLOCK0):                   Disable JTAG                                       = True R/W (0b1)
DISABLE_DL_ENCRYPT (BLOCK0):             Disable flash encryption in UART bootloader        = True R/W (0b1)
DISABLE_DL_DECRYPT (BLOCK0):             Disable flash decryption in UART bootloader        = True R/W (0b1)
DISABLE_DL_CACHE (BLOCK0):               Disable flash cache in UART bootloader             = True R/W (0b1)
BLOCK1 (BLOCK1):                         Flash encryption key
   = ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? -/-
BLOCK2 (BLOCK2):                         Secure boot key
   = 96 bf 3b 2e 84 0d c9 d7 4f f8 ff fe 2c a4 3f 95 d1 36 2a 1b 18 60 50 64 20 53 1f ae 72 42 f4 f7 R/-
BLOCK3 (BLOCK3):                         Variable Block 3
   = 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 R/W

Flash voltage (VDD_SDIO) determined by GPIO12 on reset (High for 1.8V, Low/NC for 3.3V).

If you want to give me an email address I can send you the files - but I have to confess I am not hopeful that it will work.
I am most puzzled (and concerned) that esptool.py and espfuse.py were able to connect to your device.

<EMAIL_ADDRESS>

Im making progress!
Writing at 0x0007fc00... (41 %)
Writing at 0x00080000... (41 %)
Writing at 0x00080400... (41 %)
Writing at 0x00080800... (41 %)
Writing at 0x00080c00... (41 %)
Writing at 0x00081000... (41 %)
Writing at 0x00081400... (41 %)
Writing at 0x00081800... (41 %)
Writing at 0x00081c00... (41 %)
Writing at 0x00082000... (41 %)
Writing at 0x00082400... (41 %)
Writing at 0x00082800... (42 %)
Writing at 0x00082c00... (42 %)
Writing at 0x00083000... (42 %)
Writing at 0x00083400... (42 %)
Writing at 0x00083800... (42 %)
Writing at 0x00083c00... (42 %)
Writing at 0x00084000... (42 %)
Writing at 0x00084400... (42 %)
Writing at 0x00084800... (42 %)
Writing at 0x00084c00... (42 %)

A fatal error occurred: Invalid head of packet (0x10)

Hash of data verified.
Erasing flash...
Took 0.06s to erase flash block
Writing at 0x0000e000... (12 %)
Writing at 0x0000e400... (25 %)
Writing at 0x0000e800... (37 %)
Writing at 0x0000ec00... (50 %)
Writing at 0x0000f000... (62 %)
Writing at 0x0000f400... (75 %)
Writing at 0x0000f800... (87 %)
Writing at 0x0000fc00... (100 %)
Wrote 8192 bytes at 0x0000e000 in 0.2 seconds (294.2 kbit/s)...
Hash of data verified.
Erasing flash...
Took 2.96s to erase flash block
Writing at 0x00010000... (0 %)
Writing at 0x00010400... (0 %)
Writing at 0x00010800... (0 %)
Writing at 0x00010c00... (0 %)
Writing at 0x00011000... (0 %)
Writing at 0x00011400... (0 %)
Writing at 0x00011800... (0 %)
Writing at 0x00011c00... (0 %)
Writing at 0x00012000... (0 %)
Writing at 0x00012400... (0 %)
Writing at 0x00012800... (1 %)
Writing at 0x00012c00... (1 %)

A fatal error occurred: Timed out waiting for packet header

Any news on this?
Can I maybe get a properly "locked down" jade re-sent to me?

I'll pass you to the relevant people.
Did you just buy this unit from the regular store ?

Any news on this?
Can I maybe get a properly "locked down" jade re-sent to me?

Would you mind submitting a ticket on help.blockstream.com? Please reference this issue and provide your order number

I created a ticket

Hi - was this resolved ?


added bot to reviewers list

to speed up operatorhub packages publishing adding victoriametrics-bot to reviewers list

Thanks!


Grammar and styling corrections

I updated the readme.md to provide better styling output (especially at the list of loglevels). Then started correcting a few grammar mistakes.

oh thanks! I know that I need to improve my english :-)

don't worry about it, I understood what you wanted to say :)
glad I could help.


CSP Final - Individual Blog Post and Video

Blog Post
Video

For your blog post, I really liked how you showed and explained your feature and how it works a little before you went into the cb requirements, the screen shots and the alerts make you feature easier to understand to someone who hasn't seen your website before. It seems like your project follows all of the cb requirements. I like how you have a sentence of context that relates your code and the requirements.
For your video I really like how its split screen so you can actively see the new user getting added to the database table. I like your captions, they are very short and easy to follow and they also easily say what you are doing. Overall I think you video was well done, the one suggestion I have is to maybe not highlight the new user getting added to the database, maybe edit it somehow to emphasize it rather than using your mouse.
Score: 4.8/5


⚠ ClamAV has degraded performance

In 3b034f6, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 82 ms

Resolved: ClamAV performance has improved in d7b9fe1.


Add a LICENSE file?

Could you please add a LICENSE file?

MIT license is fine by us. @enjoy-digital does that work for you also?

It would be great to use the same license as upstream LiteX.

Fine by me also

Added with https://github.com/enjoy-digital/xtrx_julia/commit/96e981b0c5185b084f6d35840832de83f130ea26.


How do you backup and restore your plugins?

Is there a to backup and restore your fisherman plugins? kinda like bundler or pip but for all your neat fish plugins.
So you can keep your shell aligned across environments?

@martinffx You could commit your fishfile to your dotfiles and run fisher or fisher install to get everything in it installed again on a fresh system.

@martinffx Did the above solve your issue?


Logging framework setup and replacement of Syso statements

Configured log4j for ODS application and replaced all System.out.println() statements.
Segregated all logging statements into relevant logging levels and printed them using log4j functions. (Team to follow this approach from hereon and refrain from using System.out.println statements).
All logs will be generated in logs/server-log.log file and will grow to a maximum of 50 MB. After the threshold is reached, the logs will be backed up 10 times after which they will be automatically purged (i.e. logs can grow upto a maximum for 500 MB only).
Updated gitignore to avoid log files.

I was of the same opinion when I saw it, but felt it was purposely put there by someone to triage refresh token issues (since it appears at the start and end of the try block) and the scope of this change was to only take off all Syso statements and replace with log4j functions, so left it as is.
Your suggestion is valid. We can think of taking it off in the future.


How to add datepicker callback to monitor?

You didn't follow the issue template, and this isn't specific at all.


fix: ⚡ new minter

A bit of a mix up on my end, this is the same as the old gif-fix branch, migrated to develop

Some small fixes that could fit this PR:

[x] Mint upload progress
[x] Copy address button on profiles (#236)
[x] Autoplay with audio on token display (video & audio mime types)
[x] Custom RPC node (still need testing)
[ ] Search on isolated route?
[ ] Split Contract details on hover
[ ] Token size issue (for instance #811495 / #811506 / #812529 -> Larger tokens + True fullscreen)
[ ] Add icon in feeds for video tokens


fix action.yaml

Please merge, otherwise nobody can use the action

Thanks its working now. Example => https://github.com/qoomon/qoomon/actions/runs/8434559199/workflow


Cannot load textures bigger than 512MB

Bevy version
commit - de484c1e4147d01bf34c88a10797b75128a0d98a
[Optional] Relevant system information
MacOs 12.4, MacBook Pro Apple M1 Max
What you did
I tried loading a PNG texture larger than 512MB.
What went wrong
It failed loading with the following warning:
2022-07-13T03:37:38.679032Z  WARN bevy_asset::asset_server: encountered an error while loading an asset: You may need to add the feature for the file format: failed to load an image: Insufficient memory
Additional information
This is due to the use of a helper function from the image crate, which sets default limits on allocation (512MB).
(from bevy's texture/image.rs:384)
let dyn_img = image::load_from_memory_with_format(buffer, image_crate_format)?;
it can be fixed by using a Reader instead:
let mut reader = image::io::Reader::new(std::io::Cursor::new(buffer));
reader.set_format(image_crate_format);
reader.no_limits();
let dyn_img = reader.decode()?;

With this fix I was able to load very large textures (1GB+) successfully

Is that 512MB the compressed file size? What image dimensions? What format?

That is the max allocation size allowed for the decoder, so the answer depends on the decoder.
Instead of using that utility function it is possible to use the more advanced Reader that can be configured ad hoc.
In my case I need to load a 16k texture resulting from a photogrammetry scan, this fix allows me to load unlimited size textures (until the actual memory runs out)

I guess as we handle the error state anyway, if you try to load a texture that is too large for whatever reason and you have insufficient ram, the APIs will warn you appropriately. From that perspective it seems fine.


Retexture of weapons in the hands of the character Part 2

About the PR

The second part of the PR, on finalizing the weapon sprites, this part is small, it includes the finalization of the sprites of the SMG drozd with the addition of a sprite when putting on the back of the weapon, as well as the finalization of the sprite behind the back of the SMG WT 550
Media

[X] I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

Changelog

:cl:

tweak: Improved sprites SMG Drozd and sprite WT 550 behind

Sending a smoke signal for merge


boxSizing needs cascading values

Of course a lot of other properties need this as well, but right now I need it for boxSizing! 😄
I’m writing some base css for my app and want this rule:
*, *::before, *::after { box-sizing: inherit; }
I want to be able to do it cleanly like so:
global("*, *::before, *::after", [boxSizing(`inherit)])
But right now I have to do:
insertRule("*, *::before, *::after { box-sizing: inherit; }")

v7.4.0

Sweet!


Use string interpolation in favor of concatenation

I've cleaned up some code to use string interpolation instead of concatenation. Additionally, I have modified the server-side anti-cheat and removed the explicit calls to tostring, which I don't think is necessary since it should be called automatically.

NOOOOOO

This is not better because string.format is used under the hood so it might be more expensivw and aöl tooling isnt supported

What, Lol? First, it does get lowered into string.format calls and tostring calls internally (see the Luau RFC), but that would not make it "more expensive" in any meaningful way. Even if we were trying to do pointless micro-optimizations like such that mean literally nothing because they only save less than a nanosecond when they're all combined, the newer method is probably faster realistically speaking. Secondly, what is "aöl" tooling???

NOOOOOO

stop crying on github. my dms exist for a reason

What I mean is introducing unnecessary Luau syntax isn't good
And string interpolation is not necessary

Why, and why..? This project only runs on Luau and already uses luau syntax elsewhere, I don’t know what backward compatibility with Lua 5.1 matters to us.
Also saying updates  are ‘not necessary’ means effectively nothing.

concatenation >>> interpolation


Add informative output messages to console

At the moment the output of the console is not very helpful. This should get an overhaul to provide meaningful help for a user.
For a start meaningful messages are enough, something like a progress bar are topics for a later version.

Atm I do not really know which messages are important and which are not.
I will use the script for some more backups and decide, what I want to do here.

I need to calculate, how many files / directories there are, maybe with sizes?
After that I need to add a progress bar or something like that, to visualise progress. This is a little more work, than I initially thought for informative messages, so I move this into v0.2.0

I should also add a -q option together with this to avoid output.
This should skip calculation needed for progress bar.

This issue was solved when issues were at GitLab:
https://gitlab.com/NicoVIII/PGP-Backup/issues/1


HTTP ERROR 500 with requestAccessToken

when i call the requestAccessToken method return me a HTTP ERROR 500
<?php
require 'SpotifyApi/vendor/autoload.php';

$session = new SpotifyWebAPI\Session('cid', 'csec', 'callbackurl');

// Request a access token using the code from Spotify
$session->requestAccessToken($_GET['code']);
$accessToken = $session->getAccessToken(); // We're good to go!

// Set the code on the API wrapper
SpotifyWebAPI\SpotifyWebAPI::setAccessToken($accessToken);
$track = SpotifyWebAPI\SpotifyWebAPI::getTrack('7EjyzZcbLxW7PaaLua9Ksb');

print_r($track);
?>

Hi!
A few questions to help me understand what's going on:

The require call looks a bit strange, have you installed the library via Composer or have you done it in some other way? (I was expecting something like require 'vendor/autoload.php';)
Is this code run as the callback URL? So the $_GET['code'] parameter will exist?
Can you add the following lines to the top of the file (before require) and see if you're getting more detailed errors:

error_reporting(-1);
ini_set('display_errors', 1);

Thanks!

i have use composer, but in the SpotifyApi directory.
when user login spotify, he is returned to callback.php
<?php
error_reporting (- 1 );
ini_set ( 'display_errors' , 1 );
require 'SpotifyApi/vendor/autoload.php';

$session = new SpotifyWebAPI\Session('cid', 'csec', 'callbackurl');

// Request a access token using the code from Spotify
$session->requestAccessToken($_GET['code']);
$accessToken = $session->getAccessToken(); // We're good to go!

// Set the code on the API wrapper
SpotifyWebAPI\SpotifyWebAPI::setAccessToken($accessToken);
$track = SpotifyWebAPI\SpotifyWebAPI::getTrack('7EjyzZcbLxW7PaaLua9Ksb');

print_r($track);
?>

Fatal error: Uncaught SpotifyWebAPI\SpotifyWebAPIAuthException: Invalid client in /var/www/html/test/SpotifyApi/vendor/jwilsson/spotify-web-api-php/src/Request.php:65 Stack trace: #0 /var/www/html/test/SpotifyApi/vendor/jwilsson/spotify-web-api-php/src/Request.php(270): SpotifyWebAPI\Request->parseBody(Object(stdClass), 400) #1 /var/www/html/test/SpotifyApi/vendor/jwilsson/spotify-web-api-php/src/Request.php(115): SpotifyWebAPI\Request->send('POST', 'https://account...', 'client_id=cid&c...', Array) #2 /var/www/html/test/SpotifyApi/vendor/jwilsson/spotify-web-api-php/src/Session.php(235): SpotifyWebAPI\Request->account('POST', '/api/token', Array, Array) #3 /var/www/html/test/callback.php(9): SpotifyWebAPI\Session->requestAccessToken('AQCI-JJbxmWEClv...') #4 {main} thrown in /var/www/html/test/SpotifyApi/vendor/jwilsson/spotify-web-api-php/src/Request.php on line 65

Aha! You're getting a "Invalid client" error back from Spotify. I've seen this a few times before and the easiest solution seems to be to create a new Spotify app and use that instead.

I tried but keep giving me that error, now for safety I will try to re-download your api with the composer.
I update you

i tried to re download te api with composer but script continue give me error

Hmm, try changing these lines:
// Set the code on the API wrapper
SpotifyWebAPI\SpotifyWebAPI::setAccessToken($accessToken);
$track = SpotifyWebAPI\SpotifyWebAPI::getTrack('7EjyzZcbLxW7PaaLua9Ksb');```

to this:
```php
// Set the code on the API wrapper
$api = new SpotifyWebAPI\SpotifyWebAPI();
$api->setAccessToken($accessToken);
$track = $api->getTrack('7EjyzZcbLxW7PaaLua9Ksb');

Right now you're calling the methods statically which means they won't have access to the access token. Creating an instance of the class and using that will make sure everything is set correctly.

hi, I managed to make everything work, I don't know what the problem was, probably my forgetfulness.
to fix it, I just went back to rewriting everything
in any case thank you very much for the help and sorry for the inconvenience.


improvement throw exception instead of log fatal if string column exceed total size limit

Proposed changes
Issue Number: close #xxx
Problem summary
Throw exception instead of log fatal if string column exceed total size limit, so that we can catch it and let query fail, instead of causing be exit.
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

TeamCity pipeline, clickbench performance test result:
the sum of best hot time: 34.96 seconds
stream load tsv:          468 seconds loaded<PHONE_NUMBER>9 Bytes, about 152 MB/s
stream load json:         22 seconds loaded<PHONE_NUMBER> Bytes, about 102 MB/s
stream load orc:          75 seconds loaded<PHONE_NUMBER> Bytes, about 14 MB/s
stream load parquet:          31 seconds loaded 861443392 Bytes, about 26 MB/s
https://doris-community-test-1308700295.cos.ap-hongkong.myqcloud.com/tmp/20230321234546_clickbench_pr_118191.html

run buildall


Problems installing mongocli with homebrew

Installing from brew as the MongoDb docs suggest https://docs.mongodb.com/mongocli/stable/install
Thinking this might be a function of 1.11 being such a "fresh" release?  But maybe a path is wrong in the brew recipe.
$ brew tap mongodb/brew
brew install mongocli
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
htmltest                                       mpdecimal                                      vitess
==> Updated Formulae
Updated 130 formulae.
==> New Casks
digital                                        duckstation                                    sengi
==> Updated Casks
Updated 208 casks.
==> Tapping mongodb/brew
Cloning into '/usr/local/Homebrew/Library/Taps/mongodb/homebrew-brew'...
remote: Enumerating objects: 10, done.
remote: Counting objects: 100% (10/10), done.
remote: Compressing objects: 100% (10/10), done.
remote: Total 513 (delta 1), reused 2 (delta 0), pack-reused 503
Receiving objects: 100% (513/513), 109.93 KiB | 1.55 MiB/s, done.
Resolving deltas: 100% (239/239), done.
Tapped 11 formulae (40 files, 185.7KB).
$ brew install mongocli
==> Installing mongocli from mongodb/brew
==> Downloading https://github.com/mongodb/mongocli/releases/download/v1.11.0/mongocli_1.11.0_macos_x86_64.zip
#=#=#
curl: (22) The requested URL returned error: 404
Error: Failed to download resource "mongocli"
Download failed: https://github.com/mongodb/mongocli/releases/download/v1.11.0/mongocli_1.11.0_macos_x86_64.zip

Closing this and reopening in mongodb homebrew project

Closing this and reopening in mongodb homebrew project

Hi @gregory-akins,
You got that error because 1.11.0 wasn’t yet published when you have run brew.
Let me know if you keep getting the same error.
Thanks,

Hi @gregory-akins,
You got that error because 1.11.0 wasn’t yet published when you have run brew.
Let me know if you keep getting the same error.
Thanks,

I thought that might be the case.  Just tried again, and it installed successfully.
Thanks

I thought that might be the case.  Just tried again, and it installed successfully.
Thanks


job_stop will not actually stop the process in windows unless I unlet the job variable (gvim 7.4.1832)

step to reproduct (windows gvim 7.4.1832):

start a background python job (output a single line and sleep 1 second, repeat 30 times)
redirect stdout/stderr into quickfix window by 'callback'
call job_stop with 'term' or 'kill' and ** DO NOT unlet job object **
check job_status and it changed from 'run' to 'dead'
ERROR: but the job is still running, still output text to quickfix window
when it actually exit by it self (after repeat itself 30 times) 'close_cb' and 'exit_cb' were invoked

and if I unlet job object after job_stop, everything seems okay, the job can actually be stopped but job object can not be unleted after job_stop, because sometimes child process will stop signal from being terminated (ignore TERM etc) in this circumstance, if I immediately unlet job object after
a no-effect job_stop calling my script will fail into an error environment.
This is only in windows, in linux everything is fine, I can clean the job object in exit_cb/close_cb as my wish. and job_stop doesn't require a unlet in linux too.

sorry,I don't know issues in github will be redirect to this group.

step to reproduct (windows gvim 7.4.1832):

start a background python job (output a single line and sleep 1 second, repeat 30 times)

redirect stdout/stderr into quickfix window by 'callback'

call job_stop with 'term' or 'kill' and ** DO NOT unlet job object **

check job_status and it changed from 'run' to 'dead'

ERROR: but the job is still running, still output text to quickfix window

when it actually exit by it self (after repeat itself 30 times) 'close_cb' and 'exit_cb' were invoked

and if I unlet job object after job_stop, everything seems okay, the job can actually be stopped but job object can not be unleted after job_stop, because sometimes child process will stop signal from being terminated (ignore TERM etc) in this circumstance, if I immediately unlet job object after
a no-effect job_stop calling my script will fail into an error environment.
This is only in windows, in linux everything is fine, I can clean the job object in exit_cb/close_cb as my wish. and job_stop doesn't require a unlet in linux too.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub

There have been many patches regarding job feature. So is this still happening?

I will try it as soon as I get to my laptop.

wrote a script to verify:
function! JobCallback(channel, text)
	caddexpr a:text
	cbottom
endfunc

function! JobExit(job, message)
	caddexpr "[Job finished]"
	cbottom
endfunc

function! TimerKill(tid)
	caddexpr "--> try to terminate"
	cbottom
	call job_stop(g:myjob, 'kill')
	call job_status(g:myjob)
endfunc

cexpr "[Job start]"
botright copen 10
wincmd k

let statements = "import sys,time; [("
let statements = statements . "sys.stdout.write('%d\\n'%i),sys.stdout.flush(),"
let statements = statements . "time.sleep(1)) for i in xrange(30)]"

cexpr "[python -c \"".statements."\"]"
let opts = { "callback": "JobCallback", "exit_cb": "JobExit" }

let g:myjob = job_start(["python", "-c", statements], opts)
let g:mytimer = timer_start(5000, "TimerKill", {"repeat": 1})

And it seems that  job_stop can work correctly on windows now. (vim 7.4.2078)

On Do, 21 Jul 2016, Linwei wrote:

wrote a script to verify:
function! JobCallback(channel, text)
	caddexpr a:text
	cbottom
endfunc

function! JobExit(job, message)
	caddexpr "[Job finished]"
	cbottom
endfunc

function! TimerKill(tid)
	caddexpr "--> try to terminate"
	cbottom
	call job_stop(g:myjob, 'kill')
	call job_status(g:myjob)
endfunc

cexpr "[Job start]"
botright copen 10
wincmd k

let statements = "import sys,time; [("
let statements = statements . "sys.stdout.write('%d\\n'%i),sys.stdout.flush(),"
let statements = statements . "time.sleep(1)) for i in xrange(30)]"

cexpr "[python -c \"".statements."\"]"
let opts = { "callback": "JobCallback", "exit_cb": "JobExit" }

let g:myjob = job_start(["python", "-c", statements], opts)
let g:mytimer = timer_start(5000, "TimerKill", {"repeat": 1})

And it seems that  job_stop can work correctly on windows now. (vim 7.4.2078)

I don't know that part of the code enough, but I wonder, if this could
be added as a test?
Best,
Christian
Wenn du nicht kommst, schmeiß ich dich raus.

alright, I'll learn to write a test


AtomicWrite: file defer close

Please provide a description of this PR:
AtomicWrite: file defer close

Hi @helen-frank. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

I am not sure the benefits of this. Is it fixing a bug? It seems a bit more complex

I am not sure the benefits of this. Is it fixing a bug? It seems a bit more complex

No, I just hope that the closed file can be defer, so as not to care about closing the file when adding other logic.

/close


Add README info about Windows PATH and git-bash to the README, fixes #52

Add README info about Windows PATH and git-bash to the README, fixes #52
If the Windows-native bash.exe is first in the PATH, this won't work at all.

Hey @rfay! Sorry for the delay! Thank you very much for your contribution! :partying_face:

:) That was truly quite a delay :)


Replace /dotnet/api with xrefs in MVC

Addresses #24809.

@Rick-Anderson Can you help me with a description for https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/actions?view=aspnetcore-6.0?


Error while settingup headscale

I am trying to setup headscale in my Ubuntu 18.04 VM
While executing the cmd
headscale namespace create myfirstnamespace
Throwing this error
headscale: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by headscale)

Hi @bharathmsd7,
Found the issue. Can you check v0.3.3?
https://github.com/juanfont/headscale/releases/tag/v0.3.3

Hi @juanfont,
Tried v0.3.3
ERROR:
sudo: headscale: command not found
Steps to reproduce the ERROR:

Downloaded the binary v0.3.3
Renamed to headscale
Placed in PATH
Trying to run headscale cmd

Can you do
chmod +x PATH_TO_HEADSCALE
?
On Mon, 12 Jul 2021 at 17:39, Bharath @.***> wrote:

Hi @juanfont https://github.com/juanfont,
Tried v0.3.3
ERROR:
sudo: headscale: command not found
Steps to reproduce the ERROR:

Downloaded the binary v0.3.3
Renamed to headscale
Placed in PATH
Trying to run headscale cmd

—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/juanfont/headscale/issues/49#issuecomment-878383863,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABMGQ43Y6SENZVVJ2NPN3TTXMEEVANCNFSM5AG25AFQ
.

Can you do chmod +x PATH_TO_HEADSCALE ?
…
On Mon, 12 Jul 2021 at 17:39, Bharath @.***> wrote: Hi @juanfont https://github.com/juanfont, Tried v0.3.3 ERROR: sudo: headscale: command not found Steps to reproduce the ERROR: - Downloaded the binary v0.3.3 - Renamed to headscale - Placed in PATH - Trying to run headscale cmd — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#49 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABMGQ43Y6SENZVVJ2NPN3TTXMEEVANCNFSM5AG25AFQ .

Tired that but facing same issue.

Are you sure you have placed the binary into somewhere like /usr/local/bin
?
On Mon, 12 Jul 2021 at 17:44, Bharath @.***> wrote:

Can you do chmod +x PATH_TO_HEADSCALE ?
… <#m_5664155709473167012_>
On Mon, 12 Jul 2021 at 17:39, Bharath @.***> wrote: Hi @juanfont
https://github.com/juanfont https://github.com/juanfont, Tried v0.3.3
ERROR: sudo: headscale: command not found Steps to reproduce the
ERROR: - Downloaded the binary v0.3.3 - Renamed to headscale - Placed in
PATH - Trying to run headscale cmd — You are receiving this because you
were mentioned. Reply to this email directly, view it on GitHub <#49
(comment)
https://github.com/juanfont/headscale/issues/49#issuecomment-878383863>,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABMGQ43Y6SENZVVJ2NPN3TTXMEEVANCNFSM5AG25AFQ
.
Tired that but facing same issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/juanfont/headscale/issues/49#issuecomment-878387417,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AABMGQZ7TCMPUWMOI42QWU3TXMEWVANCNFSM5AG25AFQ
.

Restarted my machine now its working.
Thanks @juanfont

Cheers!!


[WIP] Use const and let the syntax of the ES6

The node-v4 has support for const and let and  the next LTS version (v6) will fully support ES6.
Thinking about it, it is interesting to the node scripts also run in ES6 syntax
There are other possible optimizations, for now I would like feedback from you about this change.

My personal preference would actually be to avoid this right now. I worry that others might see let and const and think, "Oh, I can write in ES6!" when in fact, there's only very limited support and will be for the foreseeable future, as we don't plan on dropping support for node-v4 anytime soon.

Thanks for the feedback.
Anyway, you can close the PR if it considers that this is not the time. :)


fix(ios): remove Xcode 12.5 + M1 workaround call.

@igorgn FYI

retest this please

Removing this workaround call fails Jenkins? 🤔
But we are not using M1 (AFAIK) or Xcode 12.5, so it's very weird.


Use cross-compilation with Docker for riscv64

The boards are just too limited at the moment.

It depends on https://github.com/adoptium/infrastructure/pull/3240

It is currently blocked by not being able to push the adoptopenjdk/ubuntu2004_build_image:linux-riscv64 to hub.docker.com. See https://ci.adoptium.net/job/centos7_docker_image_updater/397/console for details

This isn't cross compilation  so those options aren't likely to work - this PR is trying to run in an emulated environment so from the build process perspective it would be running "natively". But as you say it isn't going to work yet until we can push it up. Also why have you selected x64 as the host specifically?

But as you say it isn't going to work yet until we can push it up.

Is there a way to manually push the image until the CI is fixed? Given RISC-V isn't an officially supported platform, the necessity for tracking sources of the tools isn't as much a requirement?

Why did you select x64 as the host specifically for this?

Kinda of by default. Happy to use something else if it's any better. The other ones I would see is aarch64 if we have enough machines in that pull (and fast enough) to dedicate to that.

Scaling down the scope of this PR to only using the docker container. We'll see to use x64 host on a follow-up PR.

Superseded by https://github.com/adoptium/ci-jenkins-pipelines/pull/864


connection refused with preview015

Hi, when I upgraded to preview015 following happened:

First query executes fine
Second query on I only get "connection refused" 👎

Error:
    Invalid `photon.()` invocation in ./src/bpmn_process_instance/tests/process_instance_resolver.test.js:23:58

    Reason: {
      "name": "RequestError",
      "code": "ECONNREFUSED",
      "host": "localhost:60721",
      "hostname": "localhost",
      "method": "POST",
      "path": "/",
      "protocol": "http:",
      "url": "http://localhost:60721/",
      "gotOptions": {
        "path": "/",
        "protocol": "http:",
        "slashes": true,
        "auth": null,
        "host": "localhost:60721",
        "port": "60721",
        "hostname": "localhost",
        "hash": null,
        "search": null,
        "query": null,
        "pathname": "/",
        "href": "http://localhost:60721/",
        "retry": {
          "methods": {},
          "statusCodes": {},
          "errorCodes": {}
        },
        "headers": {
          "user-agent": "got/9.6.0 (https://github.com/sindresorhus/got)",
          "content-type": "application/json",
          "accept": "application/json",
          "accept-encoding": "gzip, deflate",
          "content-length": 151
        },
        "hooks": {
          "beforeRequest": [],
          "beforeRedirect": [],
          "beforeRetry": [],
          "afterResponse": [],
          "beforeError": [],
          "init": []
        },
        "decompress": true,
        "throwHttpErrors": true,
        "followRedirect": true,
        "stream": false,
        "form": false,
        "json": true,
        "cache": false,
        "useElectronNet": false,
        "body": "{\"query\":\"query {\\n  findManyUser {\\n    id\\n    email\\n    name\\n    description\\n    password\\n    privateKey\\n    publicKey\\n  }\\n}\",\"variables\":{}}",
        "method": "POST",
        "forceRefresh": true
      }
    }

Nevermind, it was a parallel query that brought prisma down :/
I did:
await Promise.all(processes.map(p => ctx.db.processes.findOne({ where: { id: p } })))

This crashed

Hi,
You have closed this issue but this doesn't seem to be resolved. Can we make sure that this is resolved?

@pantharshit00 not sure why my last message does not appear. Yes, it is resolved. The problem was that during those operations one of the constraints was failing. Unfortunately I was not getting any message about that, only the connection refused message. When I debugged the process, it was clearer. Thus, when I removed that constraint error, all started to work as expected.
Thanks for your care!


Problem finding certificate

Sorry, bit of a noob here.`
Expected Result
Using Python 3.6 from Anaconda, after having installed fix_yahoo_finance package
Actual Result
Traceback (most recent call last):

  File "<ipython-input-15-b609a2c5a366>", line 9, in <module>
    end="2017-06-20")

  File "C:\Users\London\Anaconda3\lib\site-packages\fix_yahoo_finance\__init__.py", line 167, in download
    actions=actions, *args, **kwargs)

  File "C:\Users\London\Anaconda3\lib\site-packages\fix_yahoo_finance\__init__.py", line 317, in download_chunk
    crumb, cookie = get_yahoo_crumb()

  File "C:\Users\London\Anaconda3\lib\site-packages\fix_yahoo_finance\__init__.py", line 54, in get_yahoo_crumb
    res = requests.get('https://finance.yahoo.com/quote/SPY/history')

  File "C:\Users\London\Anaconda3\lib\site-packages\requests\api.py", line 72, in get
    return request('get', url, params=params, **kwargs)

  File "C:\Users\London\Anaconda3\lib\site-packages\requests\api.py", line 58, in request
    return session.request(method=method, url=url, **kwargs)

  File "C:\Users\London\Anaconda3\lib\site-packages\requests\sessions.py", line 518, in request
    r"""Sends a OPTIONS request. Returns :class:`Response` object.

  File "C:\Users\London\Anaconda3\lib\site-packages\requests\sessions.py", line 639, in send
    history.insert(0, r)

  File "C:\Users\London\Anaconda3\lib\site-packages\requests\adapters.py", line 405, in send
    conn = self.get_connection(request.url, proxies)

  File "C:\Users\London\Anaconda3\lib\site-packages\requests\adapters.py", line 225, in cert_verify
    raise IOError("Could not find a suitable TLS CA certificate bundle, "

OSError: Could not find a suitable TLS CA certificate bundle, invalid path: C:\Users\London\Anaconda3\lib\site-packages\requests\cacert.pem

I do have a certifi package which contains the file cacert.pem, but the path is C:\Users\London\Anaconda3\Lib\site-packages\certifi
Reproduction Steps
Using this request:

from pandas_datareader import data as pdr

import datetime

import fix_yahoo_finance

aapl = pdr.get_data_yahoo('AAPL',
                          start="2014-01-01",
                          end="2017-06-20")

System Information
$ python -m requests.help

{
  "chardet": {
    "version": "3.0.4"
  },
  "cryptography": {
    "version": "1.8.1"
  },
  "implementation": {
    "name": "CPython",
    "version": "3.6.1"
  },
  "platform": {
    "release": "8.1",
    "system": "Windows"
  },
  "pyOpenSSL": {
    "openssl_version": "100020bf",
    "version": "17.0.0"
  },
  "requests": {
    "version": "2.18.1"
  },
  "system_ssl": {
    "version": "100020bf"
  },
  "urllib3": {
    "version": "1.21.1"
  },
  "using_pyopenssl": true
}

This looks like a problem with the validation of Yahoo's SSL certificate.
 If not, this may cause the SSL validation to fail.
If this isn't the case, can you try re-installing the requests package, then run your code again?
$ pip install requests --upgrade --no-cache-dir

Closing for now. Please reopen if problem persists


Figma: create figma card per sponsor

We need an image that can be used on socials (twitter/linkedin/facebook) per sponsor and with all the sponsors

updates on figma from @roberto-contessi to be confirmed
see https://github.com/WEBdeBS/nodejsconf2023/issues/35
cc @cirpo @merissimissima

<3


Enhance the export script to have the full feedback conversations

User Story
As a dev, I want to retrieve full conversations, so I can train my model with better data
Estimated Time to Complete
4 hours
Acceptance Criteria

[ ] Full conversations are retrieved from floop data

[ ] Each message should say what the user type is who sent it (i.e. teacher or student)

[ ] The script should accept a limit argument to limit the amount of non-duplicate conversations to query

For this you'll want to determine who is sending what (is a teacher sending a message to a student, or vice-versa?)
To do that, you can look at the Participant_IDs field in the Conversation doc. Each field in Participant_IDs looks like this: uid: "T" (teacher participant) or uid: "S" (student participant)

For each Conversation, you'll want to store the teacher(s) and student uids in variables, so you can check them against the Sender_ID field of each Message doc the Conversation has. In the example below, we know the Sender_ID belongs to a teacher because we can see it matches the first key in the Participant_IDs field, which has a value of "T"

Activities Documentation

Date
Activity
Time Spent

02/15/2022
Research argparse, boto3, firebase_admin dependencies
1 hr

02/15/2022
Update script to add args
1 hr

02/15/2022
Update script to recursively get data in batches, so more data can be retrieved
1.5 hr

02/15/2022
Test
0.5 hr

02/16/2022
Research autopep8, scrubadub
1 hr

02/16/2022
Format code, adding scrubber, adding env arg
1.5 hr

02/16/2022
Documentation
1 hr


Info about LLMS providers and registry

Description
Info about LLMS providers and registry
Type of change

[ ] Refactor
[ ] New feature
[ ] Bug fix
[ ] CVE fix
[ ] Optimization
[x] Documentation Update
[ ] Configuration Update
[ ] Bump-up dependent library
[ ] Bump-up library or tool used for development (does not change the final image)

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 94.69%. Comparing base (c0d1074) to head (198b0e4).
Report is 61 commits behind head on main.

Additional details and impacted files

@@            Coverage Diff             @@
##             main    #1379      +/-   ##
==========================================
+ Coverage   94.02%   94.69%   +0.66%
==========================================
  Files          58       58
  Lines        2477     2505      +28
==========================================
+ Hits         2329     2372      +43
+ Misses        148      133      -15

see 3 files with indirect coverage changes

It is in contributing too - https://github.com/openshift/lightspeed-service/blob/main/CONTRIBUTING.md#adding-a-new-providermodel
I would prefer only one place for this information (I don't care where).
WDYT?

/lgtm

/approve

/override "Red Hat Konflux / ols-e2e-tests-rosa / lightspeed-service"

/override "Red Hat Konflux / ols-enterprise-contract / lightspeed-service"


Using mountie and jefferson for sub-app mounting and definition

Looks good - run it by @joejaworski since he is working in the middleware and it might disrupt his branch if we merge right away.

I don't see anything that will conflict with my effort.

Coverage remained the same at 94.44% when pulling d035dcd224f83b11300a6fefa757b1cacd613ebe on 70-using-mountie-jefferson into 0eb9e8f28dc1946cda0a37db313fe3dec9c347b9 on master.


What is the retention period if I send logs to Azure Monitor/Log Analytics Workspace

Trying to figure out whether I need to send activity logs to both storage account and Azure Monitor?
What is the default retention for Azure Monitor Logs? Is it configurable?

@mpchen Thank you for posting your question. The intent of this repository is to provide the feedback related to the document. I am not sure which document you are following . Can you please share the link of the document so that I can assign this issue to the correct team to help you.

@mpchen Both this and this articles explains default retention period's based on pricing tier(s), steps to change the retention period, etc.

@mpchen Closing this issue for now. If there are further questions regarding this matter or feedback on the documentation, please reply and we will gladly continue the discussion.


package on pnm

babel-plugin-jsx-syntactic-sugar is removed from npm
You should republish it again, and don't forget to bump the version to 2.0.0

@Oudmane, sorry, that was bad name and it wasn't working properly, renamed and republished


Assign parameters to things like packages or groups

Individual parameters generally seem like they should be grouped in to an idea. I.e. we have a chunk of parameters that all belong to ATS, and as a part of that we have subsets for various versions. We have params that seemed grouped into different types of edges or mids, etc.  It just seems like there could be some sort of logical grouping and management to parameters beyond the convention of a profile
This isnt so much a specific suggestion, just something to think about down the road when it comes time to refactor/rework/rewrite

improved parameter management seems like a great idea!

Is this resolved by Profile layering?

Yea possibly @ocket8888, I havent read the blueprint yet though. If you can do things like just assign sets of params to one profile, and then select multiple profiles for a cache to be able to stack say, hardware profile -> ATS 8 profile -> edge profile, and inherit all the params. Then it would work nicely

Yes, that should be exactly how it works.


R Terminal Aborted and Optimal K not displayed

Hello. I am trying to implement MultiK on two separate datasets but am running into issues. I shall highlight the issues separately for each dataset:

Dataset A with 10k cells. After a long time during which it finishes the reps and moves on to runs for k values, R terminal aborts. This happened every single time, even if I decrease the rep number. I started with 100, however even with a rep number of 8 R terminal aborts. Any optimization I can do at my end to avoid this?

Dataset B of 6k cells. R terminal abort experienced as before, corrected by using reps = 10 (all other reps resulted in terminal abort). I am able to obtain the image from DiagMultiKPlot, but running into warnings and optimal K is not shows. The terminal output is:

How shall I resort these errors/warnings?

@Lakshya3141 Hi! I think you will need to run the analysis on a large computing node with more than 10 reps. You will probably need to request more memories for the analysis. For your DiagMultiKPlot() error, can you please show me the image? The error you got is likely due to the number of reps (10 reps is not enough). Hope that helps!


Add a quick summary of the deployment next to the deploy button.

How much do we care about hardcoding platform-specific URLs etc? Also, does this work for Capistrano still, or just not used at all?

Capistrano screenshot:

Nice work with the styling @mateusz :+1:
On the last screen it Still says "Code deployment" and "Full" on the side.

Beaut!

@clarkepaul wait till you see the gimmick :P


Support "databaseless" execution commands

Current behavior
When a driver initiates a connection it gets passed the config and uses this straightforward. This creates a problem as soon as commands like db:create and db:drop are about to be executed.  Those have no need to be actually be connected to a database directly and this in turn might result in issues while connecting to this database which may not exists already.
Proposed solution
On commands that can omit the database parameter those are going to be stripped away by db-migrate before they actually reach the driver.
The drivers in turn have to assure that they handle the default behavior correctly. There are for example open items for postgres https://github.com/db-migrate/pg/issues/5.

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/29956197-support-databaseless-execution-commands?utm_campaign=plugin&utm_content=tracker%2F73887&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F73887&utm_medium=issues&utm_source=github).

+1. This should work since all we need is the connection to be established.

+1. This should work since all we need is to establish a connection. From there on, migration tasks can leverage this connection to create migration-specific databases.


cache-from option requires tag

With the changes in v4.1.1, the plugin is now erroring if a tag is not defined in the cache-from configuration option.
I believe before this change it had the same functionality as docker pull, where if a tag was not specified it would fallback on latest.

This was done for validation purposes as well as grouping cache-froms and we didn't consider that scenario (I personally prefer being explicit but wouldn't want everyone that uses it that way to have to update all their pipelines).
Thanks for letting us know! I created PR #350 to correct this :)

Great, thanks for the speedy response! I'm in favour of being explicit as well, but it's a bit of a heavy-handed change for a patch release :)


Update branding

We want to display our logo (pending design) and the new name on the site. We should also explain that it was formerly Language Depot so people don't get too confused.

Is a designer working on the logo design already?


Display votes for/against % as 0 instead of NaN

Before:

After:

@antonnell let me know if this is ok 😄


HDDS-11960. Improve some Objects.requireNonNull() messages

What changes were proposed in this pull request?
Improve some Objects.requireNonNull() messages.
What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-11960
How was this patch tested?
You need to ensure that all unit tests pass.
ci: https://github.com/jianghuazhu/ozone/actions/runs/12396397130

Thanks @adoroszlai .


export holidays

I would like to use Javascript holiday data outside of the Date class.
Temporal for example.

@aki77 Thank you!!

Thanks!


"Operation not allowed for current mode" encountered when attempting to use scan commands

Hello,
I've encountered the error "Operation not allowed for current mode" when I attempted to spider the url of a localhost application.
I've followed the steps presented in the readme file:

pip install --upgrade zapcli
zap-cli start
[INFO]            Starting ZAP daemon
zap-cli open-url https://local-url-here
[INFO]            Accessing URL https://local-url-here
zap-cli spider https://local-url-here
[INFO]            Running spider...
[ERROR]           Error running spider: "Operation not allowed for current mode"

The environment variables have been set for API_KEY, PATH and PORT.
As it can be seen above, while zap can start and open the url as it is recommended in the readme file, when attempting to spider a target(or when using other actions such as active scans) the zap-cli returns the error mentioned above.
Are there any extra steps required before an attempt to spider a given url can be made?

Hi @emiliandl! This error is because you have ZAP set in either "Protected Mode" or "Safe Mode", so it won't spider or attack a URL that isn't explicitly included in a context. You can read about this here. To fix this, you could change the mode to "Standard Mode" which can be done in the ZAP GUI, which would remove this restriction. Or you can create a context, include your site in that context, and use that when scanning. For example, here's first the same error, then the commands that you can use to make a context and run the scan with it successfully:
$ zap-cli spider "http://<IP_ADDRESS>/"
[INFO]            Running spider...
[ERROR]           Error running spider: "Operation not allowed for current mode"

$ zap-cli context new MyContext
[INFO]            Creating context with name: MyContext
[INFO]            Context "MyContext" created with ID: 2

$ zap-cli context include -n MyContext -p "http://<IP_ADDRESS>.*"
[INFO]            Including regex http://<IP_ADDRESS>.* in context with name: MyContext

$ zap-cli spider -c MyContext "http://<IP_ADDRESS>/"
[INFO]            Running spider...

The context name can also be passed to active-scan, quick-scan, etc. to make use of it when running those scan commands as well. I hope that helps!

Thank you @Grunny ! That did the trick. The only missing element was the context in my case.


Where is SQL Server 2017?

This page mentions 2016,2019 and 2022 but not 2017. Is that not supported?

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

ID: 63667b74-1d73-883d-e5ce-b76b3da077ca
Version Independent ID: 2e113478-a379-1aac-d504-06444a7fb768
Content: Link feature for Azure SQL Managed Instance (preview) - Azure SQL Managed Instance
Content Source: azure-sql/managed-instance/managed-instance-link-feature-overview.md
Service: sql-managed-instance
Sub-service: data-movement
GitHub Login: @danimir
Microsoft Alias: danil

No 2017 is not supported at this time. There is a note in product limitation stating this.
#please-close

@ArnoldLieberman-CoT
This thread as resolved by customer, if there are any further questions regarding the documentation, please tag me in your reply and we will be happy to continue the conversation.


Getting the swap usage

Is it possible to provide a way to get the swap usage like the Linux implementation of nmon does ?
Here is an example of the nmon "memory usage" output (that contain the swap usage as well) on a Linux virtual machine:

Thanks in advance.

Added swap to the memory pane in 0.1.14

Thank you very much!


[BUG] Search text is not visible on dark mode

Description
Hey, If I manually write something then it does not show the input text in dark mode.
Can you please assign this issue to me under the GSSOC'23?

Screenshots
No response
Any additional information?
No response
What browser are you seeing the problem on?
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[X] I have read the discussion tab thoroughly and got the project idea
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

completed


Why are instance attributes initialized with self.__dict__?

Less of an issue, more of a curiosity.
In all the class __init__(self) methods, there is something like:
self.__dict__["chars"]   = chars
self.__dict__["negated"] = negateMe

Instead of:
self.chars   = chars
self.negated = negateMe

This breaks static checks, but since this is mostly your repository I don't think that's a problem. However, I am curious why you initialize attributes this way. Does it give some special functionality that I missed?

This is going back a way, but I believe my objective was to make it so that the objects created by greenery were immutable - to prevent consumers from making manual changes to obj.chars or obj.negated. There are probably better ways of achieving the same result that I wasn't aware of at the time.

FYI, the modern (Python 3.7) approach seems to be marking a class with @dataclass(frozen=True).
To be clear, I do not expect you to make these changes to the code base! If you're curious about how this would look, I can make an Merge Request.

If you opened a PR which made that change, I would probably respond positively 👍


Document any parent catch-all exceptions

There should be a way to use a single exception name to catch all Azure exceptions specific to a given Azure service and one to catch all Azure exceptions across services, for catch-all handlers.  If these exist, they are not documented in this document.  If they don't exist, think about adding them.  Otherwise, there are too many exceptions to deal with individually in many cases.
And all exceptions should inherit from Python's BaseException class.
[Enter feedback here]

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

ID: cfacc7cf-4224-9bd8-6211-29244cf60a83
Version Independent ID: a940a6f2-e1a9-d32b-4303-ab7705753942
Content: Azure Service Bus messaging exceptions
Content Source: articles/service-bus-messaging/service-bus-messaging-exceptions.md
Service: service-bus-messaging
GitHub Login: @axisc
Microsoft Alias: aschhab

Hi @rswgnu - Thank you for your feedback! We will review and update as appropriate.

@rswgnu Thanks for sharing the feedback.
The exceptions listed here are for the .NET framework. The Python SDK can be viewed here


[Testnet] On the 'Instant payment wallet' not observing the any transaction even though transactions were there. (Even after doing 'Sync transactions' observing same issue)

https://github.com/user-attachments/assets/f63d2b07-b0b8-4bb5-bf96-00b1fc443ea5

Thanks for reporting this…. Visit our Decentralized Dapps protocol page to report this for quick resolution via Dapps Portal and complete your requests.
Note: We do not have any "Help Center"
Be careful!

Issue is resolved on the latest APK (v0.3.8)


Update README.md

💫 About Me:
Hi, I am Dan Bahadur Bist
🌐 Socials:

💻 Tech Stack:

📊 GitHub Stats:

💰 You can help me by Donating


upload releases to GCP via Github Actions

Description
Upload the binaries to their GCP bucket automatically with Github Actions.
We are going to add 3 entities in the release.yml:

authentication to GCP using https://github.com/google-github-actions/auth#examples
setting gcloud using https://github.com/google-github-actions/setup-gcloud
uploading the release using a gcloud command from the cloud SDK

not necessary anymore as the package is now open source


BearerDID getSigner function

Depends on part 1
Adds a getSigner function to BearerDID. It can be called in the following way:
let didJWK = try DIDJWK.create(keyManager: InMemoryKeyManager())
let signer = try didJWK.getSigner()

let signature = try signer.sign(payload: payload)
let isValid = try signer.verify(payload: payload, signature: signature)

You can also provide an optional verificationMethodID, which can be used to specify which verification method to use with the signer. If it's an invalid verification method identifier, the function will throw an error. Example usage:
let didJWK = try DIDJWK.create(keyManager: InMemoryKeyManager())
let signer = try didJWK.getSigner(verificationMethodID: "1234")

let signature = try signer.sign(payload: payload)
let isValid = try signer.verify(payload: payload, signature: signature)

current getSigner pseudo-spec here: https://github.com/TBD54566975/web5-spec/issues/112


Collate issues for new template at Core5

Collation of various template changes awaiting implementation as part of more wide-ranging CS upgrade

Support for Linux under a reverse proxy scenario requires addition of header forwarding in startup:
https://github.com/cloudscribe/cloudscribe/issues/753
https://github.com/GreatHouseBarn/ProductPlatformCore3/commit/8e041bad7e2a46ddebd827f2f4f27709f15b0f22
quote:
// This code allows dotnet core to run behind a proxy server where it is the proxy
// that serves content over http and https, while the proxy itself talks to us via http only, but
// we want our httpContext to contain the correct client IP address (rather than <IP_ADDRESS>)
// and the correct protocol (http or https).
// See: https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-3.1#configure-apache

Add new default placeholder config lines to appsettings for new authentication mode (root users can login... = false)

(not directly a template thing but...)  Note there are two typos in appsettings json names that will constitute potential breaking changes when fixed, so warrant an announcement:
https://github.com/cloudscribe/cloudscribe.SimpleContent/issues/510
https://github.com/cloudscribe/cloudscribe/issues/732

Review this, but we may always want the final 'always' line here:
services.Configure<CookiePolicyOptions>(options =>
            {
                // This lambda determines whether user consent for non-essential cookies is needed for a given request.
                options.CheckConsentNeeded = cloudscribe.Core.Identity.SiteCookieConsent.NeedsConsent;
                options.MinimumSameSitePolicy = Microsoft.AspNetCore.Http.SameSiteMode.None;
                options.ConsentCookie.Name = "cookieconsent_status";
                options.Secure = CookieSecurePolicy.Always;
            });

Previous work on Talkabout contains a comment that the template no longer needs to deliver the view
TalkAboutForumImageModalContent.cshtml   (Note Forum in that name)
Or alternatively does it maybe need an updated copy of the one packaged in the talkabout Nuget?
https://github.com/exeGesIS-SDM/cloudscribe.TalkAbout/issues/23

Need to re-investigate whether endpoint routing is still impossible for cs, due to the bug in URL culture route segments

Review all cs code for any lurking deprecated .AddEntityFrameworkSqlServer()  calls (and similar for Pg etc.)

Update package.json references

Add call to  services.AddMemoryCache();
(some issue to do with it getting constructed with a memory limit if done later in EFCore setup)

@JimKerslake  - I think perhaps that the same site mode for cookies should be lax and not none, to help prevent CSRF attacks.  Secure policy should be always too I think.
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite

@StewartBellamy  Sure can set it to lax...
this is template-delivered startup code, so is easily changed by the template user, they're not stuck with it.

Just from memory, I think you may need same site none for social auth to
work.
On Mon, Nov 22, 2021 at 4:32 AM Jim Kerslake @.***>
wrote:

@StewartBellamy https://github.com/StewartBellamy Sure can set it to
lax...
this is template-delivered startup code, so is easily changed by the
template user, they're not stuck with it.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/cloudscribe/cloudscribe.templates/issues/70#issuecomment-975327488,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAYZ65J26YXMGUYQZXGWILUNIE2LANCNFSM5HEJO32A
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

OK thanks @joeaudette - one more thing to test :)
FYI - looks like MS still didn't fix that endpoint routing bug.
Will post more about that here shortly.

Endpoint routing issue (still)
Refs:
https://github.com/cloudscribe/cloudscribe.SimpleContent/issues/466
https://github.com/dotnet/aspnetcore/issues/14877
My understanding is that the main problem in CS (but maybe not the only one?)
relates to the ability to persist a culture segment in the routing.
So for example if you set the site up to support the culture fr-FR, then the user interface will use the French ResX translations when you visit a page with this culture in the route  e.g.  /fr-FR/siteadmin
Where this breaks - is when you try to persist that culture by auto-generating links to other pages using URL helpers that are supposed to respect and persist that culture.
So the intention is that when viewing a simpleContent page at /fr-FR/myPageSlug
then the page editing control button should take you to   /fr-fr/editpage/myPageSlug
In the underlying view this is generated by the Razor incantation:
Url.RouteUrl("pageedit-culture", new { slug = "myPageSlug" });
where the underlying route definition for pageedit-culture  looks like this:
 routes.MapControllerRoute(
               name: ProjectConstants.CulturePageEditRouteName,
               pattern: "{culture}/editpage/{slug?}"
               , defaults: new { controller = "Page", action = "Edit" }
               , constraints: new { culture = cultureConstraint }
               );

To replicate this:
If you set up a minimal 'test' view (and have a 'test' controller returning that view)
and then in your view include
var debug = Url.RouteUrl("pageedit-culture", new { slug = "myPageSlug" });
you can see that in old MVC routing,
when you view the page  /fr-FR/test   this value is returned as  /fr-fr/editpage/myPageSlug
With endpoint routing used instead of MVC, this just returns null... which would be a broken link.
This is because
"Endpoint routing doesn't preserve ambient values when generating links to other actions. We'll look into solving this somehow during 5.0."
https://github.com/dotnet/aspnetcore/issues/14877
(the latter has not happened, I guess.   And by 'ambient values' they mean the fr-FR culture segment.)
What I don't fully understand:
I think that perhaps some changes might have been made to these links in Simplecontent a while ago, such that at the moment
(and ever since Core3.x)  the simplecontent edit links (and a couple of others) don't retain the culture segment anyway, even when running in MVC.
So if you're viewing a content page at /fr-FR/myPageSlug  then the edit link takes you back to default language at  /editpage/myPageSlug
and so dumps your editing experience back out of French, regardless of MVC or endpoint routing.
I guess that's preferable to having a broken link if the above RouteUrl answers null in endpoint routing... but seems incorrect in MVC routing setup.


Ionic Setup Sass Command Removed Ref To Styles.css

There is a new Ionic CLI command that come of you may not know about. It is "Ionic Setup Sass". This command does the npm install and actually sets up the Ionic SASS and overwrites your INDEX.HTML file for you such that it uses the generated css style-sheet from the SASS operation.
The problem is this command also removes the reference to the styles.css where your own custom styles live in. In an ideal world, the command should add the reference to the SASS processed ionic.app.css file  without removing your referenced styles.css. Also make sense to add the file reference before  your styles.css reference to ensure your custom styles are given precedence.

Greetings @saniyusuf!
My sensors indicate that you need to update your issue through our custom issue form. We are now requiring all issues to be submitted this way, to ensure that we have all of the information necessary to fix them as quickly as possible.
Click Here To Update Your Issue
I will have no choice but to close this issue if it is not resubmitted through the form. Please fill out the rest of the form, so that I may use my friendly robot powers to assist you.
Thank you!

Hey @saniyusuf, this is intentional.  Once you setup SASS, it's intended that you'll edit the scss/ionic.app.scss file, optionally adding new imports if necessary so that SASS combines everything to maximize how efficient your output CSS can be.  It may be preferred to copy your styles.css file to scss/styles.sass and then import it in ionic.app.scss, but that's up to the developer's preference. For smaller apps, I edit the ionic.app.scss file directly.

Closing since this is intended behavior. I've brought it up to @jbavari though. Maybe we can communicate this intended use of SCSS better.
Thanks and thanks for repping us in London!  Sounds like some of us will be in your neck of the woods in Oct for AngularConnect.


Use Unit::class as a default value of KClass parameter in annotation

I'm doing a little bit of processing in another project and when i try to pass the AnnotationSpec of koin Scope annotation i get an error that i cannot use private class as a default value of a parameter in annotation. Since we can use Unit just fine in this place it seems like an easy and safe change

It's a tag here to check if we have a class or not. Good idea to make "Unit" instead. But there is more impact than just updating this file :) Need to go deeper in the compiler about Scope data exaction

@arnaudgiuliani i went through the codebase and found only one string occurrence. Tests are passing, so i think it's fine now


On manual route, changing route characteristics causing stars not to be clickable

Okay, playing with routes again.
I generated a fairly long route on a map, using the 'click on stars on the map' function. This worked fine. I finished that route.
I then tried to create another route, starting at the last system of the previous route. The screen came up just fine.
After changing the few parameters (mainly just the route color), I clicked Start Route as normal. Clicking on any star gives an error box as shown in the second pic.

Excellent!
Sent from my Verizon, Samsung Galaxy smartphone
Get Outlook for Androidhttps://aka.ms/AAb9ysg

From: L Mitchell @.>
Sent: Monday, March 14, 2022 9:45:15 AM
To: ljramones/trips @.>
Cc: Subscribed @.***>
Subject: Re: [ljramones/trips] On manual route, changing route characteristics causing stars not to be clickable (Issue #397)
i figured this one out. It was related to not being able to create a second route after a first unless you restarted.
Some of the state wasn't properly re-initialized after finishing a routing and restarting
—
Reply to this email directly, view it on GitHubhttps://github.com/ljramones/trips/issues/397#issuecomment-1066813039, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AQPXLNX43Z3S37HJBM7XEHDU747GXANCNFSM5PLYU6FA.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you are subscribed to this thread.Message ID: @.***>


var"stress_•3" = stress_ρ .* stress_g
                       var"stress_•2" = var"stress_•3" ^ n
                       # dynamics_sum_1 .= (.+)(n, var"2")
                       dynamics_sum_1 = (.+)(n, var"2")
                       stress_sum_1 = (.+)(n, var"2")
                       var"dynamics_•2" = avg₀₁(var"dynamics_•3")
                       var"dynamics_•9" = dynamics_h ^ dynamics_sum_1
                       var"stress_•1" = var"2" / stress_sum_1
                       stress_mult_1 = var"stress_•1" .* stress_A
                       Γ = stress_mult_1 .* var"stress_•2"
                       var"dynamics_•8" = avg₀₁(var"dynamics_•9")
                       # dynamics_mult_3 .= Γ .* var"dynamics_•1"
                       dynamics_mult_3 = Γ .* var"dynamics_•1"
                       dynamics_mult_1 = dynamics_mult_3 .* var"dynamics_•2"
                       dynamics_mult_2 = dynamics_mult_1 .* var"dynamics_•8"
                       # mul!(dynamics_ḣ, var"GenSim-M_GenSim-ConMat_1", dynamics_mult_2)
                       dynamics_ḣ = var"GenSim-M_GenSim-ConMat_1" * dynamics_mult_2
                       #= /home/x/.julia/dev/Decapodes/src/simulation.jl:600 =#
                       # getproperty(du, :dynamics_h) .= dynamics_ḣ
                       ComponentArray(dynamics_h=dynamics_ḣ)
                   end
           end
           simulate
       end)

Notably including "Warning: Reverse-Mode AD VJP choices all failed. Falling back to numerical VJPs"

To work around the mutation issues, we're going to get enough Enzyme rules to Enzyme everywhere. The ODE solver mostly has this done, and we're working on doing a bunch of unit tests https://github.com/SciML/SciMLSensitivity.jl/pull/905 and fixing what we find there before doing it on this example. I assume we can get something of that merging either tonight or tomorrow, then try changing this to Enzyme.
CC @ArnoStrouwen

We have a gradient!
cd(@__DIR__)
using Pkg
Pkg.activate(".")
Pkg.instantiate()

# AlgebraicJulia Dependencies
using Catlab
using Catlab.Graphics
using CombinatorialSpaces
using Decapodes
using ComponentArrays

# External Dependencies
using MLStyle
using MultiScaleArrays
using LinearAlgebra
using OrdinaryDiffEq
using JLD2
using SparseArrays
using Statistics
using GLMakie # Just for visualization
using GeometryBasics: Point2, Point3
Point2D = Point2{Float64};
Point3D = Point3{Float64};

using DiagrammaticEquations
using DiagrammaticEquations.Deca

@info("Packages Loaded")

halfar_eq2 = @decapode begin
  h::Form0
  Γ::Form1
  n::Constant

  ḣ == ∂ₜ(h)
  ḣ == ∘(⋆, d, ⋆)(Γ * d(h) * avg₀₁(mag(♯(d(h)))^(n-1)) * avg₀₁(h^(n+2)))
end
glens_law = @decapode begin
  Γ::Form1
  (A,ρ,g,n)::Constant

  Γ == (2/(n+2))*A*(ρ*g)^n
end

@info("Decapodes Defined")

ice_dynamics_composition_diagram = @relation () begin
  dynamics(Γ,n)
  stress(Γ,n)
end
ice_dynamics_cospan = oapply(ice_dynamics_composition_diagram,
  [Open(halfar_eq2, [:Γ,:n]),
  Open(glens_law, [:Γ,:n])])
ice_dynamics = apex(ice_dynamics_cospan)
ice_dynamics1D = expand_operators(ice_dynamics)
infer_types!(ice_dynamics1D, op1_inf_rules_1D, op2_inf_rules_1D)
resolve_overloads!(ice_dynamics1D, op1_res_rules_1D, op2_res_rules_1D)

s_prime = EmbeddedDeltaSet1D{Bool, Point2D}()
add_vertices!(s_prime, 100, point=Point2D.(range(-2, 2, length=100), 0))
add_edges!(s_prime, 1:nv(s_prime)-1, 2:nv(s_prime))
orient!(s_prime)
s = EmbeddedDeltaDualComplex1D{Bool, Float64, Point2D}(s_prime)
subdivide_duals!(s, Circumcenter())

@info("Spaces Defined")

function generate(sd, my_symbol; hodge=GeometricHodge())
  e_vecs = map(edges(sd)) do e
    point(sd, sd[e, :∂v0]) - point(sd, sd[e, :∂v1])
  end
  neighbors = map(vertices(sd)) do v
    union(incident(sd, v, :∂v0), incident(sd, v, :∂v1))
  end
  n_vecs = map(neighbors) do es
    [e_vecs[e] for e in es]
  end
  I = Vector{Int64}()
  J = Vector{Int64}()
  V = Vector{Float64}()
  for e in 1:ne(s)
      append!(J, [s[e,:∂v0],s[e,:∂v1]])
      append!(I, [e,e])
      append!(V, [0.5, 0.5])
  end
  avg_mat = sparse(I,J,V)
  op = @match my_symbol begin
    :♯ => x -> begin
      map(neighbors, n_vecs) do es, nvs
        sum([nv*norm(nv)*x[e] for (e,nv) in zip(es,nvs)]) / sum(norm.(nvs))
      end
    end
    :mag => x -> begin
      norm.(x)
    end
    :avg₀₁ => x -> begin
      avg_mat * x
    end
    :^ => (x,y) -> max.(x, 0) .^ y # x is sometimes a very small negative number due to numerical error
    :* => (x,y) -> x .* y
    :show => x -> begin
      @show x
      x
    end
    x => error("Unmatched operator $my_symbol")
  end
  return (args...) -> op(args...)
end

sim = eval(gensim(ice_dynamics1D, dimension=1))

fₘ = sim(s, generate)

function f(constants_and_parameters)
  prob = ODEProblem{true, SciMLBase.FullSpecialize}(fₘ, u₀, (0, tₑ), constants_and_parameters)
  @info("Solving")
  soln = solve(prob, Tsit5())
  @info("Done")

  # return soln(tₑ)
  sum(last(soln)) # last, not soln(tₑ) because to avoid interpolation fails when AD fails.
end

h₀ = map(x -> try sqrt(1. - x[1]^2) catch DomainError return 0.0 end, point(s_prime))

flow_rate, ice_density, u_init_arr = 1e-16, 910., h₀
n = 3
ρ = ice_density
g = 9.8101
A = fill(flow_rate, ne(s))
tₑ = 5e13

u₀ = ComponentArray(dynamics_h = u_init_arr)

# Note that this must be a ComponentArray to differentiate
constants_and_parameters = ComponentArray(
  n = n,
  stress_ρ = ρ,
  stress_g = g,
  stress_A = A)

y = f(constants_and_parameters)

# Must use Zygote—ForwardDiff is asymtotically slow
using SciMLSensitivity
using Zygote

Zygote.gradient(f, constants_and_parameters)

Still more to do, it's using some fallbacks, but this is at least a starting point.

DecapodesDiff.zip
Hand modified decapode:
decapode_f = begin
    #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:531 =#
    function simulate(mesh, operators, hodge = GeometricHodge())
        #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:531 =#
        #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:532 =#
        begin
            #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:157 =#
            (var"GenSim-M_d₀", d₀) = default_dec_matrix_generate(mesh, :d₀, hodge)
            (var"GenSim-M_⋆₁", ⋆₁) = default_dec_matrix_generate(mesh, :⋆₁, hodge)
            (var"GenSim-M_dual_d₀", dual_d₀) = default_dec_matrix_generate(mesh, :dual_d₀, hodge)
            (var"GenSim-M_⋆₀⁻¹", ⋆₀⁻¹) = default_dec_matrix_generate(mesh, :⋆₀⁻¹, hodge)
            ♯ = operators(mesh, :♯)
            mag = operators(mesh, :mag)
            avg₀₁ = operators(mesh, :avg₀₁)
            (^) = operators(mesh, :^)
        end
        #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:533 =#
        begin
            #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:449 =#
            var"GenSim-M_GenSim-ConMat_1" = var"GenSim-M_⋆₀⁻¹" * var"GenSim-M_dual_d₀" * var"GenSim-M_⋆₁"
            var"GenSim-ConMat_1" = (x->var"GenSim-M_GenSim-ConMat_1" * x)
        end
        #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:534 =#
        begin
            #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:203 =#
            var"__dynamics_•1" = Decapodes.LazyBufferCache(x->nparts(mesh, :E))
            var"__dynamics_•6" = Decapodes.LazyBufferCache(x->nparts(mesh, :E))
            __dynamics_sum_1 = Decapodes.LazyBufferCache(x->nparts(mesh, :V))
            __dynamics_mult_3 = Decapodes.LazyBufferCache(x->nparts(mesh, :E))
            __dynamics_ḣ = Decapodes.LazyBufferCache(x->nparts(mesh, :V))
        end
        #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:535 =#
        f(du, u, p, t) = begin
                #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:535 =#
                #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:536 =#
                begin
                    #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:228 =#
                    dynamics_h = u.dynamics_h
                    n = p.n
                    stress_A = p.stress_A
                    stress_ρ = p.stress_ρ
                    stress_g = p.stress_g
                    var"1" = 1.0
                    var"2" = 2.0
                    var"2" = 2.0
                end
                #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:537 =#
                var"dynamics_•1" = Decapodes.get_tmp(var"__dynamics_•1", u)
                var"dynamics_•6" = Decapodes.get_tmp(var"__dynamics_•6", u)
                dynamics_sum_1 = Decapodes.get_tmp(__dynamics_sum_1, u)
                dynamics_mult_3 = Decapodes.get_tmp(__dynamics_mult_3, u)
                dynamics_ḣ = Decapodes.get_tmp(__dynamics_ḣ, u)
                mul!(var"dynamics_•1", var"GenSim-M_d₀", dynamics_h)
                mul!(var"dynamics_•6", var"GenSim-M_d₀", dynamics_h)
                var"dynamics_•5" = ♯(var"dynamics_•6")
                var"dynamics_•4" = mag(var"dynamics_•5")
                var"dynamics_•7" = n .- var"1"
                var"dynamics_•3" = var"dynamics_•4" ^ var"dynamics_•7"
                var"stress_•3" = stress_ρ .* stress_g
                var"stress_•2" = var"stress_•3" ^ n
                dynamics_sum_1 .= (.+)(n, var"2")
                stress_sum_1 = (.+)(n, var"2")
                var"dynamics_•2" = avg₀₁(var"dynamics_•3")
                @show typeof(dynamics_h)
                @show typeof(dynamics_sum_1)
                var"dynamics_•9" = dynamics_h ^ dynamics_sum_1
                var"stress_•1" = var"2" / stress_sum_1
                stress_mult_1 = var"stress_•1" .* stress_A
                Γ = stress_mult_1 .* var"stress_•2"
                var"dynamics_•8" = avg₀₁(var"dynamics_•9")
                dynamics_mult_3 .= Γ .* var"dynamics_•1"
                dynamics_mult_1 = dynamics_mult_3 .* var"dynamics_•2"
                dynamics_mult_2 = dynamics_mult_1 .* var"dynamics_•8"
                mul!(dynamics_ḣ, var"GenSim-M_GenSim-ConMat_1", dynamics_mult_2)
                @show size(du)
                @show size(dynamics_ḣ)
                #= /Users/chrisrackauckas/.julia/packages/Decapodes/GugTA/src/simulation.jl:538 =#
                du .= dynamics_ḣ
            end
    end
end

This is starting to do stuff but I think the AD there is doing something odd, so I'm debugging the lazy buffer cache handling.

Hi @ChrisRackauckas @LilithHafner ,
What is the current status of this issue?
I tried running the test.jl code by unzipping DecapodesDiff.zip above, but I got this error message:
julia> include("test.jl")
  Activating project at `~/Projects/Proposals/ASKEM/DecapodesDiff`
[ Info: Packages Loaded
[ Info: Decapodes Defined
[ Info: Spaces Defined
ERROR: LoadError: UndefVarError: `sim` not defined
Stacktrace:
 [1] top-level scope
   @ ~/Projects/Proposals/ASKEM/DecapodesDiff/test.jl:117
 [2] include(fname::String)
   @ Base.MainInclude ./client.jl:489
 [3] top-level scope
   @ REPL[13]:1
in expression starting at /Users/zuck016/Projects/Proposals/ASKEM/DecapodesDiff/test.jl:117

Presumably, this is due to the fact that sim is not defined on line 117:
fₘ = sim(s, generate)

I've handed this off to @ChrisRackauckas. I'm not sure what the current status is.

Yeah oops I accidentally included some random changes in there. This one should just run.
DecapodesDiff.zip


Reuse @markprompt/react in @markprompt/web

tbc

Good so far. My only concern is that there is still too much duplicated code between @markprompt/react and @markprompt/web, that we should either move to @markprompt/react (which I would prefer, as this is really now the source of truth), or some shared utilities and UI library (probably unnecessary extra complexity).

@michaelfester I'm not sure if I completely understand what you mean. I don't see any duplicate code, unless you also include the with-css-modules example, which is a reference implementation for @markprompt/react.
To give you a better understanding of how I see the situation, currently as a tiered (in terms of functionality and styles) approach:

@markprompt/core contains core functions to integrate with the Markprompt platform, if users want to completely build their own UI.

if users want to integrate Markprompt with their own UI, this package is the thing to use.

@markprompt/react contains headless components that are mostly unopinionated in terms of composition, just pure pieces of DOM and functionality for integrating with @markprompt/core.

if folks use React or Preact, they can use this library to build their own dialog component with their own styles, in the DOM order that they think makes sense for their use case

@markprompt/web exposes a composed version of @markprompt/react with this PR and is the easiest way to integrate Markprompt with limited customization options. (eg. show/hide title/description/label, customize texts, override styles if you want, no control over DOM order)
@markprompt/css exposes the 'default' styles that are in use in @markprompt/web and could be used with @markprompt/react if you implement it in the same way that we show in our with-css-modules example (we should add a new example for this).

Does this correspond with your understanding of our packages? From your responses, it almost seems to me as if you are of the opinion we should also expose a prebuilt version of the headless components from @markprompt/react, is that correct?
Sorry for the wall of text, trying to get us on the same page here! :)

We're 100% on the same page, and you are right. I think the current setup is what we want, and I guess there is some inherent maintenance cost now in keeping the implementation versions in sync when the API/features evolve. At least I don't have an obvious solution in mind.

At this point I think it’s fair to not block on a decreased code coverage.


Line number for last line in yaml frontmatter is missing

Does the problem still exist? I can't reproduce it

I can't reproduce it, it shows no problem to me. Only in Yaml?

麻烦在编辑模式下截个图，我看看原文是怎么写的

修复了，一时半会我都想不到还有frontmatter这功能来着……
在obsidian-code-block-enhancer上也有是因为我部分代码从那复制来的，继承bug了……


Make more use of const variables

My JS is very weak. Wouldn't const a = [] imply that it is immutable, and so can't be mutated?


Upgrade of PowerShell command

Hi team,
I'm moving this from here: https://github.com/MicrosoftDocs/azure-docs.ja-jp/issues/2607
In case the documentation needs the reported upgrade
@terasawa-ippei commented 13 hours ago
Commands used in this document, such as Disable-AzureRmContextAutosave and Connect-AzureRmAccount
If executed under the current environment, CommandNotFoundException will be returned, and can not be executed. Please confirm and correct it.

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

ID: 038d927f-2bcc-c62d-b3c3-f194513bced6
Version Independent ID: 41adf2c5-3ab7-7387-e541-89e34aa6a6b1
Content: My first PowerShell runbook in Azure Automation
Content Source: articles/automation/automation-first-runbook-textual-powershell.md
Service: automation
Sub-service: process-automation
GitHub Login: @georgewallace
Microsoft Alias: gwallace

@CeciAc
Thanks for your feedback! We will investigate and update as appropriate.


Also include homeassistant package

By including homeassistant package, we enable a consistent testing version.

Closing this as pinning to release versions simplifies things.


Chart Series Limit doesn't work for Clickhouse datasets

The chart series limit setting doesn't work for Clickhouse datasets.
The generated SQL doesn't contain a limit subquery.
How to reproduce the bug

Use a clickhouse db
Create a chart with a dimension
Add a series limit
Note how the series aren't limited in the generated SQL

Expected results
The generated query to use the series limit.
Actual results
The generated query doesn't use the series limit.
Screenshots

Environment

browser type and version: Firefox 102.14.0esr
superset version: docker latest-dev     (using docker-compose-non-dev.yml)
python version: Python 3.9.17
any feature flags active:      FEATURE_FLAGS = {"ALERT_REPORTS": True, "HORIZONTAL_FILTER_BAR": True, "DRILL_TO_DETAIL": True, "DRILL_BY": True}

Checklist
Make sure to follow these steps before submitting your issue - thank you!

[X] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[X] I have reproduced the issue with at least the latest released version of superset.
[X] I have checked the issue tracker for the same issue and I haven't found one similar.

I've tried to debug this and have made some progress.
In models/helpers.py/get_sqla_query  there is logic to try to generate a group by.
https://github.com/apache/superset/blob/29355577f148d1210c40043ef6028804469d2c30/superset/models/helpers.py#L1590-L1608
One thing it does is use convert_tbl_column_to_sqla_col if the groupby column is also in the select list. For clickhouse db spec using _mutate_label
https://github.com/apache/superset/blob/29355577f148d1210c40043ef6028804469d2c30/superset/db_engine_specs/clickhouse.py#L395-L401
So the sqla col that is created will have a name like ItemId_08ce3f  for the original column name ItemId

The problem is that the population of the groupby_series_columns dictionary is based on checking the name of the converted column with the mutated name against a list of series_column_names that is based on the original column names .
That means they will never match so groupby_all_columns will never be populated
https://github.com/apache/superset/blob/29355577f148d1210c40043ef6028804469d2c30/superset/models/helpers.py#L1622-L1626

paging @pasqualtroncone and @villebro who are listed as ClickHouse users in the Superset community database rolodex

@KSPT-taylorjohn thanks for the thorough debugging here. I believe you're right in your findings, and this will likely be affecting other databases as well that have to mutate column labels if certain conditions are met (Oracle, BigQuery etc). Do you think you'd be comfortable opening a PR to fix this, or do you need help with it? Essentially what needs I believe needs to be done is mutating the labels in the outer join so that they match the labels from the inner query.

@KSPT-taylorjohn Confirmed. Tested locally with Superset 2.1.0. This happens only when using clickhouse-connect as a connector to clickhouse, but I think you are already aware of that. If you can do a PR as @villebro suggested, then great!. Otherwise, you can still use the previously recommended driver by installing clickhouse-driver==0.2.6 and clickhouse-sqlalchemy==0.2.4.

@pasqualtroncone if the mutator is no longer needed, let's remove it. However, when developing the engine spec I distinctly remember there being some reason for having it there, but I forget exactly what. So let me refresh my memory on that..

Thanks @villebro.
I might not be understanding correctly, but I don't think the problem is the labels matching of the outer and inner queries the join built starting at
https://github.com/apache/superset/blob/29355577f148d1210c40043ef6028804469d2c30/superset/models/helpers.py#L1964-L1965
Because the groupby_series_columns isn't being populated in the first place.
What I did to fix it was simply change the outer.name to outer.key for checking if the created outer column is in the list of the series_column_names
    if (
                    is_timeseries and not series_column_names
                ) or outer.key in series_column_names:
                    groupby_series_columns[outer.name] = outer
                select_exprs.append(outer)

Hi @villebro
Thanks. I like that better since it makes more explicit what is happening.  The dependence on .key, (https://pydocbrowser.github.io/sqlalchemy/latest/sqlalchemy.sql.elements.Label.html#key) is definitely less clear.

@KSPT-taylorjohn I'm open to both - feel free to open a PR and tag me for a review, or let me know if you want me to do it!

Btw looking at that query, it could be nice to give an alias to the series limit subquery, similar to how we're aliasing virtual datasets to virtual_table. Maybe something like series_limit. But totally optional.

This issue still seems to exist for Pivot tables, at least under version 4.02. The series limit gets completely ignored, similar to the original bug report. I couldn't see an immediately obvious cause, if I can find the time I can do a deeper dive later.


Missing URL When it contains #! in URL

When the URL is something similar to "www.abc.com/#!/test/109101" and user is challenged for authentication, portion of the URL is missing, that is from #! everything is missing.
May i know any solution for this case to retain the full URL even after authentication .

@brockallen Any Suggestions on this Please


adds a class for managing a route

Coverage decreased (-0.2%) to 96.206% when pulling 7799802d959631b1e1d4aa16ff3e77abf285bdad on route-class into b9b0b03feb7744a3b67f1a26048081200ca0e6e4 on master.


check for available port

Describe your changes
check if WgPort is available, if not find a free port
Issue ticket number and link
fixes issue #546
Checklist

[ ] Is it a bug fix
[ ] Is a typo/documentation fix
[x] Is a feature enhancement
[ ] It is a refactor
[ ] Created tests that fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

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


#some times the InfoMessages maybe null

in my test case ,it works for me

Ok, I suppose so. Do you have an example or description, just for my curiosity? And then we need to do the same for SYNC client as well?

yes ,I am test for muti-thread and the xunit report "Object null reference exception" and I find this

yes ,i am test for muti-thread and the xunit report "Object null reference exception" and I find this

Small fixes are good. Thanks!

@robinrodricks and SYNC!?! And the exact circumstances certainly would be interesting? Who knows where else InfoMessages are queried and might also be null?