RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:2 and cuda:0!

hello, I'm trying to modify some knowledge to Qwen-14b, I have 8 x A100 to use, in yaml file

when model_parallel : False, OOM occured
when I set model_parallel : True use multi-GPU to run ROME/MEMIT RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:2 and cuda:0! error occured
qwen-14b.yaml

alg_name: "ROME"
model_name: "/data/weights/trained/sft/qwen-14b_hf/"
stats_dir: "./data/stats"
device: 0
layers: [10]
fact_token: "subject_last"
v_num_grad_steps: 20
v_lr: 5e-1
v_loss_layer: 39
v_weight_decay: 0.5
clamp_norm_factor: 4
kl_factor: 0.0625
mom2_adjustment: false
context_template_length_params: [[5, 10], [10, 10]]
rewrite_module_tmp: "transformer.h.{}.mlp.c_proj"
layer_module_tmp: "transformer.h.{}"
mlp_module_tmp: "transformer.h.{}.mlp"
attn_module_tmp: "transformer.h.{}.attn"
ln_f_module: "transformer.ln_f"
lm_head_module: "lm_head"
mom2_dataset: "wikipedia"
mom2_n_samples: 100000
mom2_dtype: "float32"
model_parallel: true

output

Rewrite layer is 10
Tying optimization objective to 39
Recording initial value of v*
Traceback (most recent call last):
  File "/data/projects/EasyEdit/play_edit.py", line 88, in <module>
    test_ROME_Qwen(cfg_path, model_path)
  File "/data/projects/EasyEdit/play_edit.py", line 32, in test_ROME_Qwen
    metrics, edited_model, _ = editor.edit(
  File "/data/projects/EasyEdit/easyeditor/editors/editor.py", line 247, in edit
    edited_model, weights_copy = self.apply_algo(
  File "/data/projects/EasyEdit/easyeditor/models/rome/rome_main.py", line 41, in apply_rome_to_model
    deltas = execute_rome(model, tok, request, hparams)
  File "/data/projects/EasyEdit/easyeditor/models/rome/rome_main.py", line 113, in execute_rome
    right_vector: torch.Tensor = compute_v(
  File "/data/projects/EasyEdit/easyeditor/models/rome/compute_v.py", line 121, in compute_v
    logits = model(**input_tok).logits
  File "/opt/conda/envs/EasyEdit/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/opt/conda/envs/EasyEdit/lib/python3.9/site-packages/accelerate/hooks.py", line 164, in new_forward
    output = module._old_forward(*args, **kwargs)
  File "/root/.cache/huggingface/modules/transformers_modules/modeling_qwen.py", line 1104, in forward
    transformer_outputs = self.transformer(
  File "/opt/conda/envs/EasyEdit/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/root/.cache/huggingface/modules/transformers_modules/modeling_qwen.py", line 934, in forward
    outputs = block(
  File "/opt/conda/envs/EasyEdit/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/opt/conda/envs/EasyEdit/lib/python3.9/site-packages/accelerate/hooks.py", line 164, in new_forward
    output = module._old_forward(*args, **kwargs)
  File "/root/.cache/huggingface/modules/transformers_modules/modeling_qwen.py", line 655, in forward
    mlp_output = self.mlp(layernorm_output)
  File "/opt/conda/envs/EasyEdit/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1547, in _call_impl
    hook_result = hook(self, args, result)
  File "/data/projects/EasyEdit/easyeditor/util/nethook.py", line 80, in retain_hook
    output = invoke_with_optional_args(
  File "/data/projects/EasyEdit/easyeditor/util/nethook.py", line 451, in invoke_with_optional_args
    return fn(*pass_args, **pass_kw)
  File "/data/projects/EasyEdit/easyeditor/models/rome/compute_v.py", line 98, in edit_output_fn
    cur_out[i, idx, :] += delta
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:2 and cuda:0!

https://github.com/zjunlp/EasyEdit/blob/main/easyeditor/models/rome/compute_v.py#L81
You can set this delta to the device of layer 10

Hi, have you solved your issue?

https://github.com/zjunlp/EasyEdit/blob/main/easyeditor/models/rome/compute_v.py#L81 You can set this delta to the device of layer 10

Is there an easy way to determine the device that layer 10 is on?

https://github.com/zjunlp/EasyEdit/blob/main/easyeditor/models/rome/compute_v.py#L81 You can set this delta to the device of layer 10

Is there a pythonic way to do this or we can only determine which device layer 10 will be on and set it in advance?

Provisionally, try
cur_out[i, idx, :] += delta.to(cur_out.device)

https://github.com/zjunlp/EasyEdit/blob/main/easyeditor/models/rome/compute_v.py#L81 You can set this delta to the device of layer 10

I meet the same problem. I attempt to edit chatglm3-6b on multi-gpu, and my yaml is like:
alg_name: "ROME"
model_name: /home/gwz/glm3/chatglm3-6b
device: 1
mom2_dtype: "float16"
model_parallel: true

other options is the same with chatglm2-6b.yaml.
In my scenario, the rewrite layer is 5, and the edit.py prints:
Selected u projection object 中国
Left vector shape: torch.Size([13696])
Computing right vector (v)
Lookup index found: 2 | Sentence: 中国的首都是哪里？[gMASK]sop   | Token:
Rewrite layer is 5
Tying optimization objective to 27
Recording initial value of v*

So I specified device in yaml as 1, but it meets the same error at a new location instead of the line of cur_out[i, idx, :] += delta :
ewrite layer is 5
Tying optimization objective to 27
Recording initial value of v*
Traceback (most recent call last):
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/main.py", line 107, in <module>
    metrics, edited_model, tokenizer = test_ROME_ChatGLM3()
                                       ^^^^^^^^^^^^^^^^^^^^
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/main.py", line 82, in test_ROME_ChatGLM3
    metrics, edited_model, _ = editor.edit(
                               ^^^^^^^^^^^^
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/easyeditor/editors/editor.py", line 252, in edit
    edited_model, weights_copy = self.apply_algo(
                                 ^^^^^^^^^^^^^^^^
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/easyeditor/models/rome/rome_main.py", line 41, in apply_rome_to_model
    deltas = execute_rome(model, tok, request, hparams)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/easyeditor/models/rome/rome_main.py", line 113, in execute_rome
    right_vector: torch.Tensor = compute_v(
                                 ^^^^^^^^^^
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/easyeditor/models/rome/compute_v.py", line 156, in compute_v
    loss = nll_loss + kl_loss + weight_decay
           ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~
RuntimeError: Expected all tensors to be on the same device, but found at least two devices, cuda:0 and cuda:1!

I wonder what I need to do to run the scripts on multi-gpu, thank you~

@littlefive5 Thanks for help.
It seems works when two gpus are given, though it still fails on more than two gpu...
Anyway, I got a milestone to update  weights of the model. But a new challenge is comming:
Selected u projection object 中国
Left vector shape: torch.Size([13696])
Computing right vector (v)
Lookup index found: 2 | Sentence: 中国的首都是哪里？[gMASK]sop   | Token:
Rewrite layer is 5
Tying optimization objective to 27
Recording initial value of v*
loss 19.545 = 19.545 + 0.0 + 0.0 avg prob of [ 纽约] 1.30896919969814e-08
loss 18.421 = 18.162 + 0.061 + 0.198 avg prob of [ 纽约] 3.3666495369288896e-08
loss 16.044 = 15.811 + 0.01 + 0.222 avg prob of [ 纽约] 5.215836722527456e-07
loss 13.512 = 13.279 + 0.011 + 0.222 avg prob of [ 纽约] 7.951258339744527e-06
loss 11.479 = 11.246 + 0.011 + 0.222 avg prob of [ 纽约] 2.8541777282953262e-05
loss 10.19 = 9.957 + 0.011 + 0.222 avg prob of [ 纽约] 8.683399937581271e-05
loss 8.939 = 8.706 + 0.011 + 0.222 avg prob of [ 纽约] 0.0003116014995612204
loss 7.684 = 7.451 + 0.011 + 0.222 avg prob of [ 纽约] 0.0012688582064583898
loss 6.708 = 6.475 + 0.011 + 0.222 avg prob of [ 纽约] 0.0040318709798157215
loss 6.432 = 6.199 + 0.011 + 0.222 avg prob of [ 纽约] 0.004579639527946711
loss 5.269 = 5.036 + 0.011 + 0.222 avg prob of [ 纽约] 0.016872501000761986
loss 4.886 = 4.653 + 0.011 + 0.222 avg prob of [ 纽约] 0.021900227293372154
loss 4.959 = 4.727 + 0.01 + 0.222 avg prob of [ 纽约] 0.017623111605644226
loss 5.239 = 5.007 + 0.009 + 0.222 avg prob of [ 纽约] 0.012865194119513035
loss 4.694 = 4.463 + 0.009 + 0.222 avg prob of [ 纽约] 0.02247370406985283
loss 4.415 = 4.184 + 0.009 + 0.222 avg prob of [ 纽约] 0.025304453447461128
loss 4.049 = 3.819 + 0.008 + 0.222 avg prob of [ 纽约] 0.03387002646923065
loss 3.861 = 3.632 + 0.007 + 0.222 avg prob of [ 纽约] 0.037830062210559845
loss 3.597 = 3.369 + 0.005 + 0.222 avg prob of [ 纽约] 0.04446116462349892
loss 3.413 = 3.187 + 0.003 + 0.222 avg prob of [ 纽约] 0.05012023076415062
Delta norm: 39.899391174316406
Change in target norm: 8.9921875 to 37.08768844604492 => 28.095500946044922
Division Factor: 0.83447265625
Right vector norm: 47.813899993896484
Right vector shape: torch.Size([4096])
Traceback (most recent call last):
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/main.py", line 107, in <module>
    metrics, edited_model, tokenizer = test_ROME_ChatGLM3()
                                       ^^^^^^^^^^^^^^^^^^^^
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/main.py", line 82, in test_ROME_ChatGLM3
    metrics, edited_model, _ = editor.edit(
                               ^^^^^^^^^^^^
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/easyeditor/editors/editor.py", line 252, in edit
    edited_model, weights_copy = self.apply_algo(
                                 ^^^^^^^^^^^^^^^^
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/easyeditor/models/rome/rome_main.py", line 41, in apply_rome_to_model
    deltas = execute_rome(model, tok, request, hparams)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/zjx/workspace/AIrelated/AI-Evaluator/attack_verify/model_edit/easyeditor/models/rome/rome_main.py", line 127, in execute_rome
    upd_matrix = left_vector.unsqueeze(1) @ right_vector.unsqueeze(0)
                 ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
RuntimeError: expected mat1 and mat2 to have the same dtype, but got: c10::Half != float

Do you have any idea? Thank you~

I debug the script and on line of upd_matrix = left_vector.unsqueeze(1) @ right_vector.unsqueeze(0), I get :
> left_vector.unsqueeze(1).shape
torch.Size([13696, 1])
> right_vector.unsqueeze(0).shape
torch.Size([1, 4096])

It seems the col of left_vec.unsqueeze(1) is equals to the raw of right_vec.unsqueeze(0).

@JX-Zhang98
Glad to see your success running.
For multi-gpus, you can also move the tensors to the same device where the error is evoked as a temporary solution.

Hi, do you have any other issues?

If you set model_parallel as true, the device would not work here. Provisionally, try
cur_out[i, idx, :] += delta.to(cur_out.device)

or
loss = nll_loss + kl_loss.to(nll_loss .device) + weight_decay.to(nll_loss .device)

When I use MEMIT for multi-GPUs, I had to modify multiple lines in easyeditor/models/memit/compute_z.py  to avoid this error.
In details, they are: line 106, line 108, line 151, line 166, line 187, line 192. All I have done is to make to move tensors on the same device as you done in my opinion. The complete code of compute_z.py after my edit is as follow:
from typing import Dict, List, Tuple

import numpy as np
import torch
from transformers import AutoModelForCausalLM, AutoTokenizer

from ..rome import repr_tools
from ...util import nethook

from .memit_hparams import MEMITHyperParams

def compute_z(
    model: AutoModelForCausalLM,
    tok: AutoTokenizer,
    request: Dict,
    hparams: MEMITHyperParams,
    layer: int,
    context_templates: List[str],
) -> Tuple[torch.Tensor, torch.Tensor]:
    """
    Computes the value (right) vector for the rank-1 update.
    Runs a simple optimization procedure.
    """

    # Get model parameters
    lm_w, ln_f = (
        nethook.get_parameter(model, f"{hparams.lm_head_module}.weight").T,
        nethook.get_module(model, hparams.ln_f_module),
    )
    try:
        lm_b = nethook.get_parameter(model, f"{hparams.lm_head_module}.bias")
    except LookupError as _:
        lm_b = next(model.parameters()).new_zeros(model.config.vocab_size)

    print("Computing right vector (v)")

    # Tokenize target into list of int token IDs
    target_ids = tok(request["target_new"], return_tensors="pt").to(f"cuda:{hparams.device}")[
        "input_ids"
    ][0]

    if target_ids[0] == tok.bos_token_id or target_ids[0] == tok.unk_token_id:
        target_ids = target_ids[1:]
    # Compile list of rewriting and KL x/y pairs
    rewriting_prompts, kl_prompts = [
        context.format(request["prompt"]) + tok.decode(target_ids[:-1])
        for context_types in context_templates
        for context in context_types
    ], ["{} is a"]
    all_prompts = rewriting_prompts + kl_prompts

    input_tok = tok(
        [prompt.format(request["subject"]) for prompt in all_prompts],
        return_tensors="pt",
        padding=True,
    ).to(f"cuda:{hparams.device}")

    # Compute rewriting targets
    rewriting_targets = torch.tensor(-100, device=f"cuda:{hparams.device}").repeat(
        len(rewriting_prompts), *input_tok["input_ids"].shape[1:]
    )
    for i in range(len(rewriting_prompts)):
        ex_len = input_tok["attention_mask"][i].sum()
        rewriting_targets[i, ex_len - len(target_ids) : ex_len] = target_ids

    # Compute indices of the tokens where the fact is looked up
    lookup_idxs = [
        find_fact_lookup_idx(
            prompt, request["subject"], tok, hparams.fact_token, verbose=(i == 0)
        )
        for i, prompt in enumerate(all_prompts)
    ]

    # Finalize rewrite and loss layers
    loss_layer = max(hparams.v_loss_layer, layer)
    print(f"Rewrite layer is {layer}")
    print(f"Tying optimization objective to {loss_layer}")

    # Set up an optimization over a latent vector that, when output at the
    # rewrite layer, i.e. hypothesized fact lookup location, will induce the
    # target token to be predicted at the final layer.
    if hasattr(model.config, 'n_embd'):
        delta = torch.zeros((model.config.n_embd,), requires_grad=True, device=f"cuda:{hparams.device}")
    elif hasattr(model.config, 'hidden_size'):
        delta = torch.zeros((model.config.hidden_size,), requires_grad=True, device=f"cuda:{hparams.device}")
    else:
        raise NotImplementedError
    target_init, kl_distr_init = None, None

    # Inserts new "delta" variable at the appropriate part of the computation
    def edit_output_fn(cur_out, cur_layer):
        nonlocal target_init

        if cur_layer == hparams.layer_module_tmp.format(layer):
            # Store initial value of the vector of interest
            if target_init is None:
                print("Recording initial value of v*")
                # Initial value is recorded for the clean sentence
                target_init = cur_out[0][0, lookup_idxs[0]].detach().clone()

            # Add intervened delta
            for i, idx in enumerate(lookup_idxs):

                if len(lookup_idxs)!=len(cur_out[0]):
                    cur_out[0][idx, i, :] += delta.to(cur_out[0].device)
                else:
                    cur_out[0][i, idx, :] += delta.to(cur_out[0].device)

        return cur_out

    # Optimizer
    opt = torch.optim.Adam([delta], lr=hparams.v_lr)
    nethook.set_requires_grad(False, model)

    # Execute optimization
    for it in range(hparams.v_num_grad_steps):
        opt.zero_grad()

        # Forward propagation
        with nethook.TraceDict(
            module=model,
            layers=[
                hparams.layer_module_tmp.format(loss_layer),
                hparams.layer_module_tmp.format(layer),
            ],
            retain_input=False,
            retain_output=True,
            edit_output=edit_output_fn,
        ) as tr:
            logits = model(**input_tok).logits
            # Compute distribution for KL divergence
            kl_logits = torch.stack(
                [
                    logits[i - len(kl_prompts), idx, :]
                    for i, idx in enumerate(lookup_idxs[-len(kl_prompts) :])
                ],
                dim=0,
            )
            kl_log_probs = torch.nn.functional.log_softmax(kl_logits, dim=1)
            if kl_distr_init is None:
                kl_distr_init = kl_log_probs.detach().clone()

        # Compute loss on rewriting targets

        output=tr[hparams.layer_module_tmp.format(loss_layer)].output[0]
        if output.shape[1]!=rewriting_targets.shape[1]:
            output=torch.transpose(output, 0, 1)
        full_repr = output[:len(rewriting_prompts)]

        log_probs = torch.log_softmax(ln_f(full_repr).to(full_repr.device) @ lm_w.to(full_repr.device) + lm_b.to(full_repr.device), dim=2)
        loss = torch.gather(
            log_probs,
            2,
            torch.where(rewriting_targets != -100, rewriting_targets, 0).unsqueeze(2).to(log_probs.device),
        ).squeeze(2)
        mask = (rewriting_targets != -100).float()

        # Aggregate total losses
        nll_loss_each = -(loss * mask.to(loss.device)).sum(1) / target_ids.size(0)
        nll_loss = nll_loss_each.mean()
        kl_loss = hparams.kl_factor * torch.nn.functional.kl_div(
            kl_distr_init, kl_log_probs, log_target=True, reduction="batchmean"
        )
        weight_decay = hparams.v_weight_decay * (
            torch.norm(delta) / torch.norm(target_init).to(delta.device) ** 2
        )
        # weight_decay = hparams.v_weight_decay * torch.norm(delta) ** 2
        loss = nll_loss + kl_loss.to(nll_loss.device) + weight_decay.to(nll_loss.device)
        print(
            f"loss {np.round(loss.item(), 3)} = {np.round(nll_loss.item(), 3)} + {np.round(kl_loss.item(), 3)} + {np.round(weight_decay.item(), 3)} "
            f"avg prob of [{request['target_new']}] "
            f"{torch.exp(-nll_loss_each).mean().item()}"
        )
        if loss < 5e-2:
            break

        if it == hparams.v_num_grad_steps - 1:
            break

        # Backpropagate
        loss.backward()
        opt.step()

        # Project within L2 ball
        max_norm = hparams.clamp_norm_factor * target_init.norm()
        max_norm = max_norm.to(delta.device)
        if delta.norm() > max_norm:
            with torch.no_grad():
                delta[...] = delta * max_norm / delta.norm()

    target = target_init + delta.to(target_init.device)
    print(
        f"Init norm {target_init.norm()} | Delta norm {delta.norm()} | Target norm {target.norm()}"
    )

    return target

def get_module_input_output_at_words(
    model: AutoModelForCausalLM,
    tok: AutoTokenizer,
    layer: int,
    context_templates: List[str],
    words: List[str],
    module_template: str,
    fact_token_strategy: str,
    track=None,
) -> Tuple[torch.Tensor]:
    """
    Retrieves detached representations for a word at the input and
    output of a particular layer module.
    """

    word_repr_args = dict(
        model=model,
        tok=tok,
        layer=layer,
        module_template=module_template,
    )
    if "subject_" in fact_token_strategy and fact_token_strategy.index("subject_") == 0:
        context_info = dict(
            context_templates=context_templates,
            words=words,
        )
        subtoken = fact_token_strategy[len("subject_") :]
        if track == 'out' or track == 'in':
            return repr_tools.get_reprs_at_word_tokens(
                track=track, subtoken=subtoken, **context_info, **word_repr_args
            )
        l_input, l_output = repr_tools.get_reprs_at_word_tokens(
            track="both", subtoken=subtoken, **context_info, **word_repr_args
        )
    elif fact_token_strategy == "last":
        raise Exception("This is definitely bugged, fix it.")
        context_info = dict(
            contexts=[
                tmp[i].format(words[i]) for i, tmp in enumerate(context_templates)
            ],
            idxs=[000000],
        )
        if track == 'out' or track == 'in':
            return repr_tools.get_reprs_at_word_tokens(
                track=track, subtoken=subtoken, **context_info, **word_repr_args
            )
        l_input, l_output = repr_tools.get_reprs_at_idxs(
            track="both", **context_info, **word_repr_args
        )
    else:
        raise ValueError(f"fact_token={fact_token_strategy} not recognized")

    return l_input.detach(), l_output.detach()

def find_fact_lookup_idx(
    prompt: str,
    subject: str,
    tok: AutoTokenizer,
    fact_token_strategy: str,
    verbose=True,
) -> int:
    """
    Computes hypothesized fact lookup index given a sentence and subject.
    """

    ret = None
    if fact_token_strategy == "last":
        ret = -1
    elif (
        "subject_" in fact_token_strategy and fact_token_strategy.index("subject_") == 0
    ):
        ret = repr_tools.get_words_idxs_in_templates(
            tok=tok,
            context_templates=[prompt],
            words=[subject],
            subtoken=fact_token_strategy[len("subject_") :],
        )[0][0]
    else:
        raise ValueError(f"fact_token={fact_token_strategy} not recognized")

    sentence = prompt.format(subject)
    if verbose:
        print(
            f"Lookup index found: {ret} | Sentence: {sentence} | Token:",
            tok.decode(tok(sentence)["input_ids"][ret]),
        )

    return ret

However, when I run this code I got OOM error although I used 8 * 80G H800 to run it. Did I make some mistake in the code? Please advise.
In addition, the base LM to be edited is Qwen-14B-Chat.

Hi, do you have any other questions? May I close this issue?

Hi, I am facing the same issue for ROME when trying to edit layer 7 on six 46GB gpus. The above mentioned work arounds are not working. Can you please provide more appropriate resolution?

Hi, I am facing the same issue for ROME when trying to edit layer 7 on six 46GB gpus. The above mentioned work arounds are not working. Can you please provide more appropriate resolution?

Thank you for your interest in EasyEdit.
We are very sorry that due to resource constraints, we cannot reproduce the results on 6 GPUs. However, ROME currently supports multi-GPU editing, at least it can run successfully on two GPUs. As shown in the picture below, I just reproduced the results.

My suggestion:

Solve the OOM problem by os.environ['CUDA_VISIBLE_DEVICES']='0,1' and enable fp16=true (#112) .

If this reply solves your problem, please help me close this issue 😊

Hi Pengzju,
This issue still persists. It is not resolved. I tried with two 46GB gpus but 'cuda out of memory' is coming up. It is happening when I am going to edit after 6th Layer (i.e. 7th layer, 8th layer etc). When I increase the GPUs at that time this issue is coming.

Hi Pengzju,
This issue still persists. It is not resolved. I tried with two 46GB gpus but 'cuda out of memory' is coming up. It is happening when I am going to edit after 6th Layer (i.e. 7th layer, 8th layer etc). When I increase the GPUs at that time this issue is coming.

As shown in the figure below, I tried to edit the 8th layer through two GPUs, but could not reproduce your results.

so what is the size of the model you are editing? (Perhaps it is OOM caused by the large number of parameters in the model itself.)
Whether device_map is set to "auto"

I suggest you check the device distribution of each variable and model on the line where the error is thrown. I'm sorry that I can't reproduce your problem.

Hi, do you have any further questions?


Add Solara integration to the third party tools

Add Solara integration to the third party tools.

Happy to review it this week!

Thank you very much @maartenbreddels
I think the code is much cleaner now.

Hi! What's the status on this PR?

Hi, thanks so much! Before merging, would it be possible to know if the readme could be a colab notebook instead?

would it be possible to know if the readme could be a colab notebook instead?

Curious to know why you would want that? If the reason is to be able to change/run the code, I was actually thinking of putting it on https://py.cafe

Its mostly to be able to run easily the code yes, since as a jupyter notebook for colab we can easily mention it on the docs and redirect the users to a colab for them to run the code.
However if that is not possible its fin, py.cafe however does sound like a cool idea.

I'll work with @alonsosilvaallende to get the first example on py.cafe (requires some development for the PyCafe team to support secrets, this should take ~1 week max).
Due to the faiss dependency, we cannot run the chat with a pdf on PyCafe (yet).
@alonsosilvaallende what do you think, does it make sense to turn the chat with pdf example into a notebook, so we can include a colab link?

I'll work with @alonsosilvaallende to get the first example on py.cafe (requires some development for the PyCafe team to support secrets, this should take ~1 week max).
Due to the faiss dependency, we cannot run the chat with a pdf on PyCafe (yet).
@alonsosilvaallende what do you think, does it make sense to turn the chat with pdf example into a notebook, so we can include a colab link?

Thank you @maartenbreddels Yes, we can do a colab with the chat with pdf example. If I remember correctly there was a problem with threads with colab and chat but I will check again.

Hi everyone, if I understand currently the cookbook wont be possible as a colab notebook for now correct? In that case if you believe this cookbook is ready we can review it and merge it as it is.

Thank you @pandora-s-git
Yes, that is correct. I believe this cookbook is ready. Thank you.

Thank you for the cookbook! Merged!

Thank you very much!


parse metric name and tags with histograms support

When sending timers with histograms, statsd creates new gauges with .bin_x added to the original metric name.
For instance: global-prefix.name#tag=val is sent to statsd-librato-backend as global-prefix.name#tag=val.bin_50
This format is not supported by the existing parseAndSetTags.
Thanks,
Mugur

Thanks for the report / fix + test! I'll check on this tomorrow morning (I'm CST)

cc @jderrett

Regarding these commits:
@mugurax	disabled debug override			94da786
@mugurax	disabled debug override			4dcd2d6
They were not intended to reach this pull request :( I am not sure how should I proceed. Sorry for the trouble.

@mugurax No worries! You can make the change on your branch and update the PR.

Any updates?

@bryanmikaelian any update here? I would happily take this over otherwise.

cc @mbeale . You ok with @johanneswuerbach taking this over? I can try to get it knocked out but no ETA. Is this something Librato still wants to support?


Add possibility to display BG as overlay on BgGraph for users who prefer larger font

Additionally add option to hide BG in BgPanel to let users avoid displaying Bg twice - resolves #9
New options:

New overlay:

Interesting possibility.
How is this option implemented?
Regards and thanks.

@Elicio-Fuente I think best way to understand the implementation is to maybe look at the file changes, I think there are not that many changes. However bottom line is when "Show overlay with BG" is enabled then additional canvas on top is rendered with opacity by using Color.argb(200, 0, 0,0) which displays the glucose level using larger font. Not sure if that answer helps?

@Elicio-FuenteCreo que la mejor manera de entender la implementación es mirar los cambios en el archivo, creo que no hay tantos cambios. Sin embargo, la conclusión es que cuando se habilita "Mostrar superposición con fondo", se renderiza un lienzo adicional en la parte superior con opacidad mediante el uso de una Color.argb(200, 0, 0,0)fuente más grande para mostrar el nivel de glucosa. ¿No estoy seguro de si esa respuesta ayuda?
My ignorance on these issues is total.
My question is: Where can I download the application you modified?
Is it enough to replace the G-Watch Wear App installed on my phone with the modified one?
Thank you.

@Elicio-Fuente unfortunately it's not that easy, how I installed it is by created APK on my development environment and manually installed on the galaxy watch. I think easiest option would be reach out to author to take a look at this change and hopefully he would integrate this change and publish new version to Google Play store. @trupici maybe you can help @Elicio-Fuente ?

@Elicio-Fuente Alternatively you could try to install apk from
https://github.com/piotrmaj/G-Watch-Wear/releases/tag/0.9.8-bg-overlay-debug
to your watch by side loading apk to ur watch https://www.youtube.com/watch?v=5v8_pGVyPBs but if you haven't done anything like that before it might not be the best idea as you might do some harm to your watch

Thanks for your reply @Piotrmaj.
I will do that, I will contact @trupici.


Fix error on build because of filter select ref

@jadmsaadaot was this meant to have an estimate?
or was it meant to be closed as not planned?


[MINT-3176] SQL for Shared MTO enums

MINT-3176
Description

Adds SQL migration (V177 at time of writing) for adding MTO_FACILITATOR and MTO_RISK_INDICATOR enums, based on this GraphQL

[!NOTE]
This PR doesn't (currently) introduce these enums into the models package (as they're generated in the model package). We can add them in this PR if preferred, or leave them as-is!

How to test this change

Ensure migrations run as expected
Ensure SQL enums match GraphQLe

PR Author Checklist

[ ] I have provided a detailed description of the changes in this PR.
[ ] I have provided clear instructions on how to test the changes in this PR.
[ ] I have updated tests or written new tests as appropriate in this PR.
[ ] Updated the Postman Collection if necessary.

PR Reviewer Guidelines

It's best to pull the branch locally and test it, rather than just looking at the code online!
When approving a PR, provide a reason why you're approving it

e.g. "Approving because I tested it locally and all functionality works as expected"
e.g. "Approving because the change is simple and matches the Figma design"

Don't be afraid to leave comments or ask questions, especially if you don't understand why something was done! (This is often a great time to suggest code comments or documentation updates)
Check that all code is adequately covered by tests - if it isn't feel free to suggest the addition of tests.

Thanks Clay! I think we will want these in the models package instead of just generated, because they will be on the milestone and solution type when we make them.

Thanks Clay! I think we will want these in the models package instead of just generated, because they will be on the milestone and solution type when we make them.

That's actually what I'm about to push up 😁 as I wrote that note I realized I should just add them


Replace escape pattern

Changes escape pattern like original lib: https://github.com/tj/ejs

+1, we got bit by this as well

this should be a fix for #22 it looks like


Does this tool work with D365 online?

I tried to connect to my instance and never managed to connect. I tried all options and kept on failing. So, i edited the code to connect to the discovery service in my org, only to lead me to a list of orgs where my org name was not even listed. Can help me pls? Without editing the code I always get "Metadata contains a reference that cannot be resolved".

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

ID: a46bbec7-f9e5-7f62-1d3c-3a146363f17a
Version Independent ID: 0e55c878-7386-1977-b34e-60b877a1541b
Content: Use metadata to generate entity diagrams (Developer Guide for Dynamics 365 for Customer Engagement apps)
Content Source: ce/developer/use-metadata-generate-entity-diagrams.md
Service: crm-online
GitHub Login: @JimDaly
Microsoft Alias: jdaly

@phecke Can you please look at this.

@ehandani I am looking into the issue. I am getting the same error.

@phecke please have a look. We need it asap.

Please fix this and put with the other "Tools" rather than code samples

@ehandani This tool works for Dynamics 365 online orgs too. The doc is updated with latest code sample. Closing the issue.


chore: update teamcity fqdn

Updated TeamCity FQDN.  Changed from teamcity.hq.daptiv.com to teamcity.daptiv.com.

I am still receiving git updates to my email. I left the company while back

On Jun 1, 2018, at 1:51 PM, Linus Ruth<EMAIL_ADDRESS>wrote:
Merged #12 https://github.com/daptiv/teamcity/pull/12.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub https://github.com/daptiv/teamcity/pull/12#event-1659166267, or mute the thread https://github.com/notifications/unsubscribe-auth/AIZwWWlpnxF3gCGCp-qCo19DxuDdwV3lks5t4alUgaJpZM4UXQVF.


chore(ci): add lts node 20

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

Comparison is base (3802920) 61.05% compared to head (8cfa3e3) 61.05%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #5639   +/-   ##
=======================================
  Coverage   61.05%   61.05%
=======================================
  Files        1109     1109
  Lines       23647    23647
  Branches     6195     6195
=======================================
  Hits        14438    14438
  Misses       7614     7614
  Partials     1595     1595

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Small game exit bug

To reproduce this bug, start the game and choose 2) How To Play, then 1) Quit, then 3) Quit. The game only quits once you choose 3 twice, when it should quit right away.

I'd like to try this.

Can you look for #46

I'd like to give this a shot

In your game, the user has to press enter after every input. You can try using choice=getch() instead of cin >> choice


Neurodesktop can't connect to CVMFS behind a Proxy

This user doesn't seem to be connected to CVMFS correctly: https://community.mrtrix.org/t/mrtrix3-docker-gui-issue/5273 - but hard to debug without seeing the actual setup

closing, because seems to be isolated problem


Added "Hello World" to indexRouter.js

Nice, errors are all cleared up. Going to approve this.
Just super minor nitpicks for the future:

lets get a more semantic branch naming, in this specific example, we could've just titled this as a chore/deployment since it was our first deployment and getting to know the tooling

Commit messages are solid.


Fix #260: Add gettext functions to all messages

This pull request added missing gettext tags to messages, which should be translatable. Partially closes #260.

Seems like a good addition. @agjohnson any thoughts?

We shouldn't translate Read the Docs, as it's branding, not just a string. Looks good otherwise.

We shouldn't translate  Read the Docs, as it's branding, not just a string.

Yes, I known. But this still UI string and in some cases may be useful to «translate» it. Furhermore, the presence feature better its absence.

I would argue we never want to translate it. It's not just UI text, it's our brand, name of the site, and our domain name -- none of which transfers to other languages cleanly.

I think it can be closed now that #343 is merged?

Closing, because same PR #343 was already merged.


Add viewToken mutation

This is awesome Rohan! Thinking about this feature more, I think it makes sense if we skip dispatching the event via dispatchEvent and write the view to the db directly. The reason being that normally we dispatch events when we want to do something else with the event like sending a push notification or adding it to the feed. In this case we just want to store the view event, so it makes sense to skip it entirely.
Each publicAPI has an instance to repos which has a bunch of "repositories", or ways to read and write to the db. There is an event repo in service/persist/postgres/event.go that dispatchEvent ends up calling, and there is already a method for adding a token-related event. Take a look at the file and lmk if you have questions. You'll also want to add the event repo as a field to the repo struct so that you can use it (you'll need to update the NewRepositories function that constructs the Repositories type in service/persist/postgres/postgres.go)
I think the logic would look like:

check if the user is authed
if the user is authed, use the event repo to add the view event to the db

Constructing the event can be a little tricky because of its many fields, but really briefly:
		ID:             this gets auto-generated by event repo, so no need to fill this in
		ActorID:        this should be the authed user that viewed the token
		Action:         should be the viewed token action type
		ResourceTypeID: should be the token resource type
		CollectionID:   this should be the token id being viewed
		Data:           this is additional metadata we want to add to the event, I think it would be great if we could add the contractID of the token in here if possible so we can easily aggregate by contract in the future if we want
		Caption:        can leave empty
		GroupID:        can leave empty
		GalleryID:      can leave empty

Feel free to find some time with me if you have any questions!


Simplify history builder

What changed?
Simplify history builder by:

Removing redundant new<...> helper functions. Construct event directly in the Add<...> functions.
Initialize all event attributes using struct initialization syntax instead of setting them one by one.
Removed unused methods

Why?
Less code to maintain and easier to read.

How did you test it?
Purely refactoring. Existing tests.

Potential risks

Release notes

Documentation Changes

Pull Request Test Coverage Report for Build 0180dcb6-47c0-401a-90d8-84d991edd31a

375 of 419 (89.5%)  changed or added relevant lines in 1 file are covered.
1946 unchanged lines in 16 files lost coverage.
Overall coverage increased (+0.07%) to 56.916%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

service/history/execution/history_builder.go
375
419
89.5%

Files with Coverage Reduction
New Missed Lines
%

common/task/parallelTaskProcessor.go
2
92.75%

service/matching/service.go
2
90.91%

service/history/decision/task_handler.go
5
74.19%

common/config/config.go
8
80.39%

common/ndc/history_resender.go
16
83.75%

service/frontend/clusterRedirectionPolicy.go
18
77.01%

service/frontend/adminHandler.go
32
48.2%

service/history/queue/timer_queue_processor.go
34
58.37%

service/history/queue/transfer_queue_processor.go
34
56.86%

service/matching/handler.go
40
69.04%

Totals

Change from base Build 0180dad4-9958-4975-9687-f84ff4f113a1:
0.07%

Covered Lines:
83805

Relevant Lines:
147243

💛  - Coveralls


Modify fc8 layer in a VGG19 neural network

Hi,
I am using a pretrained VGG19. I would like to adjust the final FC layer fc8 to fit a different number of classes, then retrain the final layer and use to perform prediction on a specific set of images. However, I do not see how I can interact with the Fnn.Model.t structure, or how to filter the parameters to recover from the Fnn.Model.load function. Would you be able to help with that?
Many thanks!

Hi,
Sorry for the very delayed answer. I would suggest hacking the Fnn.Model.load function to fit your use case, for example by discarding the last layer weights based on their name.
For the retrain bit, note that Fnn.Model.fit has some explicit_vars parameter that could help, or maybe you want once again to filter the variables based on their names.
If this works properly for you, we could consider adding some more general support for this, e.g. by adding some kind of regexp to exclude some weights from being loaded.

Hi,
Sorry for taking so much time to get back to you and thanks a lot for your help with this! I keep this in mind. Actually, due to time constraints with my project I had to move back to Python and Keras. That said, I will keep investigating this precious binding once I have more time. Thanks again!

Thanks for the update, it certainly makes sense to use Python/Keras under time constraints. Let me know if you want some help trying this in OCaml at some point.
For what it's worth I have been working recently on some OCaml bindings for PyTorch. I added yesterday some example showing how to retrain the FC layer of a ResNet-18 network (based on this PyTorch tutorial in Python). I will add some detailed tutorial on how this works soon.
All this is pretty much a work in progress but the bindings already feel nicer to use that the TensorFlow bindings.


Overloading new/delete is not working in MinGW

Probably it is not a nvwa problem. But nvwa affects too. So I hope you can help me.
In MinGW application operators new/delete will not be replaced globally. So can't be catched new/delete calls in shared libraries (.dll). new/delete overloading applies only for application .exe file. I tried to ask this on StackOverflow but don't get answer.

I wrote minimal test case. Built it with MinGW and start to see a problem.

I posted an answer on StackOverflow. Hopefully it can help a bit.

Thanks.


pallet-treasury: Ensure we respect max_amount for spend across batch calls

When calling spend the origin defines the max_amount of tokens it is allowed to spend. The problem is that someone can send a batch(spend, spend) to circumvent this restriction as we don't check across different calls that the max_amount is respected. This pull request fixes this behavior by introducing a so-called dispatch context. This dispatch context is created once per outer most dispatch call. For more information see the docs in this pr. The treasury then uses this dispatch context to attach information about already spent funds per max_amount (we assume that each origin has a different max_amount configured). So, a batch(spend, spend) is now checked to stay inside the allowed spending bounds.
Fixes: https://github.com/paritytech/substrate/issues/13167

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: cargo-check-benches
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2443670

The CI pipeline was cancelled due to failure one of the required jobs.
Job name: test-linux-stable
Logs: https://gitlab.parity.io/parity/mirrors/substrate/-/jobs/2443849

bot merge


zpaqfranz: 60.9 -> 60.10

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/fcorbelli/zpaqfranz/releases.
meta.description for zpaqfranz is: Advanced multiversioned deduplicating archiver, with HW acceleration, encryption and paranoid-level tests
meta.homepage for zpaqfranz is: https://github.com/fcorbelli/zpaqfranz
meta.changelog for zpaqfranz is: https://github.com/fcorbelli/zpaqfranz/releases/tag/60.10
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 60.10 with grep in /nix/store/ni2cvwyfk36wmid14khnqnmrhgffps4n-zpaqfranz-60.10
found 60.10 in filename of file in /nix/store/ni2cvwyfk36wmid14khnqnmrhgffps4n-zpaqfranz-60.10

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath

zpaqfranz

Instructions to test this update (click to expand)

Either download from the cache:
nix-store -r /nix/store/ni2cvwyfk36wmid14khnqnmrhgffps4n-zpaqfranz-60.10 \
  --option binary-caches 'https://cache.nixos.org/ https://nixpkgs-update-cache.nix-community.org/' \
  --option trusted-public-keys '
  nixpkgs-update-cache.nix-community.org-1:U8d6wiQecHUPJFSqHN9GSSmNkmdiFW7GW7WNAnHW0SM=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

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

Or:
nix build github:r-ryantm/nixpkgs/b365ab88d2498b4c59d369ee5aede57415b640f8#zpaqfranz

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

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

x86_64-linux

:white_check_mark: 1 package built:

zpaqfranz

Maintainer pings
cc @AndersonTorres for testing.

[!TIP]
As a maintainer, if your package is located under pkgs/by-name/*, you can comment @NixOS/nixpkgs-merge-bot merge to automatically merge this update using the nixpkgs-merge-bot.

Add a :+1: reaction to pull requests you find important.

@NixOS/nixpkgs-merge-bot merge


Dask Groupby result multiple partitions with sorted=True.

I have a time-series data in dask dataframe. I am reading from huge parquet file (around 8 GB) which has 12 row-groups which translated to 12 partitions in dask after read_parquet.

After reading data there was multiple entries for a single timestamp. I performed groupby-sum aggregation over it to get rid of multiple entries.

This happened successfully but it changed number of partitions to 1 which is expected. Further, I have to run some downstream operations on it, such as handling null values, resampling, scaling and transforming it to sequences.

I was following this question and was wondering would I lose parallelism because number of partition is 1 now? Does dask repartition it implicitly by default while performing operations on data frame?

I was checking split_out parameter to control number of partitions, but it gave me warning

Cannot guarantee sorted keys for split_out>1. Try using split_out=1,
or grouping with sort=False.

but I need data sorted on timestamps. How can I ensure that while having npartitions > 1.

There are some downstream operations which can again run across partition and give result in single partition. Do I need to monitor partitions every time and repartition it explicitly to exploit parallelism?

Dask has historically assumed that most groupby operations can be mapped onto a tree reduction with a small-enough output to fit in a single partition. The split_out argument does allow you to get around this, but performance and support depend on the specific application.
Do you mind sharing what version of dask you are using and what the groupby reduction commands look like? For example, are you using ddf.groupby("time", sort=True).agg(..., npartitions=n)?
I ask these questions, because split_out>1 performance/support has recently improved for some cases (e.g. groupby().agg), and is likely to improve for more cases in the future.  For example, if you are only grouping on a single column, we now use shuffle=True in groupby().agg to get around the sort=True limitation. That said, support is still limited, and your specific application may still be a "todo."
Whether or not your application can use split_out>1/shuffle=True, the most performant approach to this problem is to (1) start with data that is already partitioned by the time, and (2) use map_partitions to perform embarrassingly parallel groupby aggregations within each partition. For example:

# Read in data
ddf = dd.read_parquet(...)

# If data is not already sorted/partitioned by "time":
ddf = ddf.set_index("time")  # Performs (expensive) global sort

# Perform distinct groupby in each partition
grouped = ddf.map_partitions(lambda x: x.groupby("time").sum())

If your data is not already sorted/partitioned on disk, the best-case scenario is likely:
ddf = dd.read_parquet(...)
ddf = ddf.groupby("time", sort=True).agg("sum", split_out=ddf.npartitions)

Note that this last case is not allowed when grouping on multiple columns (yet), or with older versions of Dask.

The current dask version I am using is 2022.9.2. Well you are right previously I was using below commands for aggregation
ddf.groupby("time", sort=True).sum()
When I saw it resulted in single partition I used split_out parameter like below
ddf = ddf.groupby("time", sort=True).sum(split_out=ddf.npartitions)
which resulted in below error:
NotImplementedError: Cannot guarantee sorted keys for split_out>1. Try using split_out=1, or grouping with sort=False.
Next, after some exploration I settled for below steps.
timestamp_feature_name = ["time"]
# cast to datetime
data[timestamp_feature_name] = data[timestamp_feature_name].astype("datetime64[ns]")
# sort data
data = data.set_index(timestamp_feature_name)
# aggregation
data = data.map_partitions(
    lambda part: part.groupby(timestamp_feature_name)[
        self.features_for_training
    ].apply(sum)
)

Although set_index is expensive I needed it for downstream operations such as filling missing timestamps:
# performed train test split
# fill missing time steps
data = data.resample(self.freq).agg('asfreq').reset_index()

# mark values as nan above 99 percentile for numerical columns
for feature in numerical_features:
    data[data[feature] > data[feature].quantile(0.99).compute().item()] = np.nan

# fill nan values using forward fill
data[numerical_features] =  data[numerical_features].fillna(method="ffill")

# handle edge cases when first and last row could be nan
data = data.dropna()

# scaler transformation
scaler = StandardScaler()
scaler.fit(data[numerical_features])
data[numerical_features] = scaler.transform(data[numerical_features])

# then transformed to sequences using `sliding_window_view`

I hope I am following right steps.


[CyberpunkRED_Gerdofal] Creating Sheet

Changes / Comments
New sheet as discussed here: https://app.roll20.net/forum/post/7712855/new-sheet-for-cyberpunk-red-jumpstart-kit-in-testing
Usability and visual improvements, play tested and improved from feedback. Includes a tab for GM use (NPC rolls).
Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[ ] Does the pull request title have the sheet name(s)? Include each sheet name.
[ ] Is this a bug fix?
[ ] Does this add functional enhancements (new features or extending existing features) ?
[ ] Does this add or change functional aesthetics (such as layout or color scheme) ?
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
[yes ] If this is a new sheet, did you follow Building Character Sheets standards ?

If you do not know English. Please leave a comment in your native language.

Thanks for including the forum post. That was helpful.


This expression is not callable.

This expression is not callable.
Type 'typeof import("./node_modules/use-debouncy/lib/index")' has no call signatures.ts(2349)

Hi!
Can you add some code to reproduce the problem? Or some additional description.

Hey same issue here. It doesn't work on TS projects.
import prisma from '@/lib/prisma'
import { useSession } from 'next-auth/react'
import React, { useCallback, useState } from 'react'
import useDebouncy from 'use-debouncy/effect'

function Create() {
  const [val, setVal] = useState(val)
  useDebouncy(
      () => {
        console.log('call API')
      },
      400,
      [val]
  }
  return (

Hello world!

  )
}

export default Create

But anyways @adamgogogo and @eavam I fixed it by importing it like this instead:
import { useDebouncyEffect } from 'use-debouncy'

@BraydenTW Thanks, it helped me a lot!

You’re welcome!


Prevent 80-test_cmp_http from accidentally killing perl in error.

If there is an issue with setting up the test environment in this test, pid is not set so stop_server kills the perl process. A guard has been added to prevent this situation.
Fixes: #22014

This won't merge cleanly to 3.0 and 3.1 because the function name changed from stop_mock_server to stop_server

This won't merge cleanly to 3.0 and 3.1 because the function name changed from stop_mock_server to stop_server.
The fix ought to go back to these versions.

I can set up a separate PR for 3.0 and 3.1 with no problem. Need to do it tomorrow.

I can set up a separate PR for 3.0 and 3.1 with no problem. Need to do it tomorrow.

Great thanks.

I can set up a separate PR for 3.0 and 3.1 with no problem. Need to do it tomorrow.

Great thanks.

@paulidale Please see PR #22038 for compatibility with 3.0 and 3.1.

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Merged, thanks.


[BUG] v3.0.0 kubeconfig panics if cluster name not given.

What did you do?
k3d get kubeconfig

How was the cluster created?

k3d create cluster prod -m 1

What did you do afterwards?

> k3d get cluster
NAME   MASTERS   WORKERS
prod   1         0
> k3d get kubeconfig
panic: runtime error: index out of range [0] with length 0

goroutine 1 [running]:
github.com/rancher/k3d/cmd/get.parseGetKubeconfigCmd(0xc00033a780, 0x1330b90, 0x0, 0x0, 0x1, 0xc00021bd20, 0x0, 0xc00021bd00, 0xc00021bd20)
        /home/travis/gopath/src/github.com/rancher/k3d/cmd/get/getKubeconfig.go:82 +0x34f
github.com/rancher/k3d/cmd/get.NewCmdGetKubeconfig.func1(0xc00033a780, 0x1330b90, 0x0, 0x0)
        /home/travis/gopath/src/github.com/rancher/k3d/cmd/get/getKubeconfig.go:45 +0xc7
github.com/spf13/cobra.(*Command).execute(0xc00033a780, 0x1330b90, 0x0, 0x0, 0xc00033a780, 0x1330b90)
        /home/travis/gopath/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:830 +0x2aa
github.com/spf13/cobra.(*Command).ExecuteC(0x1308640, 0xc00021bf50, 0x40576f, 0xc0000a6058)
        /home/travis/gopath/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:914 +0x2fb
github.com/spf13/cobra.(*Command).Execute(...)
        /home/travis/gopath/pkg/mod/github.com/spf13/cobra@v0.0.5/command.go:864
github.com/rancher/k3d/cmd.Execute()
        /home/travis/gopath/src/github.com/rancher/k3d/cmd/root.go:65 +0x31
main.main()
        /home/travis/gopath/src/github.com/rancher/k3d/main.go:27 +0x20

What did you expect to happen?
I expected to get something like ~/./k3d/kubeconfig with maybe a name afterwards. OR:

an error that says "you need to include a cluster name. k3d get clusters to view your options"
Actually, it looks like it's forcefully erroring out if you don't include the name of the cluster you want.

If applicable, add screenshots or terminal output (code block) to help explain your problem.
Which OS & Architecture?

Linux Ubuntu 19.10

Which version of k3d?

k3d version v3.0.0-dev-20191204-0

Which version of docker?

Docker version 19.03.3, build a872fc2f86

knowing that I need to include a cluster name in the new format is really enough to keep me moving. this is more of a minor cleanup thing after realizing that's all I need to do.

Hi there, apparently you were too fast for me :grimacing:
This version shouldn't have been released and comes from my fork, where I seemingly forgot to update the Travis config :confounded:
However, it's cool, that you're already catching bugs there :)

Regarding your bug report:
I'm not done with development here yet, so this is still "a little" rough around the edges :grimacing:
I didn't yet set a default output path (/tmp/test.yaml for development), but you can specify an output path (can also be stdout via -) via the --output flag.

Actually, it looks like it's forcefully erroring out if you don't include the name of the cluster you want.

It's not on purpose, it's index out of bounds, because it's trying to access the commandline arguments, which don't exist if you don't set a name.
I fixed that already just now and you can see it in the first official release :wink:


Duplicate use of selection JSON ID error after npm install --save element-tiptap

hi!
I got an error 'Duplicate use of selection JSON ID error' (This is in reference to a line of code somewhere that reads: "prosemirrorState.Selection.jsonID("cell", CellSelection);") after installing with 'npm install --save element-tiptap'
What have I done to try to fix this issue?

I uninstalled and reinstalled the modules.
I have updated all other node modules.
I have tried removing and recreating the node_modules folder.
and, what turned out to be the only solution that worked, renamed the 'node-modules' folder (path: node_modules/tiptap-extensions/node_modules) to 'node-modules--' (path: node_modules/tiptap-extensions/node_modules--)

Steps to reproduce the behavior:

npm install --save element-tiptap

added element-tip-tap to the page, i used this option:

Any solutions? I also have the same problem

Hi, Dmitry!
My colleagues and I found a working solution for us:
npm install --save element-tiptap
then
npm install --save tiptap-extensions
then
npm i<EMAIL_ADDRESS>--save
then
npm i<EMAIL_ADDRESS>--save
Try it too :)


LLVM MLIR Tensorflow Compatibility

You have a great table of tested build configurations for tensorflow in general — do you have something similar for getting TF's MLIR integration to work.  That is, can you suggest commits from llvm-project to use with commits from this repository that will guarantee a successful build of mlir:tf-opt as described in the tensorflow MLIR readme?  In that readme, there is a line suggesting that manual BUILD file changes may be required, for example if "you are using a different version of LLVM than set in tensorflow/workspace.bzl's LLVM_COMMIT", but I don't see a reference to LLVM_COMMIT in any of the 4 workspace*.bzl files in the tensorflow directory.
Alternatively/Additionally, is there any further guidance toward building tf-opt from source than that given in the aforementioned readme?
Any help would be appreciated.

At the moment, TensorFlow is revision-locked with LLVM, there is no guarantee that you can build TensorFlow with any other revision that the one specified in the workspace.bzl. We upgrade to the top of the main LLVM branch almost every day, sometimes multiple times per day.
The LLVM_COMMIT mentioned in the doc has been refactored an is now in third_party/llvm/workspace.bzl ; the instructions are only useful for testing purpose.

Thanks for the info!


Add a FAQ question and answer explaining why the TSV cleaning management command is necessary

I think the answer about why we don't load all the data is pretty good on this alreayd.


"Insufficient user rights" message pops up when changing time...

Whenever I change the time in the SmallTime interface, a message pops up for all the other players in Foundry.
"Insufficient user rights."
I've tried giving them trusted player access, which doesn't fix it. The message doesn't pop up in a scene without tokens, so it must somehow relate to their tokens.
Is this a bug or a user error?

Try with no other modules enabled; this should not be a SmallTime issue.

Sorry for my late reply! I should've done that before writing, my bad! I will test it out and see what might be causing the conflict! Thanks for your reply and this awesome mod!


Implement new linter across Modernisation Platform repositories

User Story
As a Modernisation Platform Engineer
I want to implement the new code formatting approach across our repositories
So that our linting standards are applied across all of our code consistently.
User Type(s)
Value
As part of https://github.com/ministryofjustice/modernisation-platform/issues/2259 we replaced the code-formatter job that ran when pull requests were raised with a nightly job that ran a linter against our code and provided a pull request if/when changes were found following a run of the linter.
This card will cover the addition of this task into our other repositories
Questions / Assumptions / Hypothesis
Do we want to supplement the code formatter with this new action, or replace it?
Definition of done

[ ] new code formatter applied across mp repositories

Reference
How to write good user stories
https://github.com/ministryofjustice/modernisation-platform/issues/2259

@davidkelliott do you agree that we need this for all repositories, too?

Not required for other repositories


Add an option to install as a filter List

The aim is to provide casual as well as general user of these uBlock static filter rules with an option to add it as a Custom Filter List.
The users will now be auto-updated with the latest uBlock static filter rules(only) and need not check the repository again and again for updates.

Users can now use the following URL to add it as a custom filter list:-
https://raw.githubusercontent.com/CHEF-KOCH/NoScript-Whitelist/master/uBlock%E2%82%80/my-ublock-static-filters.txt

@CHEF-KOCH Please review the changes and if you are not satisfied you can roll it back.


Create QuickSort.java

Hi Dear @JaiAravindh-git
Great code
Thanks for your contribution......
Show your support on my youtube channel web Pixar(The institute of coding)
like , share , subscribe
youtube - https://youtu.be/5qnQjgdpFPg
telegram-channel - https://t.me/WebPixar
join our telegram channel for more goodies , swag packs


What's the version of rockspec mean??

I just make a new release for my luautf8 module, but I'm confusing with the version definition of luarocks.
the previous version was 0.1.0-1, when I use luarock new_version, it generate a 0.1.0-2 version for me. and I edit this rockspec, and make a release on github, and upload it to luarocks.org, so what? I just can not find this version!
I noticed moonscript always use 0.x.y-1 version, but why luarock new_version do not increment patch number, but +1 to "-1" componment? what's the -1 mean??
then I tried luautf8-0.1.1.rockspec, but it failed! luarocks tell me the version must have a -%d componment, but why?

in case 0.1.0-1 then 0.1.0 is your module version, and 1 is the rockspec version.
So you make changes to your code, and name it release 0.2.0 then you get rockspec 0.2.0-1. Now for some reason, there is an error with the rockspec, a missing dependency that makes it fail when building. Then you update the rockspec and name is 0.2.0-2. So same code version, but new rockspec version.
hth

To further clarify, to avoid confusion we call 0.1.0 the module version
and -1 the rockspec revision.
If you release new code, always change the module version.
If you changed the rockspec but did not change the code, increment the
revision number.

Okay, I see. Thank you very much for detailed explain :)


Update cache line size on PowerPC

PPC64 machines have a 128-byte L1 cache line size. See http://lists.llvm.org/pipermail/llvm-dev/2017-March/110982.html.
Signed-off-by: Jeffrey Walton<EMAIL_ADDRESS>

It's been some time, but I applied the change now.  Sorry for delay.


Octopus testing - Verify VCP continues to run if VM vsphere inventory name is changed

Manually Verified test is successful.
Test Done:

Created K8s cluster configured with multi-vc.
Changed VM name in vSphere inventory.
Provisioned vSphere Volume and created pod using that volume.

Observations:

Verified that pod is scheduled on the node for which VM name was changed.
Pod was created successfully with volume attached.

VM inventory name change will not trigger any real code workflow in VCP. So we will start with a testbed where the hostname and VM inventory name are different. Then all other test cases will verify this scenario implicitly.


Add PhishingDetector to export

Explanation
Exports PhishingDetector so we can use it within tests for MetaMask/eth-phishing-detect and other third party repos can utilise it.
References

Changelog
@metamask/phishing-controller

exports PhishingDetector

Checklist

[ ] I've updated the test suite for new or updated code as appropriate
[ ] I've updated documentation (JSDoc, Markdown, etc.) for new or updated code as appropriate
[ ] I've highlighted breaking changes using the "BREAKING" category above as appropriate

@metamaskbot publish-preview
(will this work?)

@samczsun This is now released in<EMAIL_ADDRESS>


Saving the Chat Log

Describe the feature
Saving the chat log for the AI to remember in the future what conversation it had with the user.

hi, thanks for the request!
I think this is related to this issue: https://github.com/undreamai/LLMUnity/issues/4
I'm actually currently working on this feature as part of https://github.com/undreamai/LLMUnity/issues/141 that will enable to save/restore interactions to disk.


<IP_ADDRESS>

fix RiftWalker spell list (all spell lists must have level = 0 even without cantrips)
fix missing translations
fix gnome ancestry attribute modifiers
fix alternate human keeping original attribute modifiers

forcing merge as I lost my reviewer... ;-(


Can't install on Digital Ocean Ubuntu Droplet

Description

Trying to use the curl install command on a new Digital Ocean Ubuntu droplet use the web console. Pasting in the curl command does nothing.
Steps to reproduce the issue:

Create a new DO Droplet, Ubuntu
Open a web console from your DO droplet dashboard
Install Docker
Cut/paste the fn install command from instructions at this site.

Describe the results you received:
Install command does not install fn. Nothing happens in console
Describe the results you expected:
fn should install and show version as instructions state
Additional information you deem important (e.g. issue happens only occasionally):
After trying to run curl installer I see...
Either your platform is not easily detectable or is not supported by this installer script (yet - PRs welcome! [fn install]).
Please visit the following url for more detailed installation instructions:
https://github.com/fnproject/fn
Output of fn version (CLI command):
fn: command not found

Additional environment details (OSX, Linux, flags, etc.):

I'm on a Windows 10 laptop. I have Git bash installed. I had to use that, ssh to the DO droplet and do the install in bash. This appears to be working. The DO web console does not.

thanks for the report and follow up. let us know if you need any help along the way. also find us in slack.fnproject.io


web.de does not work

It is not possible to send emails from web.de.
Server: smtp.web.de
Port: 587
Secure: true

Better now?


Feature: don't clean fields values between depends fields changes

Hi! I would like to be able not to clear, but to store the values of the fields in the NovaDependencyContainer while the values in dependsOn are changed.
Currently, when dependsOn changes and returns it back, the fields are reset value to default.

Feel free to submit a PR to enable the functionality and we can take a look but that's not something I'm looking to tackle at the moment directly.


Update plugin based new django formtool

This plugin needs to be updated based on lates django version of django.formtools. Here is the doc.

I have created a pull request in regard to this.


Error running rake

I tried to run tests again after #1 was fixed. However now I am unable to run them at all.
The difference is that now I am running 3.3.5 ruby and rake 13.1.0, it worked well with 3.2.5 and rake 13.0.6.
rake aborted!
LoadError: cannot load such file -- (eval at /build/curlyq/src/curlyq-0.0.15/lib/curly/version.rb (LoadError)
<internal:/usr/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
<internal:/usr/lib/ruby/3.3.0/rubygems/core_ext/kernel_require.rb>:136:in `require'
(eval at /build/curlyq/src/curlyq-0.0.15/Rakefile:25):2:in `<top (required)>'
/build/curlyq/src/curlyq-0.0.15/Rakefile:25:in `eval'
/build/curlyq/src/curlyq-0.0.15/Rakefile:25:in `<top (required)>'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/rake_module.rb:29:in `load'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/rake_module.rb:29:in `load_rakefile'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:734:in `raw_load_rakefile'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:126:in `block in load_rakefile'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:208:in `standard_exception_handling'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:125:in `load_rakefile'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:82:in `block in run'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:208:in `standard_exception_handling'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/lib/rake/application.rb:80:in `run'
/usr/lib/ruby/gems/3.3.0/gems/rake-13.1.0/exe/rake:27:in `<top (required)>'
/usr/bin/rake:25:in `load'
/usr/bin/rake:25:in `<main>'

Are you using the latest version? There were permissions issues in the first push after I fixed the tests that may be causing the inability to load files. Tag 0.0.15 was the version with the fix for that.

I tried with 0.0.12 and 0.0.15, same result.

Is this with running rake test or running curlyq itself?

rake test

I'll have to install 3.3.5 and see if there's something up there. It doesn't make much sense that 3.1 vs 3.5 would cause a LoadError, but I'll test.

If you're able to switch ruby versions easily, does rake test still work with 3.2.5?

Huh, I am able to replicate the issue in 3.3.5. I have no idea why that would be…

And if I remove offending lines and finally get tests to run…

I'm just going to say that for the time being curlyq is incompatible with 3.3.5 until I can figure out what changed.

I will try building 3.4.0 preview and using that

Same issue with ruby-3.4.0-preview2

It's because of this change:
https://github.com/ruby/ruby/commit/43a5c191358699fe8b19314763998cb8ca77ed90

It's because of this change: ruby/ruby@43a5c19

Help me understand how this affects the Rakefile. What do I need to change?

I wish I knew that. I only did get to this change with git bisect. I also checked linked pr and issues but can't make sense of it.


Add support using sandbox functionality in official releases

Is your feature request related to a problem? Please describe.
Not being able to use sandbox features unless using a snapshot.  Snapshots are not published for all release formats, ie. docker images so it is not easy to experiment/test/play with sandbox features.
Describe the solution you'd like
I would like sandbox features built and shipped with official releases and then have some sort of startup option to enable their use.  Enabling a sandbox feature would imply the user opting into experimental features and understands it is unsupported.
Describe alternatives you've considered
Building from source.
Additional context
I am excited to try concurrent search plugin

@nknize What do you think about this proposal? Since a user has to explicitly install a plugin, and the fact they are located in a "sandbox" directory, this seems like a reasonable process akin to enabling a feature flag and would greatly reduce the friction for users experimenting with a sandbox plugin.

then have some sort of startup option to enable their use

@mattweber The "option" here is just to install the plugin since sandbox features are inherently plugins. Does that make sense to you or were you thinking about something else.
/cc @reta

+1 to @andrross suggestion, alrenatively we could publish sandbox plugin ZIPs  into well known repository so people could use it (and make opensearch-plugin tool aware of that).

+1

We could definitely publish the zips just like native plugins today which should help install these plugins.
Also a question pops in my mind, how do we want to deal with sandbox/modules?

Also a question pops in my mind, how do we want to deal with sandbox/modules?

@saratvemulapalli Should we just remove it? The concept of the sandbox seems inherently optional to me. I could imagine a feature being promoted from sandbox/plugins to modules, but during its sandbox phase is should probably be an optional plugin.

Could we combine it with a feature flag? The sandbox/modules could be bundled (similarly to regular modules) but never picked up by default (if it is feasible to do).

Without a way for people to try out the sandboxed modules, there is less chance that we can learn from the experimental usage.


strings: FieldsFunc speedups

go version devel +214be5b302 Sun Mar 26 04:40:20 2017 +0000 linux/amd64
I was looking at profiles and noticed that strings.FieldsFunc was surprisingly hot.
In the following gist, I measure variations on splitting functions, including a proposed improvement of FieldsFunc that's 40% faster.
https://gist.github.com/gaal/497361737dd55125cf2de998b49d948b
Summarizing the results there:
BenchmarkFields/Fields-12                 500000              2327 ns/op          73.04 MB/s
BenchmarkFields/FieldsFuncUnicodeIsSpace-12              1000000              2294 ns/op          74.10 MB/s
BenchmarkFields/FieldsFuncAltUnicodeIsSpace-12           1000000              1394 ns/op         121.94 MB/s
BenchmarkFields/Split-12                                 3000000               543 ns/op         312.93 MB/s

strings.Split does less work than Fields etc., so it's not surprising that it's faster; I include it as a bound of sorts on potential savings.
FieldsFunc's slowness comes in part by it calling its predicate twice as often as it needs to: once to count the length of the output slice, and again to extract the fields. The alternate implementation has the same length in lines of code but instead finds the offsets to the field spans in one pass and copies them in another. It does the spans housekeeping using a preallocated slice that does not escape the function (the parameter 16 was chosen arbitrarily; presumably most clients will not have a large amount of inputs with many fields).

https://go-review.googlesource.com/c/33108/

i also made a cl to improve performance of fields:
https://golang.org/cl/37959/


Refactor dev docs, add details about custom builtins

What does this PR do?
Rendered Link
Motivation
These functions aren't documented anywhere

@ruthnaebeck thanks for the review, feel free to push commits to my branch directly if that's easier

this is a docs-only PR, so merging even though we're already in the 6.12 freeze


add ToeMoveAction to MOVE_LEG MQTT command
Assignees: @nerdoug
Labels: enhancement

The last argument for the flow_go command controls what is done when hexbot is ready to move toes to the specified new position:

actually feed the servos a PWM value to do the physical movement
or, display information like the resulting local toe coords on the serial monitor.

This issue covers providing the same parameter controlled action for the MOVE_LEG command

while you're at it in this code, add an option to bypass the toe safety box mechanism, so we can carefully test what the movement limits are for each leg.

We are removing this command so we can close this issue.


Reimbursement

Create policy

Want a policy, or a procedure, or both combined? The way I see it, policy would be a simple statement of what can be reimbursed. Procedure is a step-by-step how-to.

Great point Joel! I think having a policy of accepted receipts and what to do when there is a grey area. Additionally having a  procedure of "email receipt to<EMAIL_ADDRESS>and whoever runs the books will reply with an approved, pending, or non-reimbursable receipt.

Yes, I think we want both a procedure and policy.


Add PagerDuty plugin to Marketplace

Feature Suggestion
Add PagerDuty plugin to the Backstage plugin marketplace: https://backstage.io/plugins
Possible Implementation
https://github.com/backstage/backstage/tree/master/plugins/pagerduty
https://backstage.io/docs/plugins/add-to-marketplace

Context
By adding plugins to the Marketplace we improve discovery and reuse.

Possible icon to use: https://avatars2.githubusercontent.com/u/766800?s=200&v=4

Hi @stefanalund, I would like to take up this task

assigned.

I hope we can close this issue

Yes!


minerva ag: Support sensor thresholds get set shell command

Summary:

Support sensor thresholds set and get shell command

Test Plan:

Build code: PASS

The failing checks are not caused by the changes in this PR but are pre-existing issues. Please let me know if there’s anything else you’d like me to look into.

All these checks are false positive. It is looking at plat_get_pdr_size()'s default implementation which returns 0 and thinking this check is always false. But, considering this function is going to be overridden by the platform layer, which will return a non-zero value, we end up with correct code but confusing the linter.
We probably need to fix it using linter override comments. @Victor-Jhong can you look into this in another PR. Agreed, its not lines touched by this commit. But I would like these eventually fixed so we still get value from future PRs.


frontend: Change message for Agent with no tools

AI Description

This pull request introduces a new feature to the src/backend/config/default_agent.py and src/interfaces/assistants_web/src/components/MessagingContainer/Welcome.tsx files, enabling users to ask questions and receive answers based on their tools and files.
Changes:

In src/backend/config/default_agent.py, the description field of the AgentPublic class has been updated to include the phrase "based on your tools and files".
In src/interfaces/assistants_web/src/components/MessagingContainer/Welcome.tsx, the useAvailableTools hook has been imported and utilized to filter available tools for the base agent.
The toolToggleMessage variable has been introduced to display a message based on the availability of tools. If no tools are available, the message prompts the user to update their agent to add tools.
The AssistantTools component now receives the tools array directly, without any filtering.

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

Project coverage is 78.21%. Comparing base (f370c46) to head (d43c411).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #877   +/-   ##
=======================================
  Coverage   78.21%   78.21%
=======================================
  Files         259      259
  Lines       11088    11088
=======================================
  Hits         8672     8672
  Misses       2416     2416

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add Cursor Tags

tag is now before name

Done(maybe)

Maybe contain the tags within the username section (like the usernames on top of the page), and not right next to it?

i can do it prob at December, 29

it's now done, i think

Thanks for your contribution!


Tables cut off in live preview

Hi! Just noticed wide tables are cut off in live preview mode:
But not in reading mode:
Would it be possible to fix the live preview mode OR allow to set a cssClass: wide or max in front matter?
Thanks! :)

That's actually a common thing in the default theme, it's unfortunately not what I can fix. I mean I can, but it requires a lot of workarounds on other elements as well to align the whole thing properly.
In the meantime, try this snippet instead: https://github.com/efemkay/obsidian-modular-css-layout
I haven't try it yet, but it should give you the option to widen your table without affecting other elements (but a plugin seems to be a requirement).
I'll still look around for a solution though, not liking my long table as well but don't want to add a plugin, lol

I've got a snippet working!
You can try this out with frontmatter cssclass "table-auto" with the following CSS snippet:

.table-auto.is-readable-line-width>div.markdown-preview-sizer.markdown-preview-section,
.table-auto.markdown-source-view.mod-cm6.is-readable-line-width .cm-editor .cm-contentContainer,
.table-auto.markdown-source-view.mod-cm6.is-readable-line-width .cm-editor .cm-contentContainer .cm-content{
	max-width:100%;
}
.table-auto.is-readable-line-width>div.markdown-preview-sizer.markdown-preview-section>div>*,
.table-auto.markdown-source-view.mod-cm6.is-readable-line-width .cm-editor .cm-contentContainer .cm-content .cm-line{
	max-width:830px;
	margin-inline:auto!important;
}
.table-auto.is-readable-line-width>div.markdown-preview-sizer.markdown-preview-section>div>table,
.table-auto.markdown-source-view.mod-cm6.is-readable-line-width .cm-editor .cm-contentContainer .cm-content table{
	max-width:100%;
	margin-inline:auto!important;
}

This will auto-widen the table in that note to its maximum content size, while preserving the other elements size.
I might integrate this into the theme in a later date after some code brush up, for now we'll go with this temporary fix.

Thanks so much for this! 0.16 insider release just came out. do you think this will work still?

I'm actually not sure, as I'm not an insider user. We can only know once it is released to the public.
Though that being said, I think this custom table snippet will work for 0.16, if the developers didn't modify any of the inner structure of the editor, we'll have to see

With the update of v1.0.0, well, it still doesn't work out of the box. But you can now include cssclass of mado-table-auto to do the work for you.
Though, that class alone will change the styling of the table, if you'd like to have a default-styled table instead, use the following combination:
cssclass: mado-table-auto, mado-table-normal

Let me know if it works!

Nice that works! Theme update looks fab!!

Glad to hear it! I will close this issue now.


em_http_request_1_x: use bytesize of message instead of its length for content-length header

Patch is sort of trivial.
In rubies 1.8.x this will have no effect whatsoever
In rubies 1.9.x this fixes problem of receiver's message getting truncated
(since some utf-8 characters are more than 1 byte long)
Spec attached.
NB: I haven't checked 0_x em adapter or any other adapters, but it's possible that this problem exists somewhere else too.

Awesome. Webmock even got some Russian in the specs :)
Thank you for this patch.
I wouldn't worry about em_http_request_0_X in ruby 1.9


Can not set cookie via Ajax

I have Basket Controller and send $id of item via ajax
In Controller i do
public function actionAdd($id)
{
$cookie = new Cookie([
'name' => 'basket',
'value' => $id,
'expire' => time() + 86400 * 365,
'httpOnly'=>true,
]);
}
\Yii::$app->getResponse()->getCookies()->add($cookie);
When i'm try get value i'm get null. Why?

Can anybody explain? I change all the echo to return in controller action, it work! But if I write return after the echo code, it didn't work. Why

Because the action actually returns to a request object which completes the
request and so sets the cookies
On 11 October 2016 at 09:30, Michael Lee<EMAIL_ADDRESS>wrote:

Can anybody explain? I change all the echo to return in controller
action, it work! But if I write return after the echo code, it didn't
work. Why
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/yiisoft/yii2/issues/5672#issuecomment-252846160, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AATxnJXNWJ8EYgmNKz-XwzM6copqFvgSks5qy0kNgaJpZM4Cw51q
.


add periodic prow job for testing serving + contour + gateway-api

Changes

add periodic prow job for testing serving + contour + gateway-api
rename periodic prow job for serving + gateway-api + istio from gateway-api-latest to gateway-api-istio

Fixes https://github.com/knative/serving/issues/14983

/lgtm
/approve


Add Futil documentation to the Cucapra website

@sgpthomas can you add more description of what you want here? Do you want something like the documentation at https://capra.cs.cornell.edu/fuse or a demo website like https://capra.cs.cornell.edu/dahlia?


Add dynamic cropping services to OSD API

Add new OSD APIs
C/C++
DslReturnType dsl_osd_crop_settings_get(const wchar_t* name,
    uint* left, uint* top, uint* width, uint* height);

DslReturnType dsl_osd_crop_settings_set(const wchar_t* name,
    uint left, uint top, uint width, uint height);

Python example
retval, left, top, width, height = dsl_osd_crop_settings_get('on-screen-display')

retval = dsl_osd_crop_settings_set('on-screen-display', left, top, width, height)

Hi trickititit,
Please see my working branch here.
I have an implementation of this that is close to working for non-live streams.  See the new python example of what I'm proposing.
That said, when I run the script I'm getting a caching NvMapMemCacheMaint:1075334668 failed [14] error that can occasionally crash the target, so beware if you try the branch and script yourself.
It works enough, even with the errors,  to get a sense of how this should look once resolved.
I'll post a message on the NVIDA dev forum to get help on this.

Topic link https://forums.developer.nvidia.com/t/having-trouble-with-dynamic-cropping-using-nvvideoconvert-deepstream-4-0/116006

This continues to cause issues with the OSD and/or Sink and not getting  much help from nvidia. Going to close this for now and reconsider if needed in the furture.


Big Query Results not populated when query starts with a temp function

System information:

OS: MacOS Big Sur 11.3.1
Dbeaver Version <IP_ADDRESS>105021514

Connection specification:

Big Query

Driver for Big Query: https://storage.googleapis.com/simba-bq-release/jdbc/SimbaJDBCDriverforGoogleBigQuery42_<IP_ADDRESS>6.zip

No tunnels or proxies

Problem observed:
I seem to have encountered a problem similar to #10478 , "Dbeaver thinks it's an update statement but it is a select #10478" in that I see a "statistics" tab but no results when a simple SQL statement is preceded by a prior clause (in that case it was a with, but here I have a temp function).
Steps to reproduce, if exist:
The basic query :

SELECT * FROM bigquery-public-data.austin_311.311_service_requests;

returns a results table, as expected :

Then the following query run in dbeaver:

CREATE TEMP FUNCTION fiddle(val string) AS (
substr(val,0,4)
);
SELECT fiddle(complaint_description) as fiddled,*
FROM bigquery-public-data.austin_311.311_service_requests;

returns Statistics, but no results:

The corresponding log says no rows returned, though the query was a success:

And finally that same query returning no results in dbeaver, does provide results in the Big Query UI:

Include any warning/errors/backtraces from the logs
There does not appear to be anything written in the error log.
Apologies if this has been reported before, but I could find nothing like this.
Thanks in advance.

thanks for the report

As pointed out, the problem is indeed similar to one described in another ticket, and the solution is, in fact, the same.
This is a bug in Simba JDBC driver, updating it to 42_<IP_ADDRESS>0 fixes the problem.

Thanks much for the reply. I had difficulty getting the driver editor to take it, but after deleting the old driver (I guess there can only be one?) and then loading the new version from a locally downloaded copy, all seems well.
Though I should have noticed the driver versions, and I'm not sure where the default load gets set, but you might consider updating that.

I've updated the driver version, but we should make sure everything is working flawlessly before closing the ticket.
Until that, I will reopen this ticket.

verified


Cannot convert number to string

It took me a while to figure out, but in my Home Assistant one of my devices got the name 98.
In the core.device_registry yaml it was put stored as "name": 98 , without the quotes so as a number.
HA has no issue with it, but I could not change it and NetDeamon keeps on complaining while getting the list of devices.
I'm now a happy NetDaemon user, but it might be something to look at.
It failed on config/device_registry/list

Ahhh this sounds like a bug indeed. Thanks for reporting

@dennis-home do you have some more info about what you tried to do that fails because of this? Some logs / stacktrave maybe?

Hi Frank,
Your name sounds Dutch, if so, we can continue in Dutch.
I can recreate the problem for you this weekend and send you the logs, if still needed.
It’s one of my devices that had a number as name and once you do the api call to get all the devices it is passed as a json number ( name: 96 ), not a string. Your parser is failing since it does not aspect a number.
Gr,
Dennis
Van: Frank Bakker @.>
Verzonden: vrijdag 7 januari 2022 20:38
Aan: net-daemon/netdaemon @.>
CC: dennis-home @.>; Mention @.>
Onderwerp: Re: [net-daemon/netdaemon] Cannot convert number to string (Issue #560)
@dennis-homehttps://github.com/dennis-home do you have some more info about what you tried to do that fails because of this? Some logs / stacktrave maybe?
—
Reply to this email directly, view it on GitHubhttps://github.com/net-daemon/netdaemon/issues/560#issuecomment-1007684847, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGENEQTTKOAB2VEZFXBV6O3UU46LLANCNFSM5KVJJ5SQ.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Hi Dennis, tnx for the info, I suspected it was in the json. I actually think that is a HA buh for not putting quotes in the json os something that should be a string.,But maybe we can do a workaround to have ND handle it.
I'm dutch indeed. To keep the conversation open to everyone, lets keep this in English

Hi Frank,
It was a Tahoma integration who caused the issue, but HA itself had no issue in recognizing the device. Unfortunately I could not change the device name. For now I removed the integration so I could play around with Netdaemon which I absolutely love and makes my live, as C# developer, a lot easier 😊
Gr,
Dennis
Van: Frank Bakker @.>
Verzonden: zaterdag 8 januari 2022 07:43
Aan: net-daemon/netdaemon @.>
CC: dennis-home @.>; Mention @.>
Onderwerp: Re: [net-daemon/netdaemon] Cannot convert number to string (Issue #560)
Hi Dennis, tnx for the info, I suspected it was in the json. I actually think that is a HA buh for not putting quotes in the json os something that should be a string.,But maybe we can do a workaround to have ND handle it.
I'm dutch indeed. To keep the conversation open to everyone, lets keep this in English
—
Reply to this email directly, view it on GitHubhttps://github.com/net-daemon/netdaemon/issues/560#issuecomment-1007897167, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGENEQSGGEABUYS5LYBHAQLUU7MIPANCNFSM5KVJJ5SQ.
Triage notifications on the go with GitHub Mobile for iOShttps://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Androidhttps://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>


[Improvement][Server] Remove the unnecessary dependency (#5208)

see #5208

Codecov Report

Merging #5209 (8c2230c) into dev (97fb08f) will decrease coverage by 0.04%.
The diff coverage is n/a.

@@             Coverage Diff              @@
##                dev    #5209      +/-   ##
============================================
- Coverage     47.45%   47.40%   -0.05%
+ Complexity     3748     3745       -3
============================================
  Files           570      570
  Lines         24112    24112
  Branches       2804     2804
============================================
- Hits          11442    11431      -11
- Misses        11608    11616       +8
- Partials       1062     1065       +3

Impacted Files
Coverage Δ
Complexity Δ

...e/dolphinscheduler/server/master/MasterServer.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

...server/master/dispatch/host/CommonHostManager.java
29.54% <ø> (ø)
4.00 <0.00> (ø)

...r/server/master/runner/MasterSchedulerService.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

...phinscheduler/server/master/zk/ZKMasterClient.java
1.61% <ø> (ø)
2.00 <0.00> (?)

...e/dolphinscheduler/server/worker/WorkerServer.java
0.00% <ø> (ø)
0.00 <0.00> (ø)

...er/master/dispatch/host/assign/RandomSelector.java
77.77% <0.00%> (-5.56%)
3.00% <0.00%> (-1.00%)

...eduler/server/worker/runner/TaskExecuteThread.java
56.83% <0.00%> (-4.32%)
14.00% <0.00%> (-1.00%)

...dolphinscheduler/service/zk/ZookeeperOperator.java
36.27% <0.00%> (-3.93%)
14.00% <0.00%> (-2.00%)

...r/server/worker/processor/TaskCallbackService.java
38.09% <0.00%> (-3.18%)
8.00% <0.00%> (ø%)

...inscheduler/service/zk/CuratorZookeeperClient.java
75.60% <0.00%> (+4.87%)
10.00% <0.00%> (+1.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 97fb08f...8c2230c. Read the comment docs.

Has been solved by #5182


Improve and document the point cloud pipeline performance evaluation methods

Checklist

[X] I've read the contribution guidelines.
[X] I've searched other issues and no duplicate issues were found.
[X] I've agreed with the maintainers that I can plan this task.

Description
Currently, in Autoware, many developers rely on ros2 topic delay pointcloud_topic_name to measure the point cloud pipeline performance. This method is suitable for small messages, but for larger messages such as point clouds or images, it introduces significant overhead and reports exaggerated delays.
The primary reason is that our sensing/perception nodes run within composable node containers and utilize intra-process communication. External subscriptions to these messages, like using ros2 topic delay or rviz2, add additional delays. Even slow down existing pipelines just by subscribing from outside.
A more efficient method would be for the nodes themselves to report the delays.
Purpose
The purpose of this issue is to improve the accuracy and reliability of point cloud pipeline performance evaluation in Autoware. By developing a method where nodes internally report delays, we can achieve a more precise measurement of performance, essential for optimizing and benchmarking our systems.
Possible approaches

Extend existing tier4_autoware_utils::DebugPublisher instances within nodes to report accumulated delays (current time - header time).auto accumulated_time =
  std::chrono::duration<double, std::milli>(
    std::chrono::nanoseconds((this->get_clock()->now() - input->header.stamp).nanoseconds()))
    .count();

debug_publisher_->publish<tier4_debug_msgs::msg::Float64Stamped>(
  "debug/accumulated_time_ms", accumulated_time);

Update the Autoware documentation to reflect these changes
Add a tutorial page for the evaluation of the point cloud pipeline performance
Create additional tools to assist in the evaluation

Definition of done

[x] Nodes within Autoware Universe are updated to report their own delays.

[x] https://github.com/autowarefoundation/autoware.universe/pull/6056
[x] https://github.com/autowarefoundation/autoware.universe/pull/6181
[x] https://github.com/autowarefoundation/autoware.universe/pull/6569

[x] Documentation is updated with the new methods for evaluating point cloud pipeline performance.
[x] New tools for pipeline performance evaluation are developed and integrated.

cc. @kminoda @miursh

Hi @xmfcx I completed all the tasks above, I forgot this issue sorry for that. If there is anything you want to add, I think we can close this.


.pbix Model: Table Properties: Description Disappears after saving changes

I have a .pbix file which I am editing using tabular editor. I input a Description (Tables-->TableName-->Basic-->Description), save, then the description disappears in both the .pbix file and tabular editor.

Go to tablular Editor
Input a description into a tables metadata
press the "Save the changes to the connected database..," button.
Click "Apply Changes" in Power BI Desktop
Note how the changes do not show in PBI Desktop, and if you go back to tabular editor the description just input is gone.

Expected behavior
I would expect the description to be present in both the .pbix and tabular.
Observed behavior

Application specifics

Tabular Editor version: [e.g. 2.16.4]
Semantic Engine used: [Power BI Desktop.]

Editing table properties through external tools is not supported by Power BI Desktop.