Zetas- Ram crashes dask (GPU/CPU)

Hi, Thank you for your  hard work.
I am evaluating 2d  zetas(twisted with harmonic polynomials): the lemniscate.
just sum over x,y for (x^4 - 6. * x^2 * y^2 + y^4)/(x^2+y^2)^4
I can do this in numba/cython/c/cuda up to 10**12 terms (1 000 000,1 000 000)
Now, with dask,  it crahes my WSL completly even for small values (100 000,100 000)
Here the GPU code (the CPU is just Client)
############################################
import numpy as np
import cupy as cp

import dask.array as da
import dask

from dask_cuda import LocalCUDACluster
from dask.distributed import Client

cluster = LocalCUDACluster()
client = Client(cluster)
client

def zet(x,y):
    return ((x+1)**4 -6.*((x+1)**2)*((y+1)**2) + (y+1)**4)/((x+1)**2+(y+1)**2)**4

with dask.config.set({"array.backend": "cupy"}):
    xg = da.fromfunction(zet,shape=(50000,50000),dtype="float64")

%time xg.sum().compute()

############################################
It crahes for higher values of shape (100000,100000). Also when I put some higher values
of chunks (i have 6G gpu), it crashes.
The RAM consumption increases then it craches and the WSL terminal disapper
system:

└─$ pip list|grep dask
dask                         2024.9.0
dask-cuda                    24.12.0a7
dask-cudf-cu12               24.12.0a188
dask-expr                    1.1.14
rapids-dask-dependency       24.12.0a6
#################################
cuda-python                  12.6.0
cudf-cu12                    24.12.0a188
cupy-cuda12x                 13.3.0
dask-cuda                    24.12.0a7
dask-cudf-cu12               24.12.0a188

libcudf-cu12                 24.12.0a188
numba-cuda                   0.0.17
nvidia-cublas-cu12           <IP_ADDRESS>
nvidia-cuda-cupti-cu12       12.6.80
nvidia-cuda-nvcc-cu12        12.6.77
nvidia-cuda-runtime-cu12     12.6.77
nvidia-cudnn-cu12            <IP_ADDRESS>
nvidia-cufft-cu12            <IP_ADDRESS>
nvidia-cusolver-cu12         <IP_ADDRESS>
nvidia-cusparse-cu12         <IP_ADDRESS>
nvidia-nccl-cu12             2.23.4
nvidia-nvcomp-cu12           <IP_ADDRESS>
nvidia-nvjitlink-cu12        12.6.77
pycuda                       2024.1.2
pylibcudf-cu12               24.12.0a188
pynvjitlink-cu12             0.3.0
rmm-cu12                     24.12.0a16

Over kali/Ubuntu22  WSL
Device 0: "NVIDIA GeForce GTX 1660 Ti with Max-Q Design"
  CUDA Driver Version / Runtime Version          12.7 / 12.6
  CUDA Capability Major/Minor version number:    7.5
  Total amount of global memory:                 6144 MBytes<PHONE_NUMBER> bytes)

My system:
Ryzen 7/4800  16GB RAM
Win 11

Any help will very much appreciated.
Thank you.

sorry: the editor refactor my code and removed spaces.

@dask/gpu

If I understand correctly from your code, it seems the data you're generating is shape=(50000,50000),dtype="float64", is that correct? This is 20GB where you have a 6GB GPU, that will not fit.

But chunks will divide and distribute
first: i put
with dask.config.set({"array.backend": "cupy"}):
xg = da.fromfunction(zet,chunks=(5000,5000),shape=(50000,50000),dtype="float64")
But then i found , if i remove chunks , dask wwill chose smaller chunks.
Both cases, with chunks=(5000,5000) and without chunks (leave dask to chose suitable usually smaller),
both cases crachs once  i go for higher shape.
I understand chunks is the important not shape.

Yes, it will divide and distribute if you have multiple workers where to distribute that, in your case you have one worker (one GPU) so it cannot be distributed anywhere else. The same applies for your CPU, if you don't have at least 20GB free it will crash.
If you have small enough chunks, you may be able to still get it working if you have at least enough disk space to fit the problem if you specify --memory-limit (for CPU) and --device-memory-limit (for GPU), but it will of course be much slower as data has to be moved around.

dask/gpu

sorry, what does it mean?!

Just tagging the GPU group to respond, since you were asking about a GPU use case.

There are two Rams GPU-RAM, i haven't seen problems,
CPU-RAM makes me for me whenit shouldn't.
i have used up to chunks=(15000,15000), it offloads the GPU completley(=6GB)
The data is  cupy GPU array, Dask should not generate CPU array.
JUST generate cupy (chunk) GPU array, sum them over the GPU and collect
the whole sum latter.
I understand that Dask can handle Terra bytes of data by suitable chunksize them
over the GPU/CPU.

OK, If i am doing something terribley wrong.
How to sum this series
sum_{x,y=1}^{x,y=1 000 000} {(x^4 -6*x^2 y^2 + y^4)/(x^2+y^2)^4}
over the gpu, by chunksize it up say chunks=(10000,10000).
Thank you, you should add explicit example in the maual for  da.fromfunction.
IT  is top important for math/physics.

I understand that Dask can handle Terra bytes of data by suitable chunksize them
over the GPU/CPU.

Thanks for the issue @kh-abd-kh  - Yes, you should be able to process this amount of data using a single/GPU as long as a single "chunk" fits comfortably in memory (probably ~1/8 single-GPU memory or less).
It seems like the fromfunction algorithm/implementation is attempting to hold a lot of data in memory at once. I will try to learn a bit more about this function (how it works) before I say whether or not there is a good solution (or work-around).

Thank you guys for reformating up my code.
another implicit issues that i faced,
a)
xg = da.fromfunction(zet,shape=(50000,50000),dtype="float64")
generated numpy array. shouldn't be  cupy array with  LocalCUDACluster()
by default ?! instead of forcing it by
with dask.config.set({"array.backend": "cupy"}):
b)
Also, if i used big chunks bigger than my gpu-ram, it simply and correctly
quit with a logical message(out of memory, trying to allocate ...  )
but here no message not abort and complete cpu-ram crashes
c)
And please put some gpu-cupy examples other than the random generated ones.
and emphasis the "dask.config.set({"array.backend": "cupy"}):"
case.
Thank you a lot. sorry, for being more math/phys  oriented.
But, i find dask should be useful and more usable with math.

shouldn't be cupy array with LocalCUDACluster() by default ?! instead of forcing it by with dask.config.set({"array.backend": "cupy"}):

No, the data API (i.e. Dask Array) and the API you use for cluster deployment (Dask-CUDA) are unrelated. Dask-CUDA just does some extra work for you to make sure your workers each have access to a distinct GPU (Dask-CUDA workers also have other nice features for host->device spilling).
With that said, I do think it would make sense for there to be a coordination between Worker-resource types and the data-API backend. I'm personally very interested in working on this, but I'd expect it to take time.

Also, if i used big chunks bigger than my gpu-ram, it simply and correctly
quit with a logical message(out of memory, trying to allocate ... )
but here no message not abort and complete cpu-ram crashes

The out-of-memory error is not coming from Dask when cupy is used. Dask/Distributed will simply bubble-up whatever errors the backend produces. Maybe cupy (or maybe RMM) is throwing a more useful error than Numpy is in this case?

And please put some gpu-cupy examples other than the random generated ones.
and emphasis the "dask.config.set({"array.backend": "cupy"}):"
case.

Thanks for the suggestion - You are absolutely correct that the GPU-related documentation is lacking. The best way to improve the documentation is to contribute new examples (or raise issues like you're doing right now - thanks!).

Thank you, very much.
To be honest, I found it is difficult to figure out what is dask  and what is dask-cuda
and their hidden inter-relation with numpy-cupy.
It took a couple of hours googling and trying out different codes to find  this
with dask.config.set({"array.backend": "cupy"}):
you, guys, should include it in the first line of your dask -gpu
docs.dask.org/en/stable/gpu.html
and, also
examples.dask.org/index.html
and more proper in
docs.rapids.ai/api/dask-cuda/nightly/index.htm
Many-thanks.

@kh-abd-kh - I had a chance to experiment with your reproducer today. I don't have access to a 6GB GPU, but I tried to artificially reduce the memory limit to "mimic" your system.
I think the key to good performance in your use case is [`jit_unspill=`True`](https://docs.rapids.ai/api/dask-cuda/stable/spilling/#jit-unspill). I seem to get reasonable performance for `shape=(100_000, 100_000)` with the following `LocalCUDACluster` code:
cluster = LocalCUDACluster(
    device_memory_limit=0.6,  # I set to "4GB" to "mimic" your system
    rmm_pool_size=0.8,  # I set to "5GB" to "mimic" your system
    jit_unspill=True,  # This seems to be the most important argument!
)

Performance improves a bit with larger chunks sizes. For example, using chunks=(8192, 8192) will reduce the number of tasks and improve GPU utilization compared to chunks=(4096, 4096). However, we do want the chunks to be small enough for the Dask-CUDA worker to easily spill and unspill the data if needed.
Let me know if this helps at all. Thanks again for engaging!

You are THE MAN.
jit_unspill=True
solved  the problem. No more cpu-ram problems ot crashes.
I shall return to you later with a full report.
Now, I am playing with the 100_000, 200_000. Of course somoone like you should have noticed
that this is the complex generalization of the euler zeta. Now, I am playing also, with the 4d quaternionic
case. I shall return to you with a breif report including some nice graphs.
And, I promise to write up some few page so take whatever you like to your manuals.
Amazing, we have dask-gpu-solved what Gauss had calculated ~1793 and remained unknown
untill Klein published Gauss private diary in 1913!
I shall be back and sorry for making you work in the weekend.
PS: what is the equivalent magic trick for dask-cpu?

To be honest, I found it is difficult to figure out what is dask and what is dask-cuda and their hidden inter-relation with numpy-cupy. It took a couple of hours googling and trying out different codes to find this with dask.config.set({"array.backend": "cupy"}):

I'm sorry to hear this 😕 digging through the documentation you called out, I can definitely see how the setting of array.backend (or dataframe.backend) would be unclear.

docs.dask.org/en/stable/gpu.html

It looks like the code snippets used here don't reflect more recent work around backend dispatching; I'd argue that they could probably be updated to resemble the snippets in the collection backend docs, so maybe something like:
import dask
import dask.array as da

x = da.ones(10, chunks=(5,))  # Creates numpy-backed collection

with dask.config.set({"array.backend": "cupy"}):
    y = da.ones(10, chunks=(5,))  # Get cupy-backed collection
    gpu_x = x.to_backend()  # Moves numpy data to cupy

And something similar for dataframes.

examples.dask.org/index.html

This one is a little tougher, since my understanding is that the examples here are also intended to be run on a Binder spun off from dask/dask-examples, which imposes some limitations that I could imagine make it difficult to trivially contribute compelling modern GPU examples to the repo. That being said, it could be worth revisiting how often people spin up the Binder versus checking the HTML versions of the notebooks at examples.dask.org to get a sense of if these limitations are still worthwhile.

docs.rapids.ai/api/dask-cuda/nightly/index.html

Looking at this page, I feel like the problematic statement is perhaps

While Distributed can be used to leverage GPU workloads through libraries such as cuDF, CuPy, and Numba, Dask-CUDA offers several unique features unavailable to Distributed...

In that it doesn't necessarily make clear how cuDF and CuPy can be used directly with Distributed - maybe a better way to phrase this that emphasizes the collection backend dispatching would be

While Distributed can be used to leverage GPU workloads by setting the collection backend to a GPU library that interfaces with Dask, such as cuDF or CuPy...

That being said, I could see someone following the link to our collection backend docs with intent to learn more about cuDF getting confused since there isn't an example of setting dataframe.backend there, so might be good to add a similar example to the one above for dataframes:
import dask
import dask.dataframe as dd

ddf1 = ...  # Creates pandas-backed collection

with dask.config.set({"dataframe.backend": "cudf"}):
    ddf2 = ...  # Get cudf-backed collection
    gpu_ddf1 = ddf1.to_backend()  # Moves pandas data to cudf

(Don't mean to hijack the issue 😉 just trying to form some substantive action items from your valid comments)

I am sorry to disapoint you and i am grateful for your reply. Thank you for helping me learning dask.
My backgroung = physics/math- multi-genus (Riemann Surface) solitons solutions
I have solved this problem already using cython/numba.openACC(nvc++)
and i hoped dask will be better or more uniform.
i can't figure out the correct relation between chunk size and performance.
It is more or less trial/error from my part.
In the complex case, the chunks=(8192,8192),shape=(250_000,250_000)
leads to 961 chunks in 6 layers. it finished in 15 min.
the 4d case is more interesting
chunks=(96,96,96,96),shape=(384,384,384,384) leads to 256 chunks in 10 layers.
I haven't yet tried the 8d which is more exciting Numba fails to give correct results!!!!
Numba and Cython, in general,  can do better, the gpu case nvc++ is much better than numba/cython.
It is clear i am missing many things. about how to fine-tune dask and making faster, making it works
is not enough for me.
Thank you for your constructive comment, i shall read it carefully.
PS: i am still stuck with cpu case.

My main motiviation is to have a dask hyprid systam
a) wsl ububtu 22, where i am running dask inside dask shell,i.e i plan
to use dask with sage ( https://www.sagemath.org ) and pari (  https://pari.math.u-bordeaux.fr/download.html )
b) wsl kali, where cuda tools and nvdia hpc sdk are installed, and i am running dask-cuda
i.e and i hope somehow latter to make them talk and offloading the cpu and the gpu at the same time.
For now i am grateful to rick for solving the gpu part of the problem. The dask-cpu still open.
It seems now, there are some dask performance issue. Why numba/cython/nvc++ are much faster?
Is there some way to make dask faster?

A little word about the manuals, third-world countries are not online i.e it is
always nice to have a full pdf version.

It seems for the dask-cpu,i am running against unmanaged memory problems.
https://blog.dask.org/2021/11/02/choosing-dask-chunk-sizes
https://www.coiled.io/blog/tackling-unmanaged-memory-with-dask
Thank you guys for your help.

PS: what is the equivalent magic trick for dask-cpu?

I don't think there is a cpu equivalent for jit_unspill=True. However, I don't think I fully understand why that option is helping so much on Dask-CUDA workers anyway (@madsbk might have some insight).
For the cpu case (with LocalCluster), it seems a bit easier to tune the memory management (docs here) with threads_per_worker=1. This way, you can set a specific memory limit on each worker, and that worker will only execute one task at a time (this is essentially what threads_per_worker=1 means). For example, if you have 16GB of RAM, and want to use 4 workers, you might try something like:
dask.config.set({"array.backend": "numpy"})
cluster = LocalCluster(
    n_workers=4, # Set an explicit worker count (just to be sure of "total" memory limit)
    memory_limit="4GB",  # This is the limit per-worker. You could also set this a bit lower to make sure you stay under 16GB
    threads_per_worker=1,  # This reduces concurrency, but makes memory-management easier to tune
)

Thank you again, i shall try tonight and come back later.

Wow, you gave me the hint, in the page refered up in your reply. It is mentioned that the cpu problem
is over Linux. But i have win11 and dask-cpu is installed.
Now, I ran 7 worker from win11 with ram limit 2G + dask-cuda from wsl kali
Amaizing total cpu-ram is under 10G (when i start it is 6G) and both of them at the same time  done the 4d
case
xc = da.fromfunction(zet4,chunks=(64,64,64,64),shape=(256,256,256,256),dtype="float64")
for chunk 128.0 MB and total array 32GB.
Now, i shall their performance and higher values for the 2d and 4d and see how the 8d can
work 8 sums amounts to N^8 for N=100 shall be 10 Thousands Trillion term each float64. Only could nvc++
could finished this one in 30-40 mins.
i shall return later.

i forget to mention the numbers
for the gpu finished in
CPU times: user 18.9 s, sys: 4.1 s, total: 23 s
Wall time: 2min 7s
array(-0.00785531)
for the cpu finished in
CPU times: total: 38 s
Wall time: 2min 57s
-0.007855309429094112
the gpu alone
CPU times: user 3.99 s, sys: 1.09 s, total: 5.07 s
Wall time: 1min 30s
array(-0.00785531)

for my configuration, i use :
jupyter lab --no-browser
one from win11 and another from wsl/kali
and then i collect them from win11 edge two running kernels with different two different dask
one cpu and the other is gpu. Now, the cpu is just 6 workers to give enough room for the gpu.

Now, is it possible to use dask to distribute the same calculation between the two client A+B?
A- dask-cpu over win11
B- dask-gpu over wsl/kali
Since the dask-gpu seems to be faster can i do it (40/60)%  load?

Now, is it possible to use dask to distribute the same calculation between the two client A+B?

No, not out-the-box :/ Dask-CUDA assigns one worker per GPU.
We have discussed a mixed execution model, like you suggest, but I don't think it was implemented.

Yes, after few trials, i understand, it needs higher level of abstractation.
Dask translates the code into gpu and cpu.  it is  needed some fusion of numpy/cupy
which looks like possible.
But, you know in my case it is easy, just one line of code
with dask.config.set({"array.backend": "cupy"}):
or
with dask.config.set({"array.backend": "numpy"}):
They are two different clients: A) cpu B) gpu
Actualy, with dask miracle: one win11 and another wsl/kali/ubuntu
we ,at least, doubled the performance.
can i distribute the code (40cpu/60gpu)%  between A) and B) ?

By the way i forget to mention that when i ran two clients
one from win11 and anther from wsl/kali . It is ok no ports conflict.
In the the earlier case ws/unbuntu22 and wsl/kali, there were some ports conflicts but
no harms.


NetworkedMultiplayerENet::close_connection complains if there is no connection

Godot version
3.3.1-stable
System information
Fedora 34 Linux (x86_64)
Issue description
Not sure if this is a documentation bug or an engine bug, but the behavior of NetworkedMultiplayerENet::close_connection doesn't match with what's documented.
The documentation says:

Closes the connection. Ignored if no connection is currently established. If this is a server it tries to notify all clients before forcibly disconnecting them. If this is a client it simply closes the connection to the server.

However, when I call close connection when there is no connection I see a c++ error printed in the console:

ERROR: close_connection: The multiplayer instance isn't currently active.
At: modules/enet/networked_multiplayer_enet.cpp:458.

Steps to reproduce
Call NetworkedMultiplayerENet::close_connection before establishing a connection.
Minimal reproduction project
No response

This is likely a documentation issue, and can be fixed by modifying the description in the class reference XML.


Clarify relationships between set, add push and unshift

Closes #3496. I moved some of the documentation for Collection.add to Collection.set and added documentation on sorting, so that the latter now gives a complete overview of the options, return value and events. I added a reference from Collection.add to Collection.set and from Collection.{push,unshift} to Collection.add, clarifying how these methods differ from each other.
The updated documentation can be previewed here: https://cdn.statically.io/gh/jgonggrijp/backbone/document-add-push-unshift/index.html.

Thanks for the review!
No, I don't see "vivified" very often, either. I just moved it from the add section to the set section; I suppose @jashkenas wrote that in one of his poetic moments.


Option to set the exam's random seed based on the student ID

This would be useful in cases where the exam has to run standalone, but you still want a way of reproducing the set of variables the student saw.


Combine coverage data before generating report

This change prevents the tox -e cover job from failing with a "No data to report." message. Coverage data collected from parallel test runners must be first combined by running coverage combine before the coverage report command.

I have no idea why test_get_module_qualname_from_path_rel_syms failed in the macos-latest (3.8) job. I only rebased the branch onto current main.

Another rebase + force push and the checks are all-green again. The previous test failure remains a mystery to me.


zip -> zipAll in zipAll example

Thanks!
Eventually when I convert form MkDocs to Docusaurus, I'll go through and fix all of the remaining mistakes. 😛


http2: splits ConnectionImpl::onFrameReceived into per-frame implementations

Commit Message: http2: splits ConnectionImpl::onFrameReceived into per-frame implementations
Additional Description:
Risk Level: low; refactoring, no functional change intended
Testing: ran unit and integration tests locally
Docs Changes:
Release Notes:
Platform Specific Features:

/assign @RyanTheOptimist
/assign @diannahu

Ready for merge?


modal popup design for geo location consent

@Kazz24 ill leave this in review for now. TBD
cc @Shirinzaboli

Wondering if this version should be used for the mobile users and the previous design above could be used for the actual mobile app in the future.


What's the expected format for downloading local files on windows?

I'm sending a URL to a local file but the download seems to never complete, what's the right format expected on windows?
I've tried:

E:\\path\\to\\file.txt
e:\\path\\to\\file.txt
file:///e/path/to/file.txt
file://e:\\path\\to\\file.txt

etc., but nothing seems to work. I think if I knew what was expected I could get it working. I am getting an "Invalid Protocol" error in some cases and simply nothing in others.

Actually I think I figured it out, it appears to be:
file://e:/path/to/file.txt
Sorry for the noise, the default path.resovle doesn't seem to give you the right thing.


readme

Added colorful headers for repository info and table of contents in readme.md file

Thanks so much this is amazing it looks great


Support Python 3.12

Please add support for 3.12.

https://github.com/Widen/tap-rest-api-msdk/pull/49 closes this


release for 4.3.0

Could you create a release tarball for 4.3.0? This would help a lot for packaging.

Hey @zemu-unile - sure thing, that should be no problem. Give me a day or two - I want to see if we will be able to get up pre-compiled binaries along with the source code tarball. Our previous release scripts were tied to our old license model, so we need to refactor them. If it looks like it'll be longer than that then I will just upload the compressed source code in the meantime.
Thanks for your interest.


High CPU Usage

Using version 1.1.6 on macOS 10.11.3 (15D21)
Activity Monitor is showing CPU usage between 30 and 50% when I'm listening to a set linked below. CPU usage goes down again when I pause the song. SoundCLeod did not do this in the past.
https://soundcloud.com/t_soundcouncil/podcast-010-leichtigkeit-des-seins-a-time-for-us

We've discussed this before on #118. Td;dr: It's not SoundCleod but soundcloud.com causing hight CPU usage, there is not much we can do here :(
The good news is: it's only wasting CPU when the SoundCleod window is visible on the screen.


Support n-ary monotonic functions in ordering equivalence

Which issue does this PR close?

Closes #13839.
Rationale for this change

DataFusion's ordering equivalence system currently only handles single-parameter monotonic functions. This PR extends support to N-ary functions that preserve lexicographical ordering, like concat(). This enables more optimization opportunities when working with ordered data.
What changes are included in this PR?

Added preserves_lex_ordering field to ExprProperties
Implemented output_preserves_lex_ordering for concat function
Updated discover_new_orderings() to handle multiple parameters
Added tests for concat and non-monotonic multiply cases

Are these changes tested?

Yes, added three new test cases:

test_ordering_equivalence_with_monotonic_concat
test_ordering_equivalence_with_non_monotonic_multiply
test_ordering_equivalence_with_concat_equality

Are there any user-facing changes?

No user-facing changes. This is an internal optimization improvement.

cc: @berkaysynnada @ozankabak

Note about Cargo.toml changes
I added datafusion-functions as a dependency to datafusion/physical-expr/Cargo.toml to use the concat function in tests.

will be merged once CI passes one more time


validation rules not being handled before import

Versions

PHP version:  7.2
Laravel version:  5.7
Package version:  3.1

Description
Steps to Reproduce
Create a new import with ToModel, validation, heading rows and custom failure handles on skippables
Expected behavior:
Imports should skip the null rows, instead of trying to create the record so MySQL won't show a not null error.
Actual behavior:
MySQL tries to create a record with a null value, and thus throws and error
Additional Information
hi,
im having an issue with the validation in 3.1.
am getting 500 back with null rows, instead of failing rows that are null, it lets them pass, then it gets an error, name cannot be null in mysql while trying to create the user.  any idea why this is failing, it looks fine to me and the failures should just be skipped.
<?php

namespace App\Imports\Imports\Users;

use Log;
use App\Models\Users\Staff;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Validators\Failure;
use Maatwebsite\Excel\Concerns\Importable;
use Maatwebsite\Excel\Concerns\WithValidation;
use Maatwebsite\Excel\Concerns\SkipsOnFailure;
use Maatwebsite\Excel\Concerns\WithHeadingRow;

/**
 * Class StaffImport
 * @package App\Imports\Imports\Users
 */
class StaffImport implements ToModel, WithValidation, SkipsOnFailure, WithHeadingRow
{
    use Importable;

    /**
     * @param array $row
     * @return Staff|\Illuminate\Database\Eloquent\Model|\Illuminate\Database\Eloquent\Model[]|null
     */
    public function model(array $row)
    {
        $staff = new Staff([
            'email' => $row['email'],
            'name' => $row['name'],
        ]);
        $staff->password = Hash::make('password');
        $staff->save();
        return $staff;
    }

    /**
     * @return array
     */
    public function rules(): array
    {
        return [
            'email' => 'required|email',
            '*.email' => 'required|email',
            'name' => 'required|string',
            '*.name' => 'required|string',
        ];
    }

    /**
     * @param Failure ...$failures
     */
    public function onFailure(Failure ...$failures)
    {
        Log::stack(['import-failure-logs'])->info(json_encode($failures));
    }
}

Please try with
return new Staff([     'email' => $row['email'],     'name' => $row['name'],     'password' => Hash::make('password'), ]);


[MNO-436] notify user of changes

Notify users when password is updated.
Sends an email to the old email when email changes.
Sends an email to the new email when email changes.

Added specs (omg...)

Hey @ouranos!
I did the changed requested.
Let me know if you need anything else from me on this one.
Cheers


some displayed infos are wrong if web server and bitcoin node are not on same machine

E.g. free disk space and uptime are not displayed correctly if web server resides on a different machine than bitcoin daemon. Currently free disk space and uptime of the web server is shown rather then those of the remote machine where bitcoin daemon is running. The IP of that machine might also be affected, but ip info seems to be missing in the getnetworkinfo localaddresses array so this could be another problem (maybe of the daemon itself - running 0.14.2).
Anyway, it's a good status page to have a look at when you want to know what's going on with your bitcoin node. 👍

Hi @marec2000 - thanks for the message, the disk space and uptime issues you mentioned are a feature rather than a bug :)
As far as I'm aware, there's no way for PHP to get the information from a remote system without relying on an elaborate setup using SSH, so that would most likely be beyond the scope of the script.
If necessary, you can switch off display of most things by using config.php :)


Update Auth information on the website

Add https://github.com/kubeflow/manifests/tree/master/dex-auth docs
and more detailed information around profiles and groups
https://www.kubeflow.org/docs/components/multi-tenancy/getting-started/#batch-creation-of-user-profiles here we need to show that multiple users can be added to a single profile

Here are some of the detailed topics that needs additional documentation

Enabling Low level kubectl access for AuthN/AuthZ ,
- is it enabled by default along with profile creation?
- how can this be enabled for each user? Examples?
- Is it enabled in 1.0.0 or 1.0.1?
Profile capacity limit possibilities and examples
- add examples
- link to the spec
AuthN/AuthZ capability matrix for 0.7 vs 1.0.0 vs 1.0.1 releases

If a user logs into Kubeflow via DEX/AD where this user has;

never logged in before
is not a contributor on any namespace

The system prompts the user to create a namespace.
If the user has been assigned as a contributor to a namespace, the system also prompt them to create a namespace the first time they log in.

@lalithvaka can you define what 'Low level kubectl access' means

@lalithvaka can you define what 'Low level kubectl access' means

@jtfogarty Jeff, was referring to the concepts laid out in  https://docs.google.com/presentation/d/1j5tBrCkLNG-QxTl44iv-x5KpCapnczpxCbUzSciA2l8/edit#slide=id.g70b2208acc_1_807 slide 19 through 25

If a user logs into Kubeflow via DEX/AD where this user has;

never logged in before
is not a contributor on any namespace

The system prompts the user to create a namespace.
If the user has been assigned as a contributor to a namespace, the system also prompt them to create a namespace the first time they log in.

@krishnadurai , based on this verification by @jtfogarty every user is getting a new profile created on a successful authN even if the user is not an admin and already assigned as a contributor to another namespace created by the admin. Should this be treated as a defect and shall I create an issue? or is this the expected behavior? Can this be disabled for the short term and where is this logic?

Here are some of the detailed topics that needs additional documentation

Enabling Low level kubectl access for AuthN/AuthZ ,

is it enabled by default along with profile creation?
how can this be enabled for each user? Examples?
Is it enabled in 1.0.0 or 1.0.1?

Profile capacity limit possibilities and examples

add examples
link to the spec

AuthN/AuthZ capability matrix for 0.7 vs 1.0.0 vs 1.0.1 releases

Whats the difference between Kubernetes quota vs resource quota spec on Kubeflow? Are all objects https://kubernetes.io/docs/concepts/policy/resource-quotas/#viewing-and-setting-quotas listed here (compute-resources / object-counts) is supported in Kubeflow profiles (assuming these are namespaces)? or just the ones listed in the example below?
https://github.com/kubeflow/kubeflow/blob/master/components/profile-controller/config/samples/profile_v1beta1_profile.yaml
resourceQuotaSpec:
hard:
cpu: "10"
memory: 20Gi
pods: "20"

Related:
https://github.com/kubeflow/website/issues/1066
https://github.com/kubeflow/website/issues/1280

Related:
#1066
#1280

@sarahmaddox  would be great to have the following addressed in the manual profile creation https://www.kubeflow.org/docs/components/multi-tenancy/getting-started/#batch-creation-of-user-profiles
Profile capacity limit possibilities and examples
add examples
link to the supported capacity limit spec
I see a small example here - https://github.com/kubeflow/kubeflow/blob/master/components/profile-controller/config/samples/profile_v1beta1_profile.yaml


change the branch for the pull request #9

THis is just a change for fork branch. If you want to view the original pull request, here it is : https://github.com/SkRobo/rplidar/pull/9


Failed to build webspoon-9.0

Actual Behavior
[INFO] Reactor Summary:
[INFO]
[INFO] Pentaho Data Integration <IP_ADDRESS>-423 ............... SUCCESS [ 13.283 s]
[INFO] PDI Core <IP_ADDRESS>-423-22 ............................ SUCCESS [ 44.793 s]
[INFO] webSpoon Security <IP_ADDRESS>-423-22 ................... SUCCESS [  3.197 s]
[INFO] PDI Engine <IP_ADDRESS>-423-22 .......................... SUCCESS [02:49 min]
[INFO] PDI User Interface <IP_ADDRESS>-423-22 .................. SUCCESS [02:44 min]
[INFO] PDI File Open and Save Plugin Core ................. SUCCESS [ 50.840 s]
[INFO] PDI File Open and Save New Plugin Core ............. SUCCESS [ 53.575 s]
[INFO] PDI Get Fields Plugin Core ......................... SUCCESS [ 47.416 s]
[INFO] PDI Repositories Plugin Core ....................... SUCCESS [01:06 min]
[INFO] PDI Engine Configuration Plugin UI ................. SUCCESS [  6.989 s]
[INFO] Connections Plugin UI .............................. SUCCESS [ 41.183 s]
[INFO] PDI Plugins ........................................ SUCCESS [  0.143 s]
[INFO] PDI Assemblies ..................................... SUCCESS [  0.099 s]
[INFO] PDI Client Static Assets <IP_ADDRESS>-423-22 ............ SUCCESS [  1.951 s]
[INFO] PDI Client Libraries <IP_ADDRESS>-423-22 ................ FAILURE [  5.441 s]
[INFO] PDI Client Community Edition <IP_ADDRESS>-423-22 ........ SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 11:17 min
[INFO] Finished at: 2020-11-12T16:45:48+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project pdi-libs: Could not resolve dependenci                                                                                es for project org.pentaho.di:pdi-libs:pom:<IP_ADDRESS>-423-22: Failed to collect dep                                                                                endencies at org.pentaho:pentaho-hadoop-shims-common-mapreduce:jar:9.0.2020.02.0                                                                                0-423: Failed to read artifact descriptor for org.pentaho:pentaho-hadoop-shims-c                                                                                ommon-mapreduce:jar:9.0.2020.02.00-423: Could not find artifact org.pentaho:pent                                                                                aho-ce-jar-parent-pom:pom:<IP_ADDRESS>-521 in pentaho-public (https://repo.orl.eng.hi tachivantara.com/artifactory/pnt-mvn/) -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e swit                                                                                ch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea                                                                                d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyReso                                                                                lutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn  -rf :pdi-libs
Steps to Reproduce the Problem
1.In the outset, "PDI Repositories Plugin Core" failed to build
[ERROR] Failed to execute goal on project repositories-plugin-core: Could not re                                                                                solve dependencies for project org.pentaho.di.plugins:repositories-plugin-core:b                                                                                undle:<IP_ADDRESS>-423: Could not find artifact pentaho-kettle:kettle-core:jar:9.0.0.                                                                                0-423-21 in pentaho-public (https://repo.orl.eng.hitachivantara.com/artifactory/                                                                                pnt-mvn/) -> [Help 1]
2.I alter the plugins/repositories/core/pom.xml <webspoon.version><IP_ADDRESS>-423-21</webspoon.version> -> <IP_ADDRESS>-423-22 to build "PDI Repositories Plugin Core" succeed . But  "PDI Client Libraries <IP_ADDRESS>-423-22"  failed to build
Else

windows 10:
openjdk 1.8.0_242:
webSpoon 9.0:

@WEIHUWEIHU Thank you for reporting the issue.
I updated the outdated version at plugins/repositories/core/pom.xml and was able to build it as of today.
Please try again.

@HiromuHota
Thank you very much for your reply.I tried again,the problem has been solved.


[Branding] Not able to upload an icon app on the PWA tab

Describe the bug
In the PWA tab, it is not possible to upload the app icons, just as it is in the Logos tab. As it seems that these icons are server from the server, due to the local path. It is expected to be able to upload these images.

Fixed on upcoming release. It will also allow configuring 'any' and 'maskable' icons independently.


Adjust Category/Listings Controller

Fix before_action for set_directoery_category filter to show only.

Done: https://github.com/PHCNetworks/phc-members/commit/fcc19f8ddde4c0ce3318325b937abdafc4d1c28d

Q/A: Passed


Make into releasable library

Changed org to 'com.slamdata'
Changed package to 'pathy'
Updated scala, specs2 versions
Configured SBT for publishing to sonatype

:+1:


Correct traffic_class_name population from tclass_names

Fixes error raised in #10

@adamwilkins-hpe, are you asking if someone who has pyedgeconnect running can validate these changes before merging? Or it has been tested and we need to approve to merge into the development branch.

@alexamayahpe No, this is about the telemetry demo environment. I have pyedgeconnect, but there is quite a bit of logical infrastructure required for the telemetry demo e.g. Docker, Grafana, InfluxDB, and Redis. As a result, I cannot test anything to do with that at this time.

I went ahead and added this to the development branch.


[FEAT]: Modify default user role to allow doc upload

What would you like to see?
The different user permission levels are great, but since the key functionality is to be able to upload documents, default users should have the ability to upload documents, at least to a single personal workspace.  Most users will not need  manager-level permissions to change LLMs, add other users etc.

Moving to https://github.com/Mintplex-Labs/anything-llm/issues/1787

@timothycarambat It would be beneficial if the default user could upload documents to the workspace that they cannot change or modify, but can use with their own data.
Thanks a lot!

@timothycarambat this would be a huge value to organisations! Currently we need to manually adjust the role permissions to enable users to upload documents to workspaces, but this way all files are visible to everyone. It would be a lot smoother, if users could upload files to individual threads.


drivers: adc: stm32h7: Oversampling Ratio set incorrectly

Configure the with Oversamplig ratio for the stm32H7 soc devices, with the LL_ADC_ConfigOverSamplingRatioShift
The LL API function dffers from other stm32 soc :
ratio is directly the value to set from 1..1024
Depending on the ADC instance ratio is directly the value to set from 1..1024   --> ADC of the stm32H74x for example
or is directly a 3-bit   --> ADC3 of the stm32H723 for example
requires https://github.com/zephyrproject-rtos/hal_stm32/pull/117
fixes https://github.com/zephyrproject-rtos/zephyr/issues/38606
Signed-off-by: Francois Ramu<EMAIL_ADDRESS>

@FRASTM as mentioned in #38606 this code will not handle ADC3 correctly for H7. Even if the HAL Bug is solved, ADC3 still requires a 3-bit value, and your code will send a 10bit value. It will also not handle the 2^N input number correctly that Zephyr specifies in it's documentation.

include the commit for the hal_stm32 : west.yml: update modules/hal/stm32/hal_stm32 for stm32h7

@heinwessels Would you mind having a new look ?

@heinwessels Would you mind having a new look ?

I'm AFK for the next two weeks so I cannot test the code. I did find a possible issue in HAL PR #117 that this PR depends on, although this PR looks good.

Keeping the LL_ADC_ConfigOverSamplingRatioShift(adc, sequence->oversampling   for the stm32H7
It means that the 'Ratio' in the LL function is a 'n' value from 1 to 8 (ADC3) or from 1 to 10 (other ADC)  and no more the corresponding to a oversampling of 2^n.
That makes the adc_stm32_start_conversion() unchanged for the oversampling configuration (excepting a possible extension to case 9 and case 10) but the change is reported to the stm32cube LL function.

rebase

New version that take the new LL_ADC_ConfigOverSamplingRatioShift stm32Cube function
where the Ratio is a value from 1..1024 (or a 2^n value from 1..256 for ADC3)
This means that the parameter to give to the LL_ADC_ConfigOverSamplingRatioShift is 2^oversampling (and no more the 'oversampling').


Implement AMPLS into Landing Zone

Describe the feature end to end, including deployment scenario details under which the feature would occur.
Recently we deployed a landing zone which had all the private dns zones linked.
After this we deployed some Applications with Application Insights enabled, but found none of these working. After investigation, it appears that the application couldn't resolve the monitor DNS endpoint, to resolve this we had to unlink privatelink.monitor.azure.com.
After this was unlinked Application Insights started working and resolving correctly,
A future project will be to implement AMPLS into our landing zone, but as the ALZ-Bicep was deploying private endpoint policies, I thought it may be a good place to put it as an optional component
Why is this feature important. Describe why this would be important for your organization and others. Would this impact similar orgs in the same way?
Provides private endpoints for all the monitoring solutions such as Log Analytics, Application Insights, Azure Monitor.
For those that want a private solution this would be a nice to have
Please provide the correlation id associated with your error or bug.
N/A
Can you describe any alternatives that you have taken since this feature does not exist?
Had to unlink the privatelink.monitor.azure.com DNS zone whilst I work on implementing AMPLS into our environment
Feature Implementation
Not yet....

Check previous GitHub issues

[X] I have searched the issues for this item and found no duplicate

Code of Conduct

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

Hi @awood86, thanks for bringing this up! As for incorporating AMPLS, it is something that will need to happen on ALZ all-up before we integrate it within ALZ-Bicep. There are some current limitations within AMPLS which that product team is working on, and we have it added to the backlog as something to incorporate potentially in the future.
As a temporary fix for unlinking the DNS Zones, within both connectivity (Hub Networking and VWAN) modules, there is a parameter called parPrivateDnsZones which is an array of all of the DNS zones that will be provisioned and linked to the hub network. You can remove the privatelink.monitor.azure.com from this array which will stop the link from being reconfigured.

Hi @awood86, thanks for bringing this up! As for incorporating AMPLS, it is something that will need to happen on ALZ all-up before we integrate it within ALZ-Bicep. There are some current limitations within AMPLS which that product team is working on, and we have it added to the backlog as something to incorporate potentially in the future.
As a temporary fix for unlinking the DNS Zones, within both connectivity (Hub Networking and VWAN) modules, there is a parameter called parPrivateDnsZones which is an array of all of the DNS zones that will be provisioned and linked to the hub network. You can remove the privatelink.monitor.azure.com from this array which will stop the link from being reconfigured if you redeploy the module.

Thanks for the response @oZakari, totally appreciate it's not a simple change so understand! I'll have a go in my test environment with decoupling the privatelink.monitor.azure.com, I feel there could be more DNS zones as monitor, log analytics and others have dependencies. I'll reply on this thread as a reference should there be any more that are troublesome


[wallet/nitro-protocol] Deploy to Independent Ganache Instance

The wallet and nitro-protcol package have been updated to a new pattern of deploying contracts to their own instance of ganache.
This incorporates changes from #602 and #593, so they can be closed in favour of this.
This is the approach I've taken to allowing packages to start up their own ganache instance:

Each package will have it's own deploy.js that deploys the contracts it needs (see wallet/deployment/deploy.js
Any start scripts should startup a GanacheServer from devtools and call deploy from deploy.js and define the contract address in environment variables(see wallet/scripts/start.js)
Tests that depend on contracts should startup a GanacheServer from devtools and call deploy from deploy.js (see jest/contract-test-setup.ts) and should kill the ganache server on teardown (see jest/contract-test-teardown.ts)
Tests that do not rely on contracts should either mock out functions that are called to return contrat addresses (see jest/test-setup.ts) or just define the contract address environment variables to have some address in them.

Regarding this comment... @lalexgap

Tests that depend on contracts should startup a GanacheServer from devtools and call deploy from deploy.js (see jest/contract-test-setup.ts) and should kill the ganache server on teardown (see jest/contract-test-teardown.ts)

I think it's important for us to recognize that the starting of ganache & deploying the contracts steps can be independent. For example in the past I would start ganache in a jest setup script and stop it in the tear down script, but then in each individual test suite in the beforeAll I would deploy contracts as needed for better unit test isolation.


length_value doesn't work with bits

The multi function length_value doesn't work when parsing bits. It's clearly not meant to given the traits on the input, but since length_count does it seems that length_value should as well. I ran into this issue when attempting to parse a binary format that uses specific, non-byte lengths of bits for various fields, one set of which is a binary number indicating how many more bits to consume and parse (was hoping to compose length_value with fold_many1. I ended up writing a while-loop that tracks the consumed bits while it parses but would much prefer to keep it in idiomatic nom.
Prerequisites

Rust version:
rustc 1.56.1 (59eed8a2a 2021-11-01)
nom version:
"7.1.0"
nom compilation features used:
alloc, std

Test case
extern crate nom;

use nom::{
    bits,
    bytes::complete::{tag, take},
    combinator::{map, map_res},
    multi::{length_count, length_value},
    IResult,
};

fn do_the_thing(i: &str) -> IResult<&str, &str> {
    length_value(
        map_res(take(2usize), |u: &str| u.parse::<usize>()),
        tag("123"),
    )(i)
}

fn do_the_thing_with_bits(i: (&[u8], usize)) -> IResult<(&[u8], usize), u64> {
    length_value(
        map(bits::complete::take(53usize), |u: u64| u),
        bits::complete::tag(1u64, 1usize),
    )(i)
}

fn do_a_similar_thing(i: (&[u8], usize)) -> IResult<(&[u8], usize), Vec<u64>> {
    length_count(
        map(bits::complete::take(11usize), |n: u16| n),
        bits::complete::tag(1, 1usize),
    )(i)
}

fn main() {
    let input = "03123";
    let result: IResult<_, _> = do_the_thing(input);

    let input = vec![0x03];
    let result: IResult<_, _> = bits(do_the_thing_with_bits)(&input);
}

The first and third functions compile as expected, but the second function doesn't because the trait bound (&[u8], usize): nom::InputTake is not satisfied. The example is a bit contrived for simplicity, but it seems to me that length_value should work if length_count works.

Advent of code eh? :)
Hit the same issue myself https://github.com/Geal/nom/issues/1477
I think there's a subtle difference between length_count and length_value that makes it a little trickier.
length_count has a pretty easy job: all it needs to do is get a number n from the first parser, then run the second parser n times. length_value needs to do the following:

get the length, n, from the first parser
take a prefix slice of length n from the input
run the second parser on that slice

The difficulty lies in that second step. For byte slices this is super easy, it just takes a slice. Bit slices are trickier though, and it's because of how nom implements them. In nom a bit slice is represented as a (&[u8], usize), where the usize is an index indicating the starting bit in the first byte. How do we take a prefix slice of this? Let's say I have the single-byte input (&[0b1010_1010], 0), and I tell nom I want only the first 4 bits. nom has a concept of a start bit in bit slices, but no concept of an end bit, so there's no way we can represent this case using a bit slice. Note that the take method for bits returns an integer rather than a bit slice, presumably in part for this reason.
Not sure what the best way around this is. Changing the format of bit slices would be intrusive and would only be useful for a certain class of parsers (like this one). Another possibility is to have something like
/// Grabs the first `count` bits of the input and copies them into a new bit slice
fn copying_take(count: usize) -> impl FnMut((&[u8], usize)) -> IResult<(&[u8], usize), IResult<(Vec<u8>, usize), E>  {
    ....
}

It needs to be a Vec because of the allocation, so the ergonomics of this already clunky function probably aren't very good.
My workaround in advent of code looked something like this (but a little dumber), I assume yours was similar:

read the length n from the first parser
verify that there are at least n bits available
give the second parser the smallest valid prefix slice of the input with at least n bits
run the parser on that slice
verify that the parser consumed exactly n bits

This worked in Advent of Code because the parser was never going to consume more than the requested number of bits, but you could very conceivably have a parser that would be happy to consume n, or n+1, or n+2... bits, so I'm not sure this solution generalizes.

Ha! I looked for an open issue, found none, started writing my issue, then had to work, finished up my issue, and posted it. Shoulda checked again before posting I guess!
I see what you mean now, though I'm tracking the remaining number of bits left to consume, so detecting over-consumption is possible, then bubbling up an error from there would right the course: you told nom to parse 100 bits and it parsed 110, so the parse failed. take would indeed need the concept of an end to return more than an integer, but I think length_value could manage to track that since it can know what how many bits it had at the start and how many it would be returning. That said, I'm not an expert in nom or even Rust so there is likely some nuance. I suspect length_value will just need a special bit implementation if it's possible at all.

Here's what I think the annoying nuance is:
Let's say I have some greedy parser, like many1(take(1usize)), and let's say I have an implementation of length_value that simply errors on overconsumption. Then let's say I do this (example is pretty stupid, but it's just for illustration):
fn parse(input: (&[u8], usize)) -> ... {
    length_value(8usize, many1(take(1usize)))
}

fn test {
    let res = parse((&[0x04, 0b1010_1111], 0));
    ...
}

This should logically succeed: length_value reads the first 8 bits and gets n=4, then should be able to run many1(take(1usize)) on the next 4 bits and get a successful result back. But in the implementation where we don't point to the end of the bit slice, we will hand 8 bits to the parser and it'll consume all 8 of them. Then length_value will see that the parser overconsumed, and fail. This seems like really confusing and frustrating behaviour for length_value to have. May be that there's a fix for this that I'm missing though.

Ah yeah I see it now. Maybe there's a way around it with copying bits, then consuming an equal number if it parses right? Might not be great for large numbers.
Thanks for your insight though! I hope there's a way around it - just to clean up my parser for a yearly game.

Yeah I think your suggestion works, just comes with the disadvantage—like you said—of being forced to do a copy, but it's also limited in that your output can't contain any references to the input, since that copy won't live very long. That being said, I'm guessing that references to the input aren't as common a pattern with bit parsers as they are with string parsers, so maybe that part isn't such a big deal.

use nom::{bits::complete::take, combinator::verify, multi::fold_many_m_n, IResult};

fn do_the_thing_with_bits(i: (&[u8], usize)) -> IResult<(&[u8], usize), u64> {
    fold_many_m_n(
        53,
        53,
        verify(take(1usize), |&o: &u8| o == 1), // could be replace by tag but verify is more general
        || (1 << 53) - 1,                       // precompute value for your use case
        |acc, _: u8| acc,
    )(i)
}


Fourth Ventricle Ependymal Tumor (ncit:C131593) returns no match

Query: https://normalize.cancervariants.org/disease/normalize?q=ncit:C131593
NCIt: https://ncithesaurus.nci.nih.gov/ncitbrowser/ConceptReport.jsp?dictionary=NCI_Thesaurus&version=22.11d&ns=ncit&code=C131593&key=793454230&b=1&n=null

I also do not see anything in the logs for ncit:C131593

this concept is a "finding" in the NCIt ontology (previously flagged in #9) -- it's a little tricky to grab the terms we want out of that part of the tree because a lot of them are more category or phenotype than full-fledged disease. How we cross that bridge is an open question (maintain a specific allowlist?)


types(component): 修复 useComponentRegister 方法无法添加自定义的组件，添加时爆类型错误的问题

General

✏ Mark the necessary items without changing the structure of the PR template.

[ ] Pull request template structure not broken

Type

ℹ What types of changes does your code introduce?

👉 Put an x in the boxes that apply

[x] Bug fix (non-breaking change which fixes an issue)
[ ] 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

Checklist

ℹ Check all checkboxes - this will indicate that you have done everything in accordance with the rules in CONTRIBUTING.

👉 Put an x in the boxes that apply.

[x] My code follows the style guidelines of this project
[x] Is the code format correct
[x] Is the git submission information standard?
[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes
[x] Any dependent changes have been merged and published in downstream modules

提供下复现代码

提供下复现代码

import {  useComponentRegister} from '@/components/Form';

import SelectRoles from './SelectRoles.vue';

useComponentRegister('SelectRoles', SelectRoles);

这里的 SelectRoles 可以是任何的自定义组件

的确，这个函数的设计有问题， useComponentRegister 方法要设定的组件名称不应该 只限定ComponentType类型


Added Megadraft Logo to README

Just added a minor changes.

Hi @VitorPaes,
I'm rejecting your PR. If you want to contribute, please, take a look at the list of open issues.
Cheers.


question: Customing request only work for async?

Official doc say the feature Custom Request and APIRoute class
And I've tried out the demo code. I found custom route class, custom request function and the api function run in same thread.(and api function is without async). So all threads will be blocked when one thread blocked. I wanna know whether or not there is a way I can use it without async?

Python 3.8
fastapi 0.61.1

It's a wrong question! My bad!

Thanks for reporting back and closing the issue :+1:


Live inference of fine-tuned multimodal LLMs?

Thanks for your work and the repo!
As I understand, the inference for multimodal llm (eg llava, qwen-vl) can only be run in batch via the provided scripts here: https://github.com/modelscope/swift/blob/main/docs/source/Multi-Modal/llava最佳实践.md#微调后推理 ?
Any suggestions on how I can serve these models for live inference (eg exposing the service via port)?

You can refer to this document and single-sample inference in llava's best practice
https://github.com/modelscope/swift/blob/main/docs/source/LLM/LLM微调文档.md#微调后模型

Additionally, model = Swift.from_pretrained(model, ckpt_dir, inference_mode=True) needs to be added.

Thanks for the response! This single-sample inference has a long startup time, correct? How would I be able to serve this for  use with a web-ui or service that's serving 100s of queries? Where total latency <5seconds?


Improve failure handling and logging

This improves logging in a couple of places:

Add the full data output on a hard (non-API) failure
Attempt to reconstruct a simplified traceback when an event cannot be logged

It also moves unlogged events to the 'sentry.errors.uncaught' logger.

This will help with things like #604


Won't load any Scenario just main menu

Hey,
My problem is it don't want to load any scenario just opens the game and puts me in the main menu.
Under Windows it works well but not on Ubuntu 20
Sometimes its give the loading screen, shows like everything loaded but nothing happens.

It's hangs at
>>> beamng.scenario.load(scenario)

Thanks!

Hi, are you using Ubuntu to run BeamNGpy and BeamNG.tech, or just BeamNGpy and the simulator is running on Windows?

I'm using BeamNGpy and BeamNG.tech on Ubuntu.

I just found out gridmap is not avaiable anymore. Have to use smallgrid but gives no error for it like map not found.
    scenario = Scenario('gridmap', 'RADAR_demo', description='Spanning the map with a RADAR sensor')
I tired to run my code but sadly Shared Memory still not available under Linux?
import time

from beamngpy import BeamNGpy, Scenario, Vehicle, set_up_simple_logging
from beamngpy.sensors import Camera

def main():
    set_up_simple_logging()

    beamng = BeamNGpy('localhost', 64256)
    bng = beamng.open(launch=True)

    scenario = Scenario('smallgrid', 'Camera demo', description='Camera stream test')

    vehicle = Vehicle('ego_vehicle', model='etk800', license='RED', color='Red')

    scenario.add_vehicle(vehicle)
    scenario.make(bng)

    bng.settings.set_deterministic(60) # Set simulator to 60hz temporal resolution

    bng.scenario.load(scenario)
    bng.ui.hide_hud()
    bng.scenario.start()

    # NOTE: Create sensor after scenario has started.
    cam1 = Camera(
        'camera1',
        bng,
        vehicle,
        is_using_shared_memory=True,
        pos=(-5, 0, 1),
        dir=(1, 0, 0),
        field_of_view_y=70,
        is_render_annotations=False,
        is_render_depth=False,
        near_far_planes=(0.1, 1000),
        resolution=(3840, 2160),
        requested_update_time=0.05)

    t_last = 0.0
    for _ in range(10000):
        time.sleep(0.015)
        readings_data = cam1.poll()
        t = time.time()
        dt = t - t_last
        t_last = t
        print("time since last poll (s): ", dt)

    cam1.remove()
    bng.close()

if __name__ == '__main__':
    main()

Tired to use without it.
beamngpy.logging.BNGValueError: This feature is not yet supported on Linux hosts.
Attach is not supported?
Thanks!

Hi, unfortunately, shared memory is still not supported on Linux hosts, the same holds for the Camera sensor. It is on the roadmap, but it goes hand-in-hand with the stabilization of the Linux version as a whole.


Clean up summary gen, use SysnoMap, cleanup

move some code to the mod.rs file if its not arch specific
rewrite the stats gathering parts - please check the result is what's expected
lots of minor cleanups
i implemented SysnoMap in the syscalls crate, so now stats gathering is far simpler

Great PR! Thanks for the changes. Now the summary finally shows useful values :smile:


Regression (0.19.3 -> 0.20.0): trunk does not initialize wasm unless a rust asset is used

I realized that after upgrading from trunk 0.19.3 to 0.20.0 my site would not start. The background would load, but nothing would happen. I saw a suspicious warning the dev console from Firefox saying

The resource at “http://<IP_ADDRESS>:8080/frontend-ffb81958b7c6daf3_bg.wasm” preloaded with link preload was not used within a few seconds. Make sure all attributes of the preload tag are set correctly.

After digging a bit, I think I found the cause. Trunk 0.19.3 generated the following at the end of index.html:
<script type="module">
import init, * as bindings from '/frontend-ffb81958b7c6daf3.js';
init('/frontend-ffb81958b7c6daf3_bg.wasm');
window.wasmBindings = bindings;

</script>

However, trunk 0.20.0 does not generate the equivalent code unless you use a rust asset, despite the guide stating that

✅ rel="rust": [...]. This is optional. If not specified, Trunk will look for a Cargo.toml in the parent directory of the source HTML file.

I'm guessing this is due to the recent addition of the custom initializer, something probably got missed. If the intention was to make using a rust asset mandatory, the documentation is now wrong, and I would expect to have some kind of error/warning message.
Also I just noticed the guide doesn't mention the data-initializer option, this probably needs a little update

I tried to reproduce it, but I can't. It works for me either way (asset or not). It would be good if you could share a reproducer.

Okay, I'll prepare a minimal repro and post it later on the day 👌🏼

Okay, that was quicker than expected.
trunk-issue-repro.zip
I included samples of index.html generated by trunk in different versions and setups in the example-generated-index.html directory.
I also noticed that 0.20.0 no longer is generating the autoreload script (or at least I don't see it)🤔. In any case, autoreload doesn't seem to be working for me in 0.20.0. I can see trunk rebuilding the code, and if I refresh the page I can see that it changed, but it doesn't automatically reload. Not sure if defaults changed or what, but otherwise that's also a bug 😅

Ok, that was easy. You're missing a body tag. That content is appended at the end of the <body> however, there's none in your file. Adding an empty body that makes it work for me.
That's probably due to the switch from nipper to lol_html.
I guess we should either warn or inject a body that if none was found.

Ah, dammit. Yep, adding an empty body fixes it for me too.
Well, in that case, I would say I prefer an error, rather than tags being created magically. Or maybe making using a rust asset mandatory would also work I guess. It's more explicit so you see what is happening. And you get to specify wasm-opt options, etc. 🤔
Do as you see fit though. Thank you for taking a look!


Stop hard coding crane-runner in all tasks

Related to https://github.com/konveyor/crane-operator/issues/60 and https://github.com/konveyor/crane-runner/issues/57

/triage accepted
/priority critical

Just for reference, this is where (in crane-operator) the ClusterTask image is overridden
https://github.com/konveyor/crane-operator/blob/ebd6f4753da775dafdae8afae423e37b8eca123b/controllers/operatorconfig_controller.go#L394-L396

It also appears, I hadn't noticed this, you can specify the image via params.
https://github.com/tektoncd/catalog/blob/main/task/docker-build/0.1/docker-build.yaml#L71

Ya, I guess this isn't an issue afterall. I'll go ahead and close it.


Bump Razor to dotnet5.5

cc @Eilon

why bump to 5.5?

The dependency on System.Runtime.Loader required dotnet5.5


Lost while creating network

After installation of all software, I tried to create network. However, Bluemix doesnt allow to create network after clicking on blockchain (not sure as I had created my account some time ago) - and it continued to ask me to upgrade account by paying money.
I thought of local hosting but for Windows7, it asks to create virtual environment to run Linux (bash) and I didnt find instructions to create it.

closing inactivity


Support OSLogger on iOS 9.0

Please approve it, I need it.

Sorry, but we can't support OSLog on pre-iOS 10, because the necessary functions are only available as of iOS 10:
e.g. https://developer.apple.com/documentation/os/1643744-os_log_create


More details on Benchmark Results Wiki

It would be great if results published on the wiki provided more details:

Commit hash/tag of source code used to run the bench
Any possible tweaks done during the execution (e.g. GRPC_SERVER_CPUS)
Log file

The results state that three benchmarks were done (1 CPU, 2 CPUs, and 3 CPUs), but it is unclear how these CPUs were properly allocated between the client ghz and the server container.
By running the benchmark without limiting the CPU of the client, there will be contention and CPU time taken by the client away from the server.
Here's a benchmark I did on a subset of the benchs on my 8-core Intel(R) Xeon(R) CPU E5-1620 v3 @ 3.50GHz server.
$ GRPC_BENCHMARK_DURATION=300s GRPC_SERVER_CPUS=2 GRPC_CLIENT_CPUS=6 ./bench.sh java_micronaut* java_grpc* node* dotnet* go_* rust_*
0.0.1: Pulling from infoblox/ghz
Digest: sha256:ce02c4410816d3dfc8497dfd38f0f5100cf04aa6e7de8645228430ca49d62f41
Status: Image is up to date for infoblox/ghz:0.0.1
docker.io/infoblox/ghz:0.0.1
==> Running benchmark for java_micronaut_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	24082.78
==> Running benchmark for java_grpc_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	56083.47
==> Running benchmark for java_grpc_pgc_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	58381.94
==> Running benchmark for java_grpc_she_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	55687.58
==> Running benchmark for java_grpc_zgc_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	57031.26
==> Running benchmark for node_grpcjs_st_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	8844.26
==> Running benchmark for node_grpc_st_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	11968.34
==> Running benchmark for dotnet_grpc_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	34672.57
==> Running benchmark for go_grpc_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	36212.07
==> Running benchmark for rust_thruster_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	5360.58
==> Running benchmark for rust_tonic_mt_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	42860.32
==> Running benchmark for rust_tonic_st_bench...
WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
    Requests/sec:	43511.97
-----
Benchmark finished. Detailed results are located in: results/201208T165544
--------------------------------------------------------------------------------------------------------------------------------
| name               |   req/s |   avg. latency |        90 % in |        90 % in |        95 % in |  99 % in |      avg. cpu |
--------------------------------------------------------------------------------------------------------------------------------
| java_grpc_pgc      |   58382 |        0.80 ms |        1.52 ms |        1.52 ms |        2.14 ms |  5.20 ms |       170.42% |
| java_grpc_zgc      |   57032 |        0.82 ms |        1.43 ms |        1.43 ms |        2.01 ms |  5.02 ms |       178.71% |
| java_grpc          |   56083 |        0.84 ms |        1.57 ms |        1.57 ms |        2.16 ms |  5.04 ms |       170.64% |
| java_grpc_she      |   55688 |        0.85 ms |        1.73 ms |        1.73 ms |        2.42 ms |  6.28 ms |        180.6% |
| rust_tonic_st      |   43512 |        1.10 ms |        1.27 ms |        1.27 ms |        1.40 ms |  2.13 ms |        98.97% |
| rust_tonic_mt      |   42860 |        1.12 ms |        1.66 ms |        1.66 ms |        1.89 ms |  2.69 ms |       189.13% |
| go_grpc            |   36212 |        1.32 ms |        1.85 ms |        1.85 ms |        2.50 ms | 14.20 ms |       205.25% |
| dotnet_grpc        |   34672 |        1.39 ms |        1.92 ms |        1.92 ms |        2.28 ms |  5.24 ms |       180.82% |
| java_micronaut     |   24082 |        2.02 ms |        2.87 ms |        2.87 ms |        4.18 ms | 39.78 ms |       200.75% |
| node_grpc_st       |   11968 |        4.09 ms |        4.43 ms |        4.43 ms |        4.60 ms |  5.88 ms |       102.26% |
| node_grpcjs_st     |    8844 |        5.56 ms |        6.58 ms |        6.58 ms |        7.77 ms | 11.15 ms |        113.4% |
| rust_thruster      |    5360 |        9.25 ms |       43.61 ms |       43.61 ms |       44.06 ms | 45.01 ms |         51.1% |
--------------------------------------------------------------------------------------------------------------------------------
All done.

This is the source I used: https://github.com/brunoborges/grpc_bench/tree/0ea80a174caf9f4763cbeac7b8976da149e2d745

@brunoborges Yes, I agree. Good idea. Optimally it'd be all this information in wiki (optimally just copy-pasting a script output) + perhaps a .tar.gz package with the content of the relevant result directory.

Also what OS and kernel version are you using?

@ccope to get the results of the wiki we have using this:
  Operating System: Ubuntu 18.04.5 LTS
            Kernel: Linux 4.15.0-112-generic


How to create an op like conv_ops in tensorflow?

Notice that I'm not looking for a tutorial like this.
What I'm trying to do
I'm new to C++ and bazel and I want to make some change on the convolution operation in tensorflow, so I decide that my first step is to create an ops just like it.
What I have done
I copied conv_ops.cc from //tensorflow/core/kernels and change the name of the ops registrated in my new_conv_ops.cc. I also changed some name of the functions in the file to avoid duplication. And here is my BUILD file.

As you can see, I copy the deps attributes of conv_ops from //tensorflow/core/kernels/BUILD. Then I use "bazel build -c opt //tensorflow/core/user_ops:new_conv_ops.so" to build the new op.
What my problem is
Then I got this error.

I tried to delete bounds_check and got same error for the next deps. Then I realize that there is some problem for including h files in //tensorflow/core/kernels from //tensorflow/core/user_ops. So how can I perfectely create a new op excatcly like conv_ops?

I suggest you just create a new conv_op in the same file to avoid all such issues.
Please redirect such questions to stackoverflow.


Support smart props (vsmart_c)

Seems like a randomizer for displaying various models as a set. Shouldn't be too hard to get basic model viewer for them. A fancier version would be some UI to toggle individual elements.
They're present in CS2.

Started in 81b666a3da2d74f4f30c98833f88c811f665dae7


docs: add page for each rule

Codecov Report

Merging #92 into main will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #92   +/-   ##
=======================================
  Coverage   66.66%   66.66%
=======================================
  Files           5        5
  Lines         162      162
  Branches       25       25
=======================================
  Hits          108      108
  Misses         53       53
  Partials        1        1

Impacted Files
Coverage Δ

src/rules.ts
100.00% <ø> (ø)

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 902c5b0...b677dfb. Read the comment docs.


Red square covering stone whenever a stone is placed

Hello,
Happy Stones and BadukTV themes have red square covering the recently placed stone.
Hikaru theme does not have this issue.
Currently using Sabaki Version 0.52.2 (0.52.2)
Cheers,
Sherwin

Very nice theme 👍, but I have the same problem. 😢

I guess the problem emerged due to the way that Sabaki parses CSS files changed in the later version. I don't know how to correct it perfectly because I'm not familiar with web design and CSS. I just directly replaced the color of the "latest move indicator", #b90202, with transparent in the asar file. It works well for me, although the indicator color becomes black and white again.
A screenshot of my modified version of BadukTV theme:

The modified asar file of BadukTV theme:
baduktv.zip

Indeed, the problem seems to have begun with the Shudan 1.7.0 upgrade which changed the stone graphics to SVGs instead of images. Whatever CSS rules are there seem to conflict with the SVGs for the .shudan-markers your styles use.

Based on some quick prototyping in the developer panel, it seems like you just need to replace
.shudan-vertex.shudan-marker_point.shudan-sign_-1 .shudan-marker {background: #f00;}
.shudan-vertex.shudan-marker_point.shudan-sign_1 .shudan-marker {background: #f00;}

with
.shudan-vertex.shudan-marker_point.shudan-sign_-1 .shudan-marker circle {fill: #f00;}
.shudan-vertex.shudan-marker_point.shudan-sign_1 .shudan-marker circle {fill: #f00;}

Does that seem reasonable? I can make a PR :)

Hey @upsided, wondering if there's any chance this will be fixed anytime soon. If you're willing, how would you feel about Sabaki upstreaming your themes and maintaining them going forward? Your themes are beautiful and widely used, so it would be great to have a way to keep them up-to-date with Sabaki's DOM changes :) Let me know if that works for you.


Frida callapp.js script doesn't work

The frida script 'callapp.js' has several issues. I guess, the code base was slightly modified after original creating of the frida script.
Below is the patch:
$ git diff callapp.js
diff --git a/nugget_toolkit/scripts/frida/callapp.js b/nugget_toolkit/scripts/frida/callapp.js
index c75fc10..333f222 100644
--- a/nugget_toolkit/scripts/frida/callapp.js
+++ b/nugget_toolkit/scripts/frida/callapp.js
@@ -14,7 +14,7 @@ var app_id, param;
 var request, request_size;
 var reply, reply_size_addr, reply_size;

-var libname = "parser.so";
+var libname = "libparser.so";
 var libdir = "/data/local/tmp/";
 var libpath = libdir + libname;

@@ -25,7 +25,7 @@ log("Found sanity function at: " + sanity_func);
 var sanity_res = sanity_func();
 log("Sanity function returned " + sanity_res);

-var parser_func = new NativeFunction(Module.findExportByName(libname, "_Z6parserjjPcjS_Pj"), "void", ["int", "int", "pointer", "int", "pointer", "pointer"]);
+var parser_func = new NativeFunction(Module.findExportByName(libname, "parser"), "void", ["int", "int", "pointer", "int", "pointer", "int"]);

 Interceptor.attach(moduleBase, {
     onEnter: function(args) {
@@ -63,8 +63,8 @@ Interceptor.attach(moduleBase, {
             log("Reply has null size");
         }

-        parser_func(app_id, param, request, request_size, reply, reply_size_addr);
+        parser_func(app_id, param, request, request_size, reply, reply_size);

         log("------------------------------------------------------------------------------------------------------");
     }
-});
\ No newline at end of file
+});

BTW, using the __android_log_write() for logging is not a good candidate as it truncates the messages.


Remove unused table/ (GenericPreviewTable)

Not used anywhere, the last commit was to disable failing tests for this component, removing.

:tada: This PR is included in version 0.11.65 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Decompilation failed with fatal error "[387:258]: key is of an unexpected type VariableAccessSyntax.

Bicep version
v0.22.6
Describe the bug
This really could be an outlier of an issue; however, I am working in a GitHub repo that leverages bicep registries. To assist others who would rather not implement a registry to rebuild the solution I did a bicep build to get the main.json and am attempting to run a decompile of the main.json locally to create a fully expanded bicep file so others can use a single bicep file w/o registry modules.
When running decompile I am getting the following error:
Decompilation failed with fatal error "[387:258]: key is of an unexpected type VariableAccessSyntax. Expected types: IdentifierSyntax, StringSyntax, SkippedTriviaSyntax"
I really have no idea what this is referring to.
To Reproduce
Run Decompile against: https://github.com/JFolberth/ToDo_AzureDeploymentEnvironment/blob/main/infrastructure/main.json
Additional context
End goal is to try and assist others in going with Azure Deployment Environments which doesn't support Bicep though able to work around this by compiling the bicep into ARM.

The compiler is intended as a best-effort tool and not meant to recover the original Bicep file.
If you have access to the original source of the modules referenced from the registry, would you be able to download it, place it on a local path and rewrite registry references from br:... to a local path? This approach would produce the exact same output with or without registry.

Yes I can do this; however, it's honestly not worth the overhead. I wanted to log this as an issue as the error seemed rather strange and I didn't see an immediate root cause.
I realize it's a best-effort; however, if taking the registry piece out of this I do not know why it would throw the given error when decompiling an ARM template. At best it should return a better error message as opposed to the one currently being returned.

@JFolberth The fix should be available in the next release.


Can't add Image to Excel file

I have used this project to create xlsx file and make good excel file.
Most things work well, but I can't add image to the file.
I wrote code like sample but I can't see image in the xlsx file.
Here is my code that I used.
let image = UIImage(named: "Image")
let drawing: BRAWorksheetDrawing = workingWorkSheet.addImage(image, betweenCellsReferenced: "C7", and: "F25", withInsets: UIEdgeInsetsZero, preserveTransparency: false)
drawing.insets = UIEdgeInsetsMake(0.0, 0.0, 0.5, 0.5)

Is any other modification saved ? Like if you put "Hello World" in A1, can you read it with excel ?

Yes, I can add and read text in excel file. But I can't add picture.
I have used your sample excel file and deleted whole content and then try again. The result is same.
But if I put one image into sample file and use it, I can add picture to the file.
Do you know this reason?
Please let me know why and how to solve this problem.
Thanks.

Any progress on this? I am facing same issue. Unable to add image in worksheet.

@jmcusac
if you have solved this earlier can you help me out, as i am facing similar issue .

I have used your library to create xlsx file and make good excel file.
Most things work well, but I can't add image to the file.
I wrote code like sample but I can't see image in the xlsx file.
I already put one image into sample file and use it, still I can't add any Image programatically in my xlsx file.
Here is my code that I used.
NSString *documentPath = [[NSBundle mainBundle] pathForResource:@"testWorkbook" ofType:@"xlsx"];
BRAOfficeDocumentPackage *spreadsheet = [BRAOfficeDocumentPackage open:documentPath];

BRAWorksheet *fooWorksheet = [spreadsheet.workbook createWorksheetNamed:@"Foo"];
BRAWorksheet *worksheet = [spreadsheet.workbook createWorksheetNamed:@"Foo" byCopyingWorksheet:worksheetToCopy];
[[fooWorksheet cellForCellReference:@"B2" shouldCreate:YES] setStringValue:@"FOO / BAR"];

UIImage *image = [UIImage<EMAIL_ADDRESS>BRAWorksheetDrawing *drawing = [fooWorksheet addImage:image betweenCellsReferenced:@"A1" and:@"D10"withInsets:UIEdgeInsetsZero preserveTransparency:NO];

drawing.insets = UIEdgeInsetsMake(0., 0., .5, .5);

[spreadsheet save];
[spreadsheet.workbook save];

NSString *fullPath = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]<EMAIL_ADDRESS>[spreadsheet saveAs:fullPath];
NSLog(@"%@",fullPath);

If you have solved this earlier can you help me out asap.
@renebigot


mp4 video but no audio in extension webview

Testing #158759

Run this webview sample which adds an mp4 in a video element https://github.com/microsoft/vscode-extension-samples/tree/roblou/mp4/webpack-sample
See the video with no audio

MP4 usually contain AAC encoded audio stream which we don't support, if the MP4 file has audio streams encoded with codecs from the list https://github.com/microsoft/vscode/pull/158486#issue-1343087439 we support then audio should work.
You can inspect the audio codec in the file using the following command,
ffmpeg -i <path-to-file> -hide_banner

Here is a sample mp4 file that uses vorbis codec for the audio stream and works with the above webview sample.

@isidorn we should make sure to highlight the supported codecs in the release notes.

@deepak1556 good point. I will write something today so you can review it.

Oh, thanks that makes sense. That file still doesn't work in a notebook though:

any idea why?

Hm, maybe it is actually something in the webview, any idea if this is a CORS thing @mjbvz?

@roblourens Did you make sure the file is included in the webview's localResourceRoots? 401 suggests that it's being blocked for security reasons

It's not, I'm just running code in a notebook. I guess that means we just can't support videos in notebook outputs? Do you know why it works for audio files but not videos?

@roblourens  Try with a file in the workspace. We block notebooks from loading resources (both images and videos) outside of the current workspace
I confirmed that this seems to be working for a local file:

I see that, thanks @mjbvz. With your sample mp4 @deepak1556, I actually still don't get audio for that file, in the webview sample or in a notebook.

Well actually ffmpeg says your file's audio is AAC,   Stream #0:1[0x2](eng): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, stereo, fltp, 123 kb/s (default) I wonder whether github reencoded it, anyway if it works for you I think we're good then

@roblourens github did indeed reencode the file 🤯I tried to check the creation time to confirm it using ffprobe but that just gave back empty result. Back to original issue, you can try the following command to get the vorbis codec encoded for the audio stream from the attached file above.
ffmpeg -i <path-to-mp4-file> -hide_banner -c:v copy -c:a libvorbis -f mp4 <output-file-name>


Add source information to workload get output

Description of problem
There have been cases in tap-assist where folks lose track of which workload is from which source, or where they use the wrong repo/branch and have a hard time troubleshooting the resulting unexpected behavior.
Proposed solution
As an application developer, when I inspect a workload via workload get I would like to know what source code / image is currently used by the workload so that I can verify that the latest version has been picked up
As an application operator, when I inspect a workload via workload get I would like to know what source code / image is currently used by the workload so that I can trace back a given workload when troubleshooting or auditing
Given a workload has been deployed to my target cluster
When I inspect the workload via workload get
Then I can see what source code / image is currently used by the workload so that I can trace back a given workload when troubleshooting or auditing

Describe alternatives you've considered
tanzu apps workload get NAME --export will return that that information, but as yaml or json - but those formats are less human friendly than providing name/value pairings.
UX
If code is sourced from a git repo
$tanzu apps workload get tanzu-java-web-app -n tap-install
Name:   tanzu-java-web-app: Ready
---
lastTransitionTime:  "2022-01-05T06:57:18Z"
message:             ""
reason:              Ready [waiting for value at path]
status:              "True"
type:                Ready

Source:   https://github.com/spring-projects/spring-petclinic
Branch:   main
Tag   :   v1.1.0
Commit:   g5na5c

If code is sourced from local code
Source:        Local source code
Source-image:  Source:gcr.io/pivotal-knative/jc-apps:latest@sha256:3ba565457e5b5c64f5956bcb7ef9080fb3d4083f0a7c5826b48832507623c177
Updated:       23min

If code is sourced from a prebuild image
Source:    Image
Image:     gcr.io/pivotal-knative/jc-apps:latest@sha256:3ba565457e5b5c64f5956bcb7ef9080fb3d4083f0a7c5826b48832507623c177
Updated:   23min

Updated — If possible to know, how long has it been since the last update from the source. The intent is to help folks know if their latest changes have been picked up. Talking to Wendy it sounds like this may not be easily knowable.
Additional context
Issue originally reported by @danfein

comment originally submitted by @scothis:
@danfein please close this issue if the support as implement is sufficient for your ask.

comment originally submitted by @danfein:
Chatted with @scothis and the team, decided to hold back on this until additional information on what is in-use is available from cartographer. Showing what is specified only risks misrepresenting the state of things to users.

@danfein or @scothis - Can you provide an example of how the current proposal could misrepresent what is "in-use" and what could cause this discrepancy?

Updated based on using the cartographer provided information rather than the workload.yml
Git source
source:     git
url:        https://github.com/spring-projects/spring-petclinic
sub-path:   project1
branch:     main
tag:        v1.1.0
commit:     g5na5s

Local source
source:   local
image:    gcr.io/pivotal-knative/jc-apps:latest@sha256: 3ba565457e5b5c64f5956bcb7ef9080fb3d4083f0a7c5826b48832507623c17

Image source
source:   image
image:    gcr.io/pivotal-knative/jc-apps:latest@sha256: 3ba565457e5b5c64f5956bcb7ef9080fb3d4083f0a7c5826b48832507623c177

@heyjcollins The original issue used the workload yaml as the source of truth, and would tell you what the last thing you requested the workload use was.
If you were to update the workload, but the changes didn't go thru, the previous source would still be in use and we would report the newest requested source, which would be incorrect.
By using cartographer as the source of truth we should be able to know what is in use.

source:   local

This is a concept that exists within the CLI when creating a source image. Once that local source code is published to an image, it's a source image. Cartographer has no notion of "local" source.

source:   image

Based on the other context, this isn't a source image (.spec.source.image but an image image (.spec.image). Labeling it as source is misleading as there is nothing to build, this image is pre-built.


Peering dashboard

Adding a monitoring dashboard for key VPC and VPC peering group network quotas that most of our customers care about.
I added this only in the networking-a-peering folder, should I also add it for other networking architecture options in fast?
Should I also add alerting policies when your utilization is above 80% for any of these quotas?

Adding a monitoring dashboard for key VPC and VPC peering group network quotas that most of our customers care about.
I added this only in the networking-a-peering folder, should I also add it for other networking architecture options in fast? Should I also add alerting policies when your utilization is above 80% for any of these quotas?

Yes, it's best to have it in all networking stages. Alerts would be nice, why not. :)

I will add the alerts in a future PR but the dashboard is ready to go.


Add setup verification documentation

Something along the lines of:
export PID=$(pgrep -f '.*Gradle.*' | head -n 1)
lsof -p $PID | grep jemalloc

It might be my MacOS setup is incorrect and I need to do something more like https://stackoverflow.com/questions/34114587/dyld-library-path-dyld-insert-libraries-not-working
If verified I'll add a bug for this with the action fix. So far unable to verify jemalloc is running in expected processes.


select2 input doesn't change height size!

After select all input options and the elements exceeds the size of width, the select input break line but, the size of height continues intact.
http://i.imgur.com/hJCrwJB.png

Try adding select2 assets from this link. It works for me and might help you too. https://fk.github.io/select2-bootstrap-css/

I try, but nothing looks like work

I tried with another version of select2 (3.5.2), and works nicely. Now i just will wait for new versions, then i will test.


Bugfix in mcmc.m

Fixed a small bug in mcmc.m. Previously the program crashed in the (rare) case where the number of posterior samples was smaller than the number of parameters in the model, because of an indexing error.

I hit this same bug!  And the fix looks correct to me.  Please merge this change with master as soon as possible.


support for transformer LoRA adapters

Hi!  Thanks so much for this awesome package.  I would like to use a transformers model with a LoRA adapter attached using the peft package.  Currently, it seems that it can only use a regular transformers model
I would like to pass the path to a LoRA adapter and load the base model with the attached adapter.
Currently, I can merge the adapter and save the model, but this is not ideal, as I have many adapters I would like to attach to the same base model.
Again, thanks so much for this awesome project!

Hey @jonberliner,
Thanks for the great suggestion! We'll definitely add this to the backlog. I haven't played around much with peft before -- do people typically use it just to load LoRA style adapters for inference? I'm wondering if we can just extend the guidance.models.Transformers loader to take in a LoRA adapter path, or do you think it would be better to have an e.g. guidance.models.Peft class to handle more complexity and customization?

@Harsha-Nori
Thanks for the response!  Yes, typically people are loading LoRA-style adapters with peft, along with setting up adapters for training which is beyond the scope of guidance.
Setting up transformers to take an adapter path would be great.  Even better would be the ability to load a base model with guidance.models.Transformers, and then load/unload adapters on top of the base model.  Perhaps that would be a guidance.models.Peft class initialized with a base model or a path to a base model, along with a path to the adapter.

@jonberliner thank you for the input here! From a user experience perspective, do you feel that having an exposed interface for adding adaptors to guidance.models.Transformers objects directly is substantially more streamlined than, say, importing the relevant Hugging Face bits, constructing models and adding adaptors there, and then just passing your final model object to a guidance wrapper?
e.g.
from transformers import AutoModelForCausalLM, AutoTokenizer
from peft import LoraConfig

model_id = "microsoft/phi-2"
model = AutoModelForCausalLM.from_pretrained(model_id)
tokenizer = AutoTokenizer.from_pretrained(model_id)

lora_config = LoraConfig(
    target_modules=[ "q_proj", "k_proj", "v_proj", "dense" ],
    init_lora_weights=False
)

model.add_adapter(lora_config, adapter_name="adapter_1")

import guidance
guidance_model = guidance.models.Transformers(model=model, tokenizer=tokenizer)

@Harsha-Nori I'm a little bit concerned about the slippery slope of having to reimplement (and maintain) the entire API of an external model-provider, and my knee-jerk reaction is to suggest we only mirror the core parts and recommend "wrapping" anything else like in my above example. Thoughts?

If transformer_model.add_adapter() leaves the model still useable by Guidance, I think that's a better solution. We're having enough trouble just getting a variety of 'bare' models supported, and embedding an extra API on top of that would be a lot of complex and error-prone work.

@riedgar-ms can confirm it works for me and totally agreed.


stdin usage detection broken on ci

https://github.com/clux/yq/actions/runs/6097257096/job/16544523271 shows
cargo test -- --nocapture shows this println: https://github.com/clux/yq/blob/2bb6f2e562e3fa25979e50f1efb2df03698f17f3/yq.rs#L155
actually triggers
running 1 test
have stdin? true

this causes problem with using file based access on ci because we detect stdin usage in the same way in https://github.com/clux/yq/blob/2bb6f2e562e3fa25979e50f1efb2df03698f17f3/yq.rs#L45-L46
and this is not something the rust docs actually ascribe any meaning to, but the polyfil did suggest this usage..
maybe i am misunderstanding how this works, but it does work locally, so not sure what's going on.

bailing on stdin detection in #15 and just being explicit about arguments - solved in 0.7


Connect on create bug

Thanks for the great package. I'm mocking out tests for our next app, but I am unable to connect on create with this setup.
I create a user earlier in the test and it seems to work fine. I am able to see the user in the first log below.
export const create_ticket = async (user_id: number, type: TicketType): Promise<Ticket> => {
  return prisma.ticket.create({
    data: {
      type,
      user: { connect: { user_id }}},
    include: {
      user: true
    }
  })
}

......
const user = await prisma.user.findUnique({where: { user_id: 1 }})
  console.log(user)

  const res = await create_ticket(1, 'free')
  console.log(res)

  const ticket = await get_ticket_by_id(1)
  console.log(ticket)

{
id: 1,
user_id: null,
user: null
... other fields as expected, like created and updated
}

The above object is what the last two logs print when trying to get the ticket. the connection isn't made in prismock, only when connecting to our database.
I did some digging around in the source code. When connecting, the user_id is passed as null to connectOrCreate in prismock.
I found a way to get the user_id on the item itself without having to directly pass it in the create object
for (const relation of field!.relationFromFields!) {
              accumulator[relation] = connect[relation]
            }

but even when that value is on item, the logic for finding the user didn't seem to be working. It seems to be hitting this block in create.ts
if (field!.relationFromFields!.length > 0) {
    const connected = findOne({ where: connect }, subDelegate, delegates);

connected is always null. Connect is passed to where as expected with the user_id. Further debugging showed that checking the User delegate (using .getItems()) returned no items, even though in my test code it returns the users I created. This is about as far as I got.
Relevant models:
model User {
  user_id            Int                   @id @default(autoincrement())
  tickets            Ticket[]
  tickets_gifted_by  Ticket[] @relation("gifted_by_user")
  tickets_gifted_to  Ticket[] @relation("gifted_to_user")
  ....
}

model Ticket {
  id Int @id @default(autoincrement())
  type TicketType
  gifted_to Int?
  gifted_to_user User? @relation(name: "gifted_to_user", fields: [gifted_to], references: [user_id])
  user_id Int
  user User @relation(fields: [user_id], references: [user_id])
  ...
}

Hello @bogannathan I've not been able to reproduce this bug. Can you let me know if the test added in https://github.com/morintd/prismock/pull/957 correspond to your use-case?
Otherwise, would you be able to add one that reproduce your problem, which I can use to try and find what's going on?

Sorry for the delay, just moved. Looks like I had an extra line in my file that was re instantiating prisma with a separate prismock client. Thanks for the help 👍


Add missing .includes, .limit from PR #1351

I ran into this testing IPv6 on my appliance at appliance startup.
Note, since the affected dashboard widgets are the "top weekly consumers", I had to manually reset my widget dashboard using the "refresh" looking arrow seen below in order to force the widget to be generated immediately instead of waiting for the next day:

cc @tenderlove @Fryguy

:+1:


Add more details on wait action in BBEs

Purpose

$subject

Fixes https://github.com/ballerina-platform/ballerina-lang/issues/12789

Codecov Report

:exclamation: No coverage uploaded for pull request base (release-0.990.0@4e1ac35). Click here to learn what that means.
The diff coverage is n/a.

@@                Coverage Diff                 @@
##             release-0.990.0   #12796   +/-   ##
==================================================
  Coverage                   ?   59.87%
  Complexity                 ?      659
==================================================
  Files                      ?     2067
  Lines                      ?   101581
  Branches                   ?    12932
==================================================
  Hits                       ?    60823
  Misses                     ?    35572
  Partials                   ?     5186

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 4e1ac35...b5dadf2. Read the comment docs.