Unable to find NVIDIA device driver running on Kubernetes

System Info
When running on Kubernetes using the latest image and attempting to run through the tutorial with bloom-560m, it looks like PyTorch is unable to detect the GPU.
Information

[X] Docker
[ ] The CLI directly

Tasks

[X] An officially supported command
[X] My own modifications

Reproduction
Create a simple deployment:
apiVersion: apps/v1
kind: Deployment
metadata:
  name: text-generation-inference-deployment
  labels:
    app: text-generation-inference
spec:
  replicas: 1
  selector:
    matchLabels:
      app: text-generation-inference
  template:
    metadata:
      labels:
        app: text-generation-inference
    spec:
      containers:
      - name: text-generation-inference
        image: ghcr.io/huggingface/text-generation-inference:latest
        args: ["--model-id", "bigscience/bloom-560m", "--num-shard", "1"]
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: "5"
            ephemeral-storage: 100Gi
            memory: 27360Mi
            nvidia.com/gpu: "1"
          requests:
            cpu: "5"
            ephemeral-storage: 100Gi
            memory: 27360Mi
            nvidia.com/gpu: "1"
      volumes:
      - name: shm
        emptyDir:
         medium: Memory
         sizeLimit: 1Gi
      tolerations:
      - effect: NoSchedule
        key: nvidia.com/gpu
        operator: Exists

Attempting to run inference will fail, as GPUs are unavailable:
$ curl <IP_ADDRESS>:8080/generate \
    -X POST \
    -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":17}}' \
    -H 'Content-Type: application/json'
{"error":"Request failed during generation: Server error: attention_scores_2d must be a CUDA tensor","error_type":"generation"}

Stack trace from the logs:
File "/opt/conda/lib/python3.9/site-packages/text_generation_server/interceptor.py", line 20, in intercept
    return await response
  File "/opt/conda/lib/python3.9/site-packages/opentelemetry/instrumentation/grpc/_aio_server.py", line 82, in _unary_interceptor
    raise error
  File "/opt/conda/lib/python3.9/site-packages/opentelemetry/instrumentation/grpc/_aio_server.py", line 73, in _unary_interceptor
    return await behavior(request_or_iterator, context)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 63, in Prefill
    generations, next_batch = self.model.generate_token(batch)
  File "/opt/conda/lib/python3.9/contextlib.py", line 79, in inner
    return func(*args, **kwds)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/causal_lm.py", line 516, in generate_token
    logits, past = self.forward(
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/causal_lm.py", line 500, in forward
    outputs = self.model.forward(
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 956, in forward
    transformer_outputs = self.transformer(
  File "/opt/conda/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 816, in forward
    outputs = block(
  File "/opt/conda/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 456, in forward
    attn_outputs = self.self_attention(
  File "/opt/conda/lib/python3.9/site-packages/torch/nn/modules/module.py", line 1501, in _call_impl
    return forward_call(*args, **kwargs)
  File "/usr/src/transformers/src/transformers/models/bloom/modeling_bloom.py", line 337, in forward
    context_layer, present, attention_probs = fused_bloom_attention_cuda.forward(
RuntimeError: attention_scores_2d must be a CUDA tensor

SSHing into the pod, you can see that the installed version of PyTorch is unable to find the GPU device:
$ kubectl exec -it text-generation-inference-deployment-98974cc65-dc544 -- /bin/bash
root@text-generation-inference-deployment-98974cc65-dc544:/usr/src# python -c "import torch; torch.tensor([1]).cuda()"
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/opt/conda/lib/python3.9/site-packages/torch/cuda/__init__.py", line 247, in _lazy_init
    torch._C._cuda_init()
RuntimeError: Found no NVIDIA driver on your system. Please check that you have an NVIDIA GPU and installed a driver from http://www.nvidia.com/Download/index.aspx

nvidia-smi shows the device, but no CUDA version:
$ nvidia-smi
Sat May  6 19:04:39 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.161.03   Driver Version: 470.161.03   CUDA Version: N/A      |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Tesla T4            On   | 00000000:00:1E.0 Off |                    0 |
| N/A   25C    P8    11W /  70W |      0MiB / 15109MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

If I instead run this deployment using nvidia's cuda 11.8 runtime image as a base, there are no issues, so I suspect it may be some incompatibility between this custom image and perhaps the k8s-device-plugin. This is running on an EKS cluster with Kubernetes v1.23.
Expected behavior
The inference request should have succeeded, and the GPU device should be visible when running on Kubernetes.

 Can you try with a more recent AMI?
We are running on eks in our prod.
Nevertheless I will look into why the official nvidia image works.

Hi @OlivierDehaene, thanks for looking into this.
To give you a little more context on this issue: the reason we were using this AMI is that it's the latest official GPU AMI provided by EKS (amazon/amazon-eks-gpu-node-1.24-v20230501). We're now in the process of building a custom AMI for exactly this reason, but since this is the default in EKS, I think it's likely a lot of other users will run into the same issue (and the driver version is officially supported for CUDA 11.8, so it should work in theory).
I did try running on a different k8s cluster (not EKS, microk8s) with newer drivers, but ran into a different issue during model initialization that causes the pod to crash loop:
2023-05-06T22:06:37.389530Z ERROR shard-manager: text_generation_launcher: Error when initializing model
Traceback (most recent call last):
  File "/opt/conda/bin/text-generation-server", line 8, in <module>
    sys.exit(app())
  File "/opt/conda/lib/python3.9/site-packages/typer/main.py", line 311, in __call__
    return get_command(self)(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/typer/core.py", line 778, in main
    return _main(
  File "/opt/conda/lib/python3.9/site-packages/typer/core.py", line 216, in _main
    rv = self.invoke(ctx)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/conda/lib/python3.9/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/opt/conda/lib/python3.9/site-packages/typer/main.py", line 683, in wrapper
    return callback(**use_params)  # type: ignore
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/cli.py", line 58, in serve
    server.serve(model_id, revision, sharded, quantize, uds_path)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 155, in serve
    asyncio.run(serve_inner(model_id, revision, sharded, quantize))
  File "/opt/conda/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 634, in run_until_complete
    self.run_forever()
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 601, in run_forever
    self._run_once()
  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 1905, in _run_once
    handle._run()
  File "/opt/conda/lib/python3.9/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
> File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 124, in serve_inner
    model = get_model(model_id, revision, sharded, quantize)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/__init__.py", line 120, in get_model
    return BLOOM(model_id, revision, quantize=quantize)
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/bloom.py", line 53, in __init__
    super(BLOOM, self).__init__(
  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/causal_lm.py", line 466, in __init__
    self.model = AutoModelForCausalLM.from_pretrained(
  File "/usr/src/transformers/src/transformers/models/auto/auto_factory.py", line 468, in from_pretrained
    return model_class.from_pretrained(
  File "/usr/src/transformers/src/transformers/modeling_utils.py", line 2729, in from_pretrained
    max_memory = get_balanced_memory(
  File "/opt/conda/lib/python3.9/site-packages/accelerate/utils/modeling.py", line 361, in get_balanced_memory
    max_memory = get_max_memory(max_memory)
  File "/opt/conda/lib/python3.9/site-packages/accelerate/utils/modeling.py", line 286, in get_max_memory
    _ = torch.tensor([0], device=i)
RuntimeError: CUDA error: the provided PTX was compiled with an unsupported toolchain.
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

Here's the nvidia-smi result in this container:
$ nvidia-smi
Sat May  6 22:09:04 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.73.05    Driver Version: 510.73.05    CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA RTX A5000    On   | 00000000:A1:00.0 Off |                  Off |
| 30%   32C    P8    17W / 230W |      1MiB / 24564MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

As you can see, it's picking up CUDA 11.6 instead of N/A, which seems consistent with the new error message (can find drivers, but library versions are incompatible). Hope that helps.

Hi @OlivierDehaene! I did some more investigation done around this.
Tried getting this to work in a GKE cluster, which has newer NVIDIA drivers than EKS.
Using the same deployment that @tgaddair posted earlier, I was able to start the pod, but again, I encountered the same errors:
root@noah-text-generation-inference-deployment-7fcdfc9dfb-pz8gj:/usr/local/nvidia/bin# curl <IP_ADDRESS>:80/generate -X POST -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":17}}'  -H 'Content-Type: application/json'
{"error":"Request failed during generation: Server error: attention_scores_2d must be a CUDA tensor","error_type":"generation"}root@noah-text-generation-inference-deployment-7fcdfc9dfb-pz8gj:/usr/local/nvidia/bin#

I then checked the CUDA version that python was picking up -
>>> print(torch.version.cuda)
11.8
>>>

Which seems fine, however, checking nvidia-smi still showed
root@noah-text-generation-inference-deployment-7fcdfc9dfb-pz8gj:/usr/local/nvidia/bin# LD_PRELOAD=/usr/local/nvidia/lib64/libnvidia-ml.so ./nvidia-smi
Mon May  8 20:01:26 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.60.13    Driver Version: 525.60.13    CUDA Version: N/A      |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-SXM...  Off  | 00000000:00:04.0 Off |                    0 |
| N/A   33C    P0    45W / 400W |      0MiB / 40960MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

Looks like this is using the much newer driver version 525.60.13.
Do you happen to know the nvidia driver version installed on your prod nodes, or any other details around this AMI? Thanks!

Rolling back to the v0.5.0 image (which uses nvidia 11.8 runtime as a base) worked successfully on g5 aws instance in EKS.

It seems that the NVIDIA env vars were not added to the correct docker target...
#297 should have fixed the issue.
Can you try with this image and tell me if the issue persists? Thanks!

It seems that the NVIDIA env vars were not added to the correct docker target...
#297 should have fixed the issue.
Can you try this docker image and tell me if the problem persists? Thanks!
ghcr.io/huggingface/text-generation-inference:sha-e9b01b3

Thanks for following up @OlivierDehaene! I tried out the image, but it looks like there's still an issue that occurs during container initialization:
Normal   Pulled     6s (x2 over 24s)  kubelet  Container image "ghcr.io/huggingface/text-generation-inference:sha-e9b01b3" already present on machine
  Warning  Failed     6s                kubelet  Error: failed to create containerd task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: error running hook #0: error running hook: exit status 1, stdout: , stderr: exec command: [/usr/bin/nvidia-container-cli --load-kmods configure --ldconfig=@/sbin/ldconfig --device=GPU-952cbbbe-9e9c-ab17-d849-a8f5561968e7,GPU-39141a84-a78c-2053-a839-367821e0b978 --compute --utility --require=cuda>=11.8 --pid=33590 /run/containerd/io.containerd.runtime.v1.linux/k8s.io/text-generation-inference/rootfs]
nvidia-container-cli: requirement error: unsatisfied condition: cuda>=11.8, please update your driver to a newer version, or use an earlier cuda container: unknown
  Warning  BackOff  5s (x4 over 23s)  kubelet  Back-off restarting failed container

I'm guessing CUDA isn't detected in the environment despite it having been installed via conda.

No this is an error from the nvidia container runtime.
See this:

NVIDIA_REQUIRE_CUDA
The version of the CUDA toolkit used by the container. If the version of the NVIDIA driver is insufficient to run this version of CUDA, the container will not be started.

...
I want to go full linus torvalds

@OlivierDehaene good news is that when we tested this in our cluster with newer device drivers, it did finally work, so looks like at this point the problem is legitimately that the drivers are too old.
root@text-generation-inference-deployment-57b5884fdd-dt4n9:/usr/src# nvidia-smi
Tue May  9 17:49:18 2023
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 525.60.13    Driver Version: 525.60.13    CUDA Version: 12.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA A100-SXM...  Off  | 00000000:00:04.0 Off |                    0 |
| N/A   32C    P0    51W / 400W |   2269MiB / 40960MiB |      0%      Default |
|                               |                      |             Disabled |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
+-----------------------------------------------------------------------------+

curl <IP_ADDRESS>:80/generate -X POST -d '{"inputs":"What is Deep Learning?","parameters":{"max_new_tokens":17}}' -H 'Content-Type: application/json'
{"generated_text":" Deep learning is a new type of machine learning that is used in many different fields,"}

Happy to close out this issue if you're fine with requiring newer device drivers. Might be worth calling this out in the README for other folks in the future.

I found that using the Bottlerocket OS was the way to go to run modern ML workloads on GPU.

I have a question that which cuda is used in container? the host one or cuda builded in container itself?

The cuda shipped with the image.
However it requires the host nvidia drivers to be compatible with this cuda version.
@tgaddair, sorry to bother you again but if you have the time, can you try sha-a6c18c3?

After I updated image from sha-593a563 to sha-a6c18c3, all response seems to be incorrect like:
data:{"token":{"id":0,"text":"<unk>","logprob":null,"special":true},"generated_text":null,"details":null}

data:{"token":{"id":0,"text":"<unk>","logprob":null,"special":true},"generated_text":null,"details":null}

data:{"token":{"id":0,"text":"<unk>","logprob":null,"special":true},"generated_text":null,"details":null}

data:{"token":{"id":0,"text":"<unk>","logprob":null,"special":true},"generated_text":null,"details":null}

data:{"token":{"id":0,"text":"<unk>","logprob":null,"special":true},"generated_text":null,"details":null}

data:{"token":{"id":0,"text":"<unk>","logprob":null,"special":true},"generated_text":null,"details":null}

Hi @OlivierDehaene, not a bother at all, thanks for continuing to look into this!
I tried out this latest image with the older nodes, and am now getting a different error during container initialization:
2023-05-12T04:34:00.336770Z ERROR text_generation_launcher: Shard 0 failed to start:
Traceback (most recent call last):

  File "/opt/conda/bin/text-generation-server", line 8, in <module>
    sys.exit(app())

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/cli.py", line 58, in serve
    server.serve(model_id, revision, sharded, quantize, uds_path)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 155, in serve
    asyncio.run(serve_inner(model_id, revision, sharded, quantize))

  File "/opt/conda/lib/python3.9/asyncio/runners.py", line 44, in run
    return loop.run_until_complete(main)

  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete
    return future.result()

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 124, in serve_inner
    model = get_model(model_id, revision, sharded, quantize)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/__init__.py", line 120, in get_model
    return BLOOM(model_id, revision, quantize=quantize)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/bloom.py", line 53, in __init__
    super(BLOOM, self).__init__(

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/causal_lm.py", line 466, in __init__
    self.model = AutoModelForCausalLM.from_pretrained(

  File "/usr/src/transformers/src/transformers/models/auto/auto_factory.py", line 468, in from_pretrained
    return model_class.from_pretrained(

  File "/usr/src/transformers/src/transformers/modeling_utils.py", line 2729, in from_pretrained
    max_memory = get_balanced_memory(

  File "/opt/conda/lib/python3.9/site-packages/accelerate/utils/modeling.py", line 361, in get_balanced_memory
    max_memory = get_max_memory(max_memory)

  File "/opt/conda/lib/python3.9/site-packages/accelerate/utils/modeling.py", line 286, in get_max_memory
    _ = torch.tensor([0], device=i)
Error: ShardCannotStart

RuntimeError: CUDA error: the provided PTX was compiled with an unsupported toolchain.
CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.
For debugging consider passing CUDA_LAUNCH_BLOCKING=1.
Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

Hi @OlivierDehaene, not a bother at all, thanks for continuing to look into this!
I tried out this latest image with the older nodes, and am now getting a different error during container initialization:

2023-05-12T04:34:00.336770Z ERROR text_generation_launcher: Shard 0 failed to start:

Traceback (most recent call last):

  File "/opt/conda/bin/text-generation-server", line 8, in <module>

    sys.exit(app())

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/cli.py", line 58, in serve

    server.serve(model_id, revision, sharded, quantize, uds_path)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 155, in serve

    asyncio.run(serve_inner(model_id, revision, sharded, quantize))

  File "/opt/conda/lib/python3.9/asyncio/runners.py", line 44, in run

    return loop.run_until_complete(main)

  File "/opt/conda/lib/python3.9/asyncio/base_events.py", line 647, in run_until_complete

    return future.result()

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/server.py", line 124, in serve_inner

    model = get_model(model_id, revision, sharded, quantize)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/__init__.py", line 120, in get_model

    return BLOOM(model_id, revision, quantize=quantize)

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/bloom.py", line 53, in __init__

    super(BLOOM, self).__init__(

  File "/opt/conda/lib/python3.9/site-packages/text_generation_server/models/causal_lm.py", line 466, in __init__

    self.model = AutoModelForCausalLM.from_pretrained(

  File "/usr/src/transformers/src/transformers/models/auto/auto_factory.py", line 468, in from_pretrained

    return model_class.from_pretrained(

  File "/usr/src/transformers/src/transformers/modeling_utils.py", line 2729, in from_pretrained

    max_memory = get_balanced_memory(

  File "/opt/conda/lib/python3.9/site-packages/accelerate/utils/modeling.py", line 361, in get_balanced_memory

    max_memory = get_max_memory(max_memory)

  File "/opt/conda/lib/python3.9/site-packages/accelerate/utils/modeling.py", line 286, in get_max_memory

    _ = torch.tensor([0], device=i)

Error: ShardCannotStart

RuntimeError: CUDA error: the provided PTX was compiled with an unsupported toolchain.

CUDA kernel errors might be asynchronously reported at some other API call, so the stacktrace below might be incorrect.

For debugging consider passing CUDA_LAUNCH_BLOCKING=1.

Compile with `TORCH_USE_CUDA_DSA` to enable device-side assertions.

try use disable custom kernel parameter at starting container? It seems the old gpu is not supported for these cuda kernels.

I reverted to using nvidia/cuda:11.8.0-base-ubuntu20.04 as a base image. If the problem persists, feel free to post it and I will re-open.

I'm having this problem with image ghcr.io/huggingface/text-generation-inference:sha-d31562f (aka 0.7.0) and launch parameters "--model-id", "ehartford/WizardLM-7B-Uncensored", "--max-total-tokens", "2048", "--port", "8001"


[openapi] make json mapper configurable

I see this has gotten a proper name now, do you consider it done?

@tipsy Yes

Great, thank you!


ORPO trainer

ORPO trainer
Reference-free Monolithic Preference Optimization with Odds Ratio
cc @jiwooya1000

cc @philschmid

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update.

Thank you so much for such a fast implementation of ORPO @kashif😀
Also, about https://github.com/huggingface/trl/pull/1435#discussion_r1528005067, I think it is a great idea to log the log odds ratio as it can help monitor the effect of β(the weighting hyperparam) as this report.

Thank you again for the implementation!

ok i'll add the logging next

Just gave a quick try with ORPOTrainer with facebook/opt-350m + argilla/ultrafeedback-binarized-preferences-cleaned, and it seems to be working well😃 Thank you for your work @kashif!

@alvarobartt ok yes good idea! adding


generator: irange values are divergent

If we run an fbp with sol-fbp-runner and the options has no sub-option
the values for .min, .max and step are set to INT32_MIN, INT32_MAX and 1
respectively, but the code generated by sol-fbp-generator doesn't set
those values by default.
The converter-string-int.fbp excercises the problem, i.e:
The following fbp fragment when generated + built + compiled should
produce the output string "003 / -2147483648.000 /<PHONE_NUMBER>7 / 0x1",
instead it produces "003 / 0.000 / 0 / 0x0":
_(constant/int:value=3) OUT -> IN
_(converter/int-to-string:format_spec="{val:03d} / {min:.3f} / {max:o} /
{step:#x}") OUT -> IN[0] fmt_test_cmp(string/compare)
Signed-off-by: Leandro Dorileo<EMAIL_ADDRESS>

report purpose only, closing.


[Bug]: Vue 3.4.19 adds warning in console when using the Calendar component

Reproduction
https://www.shadcn-vue.com/docs/components/calendar.html
Describe the bug
I noticed the console started throwing Vue warnings when I have the Calendar component on the page.
I checked your demo page and noticed that didn't have those warnings: https://www.shadcn-vue.com/docs/components/calendar.html
I then checked the Stackblitz demo which that page links to. That does have the warning in the console (exactly as linked).
So ... what could be happening? The code appears the same in all cases ...
It turns out that I think your site is using Vue 3.4.15 but I'm using 3.4.19 (or "latest", which is what the Stackblitz is also set to use). So something has changed in the latest Vue ...
Sure enough they have added a warning: https://github.com/vuejs/core/blob/main/CHANGELOG.md#features
Unfortunately that new warning does not say exactly why it's happening. I only figured out it was the Calendar component by randomly removing elements:

[Vue warn] Computed is still dirty after getter evaluation, likely because a computed is mutating its own dependency in its getter. State mutations in computed getters should be avoided.  Check the docs for more details: https://vuejs.org/guide/essentials/computed.html#getters-should-be-side-effect-free

To complicate things, the Calendar component uses v-calendar (rather than radix-vue) so it may be that's the issue. Or it may be the way it is being integrated within the custom component ... Something is wrong but the warning does not give enough info to say exactly what.

System Info
System:
 OS: macOS 14.1.1
Binaries:
 Node: 20.11.0 - /usr/local/bin/node
 npm: 10.2.4 - /usr/local/bin/npm
 bun: 1.0.7 - ~/.bun/bin/bun
Browsers:
 Chrome: 121.0.6167.184
 Safari: 17.1

Contributes

[ ] I am willing to submit a PR to fix this issue
[ ] I am willing to submit a PR with failing tests

Deleted all computed from the Calendar source the warning still exists
The issue is related to the v-calendar itself

https://github.com/radix-vue/radix-vue/pull/674
Hopefully, we can replace v-calendar with this jewel, thanks to "Eduard Predescu"

Same warning happens with the combobox from the example: https://www.shadcn-vue.com/docs/components/combobox.html
"vue": "^3.4.19",
"radix-vue": "^1.4.8",

Same error, also when using "range" it seems to send some weird {} objects instead of the actual datetime when using useVModel


Continuity calculator added

Related Issue

Info about Issue or bug

Fixes: #486
Describe the changes you've made
Added Steps to Continuity equation Calculator in Fluid Mechanics inside Classical Mechanics.
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.

Screenshots
|        Original

|          Updated

|
| :---------------------: | :------------------------: |
| original screenshot | updated screenshot  |

@Amit366  I have checked this PR.


⚠ ClamAV has degraded performance

In 50f6816, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 84 ms

Resolved: ClamAV performance has improved in 462d463.


rust docker container example

an example deploying a rust api ina  docker container image

Thanks! I'll try this out.


Flutter web build

Hi,
Thank you for the project. It's very helpful.
I want to use it for WebSocket client-server communication in flutter project.
And here I faced the error:
when I'm trying to build it for the web:
flutter run -d chrome I get the error:
Running "flutter pub get"
Launching lib/main.dart on Chrome in debug mode...
../../../.pub-cache/hosted/pub.dartlang.org/connectme-2.1.0/lib/connectme.dart:5:8: Error: Not found: 'dart:ffi'
import 'dart:ffi';
       ^
Waiting for connection from debug service on Chrome...             23.2s
Failed to compile application.

Could you help me, please? What I'm doing wrong?
Code:
main.dart
import 'package:connectme/connectme.dart';
import 'package:flutter/material.dart';

void main() async {
  await ConnectMe.connect('ws://<IP_ADDRESS>:31337');

  runApp(const MaterialApp());
}

Unfortunately, there is no web support for dart:ffi which is used in connectme. Though you can check out connectme.js package here https://github.com/sourcecaster/connectme.js

Example files are not updated in JS repository. That's why it's only on github and not npmjs.com. But the API is almost the same. With the exception that it's client only and, obviously, you can't use TCP sockets, only WebSockets.
I'll give you a quick example:
let cm = require('connectme');
let pm = require('./generated/protocol.generated.mjs');

let client = new cm.ConnectMeClient(
    host, // websocket endpoint url
    [], // protocols - used in: new WebSocket(url, protocols)
    true, // auto reconnect (default true)
    30,  // query timeout (default 30)
    console.log, // onLog handler
    console.error, // onError handler
    handleConnect, // onConnect handler
    handleDisconnect // onDisconnect handler
);

client.register(pm.protocolMessageFactory);
await client.connect();

client.listen(pm.UpdatesMessage, (message) => {
    console.log(message.toString());
});

let response = await client.send(new HelloRequest({name: 'Mr. Freeman'}));
console.log(response.toString());

In order to generate packme classes I usually add a file bin/compile.mjs which contains only 1 line:
import 'packme/lib/compiler.mjs';

And then modify my package.json:
"scripts": {
    "compile": "node bin/compile.mjs packme src/generated",
},

And you just npm run compile.

Thank you!


chore: Switch from dconf to gschema-overrides

What I did
I removed gdm profile because it's already present in /usr/share/dconf/profile/.
I removed touchpad tap-to-click setting, because it's already the default since Gnome 46 (next GTS will be on Gnome 46).
I removed user profile because it's already present in /etc/dconf/profile/.
I moved dconfs from local.d to distro.d, as that's recommended to do as a distribution/custom image maintainer. local.d is intended for local-users, so let's make that easier for them.
Relocatable schemas & locked settings are not supported in gschema-overrides, hence why they remained in dconf.
I commented the gschema override, to make it easier to see where relocatable schemas are located.
gsettings list-relocatable-schemas can be used to check those on booted system.
We use zz0- prefix for gschema override, so that we can assure that Fedora gschema-override defaults won't override Bluefins.  Downstreams can use zz1-, zz2-, zz3-, etc. prefix, like I recommend BlueBuild users to do so.
Gschema overrides can be checked in build-time for errors in case some keys get migrated or someone makes an unintentional typing mistake, where dconf ones can't. So let's utilize that to our advantage.
Testing
Bluefin should work without problems, but I'll have to additionally test Aurora, to see how Ptyxis dconfs are handled there.

Tested Aurora, it works great

Tested & fixed remaining Bluefin settings, everything works!
This is ready to merge

I removed touchpad tap-to-click setting, because it's already the default since Gnome 46 (next GTS will be on Gnome 46).

What happens to existing gts users if this merges right now?

What happens to existing gts users if this merges right now?

They'll loose this setting by default

Ok what about leaving it in for now but leaving a comment like # TODO: Remove this after F40 becomes gts and then we can clean it up after?

Ok what about leaving it in for now but leaving a comment like # TODO: Remove this after F40 becomes gts and then we can clean it up after?

No problem, I'll add it back

Added

@bsherman There is this PR, which modifies dconf.
https://github.com/ublue-os/bluefin/pull/1729
What do you think about merging that, then I will update this PR with those changes, @castrojo approves & merge?

Great idea, I merged that PR, ready to go!

@castrojo Ready!


Feedback over protocol

I think the way outcome and payouts are expressed is not really mapping to the mental concept of somebody making a bet. Right now we have outcome + payout in contract info. But from a gambler perspective, a PnL (Profit and Loss) makes more sense (outcome => Profit/Loss)
If we used such PnL representation, we can get rid of the "TotalCollateral" in both the accept and offer message, while making it more intuitive to people to understan.
The ContractInfo should contains the preimage of the sha256, else how the acceptor is supposed to verify that the PnL is what he expects??

The concept of PnL allow better modeling for non discrete outcomes.
Also the collateral of the accepter, even in the current protocol, is not needed.
This can be determined by the highest payout of the offer and the collateral of the offerer.

I think the way outcome and payouts are expressed is not really mapping to the mental concept of somebody making a bet. Right now we have outcome + payout in contract info. But from a gambler perspective, a PnL (Profit and Loss) makes more sense (outcome => Profit/Loss)

I think this is an application level concern, it should be pretty easy to display one or the other regardless of the representation that is used at the protocol level.

If we used such PnL representation, we can get rid of the "TotalCollateral" in both the accept and offer message, while making it more intuitive to people to understand.

The rational for having it in both messages was discussed here. Depending on how we define contract information it is possible that it will change though.

The ContractInfo should contains the preimage of the sha256, else how the acceptor is supposed to verify that the PnL is what he expects??

ContractInfo is not really specified yet. Personally I think that each user should just get this kind of info from the oracle directly instead of receiving it from a counter party (if the info is signed by the oracle it might be ok, but still it seems like making the protocol heavier).

The concept of PnL allow better modeling for non discrete outcomes.

What do you mean by "non-discrete outcomes"? And how does the PnL representation make it easier?

Also the collateral of the accepter, even in the current protocol, is not needed.
This can be determined by the highest payout of the offer and the collateral of the offerer.

Again you can see @nkohen explanation here.
Personally I think at the protocol level it is easier to specify payouts as they will appear in the transaction outputs as it makes it easier to implement, but I'm open to being convinced otherwise :).

I think this is an application level concern, it should be pretty easy to display one or the other regardless of the representation that is used at the protocol level.

Yes, but there is no reason to have a different model in the application from the protocol, this make things harder to implement. That said it is the approach I took for NDLC.
Also, most implementation will likely follow the model of the protocol to present things to the user (except if my implementation becomes the most used), making it the standard, and hard to reason about.

What do you mean by "non-discrete outcomes"? And how does the PnL representation make it easier?

I don't know if I used the right term, but the concept of payoff function is quite used in game theory or even in finance, where the vertical axis is the reward, and the horizontal axis the price of the instrument at the expiry day.
In our Trump bet, our payoff function is discrete, but in finance this is represented as a curve. (set by a few parameter)
I think I should not call it PnL representation but payoff function .
The current representation as Contract Info is not really representative of anything people are familiar with.

Yes, but there is no reason to have a different model in the application from the protocol, this make things harder to implement. That said it is the approach I took for my implementation (NDLC).

You can have a single model,  but present it in different ways. In the p2pderivatives app we show the PnL (only after contract is terminated though), which is easily computed from the collateral and output value.

I don't know if I used the right term, but the concept of payoff function is quite used in game theory or even in finance, where the vertical axis is the reward, and the horizontal axis the price of the instrument at the expiry day.
In our Trump bet, our payoff function is discrete, but in finance this is represented as a curve. (set by a few parameter)
I think I should not call it PnL representation but payoff function .
The current representation as Contract Info is not really representative of anything people are familiar with.

I agree with having a payout function (see https://github.com/discreetlogcontracts/dlcspecs/pull/81#discussion_r486028623), but I'm not sure about having a continuous function to describe discrete outcomes (or maybe I misunderstood what you mean by payout curve?). Also I also feel we shouldn't go to close to specific use cases like financial contracts at the specification levels. Again I feel this can "easily" be done at the application level. For example, some people at CG worked on a tool to generate outcomes for financial contracts: https://docs.google.com/spreadsheets/d/1nzeD2F908BEbrh6a-CsnCHKBP3PDIDO0-Djysot3RHc/edit


the viewer is not working

i'm using standalone mode, everything is ok, ES have data, but the viewer is not working, when i am viewing http://localhost:8005, it's no response
the node log have no special, only say
connect.multipart() will be removed in connect 3.0
visit https://github.com/senchalabs/connect/wiki/Connect-3.0 for alternatives
connect.limit() will be removed in connect 3.0
Express server listening on port 8005 in production mode```

any suggestion?

did you try https://localhost:8005

oh, it works, looks like i didn't read the doc very clearly, thank you @awick


846 fix filter in operator spaces bug

This new PR contains the code fix for the filter operator spaces bug and test cases.

Excellent, thanks!


Are you going to release the training code

Hi, thanks for your great work. Are you going to release the training code?

Hello, I would like to join this question. Is there a way to obtain the training code? Thank you.

I know it's been a while, but I am also curious!


[vim] Start new terminal for nvim in Windows

This PR starts allows the vim plugin to work for Neovim in Windows by starting a new and separate terminal via cmd.exe and the start command. This is a workaround for the missing :terminal support.
I used jobstart() and on_exit to mimic s:execute() for Vim in Windows.
Tested only in Windows 8.1 and a recent March build of Neovim for Windows.

Thanks. As far as I know, Windows support of Neovim is experimental and is not officially announced yet. I'm not quite sure if I want to add code for it at this point.

I used jobstart() and on_exit to mimic s:execute() for Vim in Windows.

So Neovim for Windows will not have :terminal? Then can't we just unset use_term and use the same code for ordinary Vim on Windows? Any reason s:execute can't run on Neovim?

So Neovim for Windows will not have :terminal ?

It's planned, and was working at one point, but no timeframe on it.

:!some_shell_command  is non-interactive and is shellescaped by Neovim. :!fzf works but the UI is frozen and the user cannot see fzf running. Shellquoting in Windows is not resolved yet and system() is non-interactive. jobstart(['executable', 'args', ...], callback_dict) is the only choice left to run a separate process and terminal for fzf and get around the shellquoting issue. Doing this does not freeze the Neovim UI so putting the jobstart in s:execute() would return an empty array. If we move the code for the fzf in s:execute(), would this break any assumptions in the code meant for ordinary Vim?
Nightly builds of Neovim for Windows include nvim-qt for a GUI because there's no TUI officially available yet so we can limit the scope of the new code for Neovim GUIs in Windows only.

TUI is "sort of working" in neovim, and the related PR will be merged soon.

:FZF C:/Program\ Files\ (x86)\ fails in Neovim for Windows. Paths with no spaces work. Toggling shellslash changes some slashes but the result is the same. Vim does not have this issue.
Full command:
fzf  --multi  --prompt 'C:/Program Files (x86)/'  --expect=ctrl-v,ctrl-x,ctrl-t --no-height > C:/Users/JANEDM~1/AppData/Local/Temp/nvimzOaZXl/0
Does https://github.com/neovim/neovim/pull/6359 fix this issue?

@junegunn How far can I go for handling the filepaths on Windows?
I need to add fzf#fnamemodify() and fzf#getcwd() for s:shortpath() because of shellslash

@janlazo try https://github.com/neovim/neovim/pull/6359 or just wait for it to be merged.

set noshellslash should cause shellescape() to double-quote but it always returns a single-quoted string.
fzf --prompt 'C:\Program Files (x86)\' fails on cmd.exe but works on powershell. Tradeof is the startup of the new powershell process.
Using the batchfile didn't matter because the prompt issue is on cmd.exe

I used powershell in this commit, https://github.com/janlazo/fzf/commit/7a752fbb0371cdcd13ae2c952c910611c4c7cba6, to get around the single-quote escaping. I passed -NoProfile to speed up startup time similar to vim -u NONE.
:FZF path_with_spaces work on that commit for Neovim on Windows.

@junegunn This PR has a mixture of commits meant for Vim but is compatible with Neovim via powershell. I can make a separate PR for using backslashes in Windows filepaths such that, with set noshellslash, the finalized command passed to :! should  use backslash for all filepaths.

Thanks for your work @janlazo. To be honest, it's a little hard for me to follow this thread; what are the exact problems we are trying to solve? What are the steps to reproduce each problem and how do we validate the correctness of the fixes? Are we talking about Vim, Neovim, or both? Is this the right time for us to make changes for unannounced Neovim? Is it okay for us to proceed with the Neovim issues mentioned above unresolved? Do we have to fix the code for :FZF command? Because then we also have to fix some commands in fzf.vim repository.
So basically what I'm saying is that I'd like to see this PR broken down into smaller ones each tackling a single problem.

There are at least 2 separate problems we're trying to solve:

(Vim/Neovim) ambiguity in shellescaping when running shell commands via cmd.exe in Windows

shellslash affects any VIm behaviour dealing with filepaths in Windows.
In this PR, wrapper functions are used to handle getcwd(), fnamemodify() in s:shortpath().
We have fzf#shellescape() for shellescape() to escape the prompt but it only works with :! because the prompt filepath uses forward slash. Switching to backslashes on the prompt alongside fzf#shellescape() breaks the prompt, output redirection, and the rest of the command.
We can use a batch file but :FZF is already working without it.
When using backslashes for Windows filepaths that will be used in system() or :!, fzf#shellescape() may not be necessary because cmd.exe allows C:\Program Files (x86) unquoted. Using fzf#shellescape() risks breaking the prompt because the added quotes would have to be escaped as well.

(Neovim) no stable workaround for missing :terminal support in Windows

Using your master branch, running :FZF on Neovim in Windows doesn't work because shellescape() doesn't work as expected with set noshellslash and the Vim plugins assumes that, if Neovim is used, then :terminal must be available.
To reproduce the error, init.vim only contains set rtp+=~/.fzf for the Vim plugin and run :FZF. It should always fail no matter what filepath is used, including s:shortpath().
What we can do is mimic the behaviour of :FZF for Vim GUI and leave it at that. I can only provide support for the Neovim GUIs (nvim-qt) as an end-user.
As you suggested, we'll unset use_term and run s:execute(). I'll limit the differences to swapping :! for jobstart() for the callback when fzf exits and trivial shellescaping. If some of the common filepaths in Windows don't work, then there's no point expending effort for Neovim support in Windows until the official release.

There are at least 3 separate problems we're trying to solve:

Can we have separate PR for each subproblem? I'd like to delay merging Neovim-related changes and wait for the related issues are cleared.

https://github.com/neovim/neovim/pull/6497 is merged to master so I'll open another PR just for jobstart in Neovim. Anything else comes after #896


Its Alivveeee!!!!

Thanks Oros42, FFY00 and other guys for all the help.
My IMSI Catcher is on line and imsi numbers are now popping up over here.
Is there a way to capture the cell numbers of those imsi codes?

In most cases, you can't. The cell number is not send.
And only in few countries you have imsi == cell numbers.
:-/

Is there some peace of software I can use to get the numbers?

No. Only the operators know that.

Is there some imsi catcher that listen to the phones and not only to the cell towers?

Yes
With grgsm_livemon and wireshark you could listen cell phones. But you have to find the good frequency.


Roll back changes \ Latest development update not working

Hello,
I just used Force update to development version, and it was a bad idea, because now nothing works. Side-bar appears, but there's no dashboard and buttons only add #other anchors into the url, without any effect.
How do I fix it, or how do I roll back to stable version?
Update:
Log out button worked, and now I can't login, because of the following error:
Error - No cookies

Your browser does not support cookies, which are required for this web server to work in session authentication mode

It's already fixed on my local machine.
To roll back just go to the console, to theme's directory and run update script. You can read more about it on the main page (README.md) file.

This bug happens on slow machines.
I'm sorry. To many things to look over.

Thanks, I'll take a look.
But my machine is not slow. It's a gaming rig repurposed into home-server, it runs on Intel Core i7 2600 with 8 cores and 3.4 GHZ, and I'm accessing web ui from a similar machine.

It shouldn't be the cookie issue. What I just fixed was other issue.
Your machine sounds good.
What's your client side OS and the browser?

Win10, Chrome
I would also appreciate if you could point me in direction of webmin theme directory :)

I am experiencing the same thing. I just updated the latest patch and nothing is working. I too have a pretty powerful server.
Here's a screenshot after I log in. Left menu is not responding. I tried this from Firefox and Chrome on client side.

I was able to sign back in after clearig cookies for the past few days. But it did not fix anything.
Then, if I click the "gears' button on the bottom, the 'settings' one or whatever it is, I get into Webmin Themes and I can move through menus. But buttons don't work there, so i can't use it to update.

I was able to get to theme menu via link at bottom of left menu, but I clicking on Force Update to Stable Version is not responding (just like side menu)

Ditto Nixellion's comment

It depend on the distro.
RHEL is /usr/libexec/webmin and Debian like is /usr/share/webmin.
FreeBSD - you should know. 😉

It's debian, ubuntu, thanks. I'm not THAT far into unix systems yet to use FreeBSD :D

What would be our solution to manually "install" stable version of Authentic Theme since it cannot be done via Webmin? I'm running Ubuntu Server 16.04.

I located and ran theme-update.sh script at /usr/share/webmin/authentic-theme folder, it worked:
Would you like to update Authentic Theme for Webmin? [y/N] y
Pulling in latest changes for Authentic Theme (https://github.com/qooob/authentic-theme)...
Updating to Authentic Theme 19.02-git-201711141427, done.
Restarting Webmin..

But nothing changed, I suppose it updated to the same version anyway.

Guys, it's fairly easy to update it using command line. Other option is to run from browser's console theme.update(1).

@qooob See above, update did not fix anything, as right now we would probably need to downgrade.

@qooob....what file can we change that holds the setting for "Stable Release" so that when we run theme-update.sh it will downgrade to latest Stable version?

Try theme-update.sh -h. I think you need to add -release switch.
The easiest would be to run console command above.

Worked, thanks.
Would you like to update Authentic Theme for Webmin? [y/N] y
Pulling in latest release of Authentic Theme 19.02 (https://github.com/qooob/authentic-theme)...
Updating to Authentic Theme 19.02-1, done.
Restarting Webmin..

Worked for me too. But, I'm already missing some of the recent changes you've made in the beta releases
:(

Great.
Tomorrow everything will shine.
Adding new functionality that changing global scope a bit.
This bug affects all that having no Virtualmin and/or no Cloudmin (when Dashboard switch is displayed).
Please keep the issue opened meanwhile. I'll take care of it.

Thanks qooob! Your customer service skills are quick and great!

Thank you for reporting. ☺

:ok_hand:

While we're at it, don't want to spam with another issue - how do I switch to the dark version of the theme? Can't find it anywhere

Crescent like icon in the row of where logout button is. I remember adding hot key for that. I think Alt+K.

Yeah, thanks, I actually just found it after reading that it's called 'night mode' and saw the 'crescent' button there, made a connection :D Sorry, it's late here, thinking slow.
You're great guys, thanks!
and great theme :)

seems to be more effort than expected, hope you are not to much stressed

The latest git version contains fixed version already. I will close this issue.
Thank you for reporting.


[FLINK-34115][table-planner] Fix unstable TableAggregateITCase.testFlagAggregateWithOrWithoutIncrementalUpdate

What is the purpose of the change
See  #24172 for more details.
(cherry picked from commit ecd7efc2522b7640ec8d561ee8607c971cd714e7)
Brief change log
Split test cases and fix typo.
Verifying this change
The CI should pass and no more unstable cases occur.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializer: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no
If yes, how is the feature documented? not applicable

@flinkbot run azure


docs: improves release_slot warning

Description
Improves release_slot warning. Alerts for the danger of having zombie workflows that will never be reassigned nor expire.
Type of change

[x] Documentation change (pure documentation change)

Follows the discord discussion

What do you think @abelanger5 ?

Thanks @julianolm! Some CI errors due to a deprecated package that we need to fix, unrelated to this PR. This is safe to merge in.


Enable parallel tests in CI

Summary of Changes

Use different names and suffixes so the automated tests can run in parallel
Fix building wheels

Closes #165
Motivation
The automated container tests with docker-compose assumed they were run sequentially because they reused the same configuration files. By generalizing the files, these tests can be run in parallel for the different platforms, which speeds up the testing.
Implementation
The docker-compose configuration files are all renamed to have different names and the command-line accepts another suffix so they can be created per platform. There's also no more base file that gets merged with the specific one; instead each file is standalone.
There was also a bug with the name for the g++ package for CentOS which needed to be updated to build wheels.
Notes
N/A

Build successful!


Deleting current Hero does not clear out active Task

If the current Hero is deleted while a Task is active, the TaskManager's "TaskWatchTimer" will still run and trigger a TaskCompleted event when the Task completes, which will push the deleted Hero back into the active AppState, effectively resurrecting them.
We need to kill the TaskWatchTimer when this happens, or somehow put a check in the StateStore to prevent pushing out deleted Heroes if the CompletedTask is for them. Might get a little thorny.

Closing, this does not appear to be happening any more.


Submodules access

can i get acces to sublodules??
remote: Repository not found.
fatal: repository 'https://github.com/sap-labs-france/ev-aws.git/' not found
fatal: clone of 'https://github.com/sap-labs-france/ev-aws.git' into submodule path '/root/ev-server/src/assets/configs-aws' failed
Failed to clone 'src/assets/configs-aws'. Retry scheduled
Cloning into '/root/ev-server/src/assets/configs-ci'...

same thing here

same thing here

i solve it, just use make server SUBMODULES_INIT=false


chore: move nargo I/O into separate module

Related issue(s)
Resolves #884
Description
Summary of changes
The majority of the changes are just moving functions which load/write to file into the new fs module. I've also removed the preprocessing logic from fetch_pk_and_vk so that it's pure I/O as it's the CLI's responsibility to perform preprocessing where necessary.
Dependency additions / changes

Test additions / changes

Checklist

[x] I have tested the changes locally.
[x] I have formatted the changes with Prettier and/or cargo fmt with default settings.
[x] I have linked this PR to the issue(s) that it resolves.
[x] I have reviewed the changes on GitHub, line by line.
[x] I have ensured all changes are covered in the description.
[ ] This PR requires documentation updates when merged.

Additional context

Do we want to take this further and split into the nargo-core and nargo-cli crates like @kevaundray suggested? I could see nargo-core becoming the basis for wasm stuff instead of the special noir_wasm crate.

I'm aiming to not change functionality as much as possible in this PR so that substantive changes can be reviewed separately from code reshuffling.
That said, I also think that we should wait until nargo sits in its own repository before we split it up.

Will merge after #892


Fix head tracking

head tracking was enabled with the buildconfig, but it should also look at the user settings
this pr should fix both tickets #193 and #194

thinking about this a little more, i'm not sure how we wanna handle turning head tracking on and off for testing..


New favicon?

I don't know if it's just me, but the current favicon looks kinda ugly. I think you improved it a bit, but it's still the same icon. What does it represent anyway? Sites webmin.com and virtualmin.com have different favicons, and I think they are prettier and more appropriate.
Also, a favicon could be taken from the hostname, maybe as an option in settings. This could be especially useful for server admins who manage multiple Webmin servers, and then when they have multiple tabs open, they could more easily recognize which one to click.

Hi,
Yes, great idea. I will play with this tomorrow. All kind of design and icon making is a very painstaking process.
19.20 release going to be huge, with so many nice improvements! :smiley_cat:

I have added the individual favicons. This is how they look like. I will give more testing  for it tomorrow/monday. I will discuss with the team if putting them in the round white circle would make them look nicer.
Example:

Please give it a good try, and share your thoughts.

Be the way, new favicons will support embedding as shortcut properly on all OSs, like Desktop, Android and iOS.

Wow, they're great! I think they would look uglier with a white circle, they're perfect the way they are now (transparent bg).


Warning: Attempt to present

New Issue Checklist

I have read the guidelines for contributing and I understand:

[ ] My issue is happening in the latest version of SideMenu.
[ ] My issue was not solved in the README.
[ ] My issue can not be answered on stackoverflow.com.
[ ] My issue is not a request for new functionality that I am unwilling to build and contribute with a pull request.
[ ] My issue is reproducible in the demo project.

Issue Description

whose view is not in the window hierarchy!
My code is :-
let storyboard:UIStoryboard = UIStoryboard(name: "AboutUs", bundle: nil)
let becomeGuideVC:UINavigationController = storyboard.instantiateViewController(withIdentifier: "AboutusNav") as! UINavigationController
self.present(becomeGuideVC, animated: false)

This is a question for stackoverflow.com and not an issue specific to SideMenu.


Consistent output for pinned casks in the upgrade command

Description of issue
In the presence of pinned casks, the output of brew upgrade shows something like:
λ ~ > brew upgrade
Error: Not upgrading 1 pinned package:
awscli 2.0.50
==> Would upgrade 109 outdated packages:
rubberband 1.8.2_1 -> 1.9.0
git-quick-stats 2.0.12 -> 2.1.4
...

For the sake of consistency, I believe the "Not upgrading 1 pinned package" message should be prefixed with "==> " instead of "Error".

It is considered an error because it returns an error exit code.
Please always fill out the issue template.

It is considered an error because it returns an error exit code.

The user didn't specify a pinned package explicitly, so it's neither a user's mistake nor a real Homebrew error when we can't continue. I think this should be either ohai (==>) or opoo (Warning) instead of ofail (Error) because this is solely to inform the user about why Homebrew is not going to update the package.

It didn't used to be an error and people complained about the error exit code. It didn't used to have an error exit code and people complained that it didn't upgrade everything they expected. I think the current behaviour the best considering.


S-Unit Tests In an abstract class and its subclasses are not managed properly

When a TestCase is abstract, the tests should not appear in the S-Unit tab. And the subclasses of the the abstract class should show the tests which are inherited from the abstract testcase class.
Example:

This is the subclass. Note the tests in the abstract super class are missing. They should be here.

An example in the current image is TonelAbstractWriterTest, which has a method testWriteSnapshot, and a subclass TonelCypressWriterTest that does not implement the method testWriteSnapshot, but inherits and expects to run that test.
On the SUnit tab, when TonelAbstractWriterTest class is selected, it shows the test testWriteSnapshot, which can be run but will fail.  As Reg notes, this should not be listed here.
On the SUnit tab, when the class TonelCypressWriterTest is selected, it correctly shows the test and runs successfully - that's all good.
In the SUnit browser, the problem is a bit worse.  The TonelAbstractWriterTest is included (which it should not be).  And it lists the method testWriteSnapshot which fails.
But it does NOT include TonelCypressWriterTest at all, so you cannot run the intended test at all from the SUnit browser.  I suspect that the SUnit browser just doesn't include inherited test methods.
FYI, Eric, TestCase implements isAbstract which can be overridden by subclasses that are abstract.

Believe I have fixes for these in Oscar 3.0.53. Jadeite now properly uses TestCase protocol for determining which tests to show. e.g. considers isAbstract and friends now. but might need some additional work to solidify. @LisaAlmarode please open a new bug if needed.
@LisaAlmarode - This test didn't show up because it's not in a Rowan package.

But it does NOT include TonelCypressWriterTest at all, so you cannot run the intended test at all from the SUnit browser. I suspect that the SUnit browser just doesn't include inherited test methods.

Also, I'm assuming it's correct that tests in an abstract class are inherited by the immediate subclass, but not by subclasses of the immediate subclass.  tests that are in a concrete class are not inherited by any subclasses.  @regkrock might have an more knowledgeable opinion?

@LisaAlmarod, if you look at TestCase class>>shouldInheritSelectors you can see the logic that is used to determine which selectors are inherited from whom... a peek at the implementers of #shouldInheritSelectors will show that individual test cases can control their own destiny:)

Reassign to Eric to fix the PB class pane menu, the assumption that it's correct is correct...

Counterpropsal: replace the class menu "run tests" to "Open SUnit on class". Which will open an SUnit browser with the given class selected.  Remove the item "run tests"

Fixed in Oscar 3.0.54. We can tweak the name of the menu item if need be.


Position publish disarmed attitude

Describe problem solved by this pull request
Smooth takeoff issues were only hotfixed but the root cause never solved.

Issue #12171 was just hotfixed with #12250
Issue #13167 was just hotfixed with #13198
These are all side effects of the position controller not running when disarmed.
This also has other negative side effects like:
Raising CPU load when arming
Flaps of VTOL in multicopter mode cannot be checked by sticks when not armed

Describe your solution
I start the flight task, run the position controller and publish the attitude setpoint as soon as the navigation state is set by the commander also when disarmed. In navigation states where no flight task is running the position controller is still not run and nothing published e.g. stabilized mode since #10805, offboard if the attitude setpoint is coming via MAVLink or when flying fixed wing.
Describe possible alternatives
What's still missing is that the Attitude controller can handle invalid setpoints e.g. timeouts, NAN values and so on.
Test data / coverage
SITL gazebo
Still open tests:

[x] Smooth takeoff for MC and VTOL in SITL
[ ] VTOL at least bench

[x] Flaps check using RC in multicopter stabilized when disarmed
[ ] Flaps check using RC in multicopter altitude when disarmed

[ ] Offboard with attitude setpoints
[ ] Outdoor multicopter test with Stabilized and Altitude, Position, Takeoffs
[ ] maybe @xdwgood 's tailsitter setup from #13167

Side note - if you name your branches with a pr- prefix then the PR will also run on the hardware test rack. This can be a useful/lazy way to get a sense of cpu load before and after across a range of boards.

if you name your branches with a pr- prefix then the PR will also run on the hardware test

Very good hint, I should adapt my naming scheme then 👍

I rebased since @sfuhrer is doing VTOL testing. I might be able to add this to the testing.

@MaEtUgR testflown on a standard VTOL: https://review.px4.io/plot_app?log=0122c386-8af6-4a24-8bb2-36a23a00938e
I had some airspeed measurement issues on the flight, can't image them to be related to this PR though. Beside that, everything functioned as it should (tested in STAB, ALT/POS, both MC and FW).

I tested this PR on the tailsitter of the two motors, which solved the problem here:
https://logs.px4.io/plot_app?log=8c7b8d4e-42b7-4fa9-9ed7-5d364a133f19
（not arm but produced huge actuator output）

@MaEtUgR @sfuhrer Can we get this in?

@MaEtUgR @sfuhrer Can we get this in?

From my side yes. I think @MaEtUgR wanted still to test in offboard though.

Yeah, I really want to get it in. I just didn't get through to do the offboard test. Passing the MAVSDK attitude offboard test should be enough and then it's ready to merge.

I successfully ran the MAVSDK offboard test on SITL:
https://logs.px4.io/plot_app?log=643baa12-f9aa-4561-bec1-b4c4be310b66
I realized one thing though: The warnings likely reveal another race condition between the flight stack modules. When GPS fusion starts and it switches to Hold there are the messages
WARN  [mc_pos_control] Auto activation failed with error: Activation Failed
WARN  [mc_pos_control] Position-Ctrl activation failed with error: Activation Failed
WARN  [mc_pos_control] Altitude-Ctrl activation failed with error: Activation Failed

These do not show on master since to flight task is running and therefore noone cares if the data is not available in the first loop iteration after switching the mode.

Indeed the commander switches to hold when global position is valid, the position controller starts the task, it expects valid triplets and doesn't find any so reports based on the check here: https://github.com/PX4/Firmware/blob/99a7491cdef655cefdd7aef66ea4a9ec97906db7/src/lib/flight_tasks/tasks/Auto/FlightTaskAuto.cpp#L139
The others are the fallback because there's no way to autonomously stay in air but there's also no RC connected in my example so it continues and ends up in the failsafe task for this one loop iteration where the data is missing.
It's nothing caused by this pr and it's also not unsafe it's just not nice and gets revealed by the warnings.

I rebased to be ready for merging again. The only conflict was the line https://github.com/PX4/Firmware/pull/12650/files#diff-81c4f50bdf837c4183b5d3cb81eb40eaL359-L360 close to my change was removed but it doesn't interfere.

Updated again. Any reviews?
From my side it's ready.


Added descriptions for actor, hasNonce & mustUndertand options

Coverage remained the same at 92.544% when pulling 77bfdf6d4b8aee9782143459ebd7daa4798b4df3 on dj-hedgehog:master into 7c8f15e4178e5e6091bdf4290d2f5fbb68a47a92 on vpulim:master.

Thanks @dj-hedgehog !


unixPB: Pull gcc48 source from an https URL

Because https is always better than http ;-)
Signed-off-by: Stewart Addison<EMAIL_ADDRESS>

Testing at https://ci.adoptopenjdk.net/view/Tooling/job/VagrantPlaybookCheck/789 but since the file is identical it shouldn't be a problem :-)

( Restarted it at https://ci.adoptopenjdk.net/view/Tooling/job/VagrantPlaybookCheck/790/ )


[feat]: Table of contents (TOC)

Feature description
I would love to have a table of contents component (TOC) from Shadcn.
Example from Shadcn documentation page:

I would love to work on this

I created a PR for this #3065 🎉

This issue has been automatically closed because it received no activity for a while. If you think it was closed by accident, please leave a comment. Thank you.


Velocity modulation

Fixes #32
Velocity Modulation info goes in stimulus_notes with description from Extended Data Figure 10d

BehavioralSyllableInterface needed to be updated bc the velocity_modulation dataframe doesn't have the normal syllable column ("predicted_syllable (offline)").

Uploaded to drive!


Add Security Contacts details in table azure_subscription

Is your feature request related to a problem? Please describe.
Add Security Contacts details in table azure_subscription
Describe the solution you'd like
A clear and concise description of what you want to happen.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
https://docs.microsoft.com/en-us/rest/api/securitycenter/security-contacts/list#code-try-0
Note: This detail is required for NIST SP 800 53 Rev 5 controls.

Not required as addressed in azure_security_center_contact table.


Search - If control WS is deleted, as employee expense created are shown in search -- drafts

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

Version Number: 9.0.34-2
Reproducible in staging?: Y
Reproducible in production?: Y
Issue reported by: Applause Internal Team
Action Performed:

Launch app
Tap Account Settings  -- new workspace-- more features
Enable report fields
Add a field ( enter name, text, initial value and save it)
Tap categories
Tap settings - toggle on members must categorize all expense
Tap on a category - enter gl code, payroll code and save it
Invite a member to workspace
Login mweb as employee invited
Open employee Workspace chat
Create a expense with big amount, future date, merchant
Tap submit
As admin, in Android app delete the control workspace
In mweb, navigate to search -- drafts

Expected Result:
If control WS is deleted, as employee expense created must not be shown in search -- drafts.
Actual Result:
If control WS is deleted, as employee expense created are shown in search -- drafts.
Workaround:
Unknown
Platforms:

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

Screenshots/Videos
https://github.com/user-attachments/assets/f265e761-3385-4981-8c72-492448bc2732

View all open jobs on GitHub

I'm not able to reproduce this.

I created a control workspace associated with<EMAIL_ADDRESS>Configure all the settings in the OP
Invite<EMAIL_ADDRESS>as a member and submit an expense
Sign into the<EMAIL_ADDRESS>on the Android native app and delete the workspace
Result: the workspace is deleted, and the expense is deleted on the web.

This has been labelled "Needs Reproduction". Follow the steps here: https://stackoverflowteams.com/c/expensify/questions/16989

Asking QA to test again - https://expensify.slack.com/archives/C9YU7BX5M/p1726256592424189

Reproduced in app by the tester
https://github.com/user-attachments/assets/5f25ff97-314e-4500-a118-3f7d90bd947a

I'm still not getting this:
I can delete the workspace on Android and when I go to the search field and click on the draft it's deleted.

I'll ask QA if they can check the steps in the OP to see if there's something different.  https://expensify.slack.com/archives/C9YU7BX5M/p1726256592424189

Waiting for QA review - I'll nudge tomorrow if nothing overnight

Issue is still able to reproduce
https://github.com/user-attachments/assets/5ea20e50-1285-48ca-9e39-6bfa4cea010a

I finally reproduced this by using Android app for the first steps and not mweb. I think this can be external.

waiting for proposals

waiting for proposals

I'll see if someone at SWM can work on this

Ok so the 14 steps to reproduce are quite complex, and I don't fully understand what is:

control WS
as employe expense

So in order to test reproduction I need someone from Expensify to help me understand these terms.
That being said... in Search all the results that are displayed, for every search query come directly from backend. So in this case if there are some wrong drafts shown, I think it could also be an api task.
@luacmartins could you take a look at this bug?

Thanks for the review @Kicu!

control WS

The Control Workspace can be confirmed if you click Account Settings > Workspaces and look to see the workspace type. I believe when you create all of the workspace settings mentioned in the OP you are prompted to update to Control. Here's what it looks like the Android app.

as employe expense

I updated the OP wording a little bit. The employee is just the member who's been invited to the workspace and creates the expense. Let me know if that helps!

Side note: I'm going to be ooo until 9.30 but since we are working on proposals I'm not going to assign a new BZ teammate. If you need anything while I'm gone please reach out in Slack otherwise @abdulrahuman5196 can you field any questions from @Kicu? TY!

This seems somewhat expected to me. We don't delete the employees expenses when a workspace is deleted and since these transactions were just submitted (i.e. not approved nor paid) they go back to being unsubmitted, which is why they show in the drafts filter. cc @JmillsExpensify @trjExpensify do you agree with the above?

Intereeesting. Why do processing reports return to open to appear in drafts? 🤔

Intereeesting. Why do processing reports return to open to appear in drafts?

I assume there's some logic that reopens the report if they are submitted when a policy is deleted

Intereeesting. Why do processing reports return to open to appear in drafts?

I assume there's some logic that reopens the report if they are submitted when a policy is deleted. Not sure why though. What's the state they should be in in this case?

I assume there's some logic that reopens the report if they are submitted when a policy is deleted. Not sure why though. What's the state they should be in in this case?

The report state shouldn't change, so it's in whatever state it's in when the workspace was deleted.

Makes sense. I'll investigate why they are changing to open state/status

Haven't been able to prioritize this one yet, but it's on my list for this week

Just adding a note for Melvin that we're working on this

Same as my last update. I'll take a look this week.


New language and externalize click button

Translate to Brazilian Portuguese
Emit to externalize the clicked option name in the ContextMenu

Try not to change irrelevant files

0.5.12 support ptBR


. Marvin update

make it into richembed
channels, mem, d.js version
┆Issue is synchronized with this Trello card
┆Attachments: feaaattuuuuurreees

➤ Nik Bran commented:
process.memoryUsage().heapUsed.


Readme badge announces that test is failing

What version of this package are you using?
Latest master
What operating system, Node.js, and npm version?
Irrelevant
What happened?
https://github.com/standard/standard#------javascript-standard-style----

What did you expect to happen?
No failing tests,
Are you willing to submit a pull request to fix this bug?
No.

Indeed, the tests are currently failing.
We need to investigate why and where it is coming from. :+1:

I think it would be good to separate the GitHub Action that validates the validity of this repo on its own from the GitHub Action that validates against external repositories.
That way we could have two badges and more clearly indicate when the source of an error could possibly be external rather than internal.
Thoughts @Divlo?
It would require splitting the tape call here into two: https://github.com/standard/standard/blob/093b05608589e9345535db1f7d61cb5c4c006829/package.json#L71
Creating two new npm scripts, eg. test-external + test-internal, and rewiring npm test to be npm run test-internal && npm run text-external and have the current GitHub Action run the test-internal only and add a new GitHub Action that runs the test-external + add a new badge for the external repos.
That way the badging situation will be easier to decipher – for maintainers as well as users and contributors.

Sounds good to me! @voxpelli
I will open a PR for that, I also think that we should remove the "Old test" GitHub Action as it is useless in my opinion, I will open another PR to remove this old test action, so we can merge/discuss both changes separately.


feat(schemas): Add prepend and append rules keys to [open]

Fixes #28
I did not add any tests since it seems that the script in scripts/lint.js only tests the preset configurations in yazi, and this rules wouldn't make sense in there. Maybe consider adding additional configs here for test purposes? Right now I tested it by modifying my local clone and it passed.

Overall looks good to me, thanks for the patch @ValdezFOmar

Fixes #28
I did not add any tests since it seems that the script in scripts/lint.js only tests the preset configurations in yazi, and this rules wouldn't make sense in there. Maybe consider adding additional configs here for test purposes? Right now I tested it by modifying my local clone and it passed.

Yeah there isn't an elaborate testing apparatus besides testing the preset configs every release - more trouble than it is worth to create and update the test suite when the configuration API is not very stable (regular significant/breaking changes). I do comb through every commit affecting the yazi-config directory which usually means I don't miss this! Good catch, my apologies though.

@uncenter I updated the name (and took the time to sign my commits :))

No need to force push FYI, makes reviewing more difficult in some cases. I squash merge PRs so the title is all that matters.


Combat macro is not cleared when script ends with an exception

This can often result in unintended banishes or runs if not manually cleared.

There might be more conditions to this or it might be on failure only. Today when I checked the combat macro was disabled and the ccs was set to my default. There have been many times when its not and its ended up autokilling or banishing something I found after the loop, will have to take a better look next time it happens.

`> looprobot
Running looprobot version [765a14b] in KoLmafia r28032
hpAutoRecoveryTarget => 0.0
Preference hpAutoRecoveryTarget changed from 1.0 to 0.0
mpAutoRecoveryTarget => 0.0
Preference mpAutoRecoveryTarget changed from 0.65 to 0.0
CCS set to grimoire_macro
choiceAdventureScript => looprobot_choice.ash
Preference choiceAdventureScript changed from to looprobot_choice.ash
mpAutoRecoveryItems => phonics down;knob goblin superseltzer;psychokinetic energy blob;mountain stream soda;magical mystery juice;knob goblin seltzer;doc galaktik's invigorating tonic;cherry cloaca cola;soda water;black cherry soda
Preference mpAutoRecoveryItems changed from phonics down;knob goblin superseltzer;psychokinetic energy blob;mountain stream soda;magical mystery juice;knob goblin seltzer;doc galaktik's invigorating tonic;cherry cloaca cola;soda water to phonics down;knob goblin superseltzer;psychokinetic energy blob;mountain stream soda;magical mystery juice;knob goblin seltzer;doc galaktik's invigorating tonic;cherry cloaca cola;soda water;black cherry soda
choiceAdventure1340 => 3
Preference choiceAdventure1340 changed from 1 to 3
Executing Tower/Post-NS Chronolith [Use cosmic bowling ball]
Holding carnivorous potted plant...
Equipment changed.
Putting on lucky gold ring...
Equipment changed.
Preference lastEncounter changed from the Nautomatic Sorceress to Adjust your Parka
Encounter: Adjust your Parka
Preference parkaMode changed from ghostasaurus to kachungasaur
Your parka is now set to kachungasaur mode.
hpAutoRecoveryItems => scroll of drastic healing;cannelloni cocoon;tongue of the walrus;lasagna bandages;doc galaktik's homeopathic elixir;relaxing hot tub
Preference hpAutoRecoveryItems changed from scroll of drastic healing;cannelloni cocoon;tongue of the walrus;lasagna bandages;doc galaktik's homeopathic elixir to scroll of drastic healing;cannelloni cocoon;tongue of the walrus;lasagna bandages;doc galaktik's homeopathic elixir;relaxing hot tub
CCS set to grimoire_macro
choiceAdventure1468 => 1
Preference choiceAdventure1468 changed from 2 to 1
choiceAdventure1472 => 2
Preference choiceAdventure1472 changed from 1 to 2
choiceAdventure1473 => 2
Preference choiceAdventure1473 changed from 1 to 2
stillsuitFamiliar => Gelatinous Cubeling
Preference stillsuitFamiliar changed from to Gelatinous Cubeling
[485] Collecting energy
You gain 17 Energy
Preference _energyCollected changed from 5 to 6
Preference _concoctionDatabaseRefreshes changed from 1197 to 1198
Activating the Chronolith
You gain 10 Adventures
Preference _chronolithNextCost changed from 106 to 108
Preference _chronolithActivations changed from 43 to 44
Preference _concoctionDatabaseRefreshes changed from 1198 to 1199
Tower/Post-NS Chronolith completed!
hpAutoRecoveryTarget => 1
Preference hpAutoRecoveryTarget changed from 0.0 to 1
mpAutoRecoveryTarget => 0.65
Preference mpAutoRecoveryTarget changed from 0.0 to 0.65
choiceAdventureScript =>
Preference choiceAdventureScript changed from looprobot_choice.ash to
CCS set to grimoire_macro
mpAutoRecoveryItems => phonics down;knob goblin superseltzer;psychokinetic energy blob;mountain stream soda;magical mystery juice;knob goblin seltzer;doc galaktik's invigorating tonic;cherry cloaca cola;soda water
Preference mpAutoRecoveryItems changed from phonics down;knob goblin superseltzer;psychokinetic energy blob;mountain stream soda;magical mystery juice;knob goblin seltzer;doc galaktik's invigorating tonic;cherry cloaca cola;soda water;black cherry soda to phonics down;knob goblin superseltzer;psychokinetic energy blob;mountain stream soda;magical mystery juice;knob goblin seltzer;doc galaktik's invigorating tonic;cherry cloaca cola;soda water
hpAutoRecoveryItems => scroll of drastic healing;cannelloni cocoon;tongue of the walrus;lasagna bandages;doc galaktik's homeopathic elixir
Preference hpAutoRecoveryItems changed from scroll of drastic healing;cannelloni cocoon;tongue of the walrus;lasagna bandages;doc galaktik's homeopathic elixir;relaxing hot tub to scroll of drastic healing;cannelloni cocoon;tongue of the walrus;lasagna bandages;doc galaktik's homeopathic elixir
choiceAdventure1340 => 1
Preference choiceAdventure1340 changed from 3 to 1
choiceAdventure1468 => 2
Preference choiceAdventure1468 changed from 1 to 2
choiceAdventure1472 => 1
Preference choiceAdventure1472 changed from 2 to 1
choiceAdventure1473 => 1
Preference choiceAdventure1473 changed from 2 to 1
stillsuitFamiliar =>
Preference stillsuitFamiliar changed from Gelatinous Cubeling to
You Robot complete!
Adventures used: 485
Adventures remaining: 12
Time: 1 hours, 46 minutes, 58 seconds since first run today started
Pulls used: 18 (0 remaining)`

not sure what was different today but at the end of the main run, and re-rerunning, the ccs in mafia and combat macro in kol are set to grimoire_macro

I took a look at this and don't see an issue around setting the mafia CCS back. The example you showed seems correct since your CCS was already set to grimoire_macro at the start of the script. Could you share an example where it is wrong?
I could definitely imagine a case where you halt the script by mashing escape and also interrupt the resetting of the CCS, but I'm not sure if there's anything the script can do about that.
On the KoL side, the script was indeed not always clearing the autoattack on a script crash. It should now.

grimoire_macro was not set before the first run of looprobot. It was just the same situation as the autoattack, with an exception its not cleared. So the second time you run looprobot grimoire_macro is still set from the crash and is carried forward.

I meant do you have that log of that first run of looprobot where it didn't reset the CCS? Mainly I want to know what kind of error it was. It seems like the normal error path should reset it.


"Unknown; all bugs" = bug-catching contest?

Does location 150 "Unknown; all bugs" refer to the bug-catching contest in HeartGold and SoulSilver? Although oddly only caterpie and weedle have an encounter there according to veekun (it should be many more).

I believe it is unused. Bug catching contest data is elsewhere in the ROM.


Rspec update

Refactor RSpec

removed duplicated helpers and pointed everything to rails_helper
changed selectors to xpath
consolidated webmock disable to allow localhost, codeclimate and google for chartkick

There were the following issues with your Pull Request

Commit: 096696b4182e98e5c77be39d0ea46c97b0f196b4
Your commit message body contains a line that is longer than 72 characters

Guidelines are available at https://github.com/ministryofjustice/fr-staffapp

This message was auto-generated by https://gitcop.com

@dotemacs This came out of the attempt to get poltergeist working.  I separated it out into this PR.

Cool. I just read through: https://www.relishapp.com/rspec/rspec-rails/docs/upgrade#default-helper-files
Feel free to merge, thanks :+1:


Enhacement the semantics of stream API, unify with global/distributed objects

Describe your problem
TBF

See also: #1171

The collection part has been implemented in #1197 and #1198.


Cancelling in the app should lead to instant SAML response

If the user cancels the operation by clicking cancel in the app, there is no point in landing in the IdP and informing the user about this. Just send back a SAML error response with status cancel.

Closed by #152


Kernel execution errors not being rendered in OutputArea

Hello! I'm using thebe in a project and have run into a snag.
Kernel outputs are shown nicely (including widgets and multimedia) when code succeeds, however when there is a runtime error in the kernel nothing is shown.
I recorded a video clip walking through the error: https://app.screencastify.com/v3/watch/492g6QRsO1NjMOjdrg13
You can also reproduce by

going to the "simple" demo (here or by running the demo via the main branch of this repo)
Activating the kernel
Replacing the input of the code cell  with code that would trigger a Python exception (I just put assert False)
Running the code

What you will see is no rendered output in the OutputArea, but you will see the traceback printed to the javascript console
What we want to see is the errors rendered in the OutputArea.

Hi team, sorry to nudge here. If anyone has an idea of where I could start looking I would be happy to attempt a pull request
thanks!

This seems like a regression as previously we have always rendered errors, will take a look @sglyon

fix in place, will go out on next release!!

Amazing. Thank you @stevejpurves
I will test this out and hope for the best ;)

Thank you @stevejpurves I just updated based on a build from main and it works great ;)


[FR]: Overrides path by extensions

The overrides is great, but it doesn't difference between pdf and image, for example (if we handle all attachment). It will be cool to have a button to set custom path by extension in the settings and overrides settings.
The idea is to add a plus button, that populate a list. In the creating path, check the extension. If the extension exist in the list of the overrides or normal settings, apply the path instead of the default one.
It allow classifying better. For example, it allows me to move automatically all my PDF into _assets/pdf/{filename}

I have the similar ideas but never plan. Tks for your request, I will rewrite this feature by refer your code. :)

Hi @Lisandra-dev, you can try to upgrade to 0.8.3 and test this feature.


Fix QReader model not present

This PR closes #3 , see the issue for details.

Did you recreate this functionality or have you copied it from the drone? @J0hn-Lawrence

Did you recreate this functionality or have you copied it from the drone? @J0hn-Lawrence

Recreated from memory, but I am 99% certain it is correct. What do you think @Finndows ?

Did you recreate this functionality or have you copied it from the drone? @J0hn-Lawrence

Recreated from my memory of what we did on the drone, but I am 99% certain it is correct. What do you think @Finndows ?

Yes, looks good

FYI: I tested the download_qreader_model.py script first with internet connection and then without and it still worked. So our software shouldn't need internet for running.
@J0las @di-math

FYI: I tested the download_qreader_model.py script first with internet connection and then without and it still worked. So our software shouldn't need internet for running.
@J0las @di-math

I am a bit confused. Are you saying it worked and the script downloaded the model the first time and was then able to use this downloaded model in the second run?

FYI: I tested the download_qreader_model.py script first with internet connection and then without and it still worked. So our software shouldn't need internet for running.
@J0las @di-math

How can that script work without internet connection? It needs to have the weights downloaded to work which it does using it for the first time. Did you delete the weights manually / tested it in the container or how did you assure that it worked without internet? i think we need internet when building the docker at the moment.

FYI: I tested the download_qreader_model.py script first with internet connection and then without and it still worked. So our software shouldn't need internet for running.
@J0las @di-math

How can that script work without internet connection? It needs to have the weights downloaded to work which it does using it for the first time. Did you delete the weights manually / tested it in the container or how did you assure that it worked without internet? i think we need internet when building the docker at the moment.

That's is my understanding as well.

Yes, I had internet connection during the first run and it downloaded all the weights. In the second run however, I turned off all internet connections and could still run the script.
We need internet connection through docker builds anyway, so that's not a problem. But it is definitely nice, if we don't need internet access to start the container (which it looks like).

Yes, I had internet connection during the first run and it downloaded all the weights. In the second run however, I turned off all internet connections and could still run the script.
We need internet connection during docker builds anyway, so that's not a problem. But it is definitely nice, if we don't need internet access to start the container (which it looks like).

Okay, yeah. Once downloaded it is fine. And as we run it once in the docker build it should have downloaded the weights. My node then doesn't need to dowload them the first time.
Thanks for the test. We should still keep an eye on it saturday


Discussion: download and upload models have a somewhat inconsistent API

Hi all. Just a small-ish thing to discuss.
Methods that get information about/from repos take the full model id (e.g. hf_api.model_info("osanseviero/my-model") or snapshot_download("osanseviero/my-model)).
On the other hand, create_repo takes as two separate arguments the model name and the organization (if any). I wonder if this could lead to confusions in the future, and, if so, we should check if the name param has a / and determine if there's an org in there.

I think this makes a lot of sense. Actually implemented it in the save_to_hub from sentence-transformers
Users are used to pull images like {org}/{name}, so it makes sense to have a push_to_hub("{org}/{name}")

@LysandreJik @sgugger @julien-c in case you have any suggestions/ideas :)
We now have better error messages when this error happens, so it might not be such a big issue.

I wouldn't mind having org/name be interpreted as name, organization=org if specified, I think it would be coherent with the downloading methods.

Yes I'd be supportive of this as well

Related: while working on the models' data in https://observablehq.com/@huggingface/kaggle-dataset-huggingface-modelhub, I have been surprised that some of the "modelId"s are not "user/model", but just "model" (I understand all of them are models provided by Hugging Face as the organization). eg: https://huggingface.co/bert-base-uncased

Yes, this is for historic purposes. The first models had no organization and were therefore at the root.
Unfortunately, for backwards compatibility purposes, it is now complicated to change the behavior.


Add settings screen & backup logic

Description
Adds a settings screen with a backup option and an about page with a feedback link.
Settings Page

Settings button is on the connections screen
General settings page includes backup and restore
General settings page in dev mode will include some additional developer options that are not shown in production mode
About settings page includes version and feedback link that goes to GitHub issue submission form.

Backup & Restore
Please pay close attention to this code. There is a large description of the process in the localDb.ts file that will hopefully help future developers understand what is going on.
I added a bunch of tests for the process, but if there are more ideas for verification I'd like to add them. I want this process to as bulletproof and future proof as possible.
Validation

Pay close attention to the backup and restore logic

Settings button in connections page

General settings page

About settings page

Restore parse failure

Restore confirmation

Restore success

Related Issues

Resolves #513
Resolves #538

Check List

[x] I confirm that my contribution is made under the terms of the Apache 2.0
license.
[x] I have run pnpm checks to ensure code compiles and meets standards.
[x] I have run pnpm test to check if all tests are passing.
[x] I have covered new added functionality with unit tests if necessary.
[x] I have added an entry in the Changelog.md.

Confirmation modal has been updated.

Rebased on main after merging the other two PRs.


External data source

Hello @adamoudad!
I see you are planning to use the JSON file I created in parlr/tifinagh-data, that's great!
The file is based on the content of Wikipedia's article Tifinagh. However, I'm not a tifinagh speaker myself, so if you find any mistakes please let me know, so I can fix it.
Cheers!

Thanks for your work on this @edouard-lopez !
There are few resources on tifinagh and your JSON file was the best I could find. The content looks good, I did not find any mistake.
Best.


Query DSL

To use Query DSL instead of String based Elastic queries

Can one of the admins verify this patch?

ok to test

retest this please

retest this please


Idea for update - choose standard

It would be cool to add the option with which standard to sniff the theme - Core, Theme, VIP etc. Kinda like:

It is great option to have. But in the context of TRT, it is suitable to add that dropdown because we will always be using WordPress Theme standard.

Yes, for TRT it's not necessary, but in general it could be a great addition :)

I think it would be a good idea. We would just need to be clear that WordPress-Theme is the main one.
Instead of having to run the sniff multiple times, I think a checkbox might be better than a dropdown. This way you can choose which rulesets you want to run.
As "NS Theme Check" will not be the official plugin it would be nice to test a few ideas and see what feedback people give.
This would be for a separate issue but we are seeing people struggle with the difference between Errors and Warnings.

Instead of having to run the sniff multiple times, I think a checkbox might be better than a dropdown. This way you can choose which rulesets you want to run.

@grappler Is it possible to set multiple standard? Can you please point me how we can implement this? :)

Is it possible to set multiple standard?

Yes

Can you please point me how we can implement this?

Sure phpcs --standard=WordPress-Theme,WordPress-Core or $values['standard']    = 'WordPress-Theme,WordPress-Core';

Fixed in https://github.com/ernilambar/ns-theme-check/pull/11