commit 5c78e87 causes big regression on generated library size

What happened?
The commit 5c78e87 (https://github.com/openxla/iree/commit/5c78e870a80620256ac73f0d83ac07b262bddf25) has caused big regression on generated static/dynamic library size. This regression seems to be applicable for models without the fused op of RELU.
Steps to reproduce your issue
Use a simple mobilenet_v1 model as an example.

Download and unzip the attached mobilenet_v1.mlir.
Build IREE based on commit 49de0b6b (the commit right before 5c78e87).
Generate static library via iree-compile:

/path/to/iree-compile -iree-input-type=tosa -iree-hal-target-backends=llvm-cpu --iree-llvm-debug-symbols=false --iree-vm-bytecode-module-strip-source-map=true --iree-vm-emit-polyglot-zip=false --iree-llvm-link-embedded=false --output-format=vm-bytecode --iree-llvm-link-static --iree-llvm-static-library-output-path=/tmp/mobilenet_v1_static.o /path/to/mobilenet_v1.mlir -o /tmp/mobilenet_v1.vmfb

Generate dynamic library via iree-compile:

/path/to/iree-compile -iree-input-type=tosa -iree-hal-target-backends=llvm-cpu --iree-llvm-keep-linker-artifacts --iree-llvm-embedded-linker-path=/path/to/lld /path/to/mobilenet_v1.mlir -o /tmp/mobilenet_v1.vmfb

See generated library size:

static:  mobilenet_v1_static.o 948KB
dynamic:  mobilenet_v1_0_25_224_quant_linked_llvm_cpu-xxxxxx.so   864KB

repeat the above steps 2 - 4, but build IREE based on commit 5c78e87 and see generated library size

static:  mobilenet_v1_static.o 1.6MB
dynamic:  mobilenet_v1_0_25_224_quant_linked_llvm_cpu-xxxxxx.so   1.3MB
Clearly there is a big regression.
mobilenet_v1.zip
What component(s) does this issue relate to?
Compiler
Version information
IREE release since commit 5c78e870a80620256ac73f0d83ac07b262bddf25.
Additional context
No response

@MaheshRavishankar @hcindyl

Thanks for reporting. I'll take a look sometime tomorrow. Please ping again if you don't hear back from me

Did a bit of digging, definitely there is a change, but it might be triggering badness in the backend LLVM compiler rather than an IREE issue.
This is the IR after dispatch formation and lowering to LLVM before the change https://gist.github.com/MaheshRavishankar/8ecf5be165f10dc9f5bd5aa926290f62
This is the IR after dispatch formation and lowering to LLVM after the change
https://gist.github.com/fda89085bff12894630e0c849ebcef50
There is not much difference between the two. Actually even the .vmfb file I get is not that different
-rw-r-----  1 ravishankarm primarygroup  489472 Mar  3 21:13 mobilenet_v1.after.vmfb
-rw-r-----  1 ravishankarm primarygroup  489600 Mar  3 21:12 mobilenet_v1.before.vmfb

Did you fallow the CLI in step 3 or step 4? Please note for step 3 a static LLVM library .o is created and not embedded into vmfb, so there is no or minor size change in vmfb, whereas in step 4 the device distpatch .so is embedded with the vmfb.
At 5c78e87, the linked artifact mobilenet_v1_0_25_224_quant_linked_llvm_cpu-xxxxxx.so itself is already at 1.2MB, where as at 49de0b6 it was 835kB.

THis is the command I used ~/iree/build_debug/tools/iree-compile -iree-input-type=tosa -iree-hal-target-backends=llvm-cpu --iree-llvm-debug-symbols=false --iree-vm-bytecode-module-strip-source-map=true --iree-vm-emit-polyglot-zip=false --iree-llvm-link-embedded=false --outpu\ t-format=vm-bytecode --iree-llvm-link-static --iree-llvm-static-library-output-path=mobilenet_v1_static.after.o mobilenet_v1.mlir -o mobilenet_v1.after.vmfb
Either way, I dont see any major changes in codegen (directly attributable to that change) that can cause a big regression in IREE... I suspect this is a downstream LLVM issue?

Maybe another autovectorizer thing?

Thanks for providing the CLI. In this CLI, the device workload dispatch is in mobilenet_v1_static.after.o, and you can see the size of that library grows dramatically.
at 5c78e87
1612624 mobilenet_v1_bytecode_module_static.o
at 49de0b6
948000  mobilenet_v1_bytecode_module_static.o

FYI, I just did another experiment.
if I checkout the IREE commit 5c78e87, but manually cherry-pick to revert the change in compiler/src/iree/compiler/Dialect/Flow/Transforms/FormDispatchRegions.cpp, then after rebuilding IREE, the regression would be gone.
During this experiment, no other changes were made and all submodule versions stay the same.

Can use --iree-hal-dump-executable-sources-to= if you want narrow down which dispatch it is; untested example but you get the idea:
iree-compile some_input.mlir -o ignored.mlir \
    --iree-hal-target-backends=llvm-cpu \
    --iree-hal-dump-executable-sources-to=sources/ | \
  ls -1 sources/ | xargs -i sh -c "iree-compile sources/{} --compile-mode=hal-executable -o {}.so"

that'll produce one .so per dispatch so you can see which ones are growing.

 If its loop unrolling, that might be a thing....

iree-compile some_input.mlir -o ignored.mlir
--iree-hal-target-backends=llvm-cpu
--iree-hal-dump-executable-sources-to=sources/ |
ls -1 sources/ | xargs -i sh -c "iree-compile sources/{} --compile-mode=hal-executable -o {}.so"

Cannot run the intermediate output with the CLI :(
/usr/local/google/home/hcindyl/Projects/iree-dev/iree/build-host/install/bin/iree-compile sources/module_main_dispatch_1.mlir --compile-mode=hal-executable  -o module_main_dispatch_1.mlir.so
Please report issues to https://github.com/openxla/iree/issues and include the crash backtrace.
Stack dump:
0.	Program arguments: /usr/local/google/home/hcindyl/Projects/iree-dev/iree/build-host/install/bin/iree-compile sources/module_main_dispatch_1.mlir --compile-mode=hal-executable -o module_main_dispatch_1.mlir.so
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  libIREECompiler.so.0 0x00007fcee24c4917
1  libIREECompiler.so.0 0x00007fcee24c287e
2  libIREECompiler.so.0 0x00007fcee24c4faa
3  libc.so.6            0x00007fceda45af90
4  libIREECompiler.so.0 0x00007fcee23c3606
5  libIREECompiler.so.0 0x00007fcedd0f63f3
6  libIREECompiler.so.0 0x00007fcedd0ef202 ireeCompilerInvocationOutputHALExecutable + 274
7  libIREECompiler.so.0 0x00007fcedd0e96f5
8  libIREECompiler.so.0 0x00007fcedd0e9391
9  libc.so.6            0x00007fceda44618a
10 libc.so.6            0x00007fceda446245 __libc_start_main + 133
11 iree-compile         0x0000555a5acf4721
Segmentation fault

I was able to run Ben's CLI, and have nailed down the specific .so dispatch that causes this regression.
problematic dispatch: module_main_dispatch_113.mlir.so
The size grew from 3.9kB to 461.3kB.
The relevant mlir and dispatch files are attached.
dispatches.zip
@MaheshRavishankar : please go ahead to fix the issue with this updated info on the specific dispatch. Thanks very much.

I was able to run Ben's CLI, and have nailed down the specific .so dispatch that causes this regression.
problematic dispatch: module_main_dispatch_113.mlir.so The size grew from 3.9kB to 461.3kB.
The relevant mlir and dispatch files are attached. dispatches.zip
Note that I used the more recent commit 5a10e3c, and then manually reverted the change in commit 5c78e87 to compare the differences.
The CLI I used is almost the same as Ben's above one, only with this flag "--iree-input-type=tosa" added.
@MaheshRavishankar : please go ahead to fix the issue with this updated info on the specific dispatch. Thanks very much.

This is the same dispatch that I saw earlier. Now this is fused and before it wasnt.... But if you actually generate the LLVM IR for the dispatch with the change, it looks reasonable.... (at least it was last I checked). I can take a look again, but like I said earlier it seems to be triggering something in the LLVM -> RISC-V lowering that is causing the blowup.. Let me verify this though....

I was able to run Ben's CLI, and have nailed down the specific .so dispatch that causes this regression.
problematic dispatch: module_main_dispatch_113.mlir.so The size grew from 3.9kB to 461.3kB.
The relevant mlir and dispatch files are attached. dispatches.zip
Note that I used the more recent commit 5a10e3c, and then manually reverted the change in commit 5c78e87 to compare the differences.
The CLI I used is almost the same as Ben's above one, only with this flag "--iree-input-type=tosa" added.
@MaheshRavishankar : please go ahead to fix the issue with this updated info on the specific dispatch. Thanks very much.

This is the same dispatch that I saw earlier. Now this is fused and before it wasnt.... But if you actually generate the LLVM IR for the dispatch with the change, it looks reasonable.... (at least it was last I checked). I can take a look again, but like I said earlier it seems to be triggering something in the LLVM -> RISC-V lowering that is causing the blowup.. Let me verify this though....

Just a quick comment: the backend is llvm-cpu for x86_64 target, not RVV,

I was able to run Ben's CLI, and have nailed down the specific .so dispatch that causes this regression.
problematic dispatch: module_main_dispatch_113.mlir.so The size grew from 3.9kB to 461.3kB.
The relevant mlir and dispatch files are attached. dispatches.zip
Note that I used the more recent commit 5a10e3c, and then manually reverted the change in commit 5c78e87 to compare the differences.
The CLI I used is almost the same as Ben's above one, only with this flag "--iree-input-type=tosa" added.
@MaheshRavishankar : please go ahead to fix the issue with this updated info on the specific dispatch. Thanks very much.

This is the same dispatch that I saw earlier. Now this is fused and before it wasnt.... But if you actually generate the LLVM IR for the dispatch with the change, it looks reasonable.... (at least it was last I checked). I can take a look again, but like I said earlier it seems to be triggering something in the LLVM -> RISC-V lowering that is causing the blowup.. Let me verify this though....

Just a quick comment: the backend is llvm-cpu for x86_64 target, not Risc-V.

Understood. I am not saying it is specific to RISC-V. I am saying this seems to be triggering badness in LLVM itself.

#12639 gets us back to the size of the binary before the commit flagged here. I dont really want to submit it, but it is an option.

If possible, we can toggle the two modes behind a flag. As we discuss offline, this class of models is unique in no RELU in the fused_activation_function field, so they may be the special case that needs a deeper look.

ok, if flag is an option that would be great. I was  planning to look at the LLVM IR. If I can narrow it down do you think there is someone who can chase this down in LLVM itself?

If it is a bad interaction with the auto vectorization, maybe @dcaballe is most knowledgeable about this?

If it is a bad interaction with the auto vectorization, maybe @dcaballe is most knowledgeable about this?

We dont use auto-vectorization. I am almost convinced it has to do with LLVM loop unrolling.

@hcindyl or @lundong can you try #12661 . That seems to fix the issue as well and I can land that one.

@hcindyl or @lundong can you try #12661 . That seems to fix the issue as well and I can land that one.

I checked locally and it did help but would be good for you guys to verify

@hcindyl or @lundong can you try #12661 . That seems to fix the issue as well and I can land that one.

I checked locally and it did help but would be good for you guys to verify

@MaheshRavishankar I can confirm that #12661 does fix the issue.

Working on https://github.com/openxla/iree/pull/12690 to add regression coverage.


Bug with uploaded images

Hi
I seem to be having an issue with uploaded images.
This is the URL I am trying to use with the module https://www.notion.so/dhavalsoneji/2c5dd1f8b26840d7ba882d1490a4a917
I get this error:
error - uncaughtException: SyntaxError: Unexpected token P in JSON at position 0
    at JSON.parse (<anonymous>)
    at IncomingMessage.<anonymous> (/Users/dhaval/git-clones/portfolio/node_modules/notion-page-to-html/dist/utils/usecases/http-get/node-http-get.js:72:44)
    at IncomingMessage.emit (node:events:406:35)
    at IncomingMessage.emit (node:domain:475:12)
    at endReadableNT (node:internal/streams/readable:1343:12)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)

Which is happening because stringData is trying to be JSON parsed, but its value is:
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPEVycm9yPjxDb2RlPkFjY2Vzc0RlbmllZDwvQ29kZT48TWVzc2FnZT5BY2Nlc3MgRGVuaWVkPC9NZXNzYWdlPjxSZXF1ZXN0SWQ+WENKU0tNQzM5VEhQMTU5RjwvUmVxdWVzdElkPjxIb3N0SWQ+bjV2T3I4NEpURk5CWE5Ed1RKeWN4U0FocU5pUDJqSkd2U2dEcFl6ckcwQU5uQ1B6cUNUWHZLODJxZndFOE1OakwxOFFuNlpxSkU4PTwvSG9zdElkPjwvRXJyb3I+

Which b64 decodes to:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
  AccessDenied
  <Message>Access Denied</Message>
  <RequestId>XCJSKMC39THP159F</RequestId>
  <HostId>n5vOr84JTFNBXNDwTJycxSAhqNiP2jJGvSgDpYzrG0ANnCPzqCTXvK82qfwE8MNjL18Qn6ZqJE8=</HostId>
</Error>

I believe this is happening due to an image I uploaded to notion for the page cover. The API by default doesn't give us a useful URL to get the image.
It will give something like:
https://s3-us-west-2.amazonaws.com/secure.notion-static.com/40b79211-1ae6-427f-8b3f-85216732792a/Untitled.png
Which is inaccessible
I think a solution is to check if the image url contains notion's aws and use notion's image endpoint
if (image.includes("amazonaws.com") && image.includes("secure.notion-static.com")) {
    image = "https://www.notion.so/image/" + encodeURIComponent(image) + "?table=block&id=" + id
}

Where id is the ID of the page.
This should give something like:
https://www.notion.so/image/https%3A%2F%2Fs3-us-west-2.amazonaws.com%2Fsecure.notion-static.com%2F40b79211-1ae6-427f-8b3f-85216732792a%2FUntitled.png?table=block&id=2c5dd1f8-b268-40d7-ba88-2d1490a4a917
Which is properly accessible

Hi, @Soneji. Thank you for reporting the issue in detail!
I am going to try to reproduce this problem and analyze your PR #16.

Fixed on v1.1.2 and PRs #16 and #17. @Soneji, here is your rendered HTML example after fixed conversion

Nice content by the way. I hope notion-page-to-html keeps helping people to publish contents like this.

Thank you for the kind words! 🙌 And thank you for the amazing tool that makes this possible!!
(if you want to subscribe 👀 https://dhavalsoneji.com/blog )


setup up release tool

Run release doctor in your repo to see if you're configured to release. The make release command will release the library.


Coverage calculation for the report fails with file not found

Apparently it tries to load a file that's not there:
[2016-04-01T12:18Z] Run coverage for 20724-IL-LY
[2016-04-01T12:18Z] sambamba-depth: couldn't open file /scratch/bcbiotx/f183f606-f6f3-4979-a04b-8dfcc65ac580/tmp06vMsc/0425761_Covered.bed or find reference /scratch/bcbiotx/f183f606-f6f3-4979-a04b-8dfcc65ac580/tmp06vMsc/0425761_Covered.bed

There are no references to that file in the -commands.log save for what I wrote, so I guess that's either not created, or deleted in the transaction before it's actually used.
EDIT: In fact, I think that file is not even created. I wiped the /scratch/bcbiotx directory before, and no subfolders are being created when that command is run.

The reason is absolutely not obvious, and looks like a bug in sambamba-depth. If the BED contains track information (browser position etc) which are conformant to the specification, sambamba-depth errors out with "file not found".
And all I can think is that a result can be True, False, or FileNotFound ;)

Sorry about that @lbeltrame, I was thinking in that, but I remembered @chapmanb added something. Will check the code again, because that for sure is not obvious at all.
thanks!

I checked and right now can detect '#' commented lines. I added the UCSC header keywords as well.
thanks


Add '--fuzzy' to windows regression testing.

No longer getting consistent result across runs, so adding the fuzzy logic allows passes with minor pixel diffs.
Add adios2 and flatten fully to windows skip list until crashes can be fixed.
Checklist:
- [ ] I have commented my code where applicable.
- [ ] I have updated the release notes.
- [ ] I have made corresponding changes to the documentation.
- [ ] I have added debugging support to my changes.
- [ ] I have added tests that prove my fix is effective or that my feature works.
- [ ] I have confirmed new and existing unit tests pass locally with my changes.
- [ ] I have added new baselines for any new tests to the repo.
- [ ] I have NOT made any changes to protocol or public interfaces in an RC branch.

@biagas do you believe this is a funky windows thing or does it indicate an issue in VisIt...maybe a (Uninitialized Memory Read (UMR)?

@markcmiller86 It is unclear at this point. Working with new compiler, new vtk.  The point of this PR is to get reasonable results so it is easier to determine if something breaks on Windows. Every run of the test suite, there are minor pixel diffs in a slew of tests. Rebaselining to new results doesn't help as there will still be minor pixel diffs the next run.  I will say that my observation is that it is mostly contours and isosurface type plots that are behaving in this manner.


[Feature] Recognize base64 encoded string in Image Widget

Summary
If the image widget finds the image source to be a base64 encoded string without the data:image/png;base64, prefix, add this prefix automatically, so that the image can be rendered correctly.
Motivation
An Api can return a base64 encoded string to be used in an image widget without the prefix. This will not allow it to be recognised by the browser as an appropriate image source. Resulting in the image failing to be displayed.
The application can figure this out and prefix data:image/png;base64, to the base64 encoded string
to render the image correctly in the image widget.

Hello @riodeuno !! Interested to solve this bug. Can help to assign to me.

@navdeepsingh Please go for it! We have something similar (not exactly) in the image cells of the table widget, for reference.
Here is a link to the Contribution Guidelines


#58 do not persist results in backend

add caffeine cache
add config variable for cache ttl in application.yml and docker-compose.yml
replace ResultRepository with ResultService
remove SiteRepository
replace site ids with sitename
add sql script to drop result and site tables

resolve #58

My commit "Improve ResultService Implementation" has still the following open issues:

ResultLine.receivedAt is never used
ResultService.findByQueryAndStatus is only used with ResultType SUCCESS in production
the config property app.queryResultCacheExpiryMinutes contains the word cache which could be removed

My commit "Improve ResultService Implementation" has still the following open issues:

ResultLine.receivedAt is never used
ResultService.findByQueryAndStatus is only used with ResultType SUCCESS in production
the config property app.queryResultCacheExpiryMinutes contains the word cache which could be removed

I incorporated those changes in the latest commit (0a37970)


Incorrect behavior of rounding float to posit

Dear developer,
When i tried to round 0.000601383f to posit<8,1>, the universal library gives 0.000976562f, which is 0b00000010 in posit. However i realized 0.000244141f should be the correct number, which is 0b00000001 in posit. Because 0.000976562 - 0.000601383 = 3.75e-4 while 0.000601383 - 0.000244141 = 3.57e-4, which is closer to 0.000601383f.
Same thing observed for 2298.67f and around number. The universal library gives 4096, but 1024 may be a better choice.
Best Regards!

@dingjr27 thanks for filing this issue.
What you are observing is geometric rounding. In the exponential regions of the posit sampling you are rounding exponent bits, not fraction bits, so the 'rounding middle` is the geometric average between adjacent samples.
Here is the sampling of posit<8,1> around your value of 0.000601383f:
posit<8,1> 0.0000001..    0.000244141   <- all regime bits, no exponent, no fraction
posit<9,1> 0.0000001.1.  0.000488281   <- 1 exponent bit
<------- sample 0.000601383 0b0.01110100.00111011010011000100001
posit<8,1> 0.000001.0.   0.000976562    <- 1 exponent bit created by rounding
posit<9,1> 0.000001.0.1  0.00146484     <- 1 exponent bit and 1 fraction bit
The values of a posit<9,1> will overlap the values of a posit<8,1> when the LSB is 0, and present the mid-point between posit<8,1> samples when the LSB is 1.  So posit<9,1> is an easy 'visualization' where a value falls in the rounding decision: if the value is above the midpoint, it is rounded up. If it is below the midpoint, it is rounded down. This rounding is implicit by the virtue of rounding exponent bits.
Let me know if that explained the rounding behavior of posits for you.

Thanks for your kind explanation, this solved my question.


AuthenticationHelper.php: GetHttpHeaderBasicKey() not working as described in documentation, breaking ApiOAuth.

Using the implementation i always get the following error, when CreateToken() in ApiOAuth.php is called.
MangoPay\ResponseException Code: 401
-------------------------------
Message: Unauthorized
-------------------------------
Details:
-------------------------------

After some code reviewing i found the following line in AuthenticationHelper.php
Line 45: $signature = $this->_root->Config->ClientId . ':' . $this->_root->Config->ClientPassword;
Looking at the Documentation (https://docs.mangopay.com/guide/authentification) this should be ClientId:API_KEY.
After replacing $this->_root->Config->ClientPassword with the (hardcoded) API_KEY it suddendly worked. Not sure if ClientId:ClientPassword is supposed to work, too, but in my case it did not.

Hi there @Quesstor! Sorry about the delayed response.
Is the value in $this->_root->Config->ClientPassword identical to the hardcoded API_KEY which actually works for you? Please print that value and check, maybe your Mangopay Configuration is incorrectly set up.
Please get back to us.
Thanks!

Hi @paulhristea ,
it is probably just a naming error.
When you configure MangoPayApi, api->Config->ClientPassword needs to be set with the API_KEY and not the client password.
Renaming api->Config->ClientPassword to api->Config->ApiKey would probably prevent future confusion.
Additionally in the README.md you state that

Using the credential info from the signup process above, you should then set $api->Config->ClientId to your Mangopay ClientId and $api->Config->ClientPassword to your Mangopay passphrase.

which is not correct because you have to set $api->Config->ClientPassword to your Mangopay API_KEY.

I see. Sorry about the confusion.
Please use the API Key during the configuration process, that should work for now. I will see what we can do about renaming/editing the docs to make this point clearer and to avoid this problem in the future.
Thank you!

Hi @Quesstor ! ClientPassword will be renamed in ApiKey thanks to #272 to be clearer 👍


chore: rename user image docker repository

Description

How has this been tested?

Checklist

[ ] changelog was updated with notable changes
[ ] documentation was updated

/e2e --tests sdk,mnist

/e2e --tests substrafl, camelyon, doc

End to end tests: :hourglass_flowing_sand: STARTING


Unable to get duration_string

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2023.01.06 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Provide a description that is worded well enough to be understood
Unable to get duration_string field.
yt-dlp --print duration_string p90tVB_KC-M
WARNING: [youtube] p90tVB_KC-M: nsig extraction failed: You may experience throttling for some formats
Install PhantomJS to workaround the issue. Please download it from https://phantomjs.org/download.html
n = wKTOwdIeOM9F5TQh ; player = https://www.youtube.com/s/player/11e3a4ec/player_ias.vflset/en_US/base.js
ERROR: [youtube] p90tVB_KC-M: Unable to extract uploader id; please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
$ yt-dlp -vU
[debug] Command-line config: ['-vU']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2023.01.06 [6becd25] (pip)
[debug] Python 3.10.9 (CPython amd64 64bit) - NetBSD-9.2-amd64-x86_64-64bit-ELF (OpenSSL 1.1.1k  25 Mar 2021, libc 12)
[debug] exe versions: none
[debug] Optional libraries: certifi-2021.10.08, sqlite3-2.6.0
[debug] Proxy map: {}
[debug] Loaded 1760 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2023.01.06, Current version: 2023.01.06
yt-dlp is up to date (2023.01.06)

See pins


Client supplied IDs on webhook server

Sorry, I was forking for a specific usage of mine but ended up opening this PR here out of a mistake


Create tests for functions in qutip

In this task, we aim to create comprehensive tests for the functions within the QuTiP library to check their compatibility with jax.grad and jax.jit. These tests will ensure the correctness and robustness of the implemented functions and will cover a wide range of scenarios.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>3
Warning: This coverage report may be inaccurate.
This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

For more information on this, see Tracking coverage changes with pull request builds.
To avoid this issue with future PRs, see these Recommended CI Configurations.
For a quick fix, rebase this PR at GitHub. Your next report should be accurate.

Details

0 of 0   changed or added relevant lines in 0 files are covered.
6 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.1%) to 90.377%

Files with Coverage Reduction
New Missed Lines
%

src/qutip_jax/properties.py
1
92.75%

src/qutip_jax/settings.py
5
70.59%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
1221

Relevant Lines:
1351

💛  - Coveralls


substitution-on-the-fly as a generalization of the (let x = y in ...) optimization

I was starting to rebase the pattern-matching work on top of the current master, but I realize that the variable-rebinding optimization could (and should) be generalized.
For the "should" part: after replaying the variable-rebinding optimization on the current master, I observe smaller bytecode-size savings on the testsuite (which does not yet use the new pattern-matching compilation strategy). I believe that the reason is that some of the EVar are lowered into LGlob, which is not covered by just optimizing the LLet x (LVar y) e case.
Note that in some rare cases this could be a pessimization, if a value is rebound locally and then used many times, it may be able to use one of the short specialized ACCn opcode.
Once the local-exits branch is merged I should also be able to implement the symmetric optimization for exits whose right-hand-side is substituable.

I was working on exit substitution (which is trickier than let-substitutions because you still need to interrupt the computation), but I got distracted by #32.

I just pushed substitution-on-exits. This mildly conflicts with #32, in the sense that it would be nicer if it used the convenience functions implemented in #32.

The code for exit-substitutions is not as nice and easy as the code for let-substitutions, so we may wonder we really want it. I am in favor of having it, because it is an optimization I would want to implement for pattern-matching compilation otherwise: it is okay to duplicate some right-hand-side actions if they are "simple enough", to avoid inserting branches. (I still plan to implement duplication-detection to avoid branching in non-duplicated cases, but I don't need to inspect the actions anymore.)

I had a moderate amount of fun this morning debugging an infinite (tail-recursive...) loop in the compiler, which is caused by this optimization on a program of the form: let x = y in let y = x in y. Oh well...

The fix is easy for variable-substitution, but hard for exit-substitution (at least if we want to get the nice code I would expect). I made the executive decision to get rid of exit-substitution, which is too complex for its own good and can be avoided easily in the specific case of pattern-matching compilation (which is currently our only use-case for exits).

Rebased; I'll merge to be able to rebase pattern-matching as well.


Add property and classification to check absence of double spend

This adds the possibility to collect all transactions and check that the multiset union of all inputs does not contain any duplicates.
This property itself depends on the way that the transactions are generated of course, therefore there is also a mutation variant that mutates transactions and classifies into validated and non-validated double-spends. Only non-validated double-spends are OK, else the property fails.

depends on #95


feat: Adding getListOfSettledSessionsFlow method to SignInterface

Added a getListOfSettledSessionsFlow method to SignInterface to provide an asynchronous stream of settled sessions

Context: I'm an app developer at Zapper, and our implementation will really benefit from a collectable flow of the current sessions.

@BradMoeller
We've had several discussions about adding support for features like Flows into the app. We've decided to take a wholistic approach and we will be working on Kotlin-first versions of our SDKs. We can reach out once we have a version of Sign and would love to get your feedback at that time

@TalhaAli00 sg, looking forward to it!


fix hex-encoded string conversion for chain_proposal_id

An issue for extracting the correct bytes from a hex-encoded string is resolved.
The fix was added to convert the 64-character hex-encoded digest of a Blake2b256 into the underlying 32-byte array used to define the chain_proposal_id field of the FullProposalInfo type.

@saibatizoku It looks like we need to update the tests 🧪

@saibatizoku It looks like we need to update the tests test_tube

@minikin Local tests are passing, I'm investigating the CI tests.

@minikin The tests are fixed and the CI is green across the board.


HTML copied text has invalid background after last char in row

Environment
(note that HTML copy is not yet on master)
Steps to reproduce
In terminal:

Pasted to Word:
Expected behavior

Actual behavior

The color is taken form the first copied cell, X in this example.

Interesting. You filed this based on your pull request to GenHTML. Would you be interested in taking a look at it??

It's mostly about html things like enforcing proper width of spans, and I'm moderately familiar with html. I might take it once I have more time.


error toast with contract approval

Overview
when approving a contract in the trade modal, you get a toast error that states, "Insufficient funds for miner fee and amount."
References and additional details

go to app.shapeshift.com
log in with mm, kk, or native
confirm a new contract in the trade modal
notice the toast error that pops up, "Insufficient funds for miner fee and amount."

browsers tested: brave, chrome, firefox
Acceptance Criteria
you should not get the error, "Insufficient funds for miner fee and amount." when approving a contract and you have sufficient funds
Need By Date
No response
Screenshots/Mockups

Estimated effort
No response

@elmutt to take a look at this one.


Pre loader Animation

Description
Design a website preloader, reference video is given below
Additional information
No response

https://user-images.githubusercontent.com/76876383/147316888-e669c1d2-26a6-42d7-9531-afe30c091844.mp4

@nandini7637 Please assign this issue to me.


CORE-5521 fix Avro generation issue

Fix Avro Generation issue where the Build does not realize the avro schema has changed.

This also removes the need to manually call data:avro-schema:clean as a work around by introducing a new cleanAvro task which is always triggered.
disable build caching for existing avro related tasks ( Delete tasks not catchable by default so not needed in for mentioned item)

:+1:

Is this all just another way of saying:
def generateAvro = tasks.register('generateAvro', GenerateAvroJavaTask) {
    outputs.upToDateWhen { false }
    ...
}

And maybe add outputs.cacheIf { false } too...

What would be the benefit of changing to use that over the current workaround? Happy to steal the branch and add that change if it makes sense

@chrisr3 What would be the benefit of changing to use that over the current workaround? Happy to steal the branch and add that change if it makes sense

I am just trying to simplify the Gradle scriptd, because IMHO "Less is Much More" as far as Gradle is concerned. So rather than create a new cleanAvro task, just declare that the generateAvro task's output are always out of date

@chrisr3 What would be the benefit of changing to use that over the current workaround? Happy to steal the branch and add that change if it makes sense

I am just trying to simplify the Gradle scripts, because IMHO "Less is Much More" as far as Gradle is concerned. So rather than create a new cleanAvro task, just declare that the generateAvro task's output are always out of date

Ah okay I missed that I definitely agree. @ronanbrowne I thought you were off which is why I volunteered - you happy to make the change instead?


Display a error message on the SelectProjectPage when accessing pages that require a project without having one selected

Would give a bit more feedback to the user.

Implemented in #258


Menus within Modals (Dialogs)

I'm trying to get a Menu component working inside a Dialog, the first roadblock I hit was that the default z-index for Menu seems to be "dropdown" (1000) which is lower than "modal" (1400) so I fixed that by changing the Menu recipe to use "popover" (1500) for the z-index, after this fix the Menu is now correctly rendering on top of Dialog components instead of behind.
But now, whenever I mouse-over the items in the menu, or click anywhere in the <Menu.Content>, it closes. I'm not sure what's going on or even where, it could be any one of: Zag, Ark, Panda or Park (separation of concerns can be exhausting!)
Any ideas? I've just recently upgraded Ark and Panda to their latest versions (which in turn upgrades Zag too) so I'm unsure what's causing this.

I found similar bug for touch devices
https://github.com/chakra-ui/ark/issues/2816


 If that's the case what would be the installation process?

It would not be as it requires native code, however, this should be included officially.  Surprised to find it's not.  Even MAUI supports this:  https://learn.microsoft.com/en-us/dotnet/maui/platform-integration/appmodel/app-actions?view=net-maui-8.0&tabs=android

This is not planned for Expo Go and likely never will be.


Smarter smartpaste (#3001)

Attempt at fixing some of the weird behavior of micro's smartpaste option (closes #3001)

Great that you try to fix this, because it was annoying me too, but I didn't found the time so far.
:+1:


Zero gradients for CuDNNLSTM according to Keras TensorBoard callback

Hello! I would like to visualize gradients of a seq2seq model using Keras Tensorboard callback. If I'm using a regular LSTM cell in my encoder and decoder, I get nice non-zero gradients:

However if I change the rnn cell to CuDNNLSTM some gradients turn to zero, which seem to be incorrect:

The both models seem to train correctly.
So, what's wrong with visualisations of CuDNNLSTM gradients? Is there a bug in Keras Tensorboard callback?
Code that I am running is a slightly modified Keras lstm_seq2seq example: https://gist.github.com/nicolas-ivanov/1818d6502d5f1496e5fbe14889eddca1

Packages
> pip freeze
absl-py==0.7.0
astor==0.7.1
gast==0.2.2
grpcio==1.18.0
h5py==2.9.0
Keras==2.2.4
Keras-Applications==1.0.6
Keras-Preprocessing==1.0.5
Markdown==3.0.1
numpy==1.16.0
protobuf==3.6.1
PyYAML==3.13
scipy==1.2.0
six==1.12.0
tensorboard==1.12.2
tensorflow==1.12.0
tensorflow-gpu==1.12.0
termcolor==1.1.0
Werkzeug==0.14.1

Checklist

[x] Check that you are up-to-date with the master branch of Keras. You can update with:
pip install git+git://github.com/keras-team/keras.git --upgrade --no-deps

[x] Check that your version of TensorFlow is up-to-date. The installation instructions can be found here.

[x] Provide a link to a GitHub Gist of a Python script that can reproduce your issue (or just copy the script here if it is short).

@gabrieldemarmiesse any updates on this issue?


⚠ ClamAV has degraded performance

In 7df1baa, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 88 ms

Resolved: ClamAV performance has improved in e6edd3e.


Push notifications doesn't work with dynamic Security AAD group?

Hello everyone,
I have a problem with the push notifications of the company news in the crisis application. While I set this thing up a few weeks ago I created an Azure Office group to put in different members for a test. Push notifications worked so far. No we rolled out this app for everybody. Bad thing about Office gorups in AAD, I'm not able to put in "Everyone" or "All" or even another groups. I need to add about 730 users.
I created an assigned Security group specially for this app. I created another dynamic Security group (for other things in future) and made this a member of the first group. In the second group there is a membership rule. Everybody which has the right company name in his company field is member of this group automatically.
I put the obejct ID of the first group into the Crisis Communication admin app.
Push notifications doesn't work at all. Do you know why? In the how to (https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/sample-crisis-communication-app#demo-crisis-communication-app) there is a picture of the Azure group. It's an Office group. But is this important? It's not written down there that this has to be an office group.
Thanks for help.

I also tested this with a dynamic Office group. This didn't work too. The ID is the same like the ID while testing (while testing this group was not dynamic). I'm comfused. Is there a problem with groups with a dynamic rule in it?


Better ways to control SIMPLE vs COLLAPSIBLE

The current approach to controlling SIMPLE vs COLLAPSIBLE is tedious as described here:
https://github.com/noripyt/wagtail-react-streamfield/issues/13#issuecomment-443483114
In fact it kind of reduces the usefulness of this streamfield if you have to define every block like this to do so. I have over 20 block types (and I'm sure others have more), and some of the ones I use are stock from Wagtail (the Tableblock). The developer experience with this method sucks because I'd have to redefine each. :disappointed:
It would have made far more sense to make COLLAPSIBLE the default, but with all of the blocks open so it effectively starts like the SIMPLE layout. You then have the per block ability to define if you want to default closed, or never be able to close (SIMPLE). You then also allow a StreamField level definition/override which makes all blocks start open or closed, or forces them into either COLLAPSIBLE or SIMPLE.
I don't entirely even see the usefulness of SIMPLE when COLLAPSIBLE but defaulting to open (and the above ways to control that) is effectively SIMPLE but with more control. We should leave SIMPLE for those that really want it, but Wagtail is all about better UX first, and COLLAPSIBLE is better UX.
The entirely collapsible nature of wagtail-condensedinlinepanel was what made it so useful, and I was so happy to see that here and in the early versions of this. I'm sad I missed the discussion around this if there was one, because this 180 to what was the design before 1.0.0 is a bit sad. :disappointed:
In response to #28 and #13

It's quite easy to create your own CollapsedStructBlock and base your Blocks off that.
You can get more creative, I have something like this:
class CollapsedStructBlock(StructBlock):
    def get_layout(self):
        return self.COLLAPSIBLE

    def get_definition(self):
        definition = super().get_definition()
        definition["label"] = " ".join(
            re.sub(
                "([A-Z][a-z]+)",
                r" \1",
                re.sub(
                    "([A-Z]+)", r" \1", self.__class__.__name__.replace("Block", "")
                ),
            ).split()
        )
        return definition

This issue is no longer relevant. We have removed the COLLAPSIBLE vs SIMPLE layouts. There is just a single layout now that cannot be configured: a mix between these two layouts, with everything open by default and collapsible blocks.


dir pipe

create a command that loads a file, runs it through the pipe commands, and then saves it. This is a directive so we can use the cd directive to do a directory of files.

Should work on generalizing this to really make it easy to have common parsing based on directory.


New permission option: both

Add a new option to the permission setting: both
This will display both the octal and rwx values.
Example:
drwxr-xr-x (0775)

In EXA octal is placed on left side in first column, hope here will be added too soon

In EXA octal is placed on left side in first column

Agreed! EXA, and EZA already have it! Should be here too i think
- @ Kol9yN at https://github.com/orgs/lsd-rs/discussions/895#discussioncomment-9202383

can you share the screenshot of how this look in eza? (exa is out of maintenance already if i recall correct)

In EXA octal is placed on left side in first column

Agreed! EXA, and EZA already have it! Should be here too i think

@ Kol9yN at https://github.com/orgs/lsd-rs/discussions/895#discussioncomment-9202383

can you share the screenshot of how this look in eza? (exa is out of maintenance already if i recall correct)


[docs] Fix gybbo in UnsafeRawBufferPointer docs

There's a {$Self} in the docs that should have been ${Self}, so it's not getting expanded into the type name.

@swift-ci Please smoke test and merge


libinih error

Hey nice C version Thanks . Its not big issue I got the header ini.h not found error (ini parser) so I did install libinih
Its nice if you add in README.md for the dependency to install xdg-xmenu
dependency - libinih  (for arch linux)
Thanks again

You are right, thanks for the report. The dependency information should be in readme, I will add it later.


needs to pick up the changes in latest kepler image

https://github.com/sustainable-computing-io/kepler/pull/635 adds pods cluster role in order to watch apiserver. This needs to be picked up in the chart.
@yellowhat @jiangphcn

Sure, I will create a PR


fix(core): 9717 Get default layers for embedded map, use extent, fix KLA prefix

https://kontur.fibery.io/Tasks/Task/FE-Get-default-layers-for-embedded-map-9717
https://kontur.fibery.io/Tasks/Task/DN2-FE.-Remove-layers-ids-KLA-prefix-14466
https://kontur.fibery.io/Tasks/Task/Configure-optional-initial-map-extent-for-apps-14091
appConfig constructed from new endpoint
removed irrelevant logout tasks
currentLanguageAtom removed, not needed anymore

Codecov Report

Merging #426 (21569f5) into main (28cad15) will increase coverage by 0.04%.
The diff coverage is 17.35%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more

@@            Coverage Diff             @@
##             main     #426      +/-   ##
==========================================
+ Coverage   12.08%   12.12%   +0.04%
==========================================
  Files         545      544       -1
  Lines       38832    38760      -72
  Branches     1179     1180       +1
==========================================
+ Hits         4692     4700       +8
+ Misses      33705    33626      -79
+ Partials      435      434       -1

Impacted Files
Coverage Δ

src/core/app/authHooks.ts
0.00% <0.00%> (ø)

src/core/app/features.ts
0.00% <0.00%> (ø)

src/core/app/init.ts
0.00% <0.00%> (ø)

src/core/app/types.ts
0.00% <0.00%> (ø)

src/core/auth/client/AuthClient.ts
0.00% <0.00%> (ø)

src/views/CommonView.tsx
0.00% <ø> (ø)

...omponents/ConnectedMap/map-libre-adapter/index.tsx
61.35% <60.00%> (-0.02%)
:arrow_down:

src/core/app_config/index.ts
83.96% <60.00%> (-2.96%)
:arrow_down:

src/core/app/user.ts
97.87% <100.00%> (+0.43%)
:arrow_up:

General code LGTM, i've added lot of naming suggestion
However try to change laguage for user - it's not working for me
@vkozio please check that

Also before deploying config in cd-repo MUST be changed
"LAYERS_BY_DEFAULT" should be removed
I've also got error on local build for "INTERCOM_DEFAULT_NAME" being null


Update readme

@jimmidyson , reviewed, please check comments.
in overall  - :+1:
thanks for this!

@abonas Updated with your comments. If you merge this I'll update the bearer token PR with details in the README on that PR

:+1:


gitstatus: 1.5.3 -> 1.5.4

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/romkatv/gitstatus/releases.
meta.description for gitstatus is: "10x faster implementation of git status command"
meta.homepage for gitstatus is: "https://github.com/romkatv/gitstatus"
meta.changelog for gitstatus is: ""
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
Warning: no invocation of /nix/store/zpd3nplxj46axnxs46hyn89lya14j1h2-gitstatus-1.5.4/bin/gitstatusd had a zero exit code or showed the expected version
0 of 1 passed binary check by having a zero exit code.
0 of 1 passed binary check by having the new version present in output.
found 1.5.4 with grep in /nix/store/zpd3nplxj46axnxs46hyn89lya14j1h2-gitstatus-1.5.4
found 1.5.4 in filename of file in /nix/store/zpd3nplxj46axnxs46hyn89lya14j1h2-gitstatus-1.5.4

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

1 x86_64-linux rebuild(s)
0 x86_64-darwin rebuild(s)

First fifty rebuilds by attrpath
gitstatus

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/zpd3nplxj46axnxs46hyn89lya14j1h2-gitstatus-1.5.4 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A gitstatus https://github.com/r-ryantm/nixpkgs/archive/004d9bf83e8d62521052a51bdc919591e00f0621.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/zpd3nplxj46axnxs46hyn89lya14j1h2-gitstatus-1.5.4
ls -la /nix/store/zpd3nplxj46axnxs46hyn89lya14j1h2-gitstatus-1.5.4/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

gitstatus

Maintainer pings
cc @mmlb @mweinelt @SuperSandro2000 for testing.

Already manually updated with libgit2 fork.


Connect to RabbitMQ

The incoming JSON shall be forwared to RabbitMQ, if it meets the requirements.

partly done with #4

done


Can't compile on M1 mac

Here's the end of my output when trying to cargo lambda build:
  = note: warning: unsupported linker arg: -znoexecstack
          warning: unsupported linker arg: -zrelro
          warning: unsupported linker arg: -znow
          error: unable to build glibc CRT file: FileNotFound

I'm on an M1 mac and I gather it's trying to build to x86_64 so I suspect this is a cross compile issue. I could do this in a docker container instead but ideally not if someone has a suggestion.

@calavera Thank you for the suggestion! I tried your command and it worked but more strangely, I tried just cargo lambda build again this morning and for some reason it too started working. I know at some point I tried to do, brew install glibc but that failed with a message implying that it was only available for Linux but it might have done something to fix my system 🤷♂


Web - When deleting a file, there is a space between the username and the '[Deleted message]'

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open a chat.
Send an attachment.
Click on 'Reply in thread.'
Delete the thread file.
Notice the space between username and delete message
Now check that after deleting a text message

Expected Result:
When deleting a file or text message, there should be consistent spacing between the username and the '[Deleted message]'
Actual Result:
When deleting a file, there is a space between the username and the '[Deleted message]' message, causing an inconsistency in spacing compared to deleting a text message.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: v1.3.51-2
Reproducible in staging?: Y
Reproducible in production?: Y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/115492554/10efa300-8340-4e61-b6cd-d07f89a8fa80
https://github.com/Expensify/App/assets/115492554/77c26699-86f3-40df-ac41-9ebd01604bc3
Expensify/Expensify Issue URL:
Issue reported by: @Hussain
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1690887871347529
View all open jobs on GitHub

Dupe: https://github.com/Expensify/App/issues/24216

By mistake it has been created again, closing.


qualifier to set "scale" of PyFerret display window, with SET WINDOW

Reported by andrew wittenberg on 10 Apr 2015 16:40 UTC
It'd be helpful to have a way to set the "scale" of a PyFerret display window directly, without having to manually go through the window's Image menu.  E.g. add a qualifier:
SET WINDOW/SCALE=N

If /SCALE is not specified or /SCALE=0, then the displayed image would be simply scaled to fit the existing window (as is currently the default).
Migrated-From: http://dunkel.pmel.noaa.gov/trac/ferret/ticket/2269

Modified by karl.smith on 17 May 2016 20:51 UTC

Modified by karl.smith on 17 May 2016 20:54 UTC

Comment by karl.smith on 6 Oct 2016 22:52 UTC
(An brief related aside on the topic of this ticket, but I get back to the topic of this ticket near the end of this comment.)
By default PyFerret (and Ferret) scales the size of the image by sqrt(0.7) ~= 0.84
Both Ferret and PyFerret save the image exactly the size of the displayed image.
When the window is resized, Ferret gets updated with the new window size through the XGKS events/interrupts, but the Ferret engine in PyFerret does not get any of this information.
So PPL$XPIXEL and PPL$YPIXEL is incorrect for PyFerret if the scale is not 1.0, and this leads to the incorrect map scale information for LAS.
I could get the display program to feed this information back to the Ferret engine in PyFerret.
But I am not at all sure could get the Ferret engine to check and process this message while waiting for command input since it is using python to read command-line input.  Almost sure I could not if the user was at the python prompt instead of the ferret prompt.  So scratch that idea.
The default scaling in PyFerret could be set to 1.0, and thus for -nodisplay plots the values of PPL$XPIXEL and PPL$YPIXEL would always be correct since the user cannot adjust the image size without going through the Ferret engine.  But this does not help with displayed plots since the user can modify the scaling using the displayed window.
So it seems like the PyFerret FRAME/FILE=... command without any explicit size specification should always save the plot to match PPL$XPIXEL, PPL$YPIXEL, PPL$WIDTH, PPL$HEIGHT (so scale factor of 1.0) regardless of the current scaling factor in the (displayed) window.  So in fact, the default for an unspecified size would come from these PPL symbols (one of XPIXEL/YPIXEL and one of WIDTH/HEIGHT).
When this scaling command-line option is added, I think PyFerret should still save the image with a scaling factor of 1.0 to match the PPL sizes.  If the user wants a different saved image size, they can explicitly specify that size (or adjust the initial image size) instead of scaling; ie, scaling is a zoom factor on the existing image, not an image resize.
If the user saves the image from the menu bar of the displayed image, then it should be saved WYSIWYG (match the currently displayed window size) as is currently done.

Comment by andrew.wittenberg on 6 Oct 2016 23:06 UTC
I agree with this plan.
SCALE should apply only to the image displayed on the screen to a human, or saved from the display window interface by a human.  It shouldn't apply to FRAME, or to the graphics produced by -nodisplay or -batch.

Comment by karl.smith on 13 Oct 2016 01:41 UTC
Getting the plot from FRAME/FILE= to match PPL$XPIXEL and PPL$YPIXEL was actually just a matter of getting PPL$XPIXEL and PPL$YPIXEL from the new correct location.  PPL$WIDTH and PPL$HEIGHT were fine.  Added support for zero and negative scale factors to be passed to the viewer.  Zero meaning turn on auto-scale using current window size; negative meaning scale using the absolute of the value (which can change displayed window size) and then turn on auto-scaling.  A positive scale factor will turn off auto-scaling and scale using the given value.
Need to revise default behaviour so that auto-scaling is on by default.  (The positive scaling factor passed on start-up turns it off.)  Need to add command-line option for the user to provide this value.

Comment by karl.smith on 13 Oct 2016 23:18 UTC
/SCALE option added to SET WINDOW
Start-up default for a window has auto-scaling turned on.

Comment by karl.smith on 18 Oct 2016 21:39 UTC
Bug introduced with automatic opening of first window gave negative default xpixel sizes.  Strange that it did not cause more problems in testing.  Just checked in a fix so leaving this closed.


Unable to get public IP from endpoints

Hello,
When i start the process, it is enable to get the public IP from endpoint.
I tried to started it from my computer and from a Kubernetes cluster and got the same error.
If i perform the same with curl its working well :

I'm working under WSL subsystem.
Did you have any idea or any way to add more logs ?
Thanks you

I've added user-agent which should permit de made it working with endpoint behind CloudFlare.


Access Location header of successful upload?

My API returns a 201 response code with the location header containing the URL of the uploaded file.
I see in the developer console network monitor that the Location header is included in the network response, but the headers object which uploadBinary() returns does not contain this header, instead it only has 3 headers:

cache-control
expires
pragma

Is this intentional? I see that any 2XX response should be handled as a resolved upload, so it seems that Location should probably be included to allow following the IETF spec:

The 201 (Created) status code indicates that the request has been fulfilled and has resulted in one or more new resources being created.  The primary resource created by the request is identified by either a Location header field in the response or, if no Location field is received, by the effective request URI.
https://tools.ietf.org/html/rfc7231#section-6.3.2

Seems that according to the readme, Location should actually be supported. here's the response I get from uploadBinary():
{status: 201, body: "", headers: {cache-control: "no-cache, no-store, must-revalidate", expires: "0", pragma: "no-cache"}}
Seems that there are possibly a few things different about my setup which could cause this bug:

return 201 status code (add-on tests only check for 200, but code allows any 2xx)
empty body
use of uploadBinary() instead of plain upload() in the README

After some investigation, it became apparent that this was an issue with our CORS setup. (I noticed that XMLHttpRequest.getAllResponseHeaders() was a culprit for returning only those limited headers).
Seems that we needed to add Access-Control-Expose-Headers: Location to our server response:
https://stackoverflow.com/questions/8945587/xmlhttprequest-getallresponseheaders-not-returning-all-the-headers
Now receiving Location in uploadBinary()` response.
False alarm! 😃


feat: reduced pharah attack speed

Primary Fire recovery speed increased from 0.8 to 0.85 seconds

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


GitHub tags don't match PyPI versions

Last tag is 0.9.8a and current PyPI version is 0.9.8.post2.
0.9.8.post2 isn't in tags.

Yes, we are aware of this, it was an oversight on our part. We plan to release 1.0.0 in the coming days by which time everything should be in sync again.

Version 1.0.0 has just been released and the Github tag and PyPI version are in sync again.


Add Github Workflows CI for JDK 7 - 13

Although the project already has Jenkins for CI it would be really helpful to use the in built Github Actions CI for quick builds and visibility for contributors that don't have visibility of the Jenkins builds.
The workflow in this PR builds with multiple Java versions (7 to 13) and completes in about 3 mins.

merged - thx!


File Tree Explorer: Missing "Move File" on right click menu!

Missing "Move File"
There should be a "Move File" menu item when you right click on a file in the Explorer file tree.
Steps to Reproduce:

Right click on a file in the left Explorer tree. You can rename and delete it, but there is no ability to move it. This seems like a pretty common feature and found in other editors.

Reproduces without extensions:
It wouldn't make sense for an extension to magically remove this menu item...

Specs

VSCode Version: Code 1.17.1 (1e9d36539b0ae51ac09b9d4673ebea4e447e5353, 2017-10-10T14:10:17.189Z)
OS Version: Darwin x64 16.7.0
Extensions:

Extension
Author (truncated)
Version

beautify
Hoo
1.1.1

swift
Kas
0.0.3

vscode-docker
Pet
0.0.18

html-css-class-completion
Zig
1.10.0

project-manager
ale
0.21.1

vscode-color
ans
0.4.5

npm-intellisense
chr
1.3.0

laravel-goto-view
cod
1.1.1

vscode-eslint
dba
1.3.2

githistory
don
0.2.3

openshift-vscode-extension
dud
0.0.2

gitlens
eam
5.6.0

vscode-html-css
ecm
0.1.8

vscode-npm-script
eg2
0.2.1

php-debug
fel
1.11.1

php-intellisense
fel
1.5.1

php-pack
fel
1.0.1

docker-explorer
for
0.1.5

phpcs
ika
0.7.0

csharpextensions
jch
1.3.0

Go
luk
0.6.66

vscode-apache
mrm
1.1.1

vscode-scss
mrm
0.6.2

vscode-mongodb
ms-
0.0.1

csharp
ms-
1.12.1

debugger-for-chrome
msj
3.3.1

php-docblocker
nei
1.3.2

vetur
oct
0.9.11

laravel-blade
one
1.9.0

laravel5-snippets
one
1.3.4

sass-indented
rob
1.4.2

laravel-artisan
rya
0.0.8

vscode-nginx
sha
0.4.1

vscode-import-cost
wix
2.5.0

(1 theme extensions excluded)

@WadeShuler you can move files using drag&drop.

That isn’t my point and isn’t always feasible on a large project and when your nested down many directories.
Every other IDE I have used has a “move” file option or the rename includes a path, which lets you move it by changing the path too. Sometimes it’s easier (especially using a trackpad) to just type the path. Or maybe you need to copy and paste the path in...

Really? Basic file handling isn’t a core function? Are you kidding me? It
is absolutely nuts to suggest people use a 3rd party extension to add “move
file” support! Might as well remove the “rename” feature, as it isn’t a
core function, since it’s similar to “move file”.
Don’t be like Atom and ignore basic necessities of a file editor/IDE! That
is why Atom users jumped to Code in the first place!
I have been programming for 15 years. I think I have a pretty good idea of
what a text editor or IDE should come out of the box with!


Titanium Mesh from cyberware compat.

Titanium mesh should smelt and melt into titanium

How many ingots/mb?

Titanium mesh melts into 1/4th of an ingot in a smltery


Dynamic tank high network usage

From my testing and debugging, dynamic tanks will send a packet to players every time it receives or sends fluid. This is unnecessary and will hog up network bandwidth if a tank is drained and filled multiple times per tick. As a result, an amount of rendering packet is equals to (drainOps * fillOps) per tick per tank.
It should only send one packet per tick accounting all the fill and drain operations of a tank. Or even better, only sends rendering packet when there's an actual appearance changes like Thermal Expansion's tanks.
For your info, I was tested using Opis and it show "MEK" channel using the most of the bandwidth per second, if I stopped filling and draining from those tanks, the bandwidth usages are gone.

Much appreciation - just did some confirmation testing and ran into the same issue.  I'll be sure to fix this using the second method you suggested, it would actually be easier than the first.


Setting isFutureDate as true styles days incorrectly as today

When configuring this component with isFutureDate={false} the isToday style is applied to all day options that are set as 'common', and happen before today:

I wonder if there is a less lenient way of computing the isToday predicate? 🤔
It may be possible to use something like:
const isToday = status === 'common' && date.toDateString() === new Date().toDateString() ? {borderWidth: 1, borderRadius: 15, borderColor: '#004BBB'} : {}

But it may be a performance overhead to compute this on each render. It may be better to extract this logic out into the parent Component - and remove the inline styles too?

You're right about performance, but it forked component. So, If I have free time, I will change it. Performance is not critical right now for me. @AlanFoster

Thanks for the insight @melihmucuk :+1:


[SCRIPT] Use BERT to get sentence and tokens embedding

Description
The goal of this BERT Embedding is to obtain the sentence and token embedding from BERT's pre-trained model. In this way, instead of building and do fine-tuning for an end-to-end NLP model, you can build your model by just utilizing the sentence or token embeddings.
Checklist
Essentials

[x] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[x] Changes are complete (i.e. I finished coding on this PR)
[ ] All changes have test coverage
[x] Code is well-documented

Changes
Comments

Don't know how to add tests for scripts
Related issues: #586

@kenjewu @eric-haibin-lin Thanks for your reviews! I'm working on all your suggestions.
Thanks!

I'm looking into the doc build failure.

@imgarylai could you rebase to master? I posted a fix in #582 which was just merged

@imgarylai could you rebase to master? I posted a fix in #582 which was just merged

Sure. It has been rebased to pushed to github.

Job PR-587/11 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-587/11/index.html

@eric-haibin-lin Thanks for your feedback!
Tests and help messages were added.

https://github.com/imgarylai/gluon-nlp/blob/a44771cf643ff022bfd30dc9d545d3931b57a6db/scripts/bert/embedding.py#L25
This question looks trivial...
I have tried both, but none of them is passed.
- from .dataset import BertEmbeddingDataset
+ from dataset import BertEmbeddingDataset

Is it possible that test can figure out the correct import path?

@imgarylai  I simply looked at your embedding.py. Now it is a module and not a script file, so from dataset import xxx will be probelmatic. When you run it as a script file, the relative import will not work even use from .dataset import xxx.
So, you can try to write it as a script file just like finetune_classifier.py, then from dataset import xxx.

@imgarylai  I simply looked at your embedding.py.
When you run it as a script file, the relative import will not work even use from .dataset import xxx.
When you run test_bert_embedding.py, you will use embedding.py as a moudle. So need relative import.  If you use from dataset import xxx, it will not find dataset moudle.
I think this may be the reason why you are not correct in both ways. I suggest that you should fitst determine how to use the embedding.py, whether it is imported or directly run.

Job PR-587/25 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-587/25/index.html

I have fixed failure tests! Thanks for @kenjewu and @eric-haibin-lin

Could you resolve the conflict? Thanks!

Should I do rebase?

@imgarylai sorry for the confusion. I did a merge on your behalf which failed due to inconsistent title level. I just added a commit which should fix the problem, and if it works there's no need to rebase.

Job PR-587/27 is complete.
Docs are uploaded to http://gluon-nlp-staging.s3-accelerate.dualstack.amazonaws.com/PR-587/27/index.html

Merged. @imgarylai Thanks a lot! Nice work.

@imgarylai FYI PR https://github.com/dmlc/gluon-nlp/pull/606 enables returning attention and encoding results at intermediate layers. You might be interested.

@eric-haibin-lin Thanks for pointing out! I'll take a look on it!


Constructor not placing block with Security Manager and Card present in system

Issue description: Constructor will not place block inside world with Security Manager and Card present.
What happens: Constructor does not place block in world
What you expected to happen: Constructor to place a block
Steps to reproduce:

Setup basic RS system with Security Manager and Card
Setup Constructor and Destructor with desired block
Item will not place unless Card is removed from Security Manager
...

Version (make sure you are on the latest version before reporting):

Minecraft: 1.11.2
Forge: <IP_ADDRESS>5
Refined Storage: 1.4.18

Does this issue occur on a server? [yes/no] Yes
If a (crash)log is relevant for this issue, link it here: N/A
[pastebin/gist/etc link here]

Can I see your setup?

Nevermind, figured it out!


With vite (&SWC) Slick Font not loading

Font not loading, please checkout this screenshot & this screenshot
in slick-theme.scss slick-font-url is what failing
@function slick-font-url($url) {
    @if function-exists(font-url) {
        @return font-url($url);
    }
    @else {
        @return url($slick-font-path + $url);
                    ^^^^^^^^^^^^^^^^^^^^^
    }
}

Hi, Im unable to replicate the issue , will you please send me a small repo of the code in which the issue is occuring.

Hi, Im unable to replicate the issue , will you please send me a small repo of the code in which the issue is occuring.

@function slick-font-url($url) {
    @if function-exists(font-url) {
        @return font-url($url);
    }
    @else {
        @return url("#{$slick-font-path}#{$url}");
    }
}

Would solve this problem


expected Error, found `RouteParseError when I use reqwest

Problem
I was trying to use Route with reqwest in the app component. But keep getting below compilation error.
Trying to solve error handling in the route. But I couldn't and keep getting below error.
|                 expected `Error`, found `RouteParseError<RouteMatchError>`
|                 arguments to this enum variant are incorrect

Steps To Reproduce
main.rs code attached here .
main.txt
Expected behavior
I would like know how we can resolve this compilation error.
Screenshots

Environment:

Dioxus version:  version = "0.5", features = ["web", "router"]
Rust version:    rustc 1.81.0 (eeb90cda1 2024-09-04)
OS info:         Windows
App platform:   Web

The issue resolved when I commented  below line in the import line in main.rs. Seems like reqwest imported its own error which caused the error.
// use reqwest::*;

This is a bug in dioxus. The macro should not rely on an unscoped error import


Use "Warning" component to highlight old docs in the "Last updated" banner

This PR adds some contextual 'awareness' to the "Last updated" banner displayed on docs.
Docs that haven't been updated for more than 6 months come with a warning that the content may be out of date.
Default (unchanged) 'last updated' banner:

Example (new) 'last updated' banner for old docs:

This change is intended to highlight old documentation to readers, such that they proceed with caution if a doc hasn't been updated in a while. It should also encourage the reader to update the doc to 'appease' the banner, giving us more of an incentive to keep content up to date.
Trello: https://trello.com/c/OMBV5qM4/198-retire-daniel-the-manual-spaniel

Thanks for the review, @benthorner. Agreed with all comments and have pushed up the relevant changes.
As for pulling in publishing components - yes, I did consider styling something custom, but the result would be subjective and the PR could easily descend into design by committee. I'd sooner use a tried-and-tested component whose very purpose is to convey a warning to the reader.
We've discussed importing govuk_publishing_components before, and only gave up because it was a nice-to-have that was blighted by too many technical hurdles. On a second pass, this was surprisingly easy to implement, and paves the way for using something like the tabs component for README content in future, if we wish. I see having the govuk_publishing_components primed and ready to go as an advantage rather than a disadvantage here.

All the commits look good now 👍. However, I'm still not sold on gov_pub_cub here. The idea of reusing it did appeal at first, but I think that would only serve to make this app even more complicated, and I think we should be heading for something more lightweight if possible. I'm uncomfortable with this repo having 49 more gem dependencies than it really needs, many of which will end up generating their own Dependabot PRs on this repo. We don't want that.

paves the way for using something like the tabs component for README content in future

Looking at that change again, I can see at least one other way of resolving the issue, without having to introduce new UI controls. Conceptually, I don't think we should introduce tabs into manuals, unless it was something that we supported more generally. Sorry, I know I'm backtracking on my own idea!
I'm not sure the decision of how we display this is all that controversial. Currently, we're a committee of 2 on this PR 😄. However, I also don't want to get bogged down in styling if possible: are there any styles from the tech docs gem itself that we could make use of instead? From a quick look myself, I can see:

A component for warning text, which is hopefully this thing.

The old page review banner styles, which are relevant for reuse.

I've pushed up a WIP of what that would look like, @benthorner - what do you think? An improvement?
I don't like the HTML class/style attributes we end up with in the partial, but the result looks good to me:

Have changed approach as suggested offline, copying the HTML markup from the warning component and relying on the styles imported in the tech docs gem. 👍


update REVA to v1.10.1-0.20210721075634-57d692feea7b

Updating reva to get latest upstream fixes. AFAICT https://github.com/owncloud/ocis/pull/2248 depends on this.

:boom: Acceptance tests localApiTests-apiBugDemonstration-ocis failed. The build is cancelled...

:boom: Acceptance tests Core-API-Tests-ocis-storage-10 failed. The build is cancelled...

https://drone.owncloud.com/owncloud/ocis/6072/42/6
runsh: Total unexpected passed scenarios throughout the test run:
apiWebdavUpload2/uploadFileUsingOldChunking.feature:43

You will be better off to add [full-ci] to the PR title and then push something. Then all test pipelines will run to completion, and you can see all of the ones that fail.


Update prompts.ts

I optimized the prompt.ts for a better UI output.

Hey! Thanks for looking into improving the UI output. The motivation is great, but having worked with LLMs a lot, I see some potential issues with this approach:

Over-specification actually tends to make LLM output worse, not better. When we tell it to be "minimalistic, astonishing" etc, we're adding competing priorities that can confuse the model. Simple, clear instructions usually work better :)

The huge list of technical requirements (shadcn, CSS-in-JS, Redux, etc) creates a lot of cognitive load for the LLM, which can often lead to lower quality output (especially with such particular params like here). There's a reason the original Bolt.new didn't have these specs.

The separation between "creating UI/UX code" vs regular code creates an artificial split that can make prompts waaay less effective. LLMs work better with unified, consistent instructions.

Instead, I'd recommend the approach from my previous PR: focus on clear planning and structured thinking. For UI specifically, a prompt like:

1. Plan the component structure
2. Define key interactions
3. Implement core functionality
4. Add styling with Tailwind

This lets the LLM focus on one thing at a time while still creating great UI code. I've found it produces much more reliable, maintainable results.

Also worth noting - we should be careful about AI-generated code in general, especially for opening PRs on OSS projects :)

Happy to chat more about LLM prompting patterns if you're interested! Been deep in this space for a while and always enjoy sharing experiences 🙂

– kofi

I think we need to start thinking about tests.
Firstly just UI tests to see if the repo is working in general.
But for such prompts, we would need to test. Or it's all just subjective opinions.
I agree that larger prompts make it less focused and it's better to have prompts that are selectively adding. Did the user ask about UI? Load UI-related prompt to context.
Otherwise, kofi suggestion to make it self-prompt through thinking based on user requests would perform better in general.

The biggest issue here is we get ugly UIs. Thats a ko criteria for a great application taking v0 in consideration how well the UI looks.

The biggest issue here is we get ugly UIs. Thats a ko criteria for a great application taking v0 in consideration how well the UI looks.

Argument is that what you did may not improve UIs as much while making it work worse at other things.
And what I said was that we need a way to test.

we need a way to test.

Yup.
UI quality issue makes sense. The thing is, throwing more prompt complexity at it usually ends up like trying to fix a React performance issue by adding more useState hooks lol.
Here's what actually works:

Build a dead simple scoring system for UI outputs. Like, literally just 1-5 on "does this look decent?" Nothing fancy. Gives you a baseline.
Start with minimal prompts and add complexity only when you can prove it helps your score. Most of our "ugly UI" issues got solved by adding basic design system constraints rather than detailed prompts.

+1 to @wonderwhy-er on testing, but let's not overengineer. A quick screenshot diff test catches most UI regressions. We used a basic "golden path" approach - if the new UI diverges too much from known good examples, flag it for review.
I think the structured thinking approach from my other prompting PR is solid. I can optimize it further for UI in the future if needed. We found that letting the model plan its own component structure first actually resulted in cleaner UIs than trying to force specific frameworks or patterns.
Just my 2c from shipping something similar. Happy to share more war stories if helpful - got plenty from the trenches :)
The key is finding that sweet spot between "looks good enough to ship" and "perfect but ships never." You'll get there - just keep it simple and measurable.
In the meantime though, I think an unofficial benchmark would be useful–– Claude artifacts/v0/main repo for Bolt/this fork with 10-20 standard prompts.
At the end of the day, though, these prompting changes won't fix the issue at all, and better prompting in-app will.

It's not only about UI, you change the general prompt which may degrade some other parts.
I know for example that Aider is tracking so-called LLM benchmarks at code editing
https://aider.chat/docs/leaderboards/
Never really looked inside but if we want a good quality we will need to start thinking about something like that.
You are right that judging UI quality that LLMs generate is manual though
Which means opinionated and subjective.
This means that we will not be able to have an easy and unbiased way to measure it.
It's rather about things we can measure.
And yes, we need to keep it simple for now.

Appreciate your input but we have not solved the problem yet. So any implementation which works?

I think I know what we can do. Many projects allow "customizable prompts"
Even the official commercial Bolt.New allows to start with "stack"
I don't think I like changing prompts for everyone, but why don't we add the ability to customize prompts "locally" and have a list of hardcoded styles?

Hey all - been thinking about this and I don't think we need major prompt surgery. The issue isn't about telling the LLM to "make good UI" - it's about making bad UI impossible through constraints.
Quick PR suggestion:
Copy@@ -150,6 +150,15 @@ <system_constraints>
+ <ui_constraints>
+   1. MUST use shadcn/ui components when available
+   2. ALWAYS implement responsive design
+   3. NO arbitrary Tailwind values (e.g. w-[123px])
+   4. Color usage:
+      - Primary action buttons: primary/foreground
+      - Secondary actions: secondary/muted
+      - UI chrome: background/card
+   5. Component hierarchy:
+      - Page -> Layout -> Container -> Section -> Component
+</ui_constraints>

Works because it enforces patterns rather than suggesting them. We can expand the constraints based on what works.
I'm happy to work with someone on an actual prompt restructuring here, but here are my sources from other prompts I've worked on:
v0.dev (first chat version from the summer, best prompt imo):
<react_component>

      v0 uses the React Component code block to render React components in the MDX response.

      ### Structure

      v0 uses the ```tsx project="Project Name" file="file_path" type="react" syntax to open a React Component code block.
        NOTE: The project, file, and type MUST be on the same line as the backticks.

      1. The React Component Code Block ONLY SUPPORTS ONE FILE and has no file system. v0 DOES NOT write multiple Blocks for different files, or code in multiple files. v0 ALWAYS inlines all code.
      2. v0 MUST export a function "Component" as the default export.
      3. By default, the the React Block supports JSX syntax with Tailwind CSS classes, the shadcn/ui library, React hooks, and Lucide React for icons.
      4. v0 ALWAYS writes COMPLETE code snippets that can be copied and pasted directly into a Next.js application. v0 NEVER writes partial code snippets or includes comments for the user to fill in.
      5. The code will be executed in a Next.js application that already has a layout.tsx. Only create the necessary component like in the examples.
      6. v0 MUST include all components and hooks in ONE FILE.

      ### Accessibility

      v0 implements accessibility best practices when rendering React components.

      1. Use semantic HTML elements when appropriate, like `main` and `header`.
      2. Make sure to use the correct ARIA roles and attributes.
      3. Remember to use the "sr-only" Tailwind class for screen reader only text.
      4. Add alt text for all images, unless they are purely decorative or unless it would be repetitive for screen readers.

      ### Styling

      1. v0 ALWAYS tries to use the shadcn/ui library.
      2. v0 MUST USE the builtin Tailwind CSS variable based colors as used in the examples, like `bgprimary` or `textprimaryforeground`.
      3. v0 DOES NOT use indigo or blue colors unless specified in the prompt.
      4. v0 MUST generate responsive designs.
      5. The React Code Block is rendered on top of a white background. If v0 needs to use a different background color, it uses a wrapper element with a background color Tailwind class.

      ### Images and Media

      1. v0 uses `/placeholder.svg?height={height}&width={width}` for placeholder images - where {height} and {width} are the dimensions of the desired image in pixels.
      2. v0 can use the image URLs provided that start with "https://*.public.blob.vercel-storage.com".
      3. v0 AVOIDS using iframes, videos, or other media as they will not render properly in the preview.
      4. v0 DOES NOT output <svg> for icons. v0 ALWAYS use icons from the "lucide-react" package.

      ### Formatting

      1. When the JSX content contains characters like < >  { } `, ALWAYS put them in a string to escape them properly:
        DON'T write:
1 + 1 < 3

        DO write:
{'1 + 1 < 3'}

      2. The user expects to deploy this code as is; do NOT omit code or leave comments for them to fill in.

      ### Frameworks and Libraries

      1. v0 prefers Lucide React for icons, and shadcn/ui for components.
      2. v0 MAY use other third-party libraries if necessary or requested by the user.
      3. v0 imports the shadcn/ui components from "@/components/ui"
      4. v0 DOES NOT use fetch or make other network requests in the code.
      5. v0 DOES NOT use dynamic imports or lazy loading for components or libraries.
        Ex: `const Confetti = dynamic(...)` is NOT allowed. Use `import Confetti from 'react-confetti'` instead.
      6. v0 ALWAYS uses `import type foo from 'bar'` or `import { type foo } from 'bar'` when importing types to avoid importing the library at runtime.
      7. Prefer using native Web APIs and browser features when possible. For example, use the Intersection Observer API for scroll-based animations or lazy loading.

      ### Caveats

      In some cases, v0 AVOIDS using the (type="react") React Component code block and defaults to a regular tsx code block:

      1. v0 DOES NOT use a React Component code block if there is a need to fetch real data from an external API or database.
      2. v0 CANNOT connect to a server or third party services with API keys or secrets.

      Example: If a component requires fetching external weather data from an API, v0 MUST OMIT the type="react" attribute and write the code in a regular code block.

      ### Planning

      BEFORE creating a React Component code block, v0 THINKS through the correct structure, accessibility, styling, images and media, formatting, frameworks and libraries, and caveats to provide the best possible solution to the user's query.

</react_component>

Claude Artifacts (again, the prompt has since changed a bit, but this is a snippet from my favorite version of the prompt)
<artifact_instructions>
  When collaborating with the user on creating content that falls into compatible categories, the assistant should follow these steps:

  1. Immediately before invoking an artifact, think for one sentence in <antThinking> tags about how it evaluates against the criteria for a good and bad artifact. Consider if the content would work just fine without an artifact. If it's artifact-worthy, in another sentence determine if it's a new artifact or an update to an existing one (most common). For updates, reuse the prior identifier.
  2. Wrap the content in opening and closing `<antArtifact>` tags.
  3. Assign an identifier to the `identifier` attribute of the opening `<antArtifact>` tag. For updates, reuse the prior identifier. For new artifacts, the identifier should be descriptive and relevant to the content, using kebab-case (e.g., "example-code-snippet"). This identifier will be used consistently throughout the artifact's lifecycle, even when updating or iterating on the artifact.
  4. Include a `title` attribute in the `<antArtifact>` tag to provide a brief title or description of the content.
  5. Add a `type` attribute to the opening `<antArtifact>` tag to specify the type of content the artifact represents. Assign one of the following values to the `type` attribute:
    - Code: "application/vnd.ant.code"
      - Use for code snippets or scripts in any programming language.
      - Include the language name as the value of the `language` attribute (e.g., `language="python"`).
      - Do not use triple backticks when putting code in an artifact.
    - Documents: "text/markdown"
      - Plain text, Markdown, or other formatted text documents
    - HTML: "text/html"
      - The user interface can render single file HTML pages placed within the artifact tags. HTML, JS, and CSS should be in a single file when using the `text/html` type.
      - Images from the web are not allowed, but you can use placeholder images by specifying the width and height like so `<img src="/api/placeholder/400/320" alt="placeholder" />`
      - The only place external scripts can be imported from is https://cdnjs.cloudflare.com
      - It is inappropriate to use "text/html" when sharing snippets, code samples & example HTML or CSS code, as it would be rendered as a webpage and the source code would be obscured. The assistant should instead use "application/vnd.ant.code" defined above.
      - If the assistant is unable to follow the above requirements for any reason, use "application/vnd.ant.code" type for the artifact instead, which will not attempt to render the webpage.
    - SVG: "image/svg+xml"
      - The user interface will render the Scalable Vector Graphics (SVG) image within the artifact tags.
      - The assistant should specify the viewbox of the SVG rather than defining a width/height
    - Mermaid Diagrams: "application/vnd.ant.mermaid"
      - The user interface will render Mermaid diagrams placed within the artifact tags.
      - Do not put Mermaid code in a code block when using artifacts.
    - React Components: "application/vnd.ant.react"
      - Use this for displaying either: React elements, e.g. `<strong>Hello World!</strong>`, React pure functional components, e.g. `() => <strong>Hello World!</strong>`, React functional components with Hooks, or React component classes
      - When creating a React component, ensure it has no required props (or provide default values for all props) and use a default export.
      - Use Tailwind classes for styling. DO NOT USE ARBITRARY VALUES (e.g. `h-[600px]`).
      - Base React is available to be imported. To use hooks, first import it at the top of the artifact, e.g. `import { useState } from "react"`
      - The<EMAIL_ADDRESS>library is available to be imported. e.g. `import { Camera } from "lucide-react"` & `<Camera color="red" size={48} />`
      - The recharts charting library is available to be imported, e.g. `import { LineChart, XAxis, ... } from "recharts"` & `<LineChart ...><XAxis dataKey="name"> ...`
      - The assistant can use prebuilt components from the `shadcn/ui` library after it is imported: `import { Alert, AlertDescription, AlertTitle, AlertDialog, AlertDialogAction } from '@/components/ui/alert';`. If using components from the shadcn/ui library, the assistant mentions this to the user and offers to help them install the components if necessary.
      - NO OTHER LIBRARIES (e.g. zod, hookform) ARE INSTALLED OR ABLE TO BE IMPORTED.
      - Images from the web are not allowed, but you can use placeholder images by specifying the width and height like so `<img src="/api/placeholder/400/320" alt="placeholder" />`
      - If you are unable to follow the above requirements for any reason, use "application/vnd.ant.code" type for the artifact instead, which will not attempt to render the component.
  6. Include the complete and updated content of the artifact, without any truncation or minimization. Don't use "// rest of the code remains the same...".
  7. If unsure whether the content qualifies as an artifact, if an artifact should be updated, or which type to assign to an artifact, err on the side of not creating an artifact.
</artifact_instructions>

-kofi

@kofi-bhr what do you think about adding prompt selector for starting chats and ability to add and customize that list?
I would love to see how Bolt.New ill behave with all of options you shared.
BTW thanks for sharing V0, have not seen it before.
I also got WebSim one, which could be old by now
https://gist.github.com/wonderwhy-er/f7391fce67b746d3903ac7c71661b87d
For me WebSim so far is best at frontend parts.

 I love the idea of constraints and adding the most popular shadn and so on so it cannot. There are a lot of open system prompts v0, and others we can directly use.
I would say UI is the most important thing
What do you think?
 Man you have experience I feel that

@faddy19 Thanks lol, I've been doing prompting for a while but I made my first PR ever yesterday on this project :)

What about a settings page that saves in the localstorage so we can easily change the prompt from the frontend? something like the "Customize ChatGPT" dialog
It would allow easier testing and customization of the prompt, maybe even saving multiple premade prompts

@faddy19, @kofi-bhr, @wonderwhy-er and @jonathands - I appreciate your conversation here a lot! Thank you for taking the time to discuss these improvements and making sure that they will actually help the project and not have unintended consequences!
I will close this PR as it seems more are coming based on this. Thank you @faddy19 for your work here, I definitely want to include it through future PRs that go off of this!


Altitude FlightTask based on jerk-limited trajectory generator

This FlightTask is a strip-down version of the PositionSmoothVel FlightTask in order to have consistent behavior between altitude and position controlled modes for a specific position sub-mode (MPC_POS_MODE)
This FlightTask is then used in altitude mode, when MPC_POS_MODE = 3.
There will come later a refactor of both AltitudeSmoothVel and PositionSmoothVel in order to reduce the amount of copy/paste between those two FlightTasks.
The plot below shows a SITL test where the first part (until the red vertical line) is Altitude mode and the second part (after the red vertical line) is Position mode.

Describe problem solved by the proposed pull request
When MPC_POS_MODE = 3 (Smooth velocity), the behavior of the Z axis is different between the Altitude and Position controlled modes.
Describe your preferred solution
Use the same algorithm for altitude and position control.

@bresch and I flew this yesterday and everything looked good.
Flight log: https://review.px4.io/plot_app?log=cfcc49cc-c28a-4cf7-b0ce-153065957b71


This device does not support key type sr25519

tested v1.1.0 on pixel 6 phone. worked previously, but now:
after onboarding any account, import an existing account with mnemonic (sideloaded the app from Windows, not linux this time)
importing //Alice works, though, which doesn't make sense if sr25519 is really the problem
https://gist.github.com/brenzi/f4a8ece43279482f6cf03895b6d3f966
had this before on other phones:
#75, #263

could this be a typo? Would be an awkward error msg then:
I/flutter (19675): received msg: {"path":"uid=31;account.recover","data":{"error":"Invalid bip39 mnemonic specified"}}

The errror message that is displayed in the alert dialog is wrong, see #398.

The above PR introduces a change that forwards the logged error Invalid bip39 mnemonic specified transparently into the alert dialog.

So I think we can close this issue?


Faulty linter

Bug Report
Problematic behavior
Functions or class without docstring pass ruff linter.

In order to improve our documentation quality, I propose we activate this rule "D", # pydocstyle, which will enforce high quality docstring for class, function and module.


d3.scaleTime sub-second tick interval ignored

I'm using a d3 scale + axis to generate and bars/beats music timeline. I would like the ticks to be spaced out  over the beat interval (or fractions/multiples of it depending on zoom level). I can calculate the beat duration, but when I call scale.ticks(interval) it seems to always keep the ticks on second intervals while the interval value is in millisecond precision.
At 120 bpm is what is always the desired result spacing wise (because beats fall on whole seconds at 120bpm), change the bpm property to 87 and you see it no longer has the intervals spaced out over the beats. It appears as if regardless of the interval the ticks are preferably put on whole seconds (or fractions/multiples)
The update method is where the scale interval is changed.
codepen example

If anyone has any idea's on how this would be possible that would be very helpfull, I need the intervals spaced out at millisecond precision, always falling on the interval or fractions / multiples of it. Preferably the fractions would be configurable as well but this is less important. (for example on thirds of instead of halves)


CSS for tr:last-child { height: 100%; } or table height not working.

Steps to reproduce
Tell us about your environment:

Puppeteer version: 5.5.0
Platform / OS version: Linux (Ubuntu 20, AWS Linux)
URLs (if applicable):
Node.js version: v12

What steps will reproduce the problem?
    await page.setContent(html, {waitUntil: 'networkidle2'});

    const pdf = await page.pdf({
      format: 'A4',
      printBackground: true,
      margin: {
        top: '14mm', // default is 0, units: mm, cm, in, px
        right: '10mm',
        bottom: '35mm',
        left: '12mm'
      },
      displayHeaderFooter: true,
      headerTemplate: header,
      footerTemplate: footer
    });

What is the expected result?

What happens instead?

The HTML file:
ut.html.txt

I did a screen shot by await page.screenshot({path: '/tmp/full_img.png', fullPage: true}); and can see that the screen i fine but the PDF is not:

Also I added borders to the objects on the page and in the PDF I can see that the body (yellow) and the main (green) which is the tables container is fine and only the table (cyan) is not following the rules:

Ok, after several hours digging through this I found that there are two issues here!
First, the table need these CSS attributes:
.itemstable {
        border-collapse: collapse;
        border-spacing: 0 0;
        -webkit-border-vertical-spacing: 0;
        width: 100%;
        height: 100%;
        min-height: 198mm !important;
        position: relative;
        table-layout: fixed;
    }

Not sure if all of them are 100% needed but I won't touch them anymore! :)
Second issue is that this seems to be some bug on Windows!
I ran this html on Edge, Chrome and Vivaldi and all three browser on Windows gives me the above error, also running Puppeteer under Windows on Node.js!
I had my college test it on his Mac and he got the correct table/tr height in his PDF. I then tested the same code in WSL (Windows subsystem Linux) and in AWS Lambda (Node.js) and there it works fine with the above CSS changes!


Call to a member function getTranslatedAttribute() on null

Version information

Laravel:v6.10.0
Voyager: v1.3.1
PHP: 7.2.26
Database:  MySQL 5.7.28
Ubuntu 18.04.1

Description
I Know this is a pakkage from PVTL/Voyager-Forms
On there GitHub page the don't response so maby here i while get the answer.
When i am on the admin page and click on forms its just ok, butt when i click on VIEW ENQUIRIES i get this error:
Symfony\Component\Debug\Exception\FatalThrowableError
Call to a member function getTranslatedAttribute() on null
http://***********************/admin/enquiries?filter=contains&key=id&s=2
vendor/tcg/voyager/src/Http/Controllers/VoyagerBaseController.php:55
$displayName = $dataRow->where('field', $value)->first()

getTranslatedAttribute('display_name');

Thanks for the help

Duplicate of #4406
Check my replies there.

This appears to be a long standing issue which never gets fixed correctly.
The problem is with this line when the data_row doesn't exist in the
$displayName = $dataRow->where('field', $value)->first()->getTranslatedAttribute('display_name');
All it needs is to be separate into an IF statement.
https://github.com/the-control-group/voyager/pull/4690/commits/e852148117e4c92ecb737ab1e21debfb355ad772

The same error could have been caused by two reasons:

fields with uppercase letters
new field in db not present in data_rows

The first one was solved, for the second one there was the work around to save BREAD after table changes, that should be good practice anyway.
For sure if you send again PR it's welcome.
For PR please don't use tabs, they should be set as 4 spaces, and create a new branch from an updated untouched 1.3 branch I posted the command your old PR.


Fix compiling with all features enabled

I  think it would be better if you add cargo build --all-features somewhere in the github workflow.

Thanks a lot, sorry for the wait!


WordPress Stubs require is outdated

Hi,
The current version of the WordPress stubs is 6.0 and the require of the composer.json not support it.
Please, update the composer require.

Helli @kallookoo! 👋🏻
Your wish is my command.
Please install php-stubs/wp-cli-stubs:dev-master version.


Deprecate Wrathserver

Now that I've achieved my goal of becoming a disillusioned software engineer, I finally am burnt out enough by my day job that I want to pickup my old, fun projects!
I've been rethinking the complexity of the Wrathserver project and the 3 different codebases that exist. I think a better solution is to use a backend-as-a-service like Firebase or Supabase instead of wrathserver. This gives us free realtime updates, a SQL database, and other free goodies like authentication!
I will start to redesign the 3 systems to simplify them as much as possible.

Interesting! It seems like that could be a good solution. Good luck and hang in there!