OpenSSL DLLs required for libcurl.dll

Reported by John Emmas on curl-library mailing list:
I revisited that web page and noticed it says that curl 7.75.0 is linked
statically to OpenSSL 1.1.1i, so I downloaded the 64-bit zip file -
BUT... when I run the Windows 'dumpbin' program it gives me this output:-

     Dump of file libcurl-x64.dll
     File Type: DLL

       Image has the following dependencies:
         libcrypto-1_1-x64.dll
         libssl-1_1-x64.dll
         ADVAPI32.dll
         CRYPT32.dll
         KERNEL32.dll
         msvcrt.dll
         Normaliz.dll
         USER32.dll
         WLDAP32.dll
         WS2_32.dll

In other words, 'libcrypto-1_1-x64.dll' and 'libssl-1_1-x64.dll' are
both still needed - i.e. they're linked dynamically - not statically :-(

The zip file contains a file called 'libcurl'a' (which looks like it
might be a static lib) but if I try to link against it I get lots of
missing symbols.

Possibly related to #12. I will follow up with a reply explaining that the other libraries can be downloaded in the Specifications section of the download page, and OpenSSL is statically linked in the curl tool, not the library. Why is that though?

Ultimately it's an "personal"/arbitrary choice. Since there as in "infinite" number of dynamic/static linkage combinations, I had to choose one and that's the one I choose after weighing pros/cons. My observation is that if a project chooses to use DLLs in the first place, the goal is to have all libs as DLLs. This also saves space (by not having to distro all dependent code as part of libcurl.dll as well, adding bloat). It's also the combination that can be built relatively cleanly because the libcurl.dll build doesn't need to know about the complete static lib dependency-tree at build-time. It also means that DLL users are free to update the dependencies separately (one main goal of using DLLs as I reckon). But, I never personally used DLLs on Windows and found little if any advantage using them, so maybe I'm assuming some things wrong (and there is nothing even close to a standard for any this on Windows). I must have said similar things over at #12.
If the goal is to avoid DLLs, libcurl.dll included, it's possible to link everything statically. But, if the goal is to have libcurl.dll, but no other DLLs, well, this particular combination (along with different potential mixed static-DLL lib combinations) just isn't covered by curl-for-win.

After digging in the build sources, I realized that the small DLL dependencies are already linked statically to libcurl.dll (should have been obvious from the DLL deps output, yay). So, aside from potential technical difficulties resulting from linking OpenSSL statically as well (not sure I've ever tried doing that and there can be suprises), the only decision to make here is whether linking it statically would be the desired behaviour for most libcurl.dll users. What is lost, is the ability to update the OpenSSL DLLs independently from libcurl.dll, and the increased distribution/download size for the curl.se servers.

What is lost, is the ability to update the OpenSSL DLLs independently from libcurl.dll

My gut feeling says that users that download these binaries would download them from the same place anyway and thus would still get them in sync, in one file or several. I don't think linking with it statically in this build will upset many users. And I don't think we will find out either until we try it and see if anyone complains...

and the increased traffic/download size for the curl.se servers.

I don't want to say that bandwidth is free for us, but it practice it basically is since we have a sponsor for whom our bandwidth use is like a drop in the ocean.

I'll make some test with linking OpenSSL statically.

Standalone libcurl*.dll is now available, version 7.75.0_1.
Size increase almost nothing (+5%) for the tar package, +35-38% for ZIP:

pkg
7.75.0
7.75.0_1

curl-win32-mingw.tar.xz
2116716
2223528

curl-win32-mingw.zip
3271416
4448842

curl-win64-mingw.tar.xz
2283028
2395164

curl-win64-mingw.zip
3575937
4938635


rename compose files

Change compose file names to nuvlabox-engine.yml

this would mean also rename old releases and backfilling old commits.
it would also require changing all the docs and instructions.
It's not worth the effort .
Won't do


Test for SpatialMaxPooling_backward failing

Closing this for now. I think it's a mismatch between what is tested in the test, and what is currently supported by current SpatialMaxPooling implementation.


running cefglue.winapi.demo .net core

Hi,
Perhaps it is related with #66 and new release will fix these, I would like to describe some problems I've faced with:

Starting debugging from VS 2017
1.1) x86 configuration just fails to run
1.2) x64 configuration opens window with white background and there is lot of messages in console like that (perhaps it's because there was some changes in dotnet 2.2):

[0301/111628.607:ERROR:browser_gpu_channel_host_factory.cc(119)] Failed to launch GPU process.
[0301/111628.607:ERROR:gpu_process_transport_factory.cc(1026)] Lost UI shared context.
Unknown option: --type=gpu-process
Unknown option: --no-sandbox
Unknown option: --locales-dir-path=C:\Users\admin\Downloads\Chromely-master\src\Demos\Chromely.CefGlue.Winapi.netCoreDemo\bin\x64\Debug\netcoreapp2.0\locales
Unknown option: --log-file=logs\chromely.cef_new.log
Unknown option: --log-severity=info
Unknown option: --resources-dir-path=C:\Users\admin\Downloads\Chromely-master\src\Demos\Chromely.CefGlue.Winapi.netCoreDemo\bin\x64\Debug\netcoreapp2.0
Unknown option: --lang=en-US
Unknown option: --gpu-preferences=KAAAAAAAAACAAwBAAQAAAAAAAAAAAGAAEAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAIAAAAAAAAAAoAAAAAAAAADAAAAAAAAAAOAAAAAAAAAAQAAAAAAAAAAAAAAAKAAAAEAAAAAAAAAAAAAAACwAAABAAAAAAAAAAAQAAAAoAAAAQAAAAAAAAAAEAAAALAAAA
Unknown option: --use-gl=swiftshader-webgl
Unknown option: --locales-dir-path=C:\Users\admin\Downloads\Chromely-master\src\Demos\Chromely.CefGlue.Winapi.netCoreDemo\bin\x64\Debug\netcoreapp2.0\locales
Unknown option: --log-file=logs\chromely.cef_new.log
Unknown option: --log-severity=info
Unknown option: --resources-dir-path=C:\Users\admin\Downloads\Chromely-master\src\Demos\Chromely.CefGlue.Winapi.netCoreDemo\bin\x64\Debug\netcoreapp2.0
Unknown option: --lang=en-US
Unknown option: --service-request-channel-token=F38D75EA4E8188D7596E82744A8D3E9A
Unknown option: --mojo-platform-channel-handle=1788
.NET Command Line Tools (2.2.102)
Usage: dotnet [runtime-options] [path-to-application] [arguments]

Publishing self-contained app from VS 2017 (and from dotnet publish)
2.1) CEF binaries does not get copied to publish folder (not all of them). It is needed to manually copy them to publish folder from build folder
2.2) Even if I publish with -r linux-64 CEF binaries still get win-platform downloaded. It is needed to manually download linux-platform binaries to publish folder as described at CefGlue Application Layout
Running self-contained app
3.1) Runs ok in Windows 10 1809 (-r win-x64)
3.2) Fails to run in Linux (AstraLinux SE/Debian 9 Stretch; -r linux-64): segmentation fault error, dmesg says that:

traps: cefglue_winapi_[19131] trap int3 ip:7082a73a5968 sp:7ffea8bb9210 error:0 in libcef.so[7082a4630000+5830000]
Any thoughts? Perhaps I am missing something...

@meareindel thanks for detailed description of the issues. Yes, they are all related to #66.

You are likely trying to debug as-is in the demo. That will not work for .NET core. From v68 SingleProcess is no longer supported and it has to be published. So debugging may be a tough situation in that regard unless your had a subprocess. This is discussed in #66.

Please see - https://github.com/chromelyapps/Chromely/issues/66#issuecomment-456249781

That error you get is really strange. Never seen such before. For #66 @FrankPfattheicher has made a fix. I will suggest you try the latest code (please remove nuget references for Chromely.CefGlue.Gtk).

Please let @FrankPfattheicher and I know what your findings are as that will help us improve on Chromely running on Linux.
Thanks.

@mattkol thanks for quick answer.

I think it's possible to make custom VS (VSCode also if it is needed) launch configuration for that. It would publish app in debug configuration, start it and attach to it all in one. Then it could be described as a snippet in wiki so others could benefit. Perhaps I'll try to make this one later.
Comment you provided tells about CPU determining, but I meant that cefbinariesdownloader always downloads libcef.dll instead of libcef.so which is needed for linux. And if I correctly understand the 'how it works', there is no binding to runtime identifier in Chromely.CefGlue.Winapi.props (no binding to --os arg):
https://github.com/chromelyapps/Chromely/blob/1437e1b55d67040e50ddb3d91d6da5edc1f02ed7/src/Chromely.CefGlue.Winapi/build/Chromely.CefGlue.Winapi.props#L18-L21
Also cef binaries download does not start if Chromely.CefGlue.Winapi project reference used instead of package reference - as far as I understand props only get included when packaging. Does it work as planned?
Tried that, no luck - still segmentation fault. Perhaps will try later on clean Debian 9. Are there any limitations for updating Cef to latest build? It possibly could be another way to resolve this.

@meareindel do you want to give my sample https://github.com/FrankPfattheicher/stonehenge.Chromely a try?
It includes a CEF loader which loads the necessary version at program start if not already available.
I plan to move this loader to the chromely project later....
I tested it on Windows using VS2017 .NET 4.7.1, and .NET core 2.1.
Ubuntu 18.10 using JetBrains Rider or command line .NET core 2.1.
The core versions has to be published --self-contained

@meareindel you are right on item # 2. Though it is working as planned, the OS version value was not set in props file. We taking a new direction on this, this is what @FrankPfattheicher code changes will fix. Thanks for pointing all these out.

Thanks, guys, will see later that. It's not the critical point though comparing to CEF crash in linux. Will investigate that first.

@mattkol, how do version.g.cs get generated? I want to try to bind to one of later CEF to see if it makes any difference to run under linux.

got #34 on clean latest Debian 9. Is it still actual - I mean, is it still not truly crossplatform?

@meareindel  We are still working on "truly crossplatform"...
For now you have to decide between platforms as in
#if LINUX
using Chromely.CefGlue.Gtk.BrowserWindow;
#else
using Chromely.CefGlue.Winapi.BrowserWindow;
#endif

Please look at my example at
https://github.com/FrankPfattheicher/stonehenge.Chromely/blob/master/StonehengeChromelySample/StonehengeChromelySample/Program.cs

@meareindel we do not have control over how CefGlue files are generated. This was a choice between using an external dependency - https://www.nuget.org/packages/Chromely.Unofficial.CefGlue.NetStd/ and embedding the code. The later was chosen.
So any code in the folder CefGlue is always going to be as-is. It is a NetStandard port of  CefGlue.

@mattkol why not to use package reference?

@FrankPfattheicher thanks, your examples showed the way, I've managed to publish and run chromely demo both on win and debian.
There are some error messages in console though:
[0305/114403.664234:ERROR:gl_implementation.cc(292)] Failed to load /home/user/publish/swiftshader/libGLESv2.so: /home/user/publish/swiftshader/libGLESv2.so: cannot open shared object file: no such file or directory
[0305/114403.668165:ERROR:viz_main_impl.cc(201)] Exiting GPU process due to errors during initialization

but demo works regardless of it. I've moved libGLESv2.so and also libGLES.so to 'swiftshader' subfolder and messages gone, but no changes in demo itself.
I think issue could be closed now.

@meareindel we could use the package reference. Chromely was started that way. The reason I did that was that the package was created by us, so why an extra dependency that WILL not change. If this is open to package reference, then developers may add references that are not supported - CefGlue is strict on versioning.  Also my thought is this way, if there will be a change specifically for Chromely - it can be done without making a change to the published package that are used by non-Chromely projects.
CefGlue is not the only embedded code -  the container - SimpleContainer, and json mapper LitJson are embedded.
Having said that, nothing here is written in stone, if there is need to revert that, it will be done.
Thanks.

but demo works regardless of it. I've moved libGLESv2.so and also libGLES.so to 'swiftshader' subfolder and messages gone, but no changes in demo itself.
@meareindel good catch there. So when you did that, did you leave copies of libGLESv2.so and libGLES.so in the main folder?

@mattkol , yes I did. Later I've also noticed readme.txt in cef binaries bundle where 'libEGL'-stuff are described. As far as I understood, neither of swiftshader/ or root folder libEGL-binaries are strictly needed - these are just for WebGL. Except that you doing some WebGL-stuff in your app. But I did not get a try yet to remove these.
It would also be nice to add linux cef binaries symbol stripping into build/binaries download pipeline (see this) so these would be just around 200Mb instead of 600Mb (and even around 10Mb less if libEGL would go away). I don't know yet if it is possible to run linux strip utility in windows though. There are also could be some other ways to reduce binaries size but I've not managed to get to cef-forum (https://magpcss.org) where these are supposed to be described - I have ERR_CONNECTION_RESET there for some reason.

@meareindel so may be we should look at enabling/disabling WebGL.
Good info on Linux cef binaries size reduction. I looked at it earlier but I felt developers should decide if that s the route they want to take, but  we will see how easy it can be to do that. May be @FrankPfattheicher is already looking at that too.
Thanks.

Created a User Story so this will not be lost:
https://dev.azure.com/ChromelyApps/Chromely/_workitems/edit/23/

@meareindel if you want to deploy smaller packages look at my loader. With that you don't need to deploy CEF at all. It is downloaded and installed on the first run.
Currently the loder is only in my Stonehenge.Chromely project.
It will be in the package when the cross-platform branch is merged.


Add convenience function enumerate_adapters

Hi wgpu-py Team,
I can not find enumerate_adapters() to just get an idea of all gpu available in a machine.
is there an alternative way to do that and this is something to add?
Thank you for the feedback.

The wgpy-native implementation: https://github.com/gfx-rs/wgpu-native/blob/cf02ef3a28c92340483a0393505717bc66103d18/ffi/wgpu.h#L226
Good point. We could add it.
The function is not part of the WebGPU spec, but an extra convenience function by wgpu-native. That's why the code-generation has not told us to add it yet. Will update the title of this issue accordingly.

Could this be just to provide something like a dropdown to select an adapter?

Could this be just to provide something like a dropdown to select an adapter? What's the purpose?

I use only the compute shader for scientific computation purpose (no visualization needed for now). I would like to select a specific GPU for that.
Thank you all for the feedback

I also have this use case working with scientific data where it would be beneficial to be able to partition work across multiple GPUs on one system, or let user make an informed choice of which GPU is more powerful.


[BUG] Upgrade from 1.3.0 to 1.3.1 had problems

Describe the bug

As the upgrade succeeded for me in the end with quite a bit of intervention, I leave this as a probable troubleshooting for others.
I ran the upgrade for 1.3.0 cluster to 1.3.1 and it got stuck on Pre-draining:

I found this pod:
harvester-system/hvst-upgrade-qwsfm-pre-drain-compute-02-bgq89

And its logs said this on the loop:
Waiting for VM live-migration or shutdown...(count: 1)
+ '[' true ']'
++ get_running_vm_count
++ local vmioutput=/tmp/vmioutput.yaml
++ rm -f /tmp/vmioutput.yaml
++ local EXIT_CODE=0
++ kubectl get vmi -A -l kubevirt.io/nodeName=compute-02 -o yaml
++ [[ 0 -eq 0 ]]
+++ yq e '.items |  map(select(.status.phase!="Succeeded")) | length' /tmp/vmioutput.yaml
++ local count=1
++ echo 1
++ rm -f /tmp/vmioutput.yaml
+ vm_count=1
Waiting for VM live-migration or shutdown...(count: 1)
+ '[' 1 = 0 ']'
+ echo 'Waiting for VM live-migration or shutdown...(count: 1)'
+ sleep 5

There were no user VMs running, so I checked:
kubectl get vmi -A

And got:
NAMESPACE          NAME                              AGE    PHASE     IP           NODENAME     READY
harvester-system   upgrade-repo-hvst-upgrade-qwsfm   147m   Running   <IP_ADDRESS>   compute-02   True

This VMI has been spun up by the upgrade itself and is not visible in the web UI.
When I deleted the VMI object and force deleted the pod as it was stuck for quite some time with errors about sending some event, it went to Pre-drained status:

This spun the upgrade repo pod again, but nothing happened for a long time again. Thus, I rebooted the compute-02 node and it then successfully finished the upgrade.

Not sure where the problem was, but pre-drain that said there's a VM that upgrade itself spun up seems like a bug to me.
The last node waited for Longhorn volumes to be healthy and some of them had failed replicas on compute-02, which I restarted, so I deleted them, they were rebuilt and when all volumes were healthy, node was upgraded successfully without further intervention.
To Reproduce
Steps to reproduce the behavior:
Upgrade cluster from 1.3.0 to 1.3.1.
Expected behavior

Upgrade succeeds without user intervention. Especially when I stopped all of the VMs to make sure there were no Live migrations that could go wrong.
Support bundle

Environment

Harvester ISO version: 1.3.0 pre-upgrade, 1.3.1 post-upgrade
Underlying Infrastructure (e.g. Baremetal with Dell PowerEdge R630):
SuperMicro servers with Intel and AMD CPUs (I know that is not ideal and doesn't let Live Migrations. That is why I shutdown all of the VMs before the upgrade)

Additional context
I also hit this error at the start of the upgrade:
https://github.com/cloudnativelabs/kube-router/issues/383
I am not sure whether it was connected to the upgrade hurdles though.

@DovydasNavickas Thanks for sharing. When Harvester upgrades node compute-02, it will try to live-migrate the upgrade-repo VM (upgrade-repo-hvst-upgrade-qwsfm) out of the node to continue. There might be a reason that the VM is pending there, but it's hard to tell without an SB at that moment. Killing the VM makes it respawn on another node an the upgrade continues.

Well, this makes sense and I know exactly why it failed to live-migrate.
My nodes have different CPUs, one is Intel and another one is AMD, so the live-migration doesn't work, unfortunately. This is fine for my case as I am hosting Kubernetes clusters and I don't need live-migration at all, killing the nodes is fine for me, but if the upgrade expects that live-migration will work, it won't in my case and it just gets stuck.
Is this is a supported case and is a valid bug or is not a supported case and should be closed as "won't fix"?

Unfortunately for the current design, the upgrade-repo VM is still needed and live-migrated (but killing it is a workaround in your case). As an enhancement, the epic has an item to eliminate the upgrade-repo VM, but it won't be implemented sooner.
We are also working on a document to explain the limitation of live migration between nodes with different CPUs.

issue: https://github.com/harvester/harvester/issues/5603
PR: https://github.com/harvester/docs/pull/614

Closing, see previous comment.


Validation for ICS7 ClientState::new().

Closes: #91

For contributor use:

[ ] Unit tests written
[ ] Added test to CI if applicable
[ ] Updated CHANGELOG_PENDING.md
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Updated relevant documentation (docs/) and code comments
[ ] Re-reviewed Files changed in the Github PR explorer

Looks good, one comment. Also, can you merge master? Wanted to look at and try a bit the tests.

Should be fine now.


deck file kong2kic default use Ingress API, not Gateway API

v1.41.0
deck file kong2kic -s kong-config.yaml -o gateway.yaml Converted to Ingress API

same as here! It broke our pipelines :(
please fix this, we reverted for 1.40.x version.

This issue is fixed in release 1.42.0


Add 2 more CMake integrations.

There is also https://github.com/offa/cmake-ada

There is also https://github.com/offa/cmake-ada

Cool. Lets add this then.

@Lucretia. Ok, in light of mosteo's take on the cmake subject, I think we should skip adding rclada_common as a cmake ressource or even a standalone ressource. Do not hesitate to reopen if you disagree, it's just I have to cut somewhere in regard to the 'list vision' I try to share. I am trying to be dumb explicit in presenting the content so new comers feel 'evidently' welcomed. IMO, this one's 'meaning' is too ballpark for now.
Also, I took the opportunity to add mgrojo finding to this PR.
Therefore I will merge and again, we can revive this anytime. I am always open to discuss things further.
Have a great day guys!


JAMES-2813 ADR about the new distributed workqueue design

This is merged.
Can you close this pull request?


Doesn't build?

Hi,
This might not really be an issue with the theme as such, but I can't seem to get this to render properly on gh-pages. Any thought's as of why this might be. Does the setup require me to do anything special?
https://danielsunden.github.io/Portfolio-New/

HI Daniel, you are trying to deploy the site under /Portfolio-New/ but by default, the theme expects to be deployed under /agency-jekyll-theme/.
Open _config.yml and edit the first two lines:
url: https://y7kim.github.io baseurl: /agency-jekyll-theme/
For you, it should be edited to:
url: https://danielsunden.github.io baseurl: /Portfolio-New/
Hope this helps,
Rick

To get it to render (style and images) properly on my own localhost I had to change a few additional lines:

In _includes/css/agency.css - line 269 and line 658: change the url to:
background-image: url('img/header-bg.jpg');
and
background-image: url('img/map-image.png'); respectively.

In _includes/head.html - line 11 and line 14: remove the / in front of style.css.

In _includes/js.html - remove the / in front of all the `"/js/jquery..." bit.

Hope this helps along with Rick's answer above.

@y7kim thank you! Helped me.


Remove recursion, speed up modulus

Resolved https://github.com/delfrrr/delaunator-cpp/issues/9 as recursion is potentially unsafe and increases memory consumption
~ 5% perfomace increase via optimising slow modulus (%) operation

Related reads:
https://stackoverflow.com/questions/33333363/built-in-mod-vs-custom-mod-function-improve-the-performance-of-modulus-op/33333636#33333636
https://embeddedgurus.com/stack-overflow/2011/02/efficient-c-tip-13-use-the-modulus-operator-with-caution/
cc @mourner @cleeus

@delfrrr interesting! Do you know why the mod change would have an impact if almost all the time the operands are >= 3?
Also, I'm not sure non-recursive version is safer since you cap it by 100 manually, while call stack size is dependent on architecture but is usually higher.

@mourner fast_mod_3 has no performance advantages (I introduced it during profiling and then did not delete); it simply does modulus;
But these changes helps:

 % m_hash_size -> fast_mod
a - a % 3 -> 3 * (a / 3)

About stack size: is there a way to estimate it from algorithm and number of points perspective?

@mourner make it closer to https://github.com/mapbox/delaunator/pull/35 ; no performance wins, though 🤔

I would highly suggest against using fixed sized arrays here and rather just continue to use std vector.

@flippmoke for some reason I was sure that vector will perform slower, but now I tried and it performs the same; now it uses vector and there is now stack size limitations
cc @mourner


Segfault when running evolution.eigensystem inside cProfile

Some routine encountered in evolution.eigensystem triggers a segfault when run inside the profiler.  This behaviour seems to be dependent on numba - removing all the numba.njit decorators causes all the code to work just fine, with no Python exceptions and generally no indication of any fault.  The segfault occurs with both versions 0.39 and 0.40 of numba using Python 3.6.5, numpy 1.15 and scipy 1.1.0.
The behaviour appears on both macOS (High Sierra) and Linux (the cx1 cluster at Imperial).
Example to reproduce: rabi.py.txt
When attaching a debugger to python and running the example file (or any similar reproducer), I get a message
stop reason = EXC_BAD_ACCESS (code=1, address=0x10)
(the address is always the same, it seems), and the offending disassembled instruction is
0x1000540f1: mov    rax, qword ptr [rdi + 0x10]
This makes me think that the rdi register is either being zeroed, or not written to before its use.  It does not appear to be an out-of-bounds array access, but more a type of null pointer dereference (in this case with a 16-byte offset).  The same behaviour occurs whether I'm using lldb on my Mac, or gdb on the cluster.  On the cluster, the stack size is unlimited (output of ulimit -s), so I don't think stack size is the problem (and anyway, all allocations should be on the heap).
I don't have the debugging symbols for Python/numpy/numba installed (and they're not possible to get through conda), so I haven't yet hunted down the issue well enough to determine whose fault it is.
I also tried setting the environment variables OMP_NUM_THREADS, NUMBA_NUM_THREADS and MKL_NUM_THREADS all to 1 to remove threading issues.  This does not appear to have any effect, and anyway, only one thread appears to be active at the critical time when running in the debugger.
Possibly related to issue numba/numba#3229?
At any rate, this doesn't seem to be a blocking problem because it only manifests itself when using the profiler.

The behaviour appears on both macOS (High Sierra) and Linux (the cx1 cluster at Imperial).

This isn't to say that the behaviour doesn't appear on Windows, it's just that I don't have a Windows installation to test it on.


fix(nginx): Use new http2 directive

Summary
This updates the nginx configuration to use the new http2 directive.

The http2 parameter of the listen directive is deprecated, the http2 directive should be used instead.

The http2 directive appeared in version 1.25.1.

@hanzei Within this PR or as a separate one? I can do either.

That needs to be a separate PR to https://github.com/mattermost/docs

Thanks!


[FEATURE]:add oceanbase oracle mode xa connect

[description]
The current version does not support XA linking in oceanbase oracle mode.With the support of OceanBase-Client for OceanBase Oracle XA links, the judgment of OceanBase Oracle mode is added when obtaining Xaconnect. close #6235
[TEST]
Please see the specific test
com/alibaba/druid/bvt/pool/xa/OceanBaseOracleXATest.java
[NOTE]
If you use an XA link in oceanbase oracle mode, you must set the jdbc url connection string parameter.
useServerPrepStmts=true
is explained in the test class

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


Clarity box readability issue

As a Grammarly pro user i use their clarity beta feature quite a lot, I love the extension but it makes their suggestions unreadable.

Hello!
Sorry for the late response. I'll fix that.
Please let me know if there are more things to fix.
Thank you!

You're absolutely fine, there was another bug with a similar problem. I'll get back to you later today with details.

Similar issue with variety suggestions highlight making it very difficult to read the word while writing.

Try it now I fixed it.

Perfect! You've made it so I actually use Grammarly to write in, thank you! I did find one more thing.

The done box of things like sentence variety. Sorry if this is nit-picky, I just seem to find more boxes the more I write.

No worries, because you help me making this extension better!

Can you please show me more details on how I could get that box?

Good question XD I can't seem to get it to pop back up. If I manage to see it again I'll make a note and get back to you. For now, don't worry about it XD

Okay, I've managed to get it to pop pretty consistently with conciseness alerts. WHen its trying to get you to cut out non-content words.
If you want a quick sentence to test it with:
After the fall of their mighty empire, these once-proud Romans were ultimately held responsible for the crimes of all of their kin and forced into the chains of servitude for generations as retribution.
and then just delete "of all of their kin" when the alert pops up and it should make the bright white box pop up.

Roger that!

Just fixed that! 😄

XD im not quite sure what happened but all the boxes are back to being white

Damn, got it. I can see that it's not my fault because of the box-shadow is white as well. 😁

Weeiirrd, XD I wish this stuff was easier to tell what broke it

@wiredin1 @AayanTDE Try it now guys, I believe I fixed it. 😊

omg i love you


Added build setting to support app extensions

If PINRemoteImage is used inside an app extension, you get the linker warning: linking against a dylib which is not safe for use in application extensions. This adds the APPLICATION_EXTENSION_API_ONLY build setting to silence the warning.

PINCache has been updated in master to allow app extensions, but isn't in a release yet. Once it's released, PINRemoteImage should automatically pick it up because the dependency is set to >= 3.0.1.


sokol_gfx.h: pixel format / query capabilities rework brain dump

extend the list of pixel formats (best to start with WebGPU format list and add compressed formats): https://gist.github.com/floooh/1f0473afad0723dc63f81b7bf1f7e466

replace sg_query_feature() with sg_query_caps() which returns a sg_capabilities struct, containing

all optional features as booleans
numeric limits (max texture size, etc...)
a struct for each pixel format with booleans similar to what BGFX provides:
https://bkaradzic.github.io/bgfx/bgfx.html#_CPPv2N4bgfx4Caps7formatsE

Example code:
    if (sg_query_caps().pixelformats.rgba8.texture2d) {
        // pixelformat RGBA8 can be used as 2D texture
    }

This is now merged.


cryptopp link dead for a while

The website https://www.cryptopp.com/wiki have been down for quite a while, should we add an archive link? https://web.archive.org/web/20240606185144/https://www.cryptopp.com/wiki/ChaCha20

Done, thanks.


Add check to see if ACF is installed

On page templates and places where ACF functions are used we should do a check to see if ACF is installed with
if ( class_exists( 'acf' ) )
This will make the boilerplate work even without it installed.
As a side idea, when we'll fiddle with automation, we could make a pre checks to see which plugin will be installed (acf, woocommerce etc.), and include certain files according to that.

I have added function_exists check, recommendation is to use that


update to fmriprep 20.1.2

Along with this change, additional config parameters are being added along with lots of tests in #11


Edit notebook metadata

Problem
In the classic notebook it's possible to edit the notebook metadata:

Proposed Solution
We add a new plugin to replicate that UX and let users edit notebook metadata in a dialog.
Additional context
In JupyterLab the notebook tools is in the right area:

Marking as a good first issue in case someone would like to take it, thanks!

The new plugin could go the notebook-extension package: https://github.com/jupyterlab/retrolab/blob/main/packages/notebook-extension/src/index.ts
That file already has some places showing how to retrieve the current notebook. which can serve as an example.


feat: add PLONK in-circuit verifier

Description

This PR adds in-circuit verifier supporting commitments for both 2-chain and emulated computations.
Fixes #847
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How has this been tested?

[x] 2-chain test without commitments TestBLS12InBW6WoCommit
[x] emulated test without commitments TestBW6InBN254WoCommit
[x] 2-chain test with commitments TestBLS12InBW6Commit
[x] emulated test with commitments TestBW6InBN254Commit

How has this been benchmarked?

Checklist:

[x] I have performed a self-review of my code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] I have added tests that prove my fix is effective or that my feature works
[x] I did not modify files generated from templates
[x] golangci-lint does not output errors locally
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

Ready from my side. @ThomasPiellard - if you can confirm that also good from your side then I think it is good for review. I assigned @yelhousni for review as we both have worked on it :)

Added MSM tests for emulated and 2-chain curves. This revealed another bug :)
I think the PR is done from my side. We could merge from my side after approving review. I think we can address additional optimisations in different PRs, to keep number of different open PRs small and avoid needing to rebase/merge.
Some other discussed optimisations:

unsafe additions for scalar mul
bounded scalar mul for KZG folding (not to use all bits)
endomorphisms for in circuit scalar mul
using precomputed lines (#925/#930). This should be almost drop-in fix without needing to modify this PR much.
for proof aggregation extending native PLONK prover to have uniform verifying key (only needing to switch between selector polynomial commitments, keeping SRS and Size fixed)
include #749
VDF for exponentiation

Ping @yelhousni for review.

Added MSM tests for emulated and 2-chain curves. This revealed another bug :)
I think the PR is done from my side. We could merge from my side after approving review. I think we can address additional optimisations in different PRs, to keep number of different open PRs small and avoid needing to rebase/merge.
Some other discussed optimisations:

unsafe additions for scalar mul
bounded scalar mul for KZG folding (not to use all bits)
endomorphisms for in circuit scalar mul
using precomputed lines (Perf: Groth16 verifier circuit with pre-computed lines #925/perf: use G2 precomputed lines for Miller loop #930). This should be almost drop-in fix without needing to modify this PR much.
for proof aggregation extending native PLONK prover to have uniform verifying key (only needing to switch between selector polynomial commitments, keeping SRS and Size fixed)
include perf: non-native modular multiplication #749
VDF for exponentiation

Ping @yelhousni for review.

Alright on my end. Let's merge this and address optimizations in other PRs. I gave the Wesolowski VDF approach a try to compute efficiently z^(2^T) mod n but it's not sound since n a known prime (the root finding problem is easy). Also 2^T is small in our use-case compared to n so reducing the exponent modulo n-1 (the Euler totient) is not helpful neither. I would add to the list of optimizations:

MSM in-circuit
For 2-chains, use twisted Edwards complete formulae for windowed scalar multiplication might be worth it.

Thanks for the review and co-authoring the PR! I gathered the ideas for improvements in #935.


Fix bug in using end when indexing ITensors

This closes #534.

Codecov Report

Merging #537 (a4ecbff) into master (9e26030) will increase coverage by 0.73%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##           master     #537      +/-   ##
==========================================
+ Coverage   80.74%   81.48%   +0.73%
==========================================
  Files          41       41
  Lines        4217     3991     -226
==========================================
- Hits         3405     3252     -153
+ Misses        812      739      -73

Impacted Files
Coverage Δ

src/itensor.jl
78.45% <66.66%> (+0.93%)
:arrow_up:

src/index.jl
78.76% <100.00%> (+1.26%)
:arrow_up:

src/broadcast.jl
63.55% <0.00%> (-11.07%)
:arrow_down:

src/mps/dmrg.jl
74.57% <0.00%> (-3.04%)
:arrow_down:

src/indexset.jl
71.73% <0.00%> (-2.41%)
:arrow_down:

src/smallstring.jl
60.34% <0.00%> (-1.33%)
:arrow_down:

src/physics/sitetype.jl
92.24% <0.00%> (-0.93%)
:arrow_down:

src/decomp.jl
88.62% <0.00%> (-0.76%)
:arrow_down:

src/mps/sweeps.jl
92.42% <0.00%> (-0.64%)
:arrow_down:

src/physics/autompo.jl
92.68% <0.00%> (-0.50%)
:arrow_down:

... and 25 more

Continue to review full report at Codecov.

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


building from source

I am following the directions to build grpc from source found here:
https://github.com/grpc/grpc/blob/master/INSTALL.md
So:
$ git clone https://github.com/grpc/grpc.git
$ cd grpc
$ git submodule update --init
$ make
$ [sudo] make install
Running on osx, I receive the following error:
include/grpc++/impl/codegen/config_protobuf.h:38:10: fatal error:
'google/protobuf/stubs/common.h' file not found
#include <google/protobuf/stubs/common.h>
^
1 error generated.
Any suggestions?

how did you fix it?


add Used By section to README

I'm vain and it makes me happy to recognize users of my library.

Codecov Report

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

@@           Coverage Diff           @@
##           master      #57   +/-   ##
=======================================
  Coverage   70.16%   70.16%
=======================================
  Files           8        8
  Lines         372      372
=======================================
  Hits          261      261
  Misses         71       71
  Partials       40       40

Continue to review full report at Codecov.

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


Remove constraint of working only in command mode

The hard constraint of being available only in command mode is limiting the use of this source where end user believes it's needed.
For example it used to be not available in command line window (:q).

FWIW, you can also override the exported function yourself locally in your own configuration. E.g. to setup support for the command window:
vim.api.nvim_create_autocmd({ "CmdwinEnter" }, {
  group = vim.api.nvim_create_augroup("__user_cmdwin_enter", { clear = true }),
  callback = function()
    vim.b.is_cmdwin = true
  end
})

require("cmp_cmdline").is_available = function()
  return vim.api.nvim_get_mode().mode == "c" or vim.b.is_cmdwin == true
end

or realistically whatever else you want there. I wouldn't go quite as far as making it always available, as in most contexts (e.g. a Python file) completion for commands is likely not useful, right?

The problem is currently we have 2 approaches for attaching a source to a buffer, and it may be overkilling the customization and causing confusion. One approach is using vim's own tools like autocmd to call cmp.setup.buffer for each buffer based on its options/filetype/etc and the other approach is setting up all sources for every file type in cmp.setup and then write is_available for each source. These two in parallel cause confusion in my opinion. For example when I write:
    vim.api.nvim_create_augroup('CMP', { clear = true })
    vim.api.nvim_create_autocmd('CmdwinEnter', {
      group = 'CMP',
      pattern = '*',
      callback = function()
        cmp.setup.buffer({ sources = cmp.config.sources({ { name = "cmdline" } } ) })
      end
    })

I'm specifically activating cmdline source for a specific buffer type, there is really no need for is_available.
So I think cmp.setup.buffer and is_available are conflicting and causing two ways to do a specific customization. I can't imagine a scenario when one can't do what the other is able to do.

+1 for deleting this constraint.
users can use separate configs using require('cmp').setup.filetype or using autocmds
snippet from my config:
...
        cmp.setup.cmdline(':', {
          mapping = cmp.mapping.preset.cmdline(mapping),
          sources = cmp.config.sources(cmdline_sources),
        })

        -- FIXME: https://github.com/hrsh7th/cmp-cmdline/pull/61
        require('cmp_cmdline').is_available = function()
          return true
        end

        -- this applies to vim files and command-window as well
        cmp.setup.filetype('vim', {
          mapping = cmp.mapping.preset.cmdline(mapping),
          sources = cmp.config.sources(cmdline_sources),
        })

LGTM.
I think most user doesn't specify cmdline source as normal mode but it isn't necessary.

This goes back to old behavior, constrained by https://github.com/hrsh7th/nvim-cmp/blob/ca4d3330d386e76967e53b85953c170658255ecb/lua/cmp/config.lua#L94-L108


Client IP Loggging

Issue
Conjure station by default log associate client IPs with connection checkpoints. This is not always desired behavior.
Solution
This PR adds an environment variable to the conjure.conf that is set during initialization in the detector, the station application, and the registration API. If set to true client IP addresses will be included in logs.  If the value is missing or set false client IP addresses will be excluded from logs.

Additional
This PR ended up including a fix for a race condition in the registration tracking caused by mutex usage in both track() added in #63  and removeOldRegistrations.
Ultimately this led to a small refactor of the data-structures used to track registration timeouts as the counts were not matching up. Previously timeouts were tracked in a slice separate from the registrations, but this method was faulty. They are now tracked in a map that uses the phantom IP and registration ID as the index so each registration is tracked properly, including differentiating v4 and v6 registrations with the same registration ID.

Additional
This PR ended up including a fix for a race condition in the registration tracking caused by mutex usage in both track() added in #63  and removeOldRegistrations.
Ultimately this led to a small refactor of the data-structures used to track registration timeouts as the counts were not matching up. Previously timeouts were tracked in a slice separate from the registrations, but this method was faulty. They are now tracked in a map that uses the phantom IP and registration ID as the index so each registration is tracked properly, including differentiating v4 and v6 registrations with the same registration ID.


Rename ide related crates

We should do the following renames:
assists -> ide_assists
completions -> ide_completions
ssr -> ide_ssr

@jonas-schievink wdyt? This'll make the structure more obvious I think.

Yeah, seems fine!

@matklad  Can I work on the issue?

Sure, go ahead!

The renaming for assists -> ide_assists and ssr -> ide_ssr is done by this merge https://github.com/rust-analyzer/rust-analyzer/pull/7759. and completion crate is already renamed to ide_completion.


Add Geoclient support

Add support for New York City's official geocoder - Geoclient
https://api.cityofnewyork.us/geoclient/v1/doc
Geoclient returns high-quality, authoritative location information in addition to latitude, longitude - e.g. community district, building identification number, neighborhood tabulation area, borough/block/lot, etc. for all valid addresses in NYC.
cc @mlipper @colinreilly

Looks pretty good, I'd just like very high test coverage so this can be refactored.

See https://github.com/geopy/geopy/pull/180


[tutorial] [cpu exceptions] code from the listing fails to compile

Got a compiler error while trying out the code from listing.
error: use of deprecated item 'x86_64::structures::idt::Idt': type was renamed to `InterruptDescriptorTable`, the old name will removed in the next major version
  --> src/main.rs:56:31
   |
56 | use x86_64::structures::idt::{Idt, ExceptionStackFrame};
   |                               ^^^

The error is obvious to fix.
Still, it would be a better experience to have correct listings out of box.
P.S. My code has the x86_64 = "0.2.6" dependency as recommended in the previous articles.
Commented on the blog site :
https://github.com/phil-opp/blog_os/issues/450#issuecomment-402485026

The question is why it's an error for you. Are you explicitly using deny(warnings) or something like that?

That's right. I've enforced that as I got inspired by your "testing" section.
The stricter compilation - the safer code.

Sorry for not checking if it was actually a "true error".

Yeah, we released a new x86_64 version with this renaming a few days ago. I thought it's better to wait a bit before updating the post to avoid breakage for the users on older versions.

Not sure why cargo has picked up a more recent version for me.
Here is what I've specified in my Carho.toml
x86_64 = "0.2.6"

Any chance that some articles rely on a newer version of x86_64 than they should?
Meaning, "CPU Exceptions" chapter requires an older dependency than some other parts of the blog do.

I hope this answers your questions!

It truly does.
Thanks a lot for explaining.


Showing server side (back end) errors on the form

Prerequisites

[x] I have read the documentation;
[x] In the case of a bug report, I understand that providing a SSCCE example is tremendously useful to the maintainers.

Description
Is there any way to show the server-side (back-end) error on the fields after the submission? The error might be related to specific field or to the form. I searched the doc and also read the source, and I found no way to do it after submit.
Imagine that the response of the submission is a list of errors, how can we pass it to the Form.js to render?
Expected behavior
Having {errors, errorSchema} on Form.js props and render it.

Hey. The way to do it is to use the addError method from the custom validation. You have 2 parameters in the validate method errors & formData.
  validate = (formData: any, errors: FormValidation): FormValidation => {
    console.log("ERRORS", errors);
    return errors;
  };

<JsonForm validate={this.validate} />

The FormValidation is an object with addError that is a method & __errors that is an array.
In your case i will create a react container to contain your json-form then add extra props like apiErrors,
Find the input name in your error object and call the method addError to add the error message.
It will passing down the rawErrors props to your component.
Hope it help you.

@Vandell63
I suspect if it will work. The problem is that I know the errors after that I submit the form and then I have the server validation errors. And I think the custome validation is being fired before the form submission.

I understand what you trying to say.
Create an hidden button for your form and ref this guy.
Now in your lifecycle component. ComponentWillReceivePros or getDerivedStateFromProps check  apiErrors length from your props and reSubmit your form with your refButton: this.submitButton.click()

@Vandell63 Isn't it easier to just change the submit function in Form.js line 153 as follow ?!
    setState(this, { errors: [], errorSchema: {} }, () => {
      if (this.props.onSubmit) {
        const {serverErrors, serverErrorSchema}  = this.props.onSubmit({ ...this.state, status: "submitted" });
        //new code
        //some how we have to be sure that the error objects returned from the props.submit function match the desired format
        if (serverErrors && serverErrorSchema) {
          setState(this, { errors: serverErrors, errorSchema: serverErrorSchema });
        }
        //new code end
      }
    });

Take a look at: #874 , is this what you are waiting for?

@bsvveen fundamentally yes, but I did not like the implementation. it is complicated and not consistent with the other validation work flow. Although passing the errorSchema through props matches the overall react one directional data flow, but it is much simpler, and easier to maintain, to have it implemented as the above suggestion.
I am waiting for the others opinions in order to make the idea mature enough to implement.

OOP save the world.
import Form from 'react-jsonschema-form';
...
class MyServerSideValidationForm extends Form {
  onSubmit = async function(event) {
    ...
    this.setState({validating:true});
    const { errors, errorSchema } = await myServerSideValidate(this.state.formData);
    this.setState({validating:false});
    ...
  }
}

Taking the above work of @knilink a step further, here's what I came up with.
It's essentially monkey-patching the onSubmit() method of Form and adding in a fetch() call. Couldn't get the async / await syntax to play ball though.
To make this really shine it would be worth adding in a loading state as well to show a message to the user while the async validation is being done!
class Form2 extends Form {
  onSubmit = event => {
    event.preventDefault();

    // Client-side validation.
    const { errors, errorSchema } = this.validate(this.state.formData);
    if (Object.keys(errors).length > 0) {
      this.setState({ errors, errorSchema }, () => {
        if (this.props.onError) {
          this.props.onError(errors);
        } else {
          console.error("Form validation failed", errors);
        }
      });
      return;
    }

    // Server-side validation
    return fetch('https://jsonplaceholder.typicode.com/todos/1')
    .then(response => response.json())
    .then(json => {

      // Server-side error? Send to child component's onSubmit() function.
      if (json.error) {
        this.setState({ errors: [], errorSchema: {} }, () => {
          this.props.onSubmit({ ...this.state }, true);
        });
        return;
      }

      // All is well.
      this.setState({ errors: [], errorSchema: {} }, () => {
        if (this.props.onSubmit) {
          this.props.onSubmit({ ...this.state, status: "submitted" }, false);
        }
      });
    });
  }
}

Then you can do something like this in your component's onSubmit handler:
class MyForm extends Component {
...
  handleFormSubmit(data, error) {
    if (error) {
      this.setState({
        formData: data.formData,
        formServerSideError: true
      })
    } else {
      this.setState({
        formData: {},
      });
    }
...
}

Merging this issue back in #197 .


HWP-300: Comment edit history and timestamps

Description
This PR includes the following proposed change(s):

Added moment to app/server packages: https://momentjs.com/

Comment edits are saved along with a timestamp

Creation of communities, posts, and comments includes a time stamp

@ZachBourque @dbarkowsky

Changed references of user.name to user.username
Changed references of first_name and last_name to firstName and LastName
Changed references of refresh_token to refreshToken
These changes are to keep all database fields within a set naming convention (camelCase), and the change of username was to prevent confusion.

Requires
Add 'Requires Attention' label if appropriate.

[ ] Requires an update to the .env file
[ ] Requires adding a file listed in the .gitignore
[ ] Requires an opinion or answer to a question, see comments.
[x] Requires other attention, see below.

If there are any requirements for the developer to make after this PR is merged please list them here.
Remove files from ./mongo/data to remove database data because existing user fields were changed.
@akroon3r Can we purge the database data in OpenShift
@ZachBourque Frontend request bodies and parameters will need to change.
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Refactoring / Documentation
[ ] Version change

if your change is a breaking change, please add breaking change label to this PR
How Has This Been Tested?
Tested register/login/token process after changing mongo schemas.
Tested editing comments to see edit history.
Tested creating new resources to see the timestamp when they were created.
For pull requests that are not just a simple fix, please check that the branch works on your local machine.

[ ] Tested by Zach.
[ ] Tested by Brandon.
[x] Tested by Brady.

Does the change impact or break the Docker build?

[ ] Yes
[x] No

If Yes: Has Docker been updated accordingly?

[ ] Yes
[ ] No

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have made corresponding changes to the documentation
[ ] New and existing unit tests pass locally with my changes
[x] If attention is required by the developer such as updating the .env file, these requirements have been listed.

@akroon3r I'm creating a ticket for you to purge the database data. In the meantime, some endpoints may return errors as the schema was changed.

@dbarkowsky I will also create a ticket for you to update your tests with the changes.


[Discussion][web] Refactoring the web module discussion

Search before asking

[X] I had searched in the issues and found no similar optimization requirement.

Description
No response
Are you willing to submit a PR?

[ ] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Refer to dlink-web for code refactoring with reference to all current functions

code level

Reusable component packaging

Divide folders according to business modules

State management (data flow) is implemented uniformly using dva

Rest of the list pages

Added and modified the unified use of the Modal modal box
Delete Click the primary key to view information Drawer

Interaction between data source and metadata center

New and edit forms use procomponent to achieve layout optimization

Added ds related configuration items in the configuration center

Interactive level

Data development page

Directory tree optimization
overall this page responsive layout
Optimization of job-related buttons and their status determination
The tag below optimizes the layout


When operating, the prompt module "vuesax alpha" does not have an exported member "VsLoadingFn". Do you want to use "import VsLoadingFn from" vuesax alpha "instead? How to solve the problem of inability to compile

In the Vue3.4.15+Ts5.3.0 project,
When operating, the prompt module "vuesax alpha" does not have an exported member "VsLoadingFn". Do you want to use "import VsLoadingFn from" vuesax alpha "instead? How to solve the problem of inability to compile

I'm using "vuesax-alpha": "0.2.0-beta.73",
There is no problem with referenced names, my current solution is in
Add export {VsNotification, VsLoadingFn} from 'vuesax-alpha'; in
\node_modules.pnpm\vuesax-alpha<EMAIL_ADDRESS>to solve the problem

thanks, lets me check again

Have you found the problem, or is it just my personal problem?

i have the same problem.

Thanks, let's try to change compilerOptions.moduleResolution to node in tsconfig.json
this is my config
{
  "compilerOptions": {
    ...
    "moduleResolution": "node",
    "types": ["vuesax-alpha/global"]
  }
}

According to your plan, reinstall the dependencies, clear the cache, and still do so，Module 'vuesax alpha' does not have an exported member 'VsNotification'. Do you want to use "import VsNotification from" vuesax alpha "instead? Ts plugin (2614)

According to your plan, reinstall the dependencies, clear the cache, and still do so，Module 'vuesax alpha' does not have an exported member 'VsNotification'. Do you want to use "import VsNotification from" vuesax alpha "instead? Ts plugin (2614)

try changing compilerOptions.moduleResolution to node in your tsconfig.json

Thanks, let's try to change compilerOptions.moduleResolution to node in tsconfig.json
this is my tsconfig.json
{
  "compilerOptions": {
    ...
    "moduleResolution": "node",
    "types": ["vuesax-alpha/global"]
  }
}

like this

"compilerOptions": {
"composite": true,
"noEmit": true,
"tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
"module": "ESNext",
"moduleResolution": "Bundler",
"types": ["node", "vuesax-alpha/global"]
}
This is my configuration. If it is based on your configuration, it may cause some dependencies to not work properly. Is there a better solution? There is also an issue. When using the VsNotification component, the prompt content passed in is not invalid, but content is the content. However, the example is indeed text. Please update it

can you provide a small repo

When I recreated a demo project, notification was normal, but there were other TS errors

ok

Is this issue been resolved?


Unicode Strings Crashes Prometheus Check on GKE

TLDR; Prometheus metrics containing labels with unicode strings as values make prometheus check to error when it tries to run on GKE.
Additional environment details:
Cloud Provider: GKE
Steps to reproduce the issue:
Environment: GKE cluster with datadog-agent deployed as a daemon set.
I'm running a Go application (ingress-nginx) that uses prometheus/client_golang to expose Prometheus metrics on a HTTP endpoint. I am using auto discovery through pod annotations to enable the prometheus check on this app.  On one of the metrics exposed I'm setting the following labels to reproduce the error:
 requestLabels := prometheus.Labels{
		"path":   "/™¡£¢",
	}

As you can see, I'm setting a unicode string on the path label.
After deploying the application to my Kubernetes cluster I can see on the datadog-agent logs the following error message:
[ AGENT ] 2018-08-14 19:31:51 UTC | ERROR | (runner.go:277 in work) | Error running check prometheus: [{"message": "'ascii' codec can't encode characters in position 1-4: ordinal not in range(128)", "traceback": "Traceback (most recent call last):\n  File \"/opt/datadog-agent/embedded/lib/python2.7/site-packages/datadog_checks/checks/base.py\", line 303, in run\n    self.check(copy.deepcopy(self.instances[0]))\n  File \"/opt/datadog-agent/embedded/lib/python2.7/site-packages/datadog_checks/checks/prometheus/base_check.py\", line 105, in check\n    ignore_unmapped=True\n  File \"/opt/datadog-agent/embedded/lib/python2.7/site-packages/datadog_checks/checks/prometheus/mixins.py\", line 385, in process\n    self.process_metric(metric, **kwargs)\n  File \"/opt/datadog-agent/embedded/lib/python2.7/site-packages/datadog_checks/checks/prometheus/mixins.py\", line 466, in process_metric\n    self._submit(message.name, message, send_histograms_buckets, send_monotonic_counter, custom_tags)\n  File \"/opt/datadog-agent/embedded/lib/python2.7/site-packages/datadog_checks/checks/prometheus/mixins.py\", line 566, in _submit\n    self._submit_gauges_from_histogram(metric_name, metric, send_histograms_buckets, custom_tags, custom_hostname)\n  File \"/opt/datadog-agent/embedded/lib/python2.7/site-packages/datadog_checks/checks/prometheus/mixins.py\", line 634, in _submit_gauges_from_histogram\n    self._submit_gauge(\"{}.count\".format(name), val, metric, custom_tags)\n  File \"/opt/datadog-agent/embedded/lib/python2.7/site-packages/datadog_checks/checks/prometheus/base_check.py\", line 41, in _submit_gauge\n    _tags = self._metric_tags(metric_name, val, metric, custom_tags, hostname)\n  File \"/opt/datadog-agent/embedded/lib/python2.7/site-packages/datadog_checks/checks/prometheus/base_check.py\", line 65, in _metric_tags\n    _tags.append('{}:{}'.format(tag_name, label.value))\nUnicodeEncodeError: 'ascii' codec can't encode characters in position 1-4: ordinal not in range(128)\n"}]

If I remove the unicode string, I start getting the metrics back on the datadog dashboards. Looking at the error above it looks like there is a problem when encoding unicode strings. This might be related to:  https://stackoverflow.com/a/9942822 but I haven't looked at the Prometheus Check implementation.

Hello @fmejia97, and thank you for spotting this!
This issue was fixed with #4073, feel free to let us know if you find something else.

Adding from __future__ import unicode_literals may have unforeseen consequences. The change have been reverted for now. See:

https://github.com/DataDog/integrations-core/pull/4116
https://github.com/DataDog/integrations-core/pull/4115

I'm also reopening this issue.


In oculus browser not detect VR mode only AR Mode

In oculus browser not detect VR mode, only detect AR Mode.
How can I force the VR mode on the Oculus Quest and keep the AR mode enabled on the smartphone?
thx!

As mentioned here, AR takes priority over VR.
As Oculus now supports both, AR is chosen.
https://github.com/Rufus31415/Simple-WebXR-Unity/blob/492fa0893c2b41a7a39207cbc96a76707fa823c6/com.rufus31415.simplewebxr/Runtime/Plugins/WebGL/SimpleWebXR.jslib#L574

Ok. Thanks!
How could I force VR to be activated in the case of Oculus? From unity could?

I suggest you replace the line with the following to force immersive-vr :
    navigator.xr.requestSession('immersive-vr', { optionalFeatures: ['local-floor', 'hand-tracking'] }).then(function (session) {

Thank you! I have already changed it. I've saved, restarted Unity, compiled and it's still detecting AR. Do I have to do something to compile the jslib?

unfortunately it still detects AR.

I just tested this solution and it worked for me. Thanks!


Look at using humaneJS for notifications

Right now we are using our own crappy home-grown notification code. Something like http://wavded.github.com/humane-js/ looks like it may do the trick. Just something to check out.

Looked at and done! It seems fairly fancy.


1369 comment delete

#1369

Pull Request Checklist:

[x] Positive Test Case Written by Dev

[x] Automated Testing

[x] Sufficient User and Developer Documentation

[ ] Passing Jenkins Build

[ ] Peer Code review and approval

Positive Test Case

Login as an admin, find a comment and confirm you can delete the comment.
Login as a resource owner, find a comment on your resource not created by you and confirm you can delete the comment.
Login as a normal user, make a comment and confirm you can delete the comment.
Delete a comment with a comment thread.  Confirm the confirmation message includes messaging about the threaded comments.  When you delete the comment, the thread should not appear either.

@sblack-usu I googled and found is_staff is more limited than is_superuser. From https://stackoverflow.com/questions/20469174/whats-the-difference-between-staff-admin-superuser-in-django, it seems to indicate is_staff gives a user permission to log into admin interface, but may not have permissions unless a superuser assigns permission to staff users. I am thinking this may apply to use cases that a super user gives a staff user limited permission to, for example, only adding or deleting users for user management, but no permission to do other stuff. So I think in our case, using is_superuser may be more appropriate than is_staff for comment deletion. If you agree, you can commit another minor change to use is_superuser. Otherwise, I can just approve this PR since for our uses, we pretty much treat is_staff as a superuser, so they both should work to serve our purpose for now.

@hyi - I updated it to user is_superuser


[AutoDiff] Fix forward-mode crashes related to tangent buffers

Fixes TF-984, SR-13447.
Fixes foward-mode crashed related to:

Missing tangent buffers for non-wrt inout parameters
Tangent buffers not being initialized due to the corresponding
original buffer intialization instructions being non-active
Non-varied indirect results not being initialized
emitDestroyValue crashes due to TangentVector value category mismatch

To me there seems to be a simpler, spot-on fix: For any non-wrt inout parameter that you treat as the result, create an adjoint buffer in the beginning of the function.  The "function-local allocation" fix applied in this patch seems like a big overkill because no other case would need function local allocations.

@swift-ci Please test

Build failed
Swift Test Linux Platform
Git Sha - c8cb01ada4896f515ae93a75cf64188419d23991

Build failed
Swift Test OS X Platform
Git Sha - c8cb01ada4896f515ae93a75cf64188419d23991

@swift-ci Please test


migration rollback: $table->dropForeignIdFor($model, $column) attempts (and fails) to drop wrong column name

Laravel Version: Laravel Framework 9.23.0
PHP Version: 8.1.9 (cli)
Database Driver & Version: 8.0.29 MySQL Community Server - GPL

Description:
$table->dropForeignIdFor($model, $column) in migration attempts (and obviously fails) to drop wrong column name even though the column name (second parameter) is provided.
The issue seems to be with laravel extending the column name on its own going against the behaviour that I would expect.
Namely just dropping the provided column name if a column name is provided (and if not a column that follows laravel naming conventions for the referenced model)
And laravel only produces this unexpected behaviour with the dropForeingIdFor method. The analogue foreignIdFor method with the same arguments creates a column with the correct (provided) column name without adding anything to it.
The issue should be neither with php nor the database.
Steps To Reproduce:

Set up php, Laravel with Sail (including mysql), the db-connection etc.
Add foreignId in the up() method of a migration using the foreignIdFor($model, $column) method and provide both the model as well as the column name like:

public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->foreignIdFor(UserGlobalRole::class, 'global_role_id');
});
}

Add the corresponding dropForeignIdFor($model, $column) to the down method of the same migration with the same model and column as in the up-method like:

public function down()
{
Schema::table('users', function (Blueprint $table) {
$table->dropForeignIdFor(UserGlobalRole::class, 'global_role_id');
});
}

run migration in console (I simply used: sail artisan migrate)

replacing sail with php should have the same effect
if db-connection is correctly set up database shows the column was correctly created under the give column-name 'global_role_id'

roll back last migration in console (I simply used: sail artisan migrate:rollback)

again: replacing sail with php should have the same effect if the db connection is set up
attempts to drop column 'users_global_role_id_foreign' even tho I handed over the column name 'global_role_id' and it throws error in command line like:

Illuminate\Database\QueryException
SQLSTATE[42000]: Syntax error or access violation: 1091 Can't DROP 'users_global_role_id_foreign'; check that column/key exists (SQL: alter table users drop foreign key users_global_role_id_foreign)
at vendor/laravel/framework/src/Illuminate/Database/Connection.php:759

changing the column name in step 2 or the table name (to another already existing table) results in the same error but attempting to drop a changed column following the pattern:
{table}_{column}_foreign while it should just be column
if no column is provided (or null), column will simply default to laravel naming conventions but still following the same pattern:
-> {table}_{model_name}_id_foreign while this as well should only be {model_name}_id

Heya, thanks for reporting.
We'll need more info and/or code to debug this further. Can you please create a repository with the command below, commit the code that reproduces the issue as separate commits on the main/master branch and share the repository here? Please make sure that you have the latest version of the Laravel installer in order to run this command. Please also make sure you have both Git & the GitHub CLI tool properly set up.
laravel new bug-report --github="--public"

Please do not amend and create a separate commit with your custom changes. After you've posted the repository, we'll try to reproduce the issue.
Thanks!

Yes this indeed seems like an issue. But I think we won't be able to change this on a minor/patch release without breaking apps. I think the correct line there should be:
return $this->dropForeign($column ?: [$model->getForeignKey()]);

Otherwise you can't provide a literal column like you're trying to do. The type should then be string|array|null.
We'd welcome a PR to master to change this.

Here's the original PR btw: https://github.com/laravel/framework/pull/40950

We'd welcome a PR to master to change this.

I'll give that a go this afternoon if no one else picks it up.

Digging into this @driesvints, I suspect there's a bit more to it that we need to look into. Want me to create a new issue for a discussion about it?

What's up?

I think it's all just very unclear @driesvints. There isn't a bug, the method dropForeignIdFor only drops the index, but no index is created unless you call references() or constrained() on the foreignIdFor() definition.
I think @silas-prototype has made the very easy to make mistake of assuming that dropForeignIdFor is the counterpart for foreignIdFor.

Right. In that case we'd appreciate a PR to the docs if someone wants to.


Mollie in loading modal

What say you, @michaelsena ?

Seems like a good idea. Ideally we make the losing modal a bit smaller overall too :)


Added xdb.Time Now and FromNow

Coverage increased (+0.1%) to 85.669% when pulling a30ee522d6877aa1295a8635c2737819214f8f10 on dissoupov into dd09c6d7183482c738ea5d28b477ab5d04de2409 on main.


DialogueRunner startAutomatically crashes

What is the current behavior?
If you are using the DialogueRunner.cs component and turn on startAutomatically, it will throw an error and fail to run. See callstack:
InvalidOperationException: visited is not a valid function
Yarn.Library.GetFunction (System.String name) (at <ea7944590845437f86a978879988482b>:0)
Yarn.VirtualMachine.RunInstruction (Yarn.Instruction i) (at <ea7944590845437f86a978879988482b>:0)
Yarn.VirtualMachine.Continue () (at <ea7944590845437f86a978879988482b>:0)
Yarn.Dialogue.Continue () (at <ea7944590845437f86a978879988482b>:0)
Yarn.Unity.DialogueRunner.ContinueDialogue () (at Assets/Vendor/YarnSpinner/Runtime/DialogueRunner.cs:918)
Yarn.Unity.DialogueRunner.<StartDialogue>g__RunDialogue|22_0 (Yarn.Unity.DialogueRunner+<>c__DisplayClass22_0& ) (at Assets/Vendor/YarnSpinner/Runtime/DialogueRunner.cs:259)
Yarn.Unity.DialogueRunner.StartDialogue (System.String startNode) (at Assets/Vendor/YarnSpinner/Runtime/DialogueRunner.cs:248)
Yarn.Unity.DialogueRunner.StartDialogue () (at Assets/Vendor/YarnSpinner/Runtime/DialogueRunner.cs:235)
Yarn.Unity.DialogueRunner.Start () (at Assets/Vendor/YarnSpinner/Runtime/DialogueRunner.cs:545)

Please provide the steps to reproduce, and if possible a minimal demo of the problem:
Set up the DialogueRunner in the Inspector as shown:

(Note that I am using a custom DialogueUIBehaviour but that is unrelated to this issue. DialogueUI.cs will suffice)
Run the program and you will note that the error appears in the console and the story does not properly execute.
If you modify DialogueRunner.cs at line 544 from:
if (startAutomatically) {
    StartDialogue();
}

to
            if (startAutomatically) {
                StartCoroutine(WaitThenStartDialogue());
            }
        }

        private IEnumerator WaitThenStartDialogue()
	{
            yield return null;
            StartDialogue();
        }

then it will behave as expected.
What is the expected behavior?
startAutomatically should start the Story automatically without errors.
Please tell us about your environment:

Yarn Spinner Version: 1.2.6
Unity Version: 2020.1.15f1

It seems that during the first frame, perhaps something is not properly loaded yet. However, I am unsure if my solution is a good solution or just a bandaid over a deeper issue. And still perhaps waiting a frame is the correct solution, but there should at least be a more human understandable error to let the user know not to run dialogue immediately.

hello, this is addressed in PR #75 and now awaiting review for merging into v2.0.0 ... thanks for the bug report!


create the nuget package

[ ] Templates in sync

[x] Correct page titles
[x] gitignore
[ ] readme ?
[ ] ...

[x] Better template names, descriptions
[ ] Better template icon.  (Current one renders wonky in VS)
[x] Ensure prerelease flags set where needed
[ ] ...

only specific issue remaining here is the icon thing https://github.com/McNerdius/TailBlazor-Templates/issues/21


Add Mummy as template undead

Have ability to have character-based mummies (as well as the normal kind).  This will allow for "Mummy Lords".  This will probably require adding Mummy as a metarace type to CharacterGen

This is being done within #16, with the enhancement to CharacterGen


speeding up downloading media

Hello everybody
I am using the wTelegramBot.
at first I think there was error for some videos for security reasons but then it was solved.
Now I am asking if there is a way to speed up the download especially that my account that created the bot is premium account.
Sometimes I am getting only 5mbps download speed of 100 mbps bandwidth.
Is there a way to speed up the downloading media using the bot.
I am using
await using Stream fileStream = System.IO.File.Create(destinationFilePath);
var file = await bot.GetInfoAndDownloadFile(videoFileId, fileStream);
for downloading.
all help is very appericiated
Regards

sometime it will stuck on downloading and will not complete executing the next command which is sending an email.
any new updates
I updated to the new version and still having same slow download speed.
regards

thx @wiz0u
Best regards

There was some issues before, download were not always properly done on media DCs. And for media on your main DC it was never on a media DC.
Now all downloads should happen on media DC so theoretically it should be faster, and TCP connection not be encumbered with other messages like incoming Updates or unrelated API requests/responses

after I updated to the latest stable 7.7.1
I got the following error:
CS0117	'Bot' does not contain a definition for 'AllUpdateTypes'
using
var updates = await bot.GetUpdates(offset, 100, 1, WTelegram.Bot.AllUpdateTypes);
to get updates and fetch videos in them

it is working like a charm thanks a lot.
Many Many thanks
Best regards.


Cav 61

please can you squash the commits into a single one?

there are also conflicts, I believe you need to rebase with latest changes from origin

looks like there are some merge conflicts, rebase required


Added links/ small edits

Changed shorts link to timestamp from vod, changed "push back against" because it was just used in previous sentence, added clip of clause for riots against private businesses, and fixed my mistake on timestamp.

It should all work now. Sorry if I messed anything up.


Expose generated preview html for usage in CAP projects with cds-plugin-ui5

This enhancement makes use of the new hook of the cds-plugin-ui5 https://github.com/ui5-community/ui5-ecosystem-showcase/issues/785.
I tested locally with https://github.com/tobiasqueck/ui5con2023/tree/preview-middleware by simply copying the dist folder of the preview-middleware into the node_modules/@sap-ux/preview-middleware/dist folder of my test project and everything worked as expected.

@tobiasqueck @zdravko-georgiev as discussed, we need to make sure the generated mount points have precedence over existing files if specified by the middleware.

@tobiasqueck @zdravko-georgiev as discussed, we need to make sure the generated mount points have precedence over existing files if specified by the middleware.

While I agree, that is unrelated to this fix ;)


Grant alecharp maintainer permission on Google Metadata plugin

Description

I ask on the mailing list to become a maintainer on the Google Metadata plugin.
I also pinged @tcnghia to make sure this request didn't go un-noticed by the current maintainer of the plugin.
I also would need to get merge permission on the repository.
Submitter checklist for changing permissions

Always

[x] Add link to plugin/component Git repository in description above

When adding new uploaders (this includes newly created permissions files)

[x] Make sure to @mention an existing maintainer to confirm the permissions request, if applicable
[x] Use the Jenkins community (LDAP) account name in the YAML file, not the GitHub account name
[x] All newly added users have logged in to Artifactory at least once

Merge permission to GitHub repository

[x] Check this if newly added person also needs to be given merge permission to the GitHub repo.

/lgtm


Stark documentation FAQ

Description
Frequently asked questions section for the stark prover documentation
Type of change

[x] Documentation

Codecov Report

Merging #214 (6441909) into main (6ee9655) will decrease coverage by 3.41%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #214      +/-   ##
==========================================
- Coverage   95.58%   92.17%   -3.41%
==========================================
  Files          62       66       +4
  Lines        6837     7208     +371
==========================================
+ Hits         6535     6644     +109
- Misses        302      564     +262

see 18 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


fix: Wrong page when navigating back from access level page

Explanation of Change

Fixed Issues

$ https://github.com/Expensify/App/issues/52904
PROPOSAL: https://github.com/Expensify/App/issues/52904#issuecomment-2491201140
Tests

Go To Security Page
Add Copilot
Click on any user
Click on "FULL" access
Click on access level row
Click back button
Verify that: The App navigate to confirmation page

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

Offline tests

same as above
QA Steps

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

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

PR Author Checklist

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

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

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

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

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

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

[x] If any non-english text was added/modified, I used JaimeGPT to get English > Spanish translation. I then posted it in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

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

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

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

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

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

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

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

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] I added unit tests for any new feature or bug fix in this PR to help automatically prevent regressions in this user flow.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/user-attachments/assets/f0859292-2628-44ea-bbff-ed0aa34a32ed

Android: mWeb Chrome

https://github.com/user-attachments/assets/7f842aa3-4fa1-4543-a758-a7111cc0c275

iOS: Native

https://github.com/user-attachments/assets/73a67d24-b8da-4f5a-ace4-2d90fa23079f

iOS: mWeb Safari

https://github.com/user-attachments/assets/c1e29a27-6b9e-4a19-8f3a-0500329dca45

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/b06f6b03-81f1-43f0-8268-0b76bc81c0d0

MacOS: Desktop

https://github.com/user-attachments/assets/d477c0ff-e463-49b4-9d16-c491cc70bd30

@nkdengineer Please merge the latest main and build again

Thanks @DylanDylann, I updated the screenshots. Please move forward

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[x] I checked that screenshots or videos are included for tests on all platforms
[x] I included screenshots or videos for tests on all platforms
[x] I verified tests pass on all platforms & I tested again on:

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

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

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

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

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

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

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

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

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

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

https://github.com/user-attachments/assets/7a13da74-6171-4216-a046-063c0a9198c8

iOS: Native

Uploading Screen Recording 2024-12-11 at 16.43.42.mov…

iOS: mWeb Safari
https://github.com/user-attachments/assets/0d3834fb-bb82-46e0-879b-791f6bfee284

MacOS: Chrome / Safari

https://github.com/user-attachments/assets/67b0bab4-09af-4a36-a099-920d13cf67f0

MacOS: Desktop
https://github.com/user-attachments/assets/7c8eac09-7238-4915-8635-5f6378c68c53

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.


MongoDB embedding shows a wrong error type

Bug description
I've decided to try embedding mongodb documents with the new update, however, when the transaction cannot pass the error shows the wrong error type. The error was in the different type of mutation data and the schema's type, however, the error shows that it cannot find the document that I'm trying to create.
How to reproduce

Install prisma with mongodb with the schema described below.
Create new document with mutation:

prisma.submission.create(
{
  data: {
    studentId: '62af1f5934486d50e3167535',
    blockId: '62af1f05f03ee66298116424',
    data: {
      dataCode: {
      ~~~~~~~~
        code: 'x = 10',
        codeOutput: {
          stdout: '10\n',
          stderr: '',
          status: 1 // here it should be true, not 1
        }
      }
    },
    success: true
  }
}
)

Get error:

error - Error:
Invalid `prisma.submission.create()` invocation:
{
  data: {
    studentId: '62af1f5934486d50e3167535',
    blockId: '62af1f05f03ee66298116424',
    data: {
      dataCode: {
      ~~~~~~~~
        code: 'x = 10',
        codeOutput: {
          stdout: '10\n',
          stderr: '',
          status: 1 // here it should be true, not 1
        }
      }
    },
    success: true
  }
}

Unknown arg `dataCode` in data.data.dataCode for type SubmissionDataCreateEnvelopeInput. Did you mean `set`? Available args:
type SubmissionDataCreateEnvelopeInput {
  set?: SubmissionDataCreateInput
}

If the type of the status is the same as in schema (Boolean), everything works fine.

Expected behavior
It should give a different error, not Unknown arg 'dataCode' in .... It should to be that the variable has a different type in the embedded document.
Prisma information

Prisma library:
import { PrismaClient } from '@prisma/client';

// eslint-disable-next-line import/no-mutable-exports
let prisma;

if (process.env.NODE_ENV === 'production') {
  prisma = new PrismaClient();
} else {
  if (!global.prisma) {
    global.prisma = new PrismaClient();
  }
  prisma = global.prisma;
}

// Some non-related middleware

export default prisma;

Schema snippet:
model Submission {
  id        String         @id @default(auto()) @map("_id") @db.ObjectId
//  createdAt DateTime       @default(now())
//  updatedAt DateTime       @updatedAt
//  student   Student        @relation(fields: [studentId], references: [id])
//  studentId String         @db.ObjectId
//  block     Block          @relation(fields: [blockId], references: [id])
//  blockId   String         @db.ObjectId
  data      SubmissionData
  success   Boolean

//  @@unique([studentId, blockId])
}

type SubmissionData {
  dataQuiz SubmissionQuiz?
  dataCode SubmissionCode?
}

type SubmissionQuiz {
  guess Json
}

type SubmissionCode {
  code       String
  codeOutput CodeOutput
}

unused 'columns' were commented out.
Environment & setup

OS:  OpenSUSE Tumbleweed
Database:  MongoDB
Node.js version:  v16.15.0

Prisma Version
prisma                  : 3.15.1
@prisma/client          : 3.15.1
Current platform        : debian-openssl-1.1.x
Query Engine (Node-API) : libquery-engine 461d6a05159055555eb7dfb337c9fb271cbd4d7e (at node_modules/.pnpm/@prisma+engines<EMAIL_ADDRESS>Migration Engine        : migration-engine-cli 461d6a05159055555eb7dfb337c9fb271cbd4d7e (at node_modules/.pnpm/@prisma+engines<EMAIL_ADDRESS>Introspection Engine    : introspection-core 461d6a05159055555eb7dfb337c9fb271cbd4d7e (at node_modules/.pnpm/@prisma+engines<EMAIL_ADDRESS>Format Binary           : prisma-fmt 461d6a05159055555eb7dfb337c9fb271cbd4d7e (at node_modules/.pnpm/@prisma+engines<EMAIL_ADDRESS>Default Engines Hash    : 461d6a05159055555eb7dfb337c9fb271cbd4d7e
Studio                  : 0.462.0

Hi guys, i have a similar issue.
In my prisma schema definition, i have a model that has an embedded document as field using type definition. That type definition has a field like String[]:
model myModel {
id             String                          @id @default(auto()) @map("_id") @db.ObjectId
info        MyType
}
type MyType {
field         String[]
}
so, in playgroud when i try to create a new MyModel Document i have to use a mutation similar to this:
mutation {
createMyModel(
data:{
info:{set:["s1"]}
})
}
but, prisma show me this error message:
The current database provider doesn't support a feature that the query used: Unhandled and unsupported value mapping for MongoDB: { "set": [String("s1")] } as String."
if i change the field type from String[] to Json there aren't problem.
I really appreciate your help

if i change the MyType definition to
type MyType {
field Json
}
i don't have any problems but that's not an option if you will has a typed code

Next step: Reconfirm bug again with most recent Prisma version, compare error message according to https://github.com/prisma/team-orm/issues/222.


matlab library error with spm

docker run --rm kaczmarj/neurodocker:0.4.1 generate docker     --base debian:stretch \
   --pkg-manager apt --spm12 version=r7219 --vnc passwd=localtest | docker build -t spmvnc -

# /opt/spm12-r7219/run_spm12.sh /opt/matlabmcr-2010a/v713/ script
My Own Exception: Fatal error loading library /opt/matlabmcr-2010a/v713/bin/glnxa64/libmwmclmcr.so
Error: libncurses.so.5: cannot open shared object file: No such file or directory

this works for creating a desktop to use with spm batch
docker run --rm kaczmarj/neurodocker:0.4.1 generate docker     --base debian:stretch \
  --pkg-manager apt --install libglib2.0-0 libxext6 libsm6 libxrender1 wget libncurses5 \
  --spm12 version=r7219 --vnc passwd=localtest start_at_runtime=True geometry=1920x1080 \
  --run-bash "wget ftp.us.debian.org/debian/pool/main/libx/libxp/libxp6_1.0.2-2_amd64.deb" \
  --run-bash "dpkg -i libxp6_1.0.2-2_amd64.deb" --install xterm openbox | docker build -t spmvnc -

but i don't know which of the installs are essential

this command installs spm using matlab command runtime and sets up a desktop you can connect to using a vncviewer.
docker run --rm kaczmarj/neurodocker:0.4.1 generate docker     --base debian:stretch \
  --pkg-manager apt --install libglib2.0-0 libxext6 libsm6 libxrender1 wget libncurses5 \
  --spm12 version=r7219 --vnc passwd=localtest start_at_runtime=True geometry=1920x1080 \
  --run-bash "wget ftp.us.debian.org/debian/pool/main/libx/libxp/libxp6_1.0.2-2_amd64.deb" \
  --run-bash "dpkg -i libxp6_1.0.2-2_amd64.deb" --install xterm openbox | docker build -t spmvnc -

and  then to run spm, run the container
docker run --rm -it -p 5901:5901 spmvnc

# /opt/spm12-r7219/run_spm12.sh /opt/matlabmcr-2010a/v713 batch

and then from outside connect with a vncviewer to localhost:5901

@satra - do you know if this is still an issue? should we investigate it?

i think this may have been partially was addressed in #220. i would close this for now.